(BraceGroup
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_BRANCH)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name GIT_BRANCH>
                suffix_op: (StringUnary op_id:VTest_ColonEquals arg_word:{(master)})
                spids: [40 44]
              )
            }
          spids: [39]
        )
      ]
      spids: [39]
    )
    (C {(echo)} {(-e)} {(DQ ('Git Branch: ') ($ VSub_Name '$GIT_BRANCH'))})
    (C {(cd)} {(DQ ($ VSub_Name '$HOME'))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_Name '$UID')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  spids: [88 97]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(-e)} 
              {
                (SQ 
                  <
'Error: Root privileges required. Please run the command with "sudo"\\nIn case install the "sudo" package with root privileges: #apt-get install sudo\\n'
                  >
                )
              }
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 100]
        )
      ]
      spids: [16777215 119]
    )
    (SimpleCommand
      words: [{(echo)} {(SQ <'Acquire::ForceIPv4 "true";'>)}]
      redirects: [
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(/etc/apt/apt.conf.d/99-dietpi-force-ipv4)}
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:a_MIN_APT_PREREQS)
          op: Equal
          rhs: {(ArrayLiteralPart words:[{(SQ <wget>)} {(SQ <ca-certificates>)} {(SQ <locales>)}])}
          spids: [143]
        )
      ]
      spids: [143]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/apt/sources.list.d/deb-multimedia.list)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(apt-get)} {(clean)})
    (C {(apt-get)} {(update)})
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: 
            (ArithWord
              w: 
                {
                  (BracedVarSub
                    token: <VSub_Name a_MIN_APT_PREREQS>
                    prefix_op: VSub_Pound
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [203 209]
                  )
                }
            )
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithUnary
                              op_id: Arith_Bang
                              child: 
                                (ArithWord
                                  w: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(dpkg)} {(--get-selections)})
                                                  (C {(grep)} {(-ci)} {(-m1)} 
                                                    {
                                                      (DQ ('^') 
                                                        (BracedVarSub
                                                          token: <VSub_Name a_MIN_APT_PREREQS>
                                                          bracket_op: 
                                                            (ArrayIndex
                                                              expr: (ArithWord w:{($ VSub_Name '$i')})
                                                            )
                                                          spids: [243 248]
                                                        ) ('[[:space:]]')
                                                      )
                                                    }
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [228 251]
                                      )
                                    }
                                )
                            )
                          spids: [224 254]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(apt-get)} {(install)} {(-y)} 
                      {
                        (BracedVarSub
                          token: <VSub_Name a_MIN_APT_PREREQS>
                          bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                          spids: [267 272]
                        )
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_NEqual
                                      left: (ArithWord w:{($ VSub_QMark '$?')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                  spids: [277 286]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} {(-e)} 
                              {
                                (DQ ('Error: Unable to install ') 
                                  (BracedVarSub
                                    token: <VSub_Name a_MIN_APT_PREREQS>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                    spids: [299 304]
                                  ) (', please try to install it manually with') (Lit_Other '\\') ('n - apt-get install -y ') 
                                  (BracedVarSub
                                    token: <VSub_Name a_MIN_APT_PREREQS>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                    spids: [308 313]
                                  )
                                )
                              }
                            )
                            (ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 289]
                        )
                      ]
                      spids: [16777215 323]
                    )
                  ]
                  spids: [16777215 257]
                )
              ]
              spids: [16777215 327]
            )
          ]
          spids: [218 331]
        )
    )
    (C {(unset)} {(a_MIN_APT_PREREQS)})
    (AndOr
      ops: [Op_DAmp Op_DPipe Op_DAmp Op_DPipe]
      children: [
        (C {(grep)} {(-q)} {(SQ <'^[[:blank:]]*prefer-family ='>)} {(/etc/wgetrc)})
        (C {(sed)} {(-i)} {(SQ <'/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv4'>)} 
          {(/etc/wgetrc)}
        )
        (C {(grep)} {(-q)} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {(/etc/wgetrc)})
        (C {(sed)} {(-i)} {(SQ <'/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv4'>)} 
          {(/etc/wgetrc)}
        )
        (SimpleCommand
          words: [{(echo)} {(SQ <'prefer-family = IPv4'>)}]
          redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(/etc/wgetrc)})]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(SQ <'en_GB.UTF-8 UTF-8'>)}]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/etc/locale.gen)})]
    )
    (C {(dpkg-reconfigure)} {(-f)} {(noninteractive)} {(locales)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_QMark '$?')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  spids: [451 460]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(-e)} {(SQ <'Error: Locale generation failed. Aborting...\\n'>)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 463]
        )
      ]
      spids: [16777215 482]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 501
          stdin_parts: [
            (
'# Force locale on remote access, especially via dropbear, where overwriting server locale by SSH client cannot be suppressed:\n'
            )
            ('export LANG=en_GB.UTF-8\n')
            ('export LC_ALL=en_GB.UTF-8\n')
            ('export LANGUAGE=en_GB:en\n')
          ]
        )
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(/etc/profile.d/99-dietpi-force-locale.sh)}
        )
      ]
    )
    (C {(chmod)} {(Lit_Other '+') (x)} {(/etc/profile.d/99-dietpi-force-locale.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:LANG) op:Equal rhs:{(en_GB.UTF-8)} spids:[516])]
      spids: [516]
    )
    (C {(wget)} 
      {(https) (Lit_Other ':') (//raw.githubusercontent.com/Fourdee/DietPi/) 
        ($ VSub_Name '$GIT_BRANCH') (/dietpi/func/dietpi-globals)
      } {(-O)} {(dietpi-globals)}
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_QMark '$?')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  spids: [556 565]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(-e)} {(SQ <'Error: Unable to download dietpi-globals. Aborting...\\n'>)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 568]
        )
      ]
      spids: [16777215 587]
    )
    (C {(chmod)} {(Lit_Other '+') (x)} {(dietpi-globals)})
    (C {(.)} {(./dietpi-globals)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_QMark '$?')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  spids: [610 619]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(-e)} {(SQ <'Error: Unable to load dietpi-globals. Aborting...\\n'>)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 622]
        )
      ]
      spids: [16777215 641]
    )
    (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-PREP_SYSTEM_FOR_DIETPI>)})
    (C {(export)} {(Lit_VarLike 'G_DISTRO=') (0)})
    (C {(export)} {(Lit_VarLike 'G_DISTRO_NAME=') (SQ <NULL>)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:DISTRO_TARGET) op:Equal rhs:{(0)} spids:[673])]
      spids: [673]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:DISTRO_TARGET_NAME) op:Equal rhs:{(SQ )} spids:[677])]
      spids: [677]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(grep)} {(-q)} {(SQ <wheezy>)} {(/etc/os-release)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:G_DISTRO) op:Equal rhs:{(2)} spids:[699])]
              spids: [699]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:G_DISTRO_NAME)
                  op: Equal
                  rhs: {(SQ <wheezy>)}
                  spids: [703]
                )
              ]
              spids: [703]
            )
          ]
          spids: [16777215 695]
        )
        (if_arm
          cond: [
            (Sentence
              child: (C {(grep)} {(-q)} {(SQ <jessie>)} {(/etc/os-release)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:G_DISTRO) op:Equal rhs:{(3)} spids:[727])]
              spids: [727]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:G_DISTRO_NAME)
                  op: Equal
                  rhs: {(SQ <jessie>)}
                  spids: [731]
                )
              ]
              spids: [731]
            )
          ]
          spids: [710 723]
        )
        (if_arm
          cond: [
            (Sentence
              child: (C {(grep)} {(-q)} {(SQ <stretch>)} {(/etc/os-release)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:G_DISTRO) op:Equal rhs:{(4)} spids:[755])]
              spids: [755]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:G_DISTRO_NAME)
                  op: Equal
                  rhs: {(SQ <stretch>)}
                  spids: [759]
                )
              ]
              spids: [759]
            )
          ]
          spids: [738 751]
        )
        (if_arm
          cond: [
            (Sentence
              child: (C {(grep)} {(-q)} {(SQ <buster>)} {(/etc/os-release)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:G_DISTRO) op:Equal rhs:{(5)} spids:[783])]
              spids: [783]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:G_DISTRO_NAME)
                  op: Equal
                  rhs: {(SQ <buster>)}
                  spids: [787]
                )
              ]
              spids: [787]
            )
          ]
          spids: [766 779]
        )
      ]
      else_action: [
        (C {(echo)} {(-e)} {(SQ <'Error: Unknown or unsupported distribution version. Aborting...\\n'>)})
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
      spids: [794 813]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:G_HW_ARCH_DESCRIPTION)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(uname)} {(-m)})])
                left_token: <Left_CommandSub '$('>
                spids: [826 830]
              )
            }
          spids: [825]
        )
      ]
      spids: [825]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$G_HW_ARCH_DESCRIPTION'))} {(Lit_Other '=')} 
                  {(DQ (armv6l))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:G_HW_ARCH) op:Equal rhs:{(1)} spids:[854])]
              spids: [854]
            )
          ]
          spids: [16777215 850]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$G_HW_ARCH_DESCRIPTION'))} {(Lit_Other '=')} 
                  {(DQ (armv7l))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:G_HW_ARCH) op:Equal rhs:{(2)} spids:[880])]
              spids: [880]
            )
          ]
          spids: [859 876]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$G_HW_ARCH_DESCRIPTION'))} {(Lit_Other '=')} 
                  {(DQ (aarch64))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:G_HW_ARCH) op:Equal rhs:{(3)} spids:[906])]
              spids: [906]
            )
          ]
          spids: [885 902]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$G_HW_ARCH_DESCRIPTION'))} {(Lit_Other '=')} 
                  {(DQ (x86_64))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:G_HW_ARCH) op:Equal rhs:{(10)} spids:[932])]
              spids: [932]
            )
          ]
          spids: [911 928]
        )
      ]
      else_action: [
        (C {(echo)} {(-e)} 
          {
            (DQ ('Error: Unknown or unsupported CPU architecture ') 
              ($ VSub_Name '$G_HW_ARCH_DESCRIPTION') ('. Aborting...')
            )
          }
        )
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
      spids: [937 958]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:INTERNET_ADDRESS) op:Equal rhs:{(SQ )} spids:[966])]
      spids: [966]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_BACKTITLE)
          op: Equal
          rhs: {(SQ <DietPi-Prep>)}
          spids: [976]
        )
      ]
      spids: [976]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_TITLE) op:Equal rhs:{(0)} spids:[982])]
      spids: [982]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_DESC) op:Equal rhs:{(0)} spids:[986])]
      spids: [986]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_MENU_ARRAY) op:Equal rhs:{(0)} spids:[990])]
      spids: [990]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_RETURN_VALUE) op:Equal rhs:{(0)} spids:[994])]
      spids: [994]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_DEFAULT_ITEM) op:Equal rhs:{(0)} spids:[998])]
      spids: [998]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_OPTION) op:Equal rhs:{(0)} spids:[1002])]
      spids: [1002]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_CHOICE) op:Equal rhs:{(0)} spids:[1006])]
      spids: [1006]
    )
    (FuncDef
      name: Run_Whiptail
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_OPTION)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [
                                  {(whiptail)}
                                  {(--title)}
                                  {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                  {(--menu)}
                                  {(DQ ($ VSub_Name '$WHIP_DESC'))}
                                  {(--default-item)}
                                  {(DQ ($ VSub_Name '$WHIP_DEFAULT_ITEM'))}
                                  {(--backtitle)}
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                  {(24)}
                                  {(85)}
                                  {(12)}
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name WHIP_MENU_ARRAY>
                                        bracket_op: (WholeArray op_id:Lit_At)
                                        spids: [1052 1057]
                                      )
                                    )
                                  }
                                ]
                                redirects: [
                                  (Redir
                                    op: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1018 1068]
                      )
                    }
                  spids: [1017]
                )
              ]
              spids: [1017]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [1071]
                )
              ]
              spids: [1071]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$WHIP_CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                              spids: [1077 1086]
                            )
                            (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$WHIP_OPTION'))} 
                              {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:WHIP_RETURN_VALUE)
                          op: Equal
                          rhs: {($ VSub_Name '$WHIP_OPTION')}
                          spids: [1106]
                        )
                      ]
                      spids: [1106]
                    )
                  ]
                  spids: [16777215 1102]
                )
              ]
              else_action: [
                (C {(G_DIETPI-NOTIFY)} {(1)} {(SQ <'No choices detected, aborting...'>)})
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
              ]
              spids: [1111 1130]
            )
            (C {(unset)} {(WHIP_MENU_ARRAY)})
          ]
          spids: [1013]
        )
      spids: [1010 1013]
    )
    (C {(echo)} {(-e)} {(SQ )})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(0)} {(SQ <'Step 0: Detecting existing DietPi system:'>)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithWord
                      w: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(systemctl)} {(is-active)} {(dietpi-ramdisk)})
                                      (C {(grep)} {(-ci)} {(-m1)} {(SQ <'^active'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1224 1242]
                          )
                        }
                    )
                  spids: [1222 1245]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'DietPi system found, running pre-prep'>)})
            (C {(/DietPi/dietpi/dietpi-services)} {(stop)})
            (C {(G_RUN_CMD)} {(systemctl)} {(stop)} {(dietpi-ramlog)})
            (C {(G_RUN_CMD)} {(systemctl)} {(stop)} {(dietpi-ramdisk)})
            (C {(rm)} {(-R)} {(/DietPi/) (Lit_Other '*')})
            (C {(rm)} {(-R)} {(/boot/dietpi)})
            (SimpleCommand
              words: [{(rm)} {(-R)} {(/mnt/dietpi-backup)}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(rm)} {(-R)} {(/mnt/dietpi-sync)}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(rm)} {(-R)} {(/mnt/dietpi_userdata)}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(rm)} {(-R)} {(/etc/dietpi)}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(rm)} {(-R)} {(/var/lib/dietpi)}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(rm)} {(-R)} {(/var/tmp/dietpi)}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(rm)} {(/root/DietPi-Automation.log)}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(rm)} {(/boot/Automation_Format_My_Usb_Drive)}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
          ]
          spids: [16777215 1248]
        )
      ]
      else_action: [(C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Non-DietPi system'>)})]
      spids: [1401 1415]
    )
    (C {(echo)} {(-e)} {(SQ )})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(0)} {(SQ <'Step 1: Initial prep to allow this script to function:'>)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Updating APT:'>)})
    (C {(G_RUN_CMD)} {(mkdir)} {(-p)} {(/var/tmp/dietpi/logs)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <'Installing core packages, required for next stage of this script:'>)}
    )
    (C {(G_AGI)} {(apt-transport-https)} {(unzip)} {(whiptail)})
    (C {(echo)} {(-e)} {(SQ )})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(0)} {(SQ <'Step 2: Hardware selection:'>)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_TITLE)
          op: Equal
          rhs: {(SQ <'Hardware selection:'>)}
          spids: [1550]
        )
      ]
      spids: [1550]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_DESC)
          op: Equal
          rhs: 
            {
              (SQ 
                <
'Please select the current device this is being installed on:\\n - NB: Select "Generic device" if not listed.'
                >
              )
            }
          spids: [1556]
        )
      ]
      spids: [1556]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_DEFAULT_ITEM) op:Equal rhs:{(22)} spids:[1562])]
      spids: [1562]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_MENU_ARRAY)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  {(SQ )}
                  {
                    (SQ 
                      <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Other\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                      >
                    )
                  }
                  {(SQ <22>)}
                  {(SQ <'Generic device (unknown to DietPi)'>)}
                  {(SQ )}
                  {
                    (SQ 
                      <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80SBC\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                      >
                    )
                  }
                  {(SQ <52>)}
                  {(SQ <'Asus Tinker Board'>)}
                  {(SQ <51>)}
                  {(SQ <'BananaPi Pro (Lemaker)'>)}
                  {(SQ <50>)}
                  {(SQ <'BananaPi M2+ (sinovoip)'>)}
                  {(SQ <71>)}
                  {(SQ <'Beagle Bone Black'>)}
                  {(SQ <66>)}
                  {(SQ <'NanoPi M1 Plus'>)}
                  {(SQ <65>)}
                  {(SQ <'NanoPi NEO 2'>)}
                  {(SQ <64>)}
                  {(SQ <'NanoPi NEO Air'>)}
                  {(SQ <63>)}
                  {(SQ <'NanoPi M1/T1'>)}
                  {(SQ <62>)}
                  {(SQ <'NanoPi M3/T3'>)}
                  {(SQ <61>)}
                  {(SQ <'NanoPi M2/T2'>)}
                  {(SQ <60>)}
                  {(SQ <'NanoPi Neo'>)}
                  {(SQ <13>)}
                  {(SQ <'Odroid U3'>)}
                  {(SQ <12>)}
                  {(SQ <'Odroid C2'>)}
                  {(SQ <11>)}
                  {(SQ <'Odroid XU3/4/HC1'>)}
                  {(SQ <10>)}
                  {(SQ <'Odroid C1'>)}
                  {(SQ <38>)}
                  {(SQ <'OrangePi PC 2'>)}
                  {(SQ <37>)}
                  {(SQ <'OrangePi Prime'>)}
                  {(SQ <36>)}
                  {(SQ <'OrangePi Win'>)}
                  {(SQ <35>)}
                  {(SQ <'OrangePi Zero Plus 2 (H3/H5)'>)}
                  {(SQ <34>)}
                  {(SQ <'OrangePi Plus'>)}
                  {(SQ <33>)}
                  {(SQ <'OrangePi Lite'>)}
                  {(SQ <32>)}
                  {(SQ <'OrangePi Zero (H2+)'>)}
                  {(SQ <31>)}
                  {(SQ <'OrangePi One'>)}
                  {(SQ <30>)}
                  {(SQ <'OrangePi PC'>)}
                  {(SQ <40>)}
                  {(SQ <'Pine A64'>)}
                  {(SQ <3>)}
                  {(SQ <'Raspberry Pi 3'>)}
                  {(SQ <2>)}
                  {(SQ <'Raspberry Pi 2'>)}
                  {(SQ <1>)}
                  {(SQ <'Raspberry Pi 1/Zero (512mb)'>)}
                  {(SQ <0>)}
                  {(SQ <'Raspberry Pi 1 (256mb)'>)}
                  {(SQ <43>)}
                  {(SQ <Rock64>)}
                  {(SQ <70>)}
                  {(SQ <'Sparky SBC'>)}
                  {(SQ )}
                  {
                    (SQ 
                      <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80PC\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                      >
                    )
                  }
                  {(SQ <21>)}
                  {(SQ <'x86_64 Native PC'>)}
                  {(SQ <20>)}
                  {(SQ <'x86_64 VMware/VirtualBox'>)}
                ]
              )
            }
          spids: [1566]
        )
      ]
      spids: [1566]
    )
    (C {(Run_Whiptail)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:G_HW_MODEL)
          op: Equal
          rhs: {($ VSub_Name '$WHIP_RETURN_VALUE')}
          spids: [1909]
        )
      ]
      spids: [1909]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Setting G_HW_MODEL index of: ') ($ VSub_Name '$G_HW_MODEL'))})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {
        (DQ ('CPU ARCH = ') ($ VSub_Name '$G_HW_ARCH') (' : ') ($ VSub_Name '$G_HW_ARCH_DESCRIPTION'))
      }
    )
    (SimpleCommand
      words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$G_HW_MODEL'))}]
      redirects: [
        (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/etc/.dietpi_hw_model_identifier)})
      ]
    )
    (C {(echo)} {(-e)} {(SQ )})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(0)} {(SQ <'Step 3: Distro selection:'>)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_TITLE)
          op: Equal
          rhs: {(SQ <'Distro selection:'>)}
          spids: [1995]
        )
      ]
      spids: [1995]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_DESC)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'Please select a distro to install on this system. Selecting a distro that is older than the current installed on system, is not supported.'
                ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nCurrently installed:') (Lit_Other '\\') ('n - ') 
                ($ VSub_Name '$G_DISTRO') (' ') ($ VSub_Name '$G_DISTRO_NAME')
              )
            }
          spids: [2001]
        )
      ]
      spids: [2001]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_DEFAULT_ITEM)
          op: Equal
          rhs: {($ VSub_Name '$G_DISTRO')}
          spids: [2016]
        )
      ]
      spids: [2016]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DISTRO_LIST_ARRAY)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  {(SQ <3>)}
                  {(SQ <'Jessie (oldstable, just if you need to avoid upgrade to current release)'>)}
                  {(SQ <4>)}
                  {(SQ <'Stretch (current stable release, recommended)'>)}
                  {(SQ <5>)}
                  {(SQ <'Buster (testing only, not officially supported)'>)}
                ]
              )
            }
          spids: [2020]
        )
      ]
      spids: [2020]
    )
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: 
            (ArithWord
              w: 
                {
                  (ArithSubPart
                    anode: 
                      (ArithBinary
                        op_id: Arith_Slash
                        left: 
                          (ArithWord
                            w: 
                              {
                                (BracedVarSub
                                  token: <VSub_Name DISTRO_LIST_ARRAY>
                                  prefix_op: VSub_Pound
                                  bracket_op: (WholeArray op_id:Lit_At)
                                  spids: [2075 2081]
                                )
                              }
                          )
                        right: (ArithWord w:{(Lit_Digits 2)})
                      )
                    spids: [2073 2088]
                  )
                }
            )
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:temp_distro_available)
                  op: Equal
                  rhs: {(1)}
                  spids: [2100]
                )
              ]
              spids: [2100]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:temp_distro_index)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: (ArithWord w:{($ VSub_Name '$i')})
                            right: (ArithWord w:{(Lit_Digits 3)})
                          )
                        spids: [2105 2114]
                      )
                    }
                  spids: [2104]
                )
              ]
              spids: [2104]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Less
                              left: (ArithWord w:{($ VSub_Name '$temp_distro_index')})
                              right: (ArithWord w:{($ VSub_Name '$G_DISTRO')})
                            )
                          spids: [2124 2133]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(G_DIETPI-NOTIFY)} {(2)} 
                      {(DQ ('Disabled Distro downgrade: index ') ($ VSub_Name '$temp_distro_index'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:temp_distro_available)
                          op: Equal
                          rhs: {(0)}
                          spids: [2150]
                        )
                      ]
                      spids: [2150]
                    )
                  ]
                  spids: [16777215 2136]
                )
              ]
              spids: [16777215 2155]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: (ArithWord w:{($ VSub_Name '$temp_distro_available')})
                          spids: [2165 2170]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:WHIP_MENU_ARRAY)
                          op: PlusEqual
                          rhs: 
                            {
                              (ArrayLiteralPart
                                words: [
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name DISTRO_LIST_ARRAY>
                                        bracket_op: 
                                          (ArrayIndex
                                            expr: 
                                              (ArithWord
                                                w: 
                                                  {
                                                    (ArithSubPart
                                                      anode: 
                                                        (ArithBinary
                                                          op_id: Arith_Star
                                                          left: (ArithWord w:{($ VSub_Name '$i')})
                                                          right: (ArithWord w:{(Lit_Digits 2)})
                                                        )
                                                      spids: [2184 2193]
                                                    )
                                                  }
                                              )
                                          )
                                        spids: [2181 2195]
                                      )
                                    )
                                  }
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name DISTRO_LIST_ARRAY>
                                        bracket_op: 
                                          (ArrayIndex
                                            expr: 
                                              (ArithWord
                                                w: 
                                                  {
                                                    (ArithSubPart
                                                      anode: 
                                                        (ArithBinary
                                                          op_id: Arith_Plus
                                                          left: 
                                                            (ArithBinary
                                                              op_id: Arith_Star
                                                              left: (ArithWord w:{($ VSub_Name '$i')})
                                                              right: (ArithWord w:{(Lit_Digits 2)})
                                                            )
                                                          right: (ArithWord w:{(Lit_Digits 1)})
                                                        )
                                                      spids: [2202 2217]
                                                    )
                                                  }
                                              )
                                          )
                                        spids: [2199 2219]
                                      )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [2177]
                        )
                      ]
                      spids: [2177]
                    )
                  ]
                  spids: [16777215 2173]
                )
              ]
              spids: [16777215 2226]
            )
          ]
          spids: [2097 2230]
        )
    )
    (C {(unset)} {(DISTRO_LIST_ARRAY)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} 
                  {
                    (BracedVarSub
                      token: <VSub_Name WHIP_MENU_ARRAY>
                      suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(x)})
                      spids: [2250 2254]
                    )
                  } {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_DIETPI-NOTIFY)} {(1)} 
              {(SQ <'Error: No available Distros for this system. Aborting...'>)}
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 2259]
        )
      ]
      spids: [16777215 2278]
    )
    (C {(Run_Whiptail)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DISTRO_TARGET)
          op: Equal
          rhs: {($ VSub_Name '$WHIP_RETURN_VALUE')}
          spids: [2285]
        )
      ]
      spids: [2285]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$DISTRO_TARGET')})
                      right: (ArithWord w:{(Lit_Digits 3)})
                    )
                  spids: [2291 2300]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DISTRO_TARGET_NAME)
                  op: Equal
                  rhs: {(SQ <jessie>)}
                  spids: [2307]
                )
              ]
              spids: [2307]
            )
          ]
          spids: [16777215 2303]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$DISTRO_TARGET')})
                      right: (ArithWord w:{(Lit_Digits 4)})
                    )
                  spids: [2316 2325]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DISTRO_TARGET_NAME)
                  op: Equal
                  rhs: {(SQ <stretch>)}
                  spids: [2332]
                )
              ]
              spids: [2332]
            )
          ]
          spids: [2314 2328]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$DISTRO_TARGET')})
                      right: (ArithWord w:{(Lit_Digits 5)})
                    )
                  spids: [2341 2350]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DISTRO_TARGET_NAME)
                  op: Equal
                  rhs: {(SQ <buster>)}
                  spids: [2357]
                )
              ]
              spids: [2357]
            )
          ]
          spids: [2339 2353]
        )
      ]
      spids: [16777215 2364]
    )
    (C {(echo)} {(-e)} {(SQ )})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(0)} {(SQ <'Step 4: APT configuration:'>)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Removing conflicting apt sources.list.d'>)})
    (SimpleCommand
      words: [{(rm)} {(/etc/apt/sources.list.d/deb-multimedia.list)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {
        (DQ ('Setting APT sources.list: ') ($ VSub_Name '$DISTRO_TARGET_NAME') (' ') 
          ($ VSub_Name '$DISTRO_TARGET')
        )
      }
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [2467 2476]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 2497
                  stdin_parts: [
                    ('deb https://www.mirrorservice.org/sites/archive.raspbian.org/raspbian ')
                    ($ VSub_Name '$DISTRO_TARGET_NAME')
                    (' main contrib non-free rpi\n')
                  ]
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(/etc/apt/sources.list)}
                )
              ]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 2514
                  stdin_parts: [
                    ('deb https://archive.raspberrypi.org/debian/ ')
                    ($ VSub_Name '$DISTRO_TARGET_NAME')
                    (' main ui\n')
                  ]
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(/etc/apt/sources.list.d/raspi.list)}
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Great
                      left: (ArithWord w:{($ VSub_Name '$DISTRO_TARGET')})
                      right: (ArithWord w:{(Lit_Digits 4)})
                    )
                  spids: [2521 2530]
                )
                (C {(sed)} {(-i)} {(DQ (s/) ($ VSub_Name '$DISTRO_TARGET_NAME') (/stretch/))} 
                  {(/etc/apt/sources.list.d/raspi.list)}
                )
              ]
            )
          ]
          spids: [16777215 2479]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(cat)}]
          redirects: [
            (HereDoc
              op: <Redir_DLess '<<'>
              fd: 16777215
              here_begin: {(_EOF_)}
              here_end_span_id: 2579
              stdin_parts: [
                ('deb https://deb.debian.org/debian/ ')
                ($ VSub_Name '$DISTRO_TARGET_NAME')
                (' main contrib non-free\n')
                ('deb https://deb.debian.org/debian/ ')
                ($ VSub_Name '$DISTRO_TARGET_NAME')
                ('-updates main contrib non-free\n')
                ('deb https://deb.debian.org/debian-security/ ')
                ($ VSub_Name '$DISTRO_TARGET_NAME')
                ('/updates main contrib non-free\n')
                ('deb https://deb.debian.org/debian/ ')
                ($ VSub_Name '$DISTRO_TARGET_NAME')
                ('-backports main contrib non-free\n')
              ]
            )
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/etc/apt/sources.list)})
          ]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_Less
                          left: (ArithWord w:{($ VSub_Name '$G_DISTRO')})
                          right: (ArithWord w:{(Lit_Digits 4)})
                        )
                      spids: [2588 2597]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(sed)} {(-i)} {(SQ <'s/https:/http:/g'>)} {(/etc/apt/sources.list)})]
              spids: [16777215 2600]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_Great
                          left: (ArithWord w:{($ VSub_Name '$DISTRO_TARGET')})
                          right: (ArithWord w:{(Lit_Digits 4)})
                        )
                      spids: [2622 2631]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(sed)} {(-i)} {(SQ </backports/d>)} {(/etc/apt/sources.list)})]
              spids: [2620 2634]
            )
          ]
          spids: [16777215 2650]
        )
      ]
      spids: [2552 2654]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Updating APT for ') ($ VSub_Name '$DISTRO_TARGET_NAME') (':'))})
    (C {(G_RUN_CMD)} {(apt-get)} {(clean)})
    (C {(G_AGUP)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {
        (DQ 
          (
'Marking all packages as auto installed first, to allow effective autoremove afterwards'
          )
        )
      }
    )
    (C {(G_RUN_CMD)} {(apt-mark)} {(auto)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(apt-mark)} {(showmanual)})])
          left_token: <Left_CommandSub '$('>
          spids: [2702 2706]
        )
      }
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {
        (DQ 
          (
'Temporary disable automatic recommends/suggests installation and allow them to be autoremoved:'
          )
        )
      }
    )
    (C {(export)} 
      {(Lit_VarLike 'G_ERROR_HANDLER_COMMAND=') (SQ </etc/apt/apt.conf.d/99-dietpi-norecommends>)}
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 2763
          stdin_parts: [
            ('APT::Install-Recommends ')
            (Right_DoubleQuote '"')
            (false)
            (Right_DoubleQuote '"')
            (';\n')
            ('APT::Install-Suggests ')
            (Right_DoubleQuote '"')
            (false)
            (Right_DoubleQuote '"')
            (';\n')
            ('APT::AutoRemove::RecommendsImportant ')
            (Right_DoubleQuote '"')
            (false)
            (Right_DoubleQuote '"')
            (';\n')
            ('APT::AutoRemove::SuggestsImportant ')
            (Right_DoubleQuote '"')
            (false)
            (Right_DoubleQuote '"')
            (';\n')
          ]
        )
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {($ VSub_Name '$G_ERROR_HANDLER_COMMAND')}
        )
      ]
    )
    (C {(export)} {(Lit_VarLike 'G_ERROR_HANDLER_EXITCODE=') ($ VSub_QMark '$?')})
    (C {(G_ERROR_HANDLER)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Forcing use of modified apt configs'))})
    (C {(export)} 
      {(Lit_VarLike 'G_ERROR_HANDLER_COMMAND=') (SQ </etc/apt/apt.conf.d/99-dietpi-forceconf>)}
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 2816
          stdin_parts: [
            ('Dpkg::options {\n')
            ('   ')
            (Right_DoubleQuote '"')
            (--force-confdef)
            (Right_DoubleQuote '"')
            (';\n')
            ('   ')
            (Right_DoubleQuote '"')
            (--force-confold)
            (Right_DoubleQuote '"')
            (';\n')
            ('}\n')
          ]
        )
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {($ VSub_Name '$G_ERROR_HANDLER_COMMAND')}
        )
      ]
    )
    (C {(export)} {(Lit_VarLike 'G_ERROR_HANDLER_EXITCODE=') ($ VSub_QMark '$?')})
    (C {(G_ERROR_HANDLER)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  {(SQ <apt-transport-https>)}
                  {(SQ <apt-utils>)}
                  {(SQ <bash-completion>)}
                  {(SQ <bc>)}
                  {(SQ <bzip2>)}
                  {(SQ <ca-certificates>)}
                  {(SQ <console-setup>)}
                  {(SQ <cron>)}
                  {(SQ <curl>)}
                  {(SQ <dbus>)}
                  {(SQ <debconf>)}
                  {(SQ <dosfstools>)}
                  {(SQ <dphys-swapfile>)}
                  {(SQ <ethtool>)}
                  {(SQ <fake-hwclock>)}
                  {(SQ <fbset>)}
                  {(SQ <gnupg>)}
                  {(SQ <hfsplus>)}
                  {(SQ <htop>)}
                  {(SQ <initramfs-tools>)}
                  {(SQ <iputils-ping>)}
                  {(SQ <isc-dhcp-client>)}
                  {(SQ <locales>)}
                  {(SQ <nano>)}
                  {(SQ <net-tools>)}
                  {(SQ <ntfs-3g>)}
                  {(SQ <ntp>)}
                  {(SQ <p7zip-full>)}
                  {(SQ <parted>)}
                  {(SQ <psmisc>)}
                  {(SQ <resolvconf>)}
                  {(SQ <sudo>)}
                  {(SQ <systemd-sysv>)}
                  {(SQ <tzdata>)}
                  {(SQ <unzip>)}
                  {(SQ <usbutils>)}
                  {(SQ <wget>)}
                  {(SQ <whiptail>)}
                  {(SQ <wput>)}
                  {(SQ <zip>)}
                ]
              )
            }
          spids: [2832]
        )
      ]
      spids: [2832]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithWord w:{($ VSub_Name '$G_DISTRO')})
                      right: (ArithWord w:{(Lit_Digits 4)})
                    )
                  spids: [3168 3177]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <dropbear>)}])}
                  spids: [3184]
                )
              ]
              spids: [3184]
            )
          ]
          spids: [16777215 3180]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
              op: PlusEqual
              rhs: {(ArrayLiteralPart words:[{(SQ <dropbear-run>)}])}
              spids: [3200]
            )
          ]
          spids: [3200]
        )
      ]
      spids: [3196 3212]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_GreatEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [3226 3235]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(G_AGI)} {(debian-archive-keyring)})]
          spids: [16777215 3238]
        )
      ]
      else_action: [(C {(G_AGI)} {(raspbian-archive-keyring)})]
      spids: [3248 3258]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 20)})
                    )
                  spids: [3272 3281]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_AGI)} {(firmware-realtek)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <hdparm>)}])}
                  spids: [3296]
                )
              ]
              spids: [3296]
            )
          ]
          spids: [16777215 3284]
        )
      ]
      spids: [16777215 3308]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_ARCH')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [3334 3343]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_AGI)} {(linux-image-amd64)})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 20)})
                    )
                  spids: [3359 3368]
                )
                (C {(G_AGI)} {(firmware-linux-nonfree)})
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (Pipeline
                  children: [
                    (C {(grep)} {(SQ <vendor_id>)} {(/proc/cpuinfo)})
                    (C {(grep)} {(-qi)} {(SQ <intel>)})
                  ]
                  negated: F
                )
                (C {(G_AGI)} {(intel-microcode)})
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (Pipeline
                  children: [
                    (C {(grep)} {(SQ <vendor_id>)} {(/proc/cpuinfo)})
                    (C {(grep)} {(-qi)} {(SQ <amd>)})
                  ]
                  negated: F
                )
                (C {(G_AGI)} {(amd64-microcode)})
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (DParen
                              child: 
                                (ArithWord
                                  w: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(dpkg)} {(--get-selections)})
                                                  (C {(grep)} {(-ci)} {(-m1)} 
                                                    {(SQ <'^grub-efi-amd64[[:space:]]'>)}
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [3444 3460]
                                      )
                                    }
                                )
                              spids: [3442 3463]
                            )
                            (C {(Lit_Other '[')} {(-d)} {(/boot/efi)} {(Lit_Other ']')})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(G_AGI)} {(grub-efi-amd64)})]
                  spids: [16777215 3477]
                )
              ]
              else_action: [(C {(G_AGI)} {(grub-pc)})]
              spids: [3491 3501]
            )
          ]
          spids: [16777215 3346]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [3515 3524]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(apt-mark)} {(unhold)} {(libraspberrypi-bin)} {(libraspberrypi0)} 
              {(raspberrypi-bootloader)} {(raspberrypi-kernel)} {(raspberrypi-sys-mods)} {(raspi-copies-and-fills)}
            )
            (C {(rm)} {(-R)} {(/lib/modules/) (Lit_Other '*')})
            (C {(G_AGI)} {(libraspberrypi-bin)} {(libraspberrypi0)} {(raspberrypi-bootloader)} 
              {(raspberrypi-kernel)} {(raspberrypi-sys-mods)} {(raspi-copies-and-fills)} {(--reinstall)}
            )
          ]
          spids: [3513 3527]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 12)})
                    )
                  spids: [3581 3590]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(G_AGI)} {(linux-image-arm64-odroid-c2)})]
          spids: [3579 3593]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 11)})
                    )
                  spids: [3609 3618]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_AGI)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(dpkg)} {(--get-selections)})
                            (C {(grep)} {(SQ <'^linux-image'>)})
                            (C {(awk)} {(SQ <'{print $1}'>)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [3631 3651]
                )
              }
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (DParen
                  child: 
                    (ArithWord
                      w: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(dpkg)} {(--get-selections)})
                                      (C {(grep)} {(-ci)} {(-m1)} {(SQ <'^linux-image'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [3656 3672]
                          )
                        }
                    )
                  spids: [3654 3675]
                )
                (C {(G_AGI)} {(linux-image-armhf-odroid-xu3)})
              ]
            )
          ]
          spids: [3607 3621]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [3691 3700]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(G_AGI)} {(linux-image-armhf-odroid-c1)})]
          spids: [3689 3703]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 43)})
                    )
                  spids: [3719 3728]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(G_AGI)} {(linux-rock64-package)})]
          spids: [3717 3731]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 71)})
                    )
                  spids: [3747 3756]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(G_AGI)} {(device-tree-compiler)})]
          spids: [3745 3759]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:AUTO_DETECT_KERN_PKG)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (C {(dpkg)} {(--get-selections)})
                              (C {(grep)} {(SQ <'^linux-image'>)})
                              (C {(awk)} {(SQ <'{print $1}'>)})
                            ]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [3782 3802]
                  )
                }
              spids: [3781]
            )
          ]
          spids: [3781]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$AUTO_DETECT_KERN_PKG'))} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(G_AGI)} {($ VSub_Name '$AUTO_DETECT_KERN_PKG')})]
              spids: [16777215 3818]
            )
          ]
          else_action: [
            (C {(G_DIETPI-NOTIFY)} {(2)} 
              {
                (SQ 
                  <
'Unable to find kernel packages for installation. Assuming non-APT/.deb kernel installation.'
                  >
                )
              }
            )
          ]
          spids: [3828 3842]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:AUTO_DETECT_DTB_PKG)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (C {(dpkg)} {(--get-selections)})
                              (C {(grep)} {(SQ <'^linux-dtb-'>)})
                              (C {(awk)} {(SQ <'{print $1}'>)})
                            ]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [3851 3871]
                  )
                }
              spids: [3850]
            )
          ]
          spids: [3850]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$AUTO_DETECT_DTB_PKG'))} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(G_AGI)} {($ VSub_Name '$AUTO_DETECT_DTB_PKG')})]
              spids: [16777215 3887]
            )
          ]
          spids: [16777215 3897]
        )
      ]
      spids: [3777 3945]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('WiFi selection'))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_TITLE)
          op: Equal
          rhs: {(SQ <'WiFi required?'>)}
          spids: [3959]
        )
      ]
      spids: [3959]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_DESC)
          op: Equal
          rhs: {(SQ <'Please select an option'>)}
          spids: [3965]
        )
      ]
      spids: [3965]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_DEFAULT_ITEM) op:Equal rhs:{(1)} spids:[3971])]
      spids: [3971]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_MENU_ARRAY)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  {(SQ <0>)}
                  {(DQ ("I don't require WiFi, do not install."))}
                  {(SQ <1>)}
                  {(SQ <'I require WiFi functionality, keep/install related packages.'>)}
                ]
              )
            }
          spids: [3975]
        )
      ]
      spids: [3975]
    )
    (C {(Run_Whiptail)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$WHIP_RETURN_VALUE')})
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                  spids: [4008 4017]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Marking WiFi as needed'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <crda>)}])}
                  spids: [4034]
                )
              ]
              spids: [4034]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <firmware-atheros>)}])}
                  spids: [4045]
                )
              ]
              spids: [4045]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <firmware-brcm80211>)}])}
                  spids: [4056]
                )
              ]
              spids: [4056]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <firmware-ralink>)}])}
                  spids: [4067]
                )
              ]
              spids: [4067]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <iw>)}])}
                  spids: [4078]
                )
              ]
              spids: [4078]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <rfkill>)}])}
                  spids: [4089]
                )
              ]
              spids: [4089]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <wireless-tools>)}])}
                  spids: [4100]
                )
              ]
              spids: [4100]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aPACKAGES_REQUIRED_INSTALL)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(SQ <wpasupplicant>)}])}
                  spids: [4111]
                )
              ]
              spids: [4111]
            )
          ]
          spids: [16777215 4020]
        )
      ]
      spids: [16777215 4123]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(DQ ('Generating list of minimal packages, required for DietPi installation:'))}
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:INSTALL_PACKAGES) op:Equal rhs:{(SQ )} spids:[4137])]
      spids: [4137]
    )
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: 
            (ArithWord
              w: 
                {
                  (BracedVarSub
                    token: <VSub_Name aPACKAGES_REQUIRED_INSTALL>
                    prefix_op: VSub_Pound
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [4152 4158]
                  )
                }
            )
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INSTALL_PACKAGES)
                  op: PlusEqual
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name aPACKAGES_REQUIRED_INSTALL>
                          bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                          spids: [4177 4182]
                        ) (' ')
                      )
                    }
                  spids: [4175]
                )
              ]
              spids: [4175]
            )
          ]
          spids: [4167 4188]
        )
    )
    (C {(unset)} {(aPACKAGES_REQUIRED_INSTALL)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Marking required packages as manually installed:'))})
    (C {(G_RUN_CMD)} {(apt-mark)} {(manual)} {($ VSub_Name '$INSTALL_PACKAGES')})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Purging APT with autoremoval:'))})
    (C {(G_AGA)})
    (C {(echo)} {(-e)} {(SQ )})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(0)} {(SQ <'Step 5: APT installations:'>)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Upgrading existing APT installed packages:'))})
    (C {(G_AGDUG)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:G_DISTRO)
          op: Equal
          rhs: {($ VSub_Name '$DISTRO_TARGET')}
          spids: [4299]
        )
      ]
      spids: [4299]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:G_DISTRO_NAME)
          op: Equal
          rhs: {($ VSub_Name '$DISTRO_TARGET_NAME')}
          spids: [4303]
        )
      ]
      spids: [4303]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(DQ ('Disabling swapfile generation for dphys-swapfile during install'))}
    )
    (SimpleCommand
      words: [{(G_RUN_CMD)} {(echo)} {(-e)} {(DQ ('CONF_SWAPSIZE=0'))}]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/etc/dphys-swapfile)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Installing core DietPi pre-req APT packages'))})
    (C {(G_AGI)} {($ VSub_Name '$INSTALL_PACKAGES')})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Returning installation of recommends back to default'))})
    (C {(G_RUN_CMD)} {(rm)} {(/etc/apt/apt.conf.d/99-dietpi-norecommends)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(DQ ('Purging APT with autoremoval (in case of DISTRO upgrade/downgrade):'))}
    )
    (C {(G_AGA)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DAmp
                      left: 
                        (ArithBinary
                          op_id: Arith_Great
                          left: (ArithWord w:{($ VSub_Name '$G_DISTRO')})
                          right: (ArithWord w:{(Lit_Digits 3)})
                        )
                      right: 
                        (ArithBinary
                          op_id: Arith_Great
                          left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                          right: (ArithWord w:{(Lit_Digits 9)})
                        )
                    )
                  spids: [4392 4409]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(sed)} {(-i)} {(SQ <'s/http:/https:/g'>)} {(/etc/apt/sources.list)})]
          spids: [16777215 4412]
        )
      ]
      spids: [16777215 4428]
    )
    (C {(echo)} {(-e)} {(SQ )})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(0)} {(SQ <'Step 6: Downloading and installing DietPi sourcecode'>)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:INTERNET_ADDRESS)
          op: Equal
          rhs: {(DQ ('https://github.com/Fourdee/DietPi/archive/') ($ VSub_Name '$GIT_BRANCH') (.zip))}
          spids: [4476]
        )
      ]
      spids: [4476]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Checking connection to ') ($ VSub_Name '$INTERNET_ADDRESS'))})
    (C {(G_CHECK_URL)} {(DQ ($ VSub_Name '$INTERNET_ADDRESS'))})
    (C {(G_RUN_CMD)} {(wget)} {(DQ ($ VSub_Name '$INTERNET_ADDRESS'))} {(-O)} {(package.zip)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Extracting DietPi sourcecode'))})
    (C {(G_RUN_CMD)} {(unzip)} {(-o)} {(package.zip)})
    (C {(rm)} {(package.zip)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Removing files not required'))})
    (C {(rm)} {(DietPi-) (Lit_Other '*') (/CHANGELOG.txt)})
    (C {(rm)} {(DietPi-) (Lit_Other '*') (/PREP_SYSTEM_FOR_DIETPI.sh)})
    (C {(rm)} {(DietPi-) (Lit_Other '*') (/TESTING-BRANCH.md)})
    (C {(rm)} {(DietPi-) (Lit_Other '*') (/uEnv.txt)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Creating /boot'))})
    (C {(G_RUN_CMD)} {(mkdir)} {(-p)} {(/boot)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Moving to /boot'))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [4627 4636]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_RUN_CMD)} {(mv)} {(DietPi-) (Lit_Other '*') (/boot_c1.ini)} {(/boot/boot.ini)})
          ]
          spids: [16777215 4639]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 11)})
                    )
                  spids: [4657 4666]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_RUN_CMD)} {(mv)} {(DietPi-) (Lit_Other '*') (/boot_xu4.ini)} {(/boot/boot.ini)})
          ]
          spids: [4655 4669]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 12)})
                    )
                  spids: [4687 4696]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_RUN_CMD)} {(mv)} {(DietPi-) (Lit_Other '*') (/boot_c2.ini)} {(/boot/boot.ini)})
          ]
          spids: [4685 4699]
        )
      ]
      spids: [16777215 4715]
    )
    (C {(rm)} {(DietPi-) (Lit_Other '*') (/) (Lit_Other '*') (.ini)})
    (C {(G_RUN_CMD)} {(cp)} {(-R)} {(DietPi-) (Lit_Other '*') (/) (Lit_Other '*')} {(/boot/)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Cleaning up extracted files'))})
    (C {(G_RUN_CMD)} {(rm)} {(-R)} {(DietPi-) (Lit_Other '*')})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Setting execute permissions for /boot/dietpi'))})
    (C {(G_RUN_CMD)} {(chmod)} {(-R)} {(Lit_Other '+') (x)} {(/boot/dietpi)})
    (C {(echo)} {(-e)} {(SQ )})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ('Step 7: Prep system for DietPi ENV:'))})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Deleting list of known users, not required by DietPi'))})
    (SimpleCommand
      words: [{(userdel)} {(-f)} {(pi)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(userdel)} {(-f)} {(test)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(userdel)} {(-f)} {(odroid)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(userdel)} {(-f)} {(rock64)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(userdel)} {(-f)} {(linaro)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(userdel)} {(-f)} {(dietpi)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(userdel)} {(-f)} {(debian)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Removing misc files/folders/services, not required by DietPi'))})
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/home)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/media)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/selinux)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/var/www/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/usr/src/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/root/.cache/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/root/.local/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/root/.config/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/usr/share/man)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/usr/share/doc)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/usr/share/doc-base)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/usr/share/calendar)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/var/cache/debconf/) (Lit_Other '*') (-old)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/usr/share/fonts/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/usr/share/icons/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/init.d/resize2fs)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/update-motd.d/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(systemctl)} {(disable)} {(firstrun)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/init.d/firstrun)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(systemctl)} {(disable)} {(log2ram.service)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(systemctl)} {(stop)} {(log2ram.service)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/usr/local/sbin/log2ram)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/systemd/system/log2ram.service)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(systemctl)} {(daemon-reload)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/cron.hourly/log2ram)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/init.d/cpu_governor)} {(Meveric)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null) (Lit_Pound '#')})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/systemd/system/cpu_governor.service)} {(Meveric)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null) (Lit_Pound '#')})]
    )
    (SimpleCommand
      words: [{(systemctl)} {(disable)} {(resize2fs)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/systemd/system/resize2fs.service)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/profile.d/check_first_login_reboot.sh)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Creating DietPi core environment'))})
    (C {(G_RUN_CMD)} {(/boot/dietpi/func/dietpi-set_core_environment)})
    (SimpleCommand
      words: [
        {(echo)}
        {(-e)}
        {
          (DQ ('Samba client can be installed and setup by DietPi-Config.') (Lit_Other '\\') 
            ('nSimply run: dietpi-config and select the Networking option: NAS/Misc menu')
          )
        }
      ]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/mnt/samba/readme.txt)})]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {(-e)}
        {
          (DQ ('FTP client mount can be installed and setup by DietPi-Config.') (Lit_Other '\\') 
            ('nSimply run: dietpi-config and select the Networking option: NAS/Misc menu')
          )
        }
      ]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/mnt/ftp_client/readme.txt)})]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {(-e)}
        {
          (DQ ('NFS client can be installed and setup by DietPi-Config.') (Lit_Other '\\') 
            ('nSimply run: dietpi-config and select the Networking option: NAS/Misc menu')
          )
        }
      ]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/mnt/nfs_client/readme.txt)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Deleting all log files /var/log'))})
    (SimpleCommand
      words: [{(/boot/dietpi/dietpi-logclear)} {(2)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Generating DietPi /etc/fstab'))})
    (C {(G_RUN_CMD)} {(/boot/dietpi/dietpi-drive_manager)} {(4)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [5428 5437]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PARTUUID_CURRENT)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(blkid)} {(/dev/mmcblk0p1)} {(-s)} {(PARTUUID)} {(-o)} {(value)})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [5445 5457]
                      )
                    }
                  spids: [5444]
                )
              ]
              spids: [5444]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UUID_CURRENT)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(blkid)} {(/dev/mmcblk0p1)} {(-s)} {(UUID)} {(-o)} {(value)})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [5461 5473]
                      )
                    }
                  spids: [5460]
                )
              ]
              spids: [5460]
            )
            (C {(sed)} {(-i)} 
              {
                (DQ ('s#^UUID=') ($ VSub_Name '$UUID_CURRENT') ('#PARTUUID=') 
                  ($ VSub_Name '$PARTUUID_CURRENT') ('#g')
                )
              } {(/etc/fstab)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PARTUUID_CURRENT)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(blkid)} {(/dev/mmcblk0p2)} {(-s)} {(PARTUUID)} {(-o)} {(value)})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [5493 5505]
                      )
                    }
                  spids: [5492]
                )
              ]
              spids: [5492]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UUID_CURRENT)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(blkid)} {(/dev/mmcblk0p2)} {(-s)} {(UUID)} {(-o)} {(value)})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [5509 5521]
                      )
                    }
                  spids: [5508]
                )
              ]
              spids: [5508]
            )
            (C {(sed)} {(-i)} 
              {
                (DQ ('s#^UUID=') ($ VSub_Name '$UUID_CURRENT') ('#PARTUUID=') 
                  ($ VSub_Name '$PARTUUID_CURRENT') ('#g')
                )
              } {(/etc/fstab)}
            )
            (C {(systemctl)} {(daemon-reload)})
          ]
          spids: [16777215 5440]
        )
      ]
      spids: [16777215 5546]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Starting DietPi-RAMdisk service'))})
    (C {(G_RUN_CMD)} {(systemctl)} {(start)} {(dietpi-ramdisk.service)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Starting DietPi-RAMlog service'))})
    (C {(G_RUN_CMD)} {(systemctl)} {(start)} {(dietpi-ramlog.service)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Updating DietPi HW_INFO'>)})
    (C {(/DietPi/dietpi/dietpi-obtain_hw_model)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Configuring Network:'))})
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/etc/network/interfaces)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(G_RUN_CMD)} {(cp)} {(/boot/dietpi/conf/network_interfaces)} {(/etc/network/interfaces)})
    (SimpleCommand
      words: [{(rm)} {(/etc/udev/rules.d/70-persistent-net.rules)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/etc/udev/rules.d/70-persistant-net.rules)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 32)})
                    )
                  spids: [5668 5677]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(sed)} {(-i)} 
              {
                (SQ 
                  <
'/iface wlan0 inet dhcp/apre-up modprobe xradio_wlan\\npre-up iwconfig wlan0 power on'
                  >
                )
              } {(/etc/network/interfaces)}
            )
          ]
          spids: [16777215 5680]
        )
      ]
      spids: [16777215 5696]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Tweaking DHCP timeout:'))})
    (C {(sed)} {(-i)} {(SQ <'/^#timeout /d'>)} {(/etc/dhcp/dhclient.conf)})
    (C {(sed)} {(-i)} {(SQ <'/^#retry /d'>)} {(/etc/dhcp/dhclient.conf)})
    (C {(sed)} {(-i)} {(SQ <'/^timeout /d'>)} {(/etc/dhcp/dhclient.conf)})
    (C {(sed)} {(-i)} {(SQ <'/^retry /d'>)} {(/etc/dhcp/dhclient.conf)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 5771
          stdin_parts: [('timeout 10;\n') ('retry 4;\n')]
        )
        (Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(/etc/dhcp/dhclient.conf)})
      ]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Configuring hosts:'))})
    (C {(export)} {(Lit_VarLike 'G_ERROR_HANDLER_COMMAND=') (SQ </etc/hosts>)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 5808
          stdin_parts: [
            ('127.0.0.1    localhost\n')
            ('127.0.1.1    DietPi\n')
            ('::1          localhost ip6-localhost ip6-loopback\n')
            ('ff02::1      ip6-allnodes\n')
            ('ff02::2      ip6-allrouters\n')
          ]
        )
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {($ VSub_Name '$G_ERROR_HANDLER_COMMAND')}
        )
      ]
    )
    (C {(export)} {(Lit_VarLike 'G_ERROR_HANDLER_EXITCODE=') ($ VSub_QMark '$?')})
    (C {(G_ERROR_HANDLER)})
    (C {(export)} {(Lit_VarLike 'G_ERROR_HANDLER_COMMAND=') (SQ </etc/hostname>)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 5840
          stdin_parts: [('DietPi\n')]
        )
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {($ VSub_Name '$G_ERROR_HANDLER_COMMAND')}
        )
      ]
    )
    (C {(export)} {(Lit_VarLike 'G_ERROR_HANDLER_EXITCODE=') ($ VSub_QMark '$?')})
    (C {(G_ERROR_HANDLER)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Configuring htop:'))})
    (C {(mkdir)} {(-p)} {(/root/.config/htop)})
    (C {(cp)} {(/DietPi/dietpi/conf/htoprc)} {(/root/.config/htop/htoprc)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Configuring hdparm:'))})
    (C {(export)} {(Lit_VarLike 'G_ERROR_HANDLER_COMMAND=') (SQ </etc/hdparm.conf>)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 5915
          stdin_parts: [
            ('\n')
            ('#DietPi external USB drive. Power management settings.\n')
            ('/dev/sda {\n')
            ('        #10 mins\n')
            ('        spindown_time = 120\n')
            ('\n')
            ('        #\n')
            ('        apm = 254\n')
            ('}\n')
          ]
        )
        (Redir
          op: <Redir_DGreat '>>'>
          fd: 16777215
          arg_word: {($ VSub_Name '$G_ERROR_HANDLER_COMMAND')}
        )
      ]
    )
    (C {(export)} {(Lit_VarLike 'G_ERROR_HANDLER_EXITCODE=') ($ VSub_QMark '$?')})
    (C {(G_ERROR_HANDLER)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Configuring fakehwclock:'))})
    (C {(sed)} {(-i)} {(DQ ('/FORCE=/c') (Lit_Other '\\') ('FORCE=force'))} {(/etc/default/fake-hwclock)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Configuring serial consoles:'))})
    (C {(/DietPi/dietpi/func/dietpi-set_hardware)} {(serialconsole)} {(disable)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Configuring ntpd:'))})
    (C {(systemctl)} {(disable)} {(systemd-timesyncd)})
    (SimpleCommand
      words: [{(rm)} {(/etc/init.d/ntp)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (DParen
          child: 
            (ArithBinary
              op_id: Arith_Great
              left: (ArithWord w:{($ VSub_Name '$G_DISTRO')})
              right: (ArithWord w:{(Lit_Digits 4)})
            )
          spids: [6003 6012]
        )
        (C {(systemctl)} {(mask)} {(ntp)})
      ]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Configuring regional settings (TZdata):'))})
    (SimpleCommand
      words: [{(rm)} {(/etc/timezone)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(rm)} {(/etc/localtime)})
    (C {(ln)} {(-fs)} {(/usr/share/zoneinfo/Europe/London)} {(/etc/localtime)})
    (C {(G_RUN_CMD)} {(dpkg-reconfigure)} {(-f)} {(noninteractive)} {(tzdata)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Configuring regional settings (Keyboard):'))})
    (C {(dpkg-reconfigure)} {(-f)} {(noninteractive)} {(keyboard-configuration)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Applying G_HW_ARCH specific tweaks:'))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_ARCH')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [6118 6127]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(dpkg)} {(--add-architecture)} {(i386)})
            (C {(G_AGUP)})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 6169
                  stdin_parts: [
                    ('blacklist nouveau\n')
                    ('blacklist lbm-nouveau\n')
                    ('options nouveau modeset=0\n')
                    ('alias nouveau off\n')
                    ('alias lbm-nouveau off\n')
                  ]
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(/etc/modprobe.d/blacklist-nouveau.conf)}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('options nouveau modeset=0'))}]
              redirects: [
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(/etc/modprobe.d/nouveau-kms.conf)}
                )
              ]
            )
            (C {(update-initramfs)} {(-u)})
          ]
          spids: [16777215 6130]
        )
      ]
      spids: [16777215 6190]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Appling G_HW_MODEL specific tweaks:'))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 35)})
                    )
                  spids: [6214 6223]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('blacklist bmp085'))}]
              redirects: [
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(/etc/modprobe.d/bmp085.conf)}
                )
              ]
            )
          ]
          spids: [16777215 6226]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 70)})
                    )
                  spids: [6250 6259]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(wget)} 
              {(https) (Lit_Other ':') 
                (//raw.githubusercontent.com/sparky-sbc/sparky-test/master/dragon_fly_check/uImage)
              } {(-O)} {(/boot/uImage)}
            )
            (C {(wget)} 
              {(https) (Lit_Other ':') 
                (
//raw.githubusercontent.com/sparky-sbc/sparky-test/master/dragon_fly_check/3.10.38.bz2
                )
              } {(-O)} {(package.tar)}
            )
            (C {(tar)} {(xvf)} {(package.tar)} {(-C)} {(/lib/modules/)})
            (C {(rm)} {(package.tar)})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 6322
                  stdin_parts: [
                    ('uenvcmd=setenv os_type linux;\n')
                    (
'bootargs=earlyprintk clk_ignore_unused selinux=0 scandelay console=tty0 loglevel=1 real_rootflag=rw root=/dev/mmcblk0p2 rootwait init=/lib/systemd/systemd aotg.urb_fix=1 aotg.aotg1_speed=0\n'
                    )
                  ]
                )
                (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/DietPi/uEnv.txt)})
              ]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 6346
                  stdin_parts: [
                    ('blacklist owl_camera\n')
                    ('blacklist gsensor_stk8313\n')
                    ('blacklist ctp_ft5x06\n')
                    ('blacklist ctp_gsl3680\n')
                    ('blacklist gsensor_bma222\n')
                    ('blacklist gsensor_mir3da\n')
                  ]
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(/etc/modprobe.d/disable_sparkysbc_touchscreen.conf)}
                )
              ]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 6364
                  stdin_parts: [
                    ('blacklist pvrsrvkm\n')
                    ('blacklist drm\n')
                    ('blacklist videobuf2_vmalloc\n')
                    ('blacklist bc_example\n')
                  ]
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(/etc/modprobe.d/disable_sparkysbc_gpu.conf)}
                )
              ]
            )
            (C {(sed)} {(-i)} 
              {
                (DQ ('/^CONFIG_CPU_GOVERNOR=/c') (Lit_Other '\\') ('CONFIG_CPU_GOVERNOR=performance'))
              } {(/DietPi/dietpi.txt)}
            )
            (C {(/DietPi/dietpi/dietpi-cpu_set)})
          ]
          spids: [6248 6262]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [6394 6403]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 6438
                  stdin_parts: [
                    ('ACTION==')
                    (Right_DoubleQuote '"')
                    (add)
                    (Right_DoubleQuote '"')
                    (', SUBSYSTEM==')
                    (Right_DoubleQuote '"')
                    (leds)
                    (Right_DoubleQuote '"')
                    (', ENV{DEVPATH}==')
                    (Right_DoubleQuote '"')
                    ('*/input*::scrolllock')
                    (Right_DoubleQuote '"')
                    (', ATTR{trigger}=')
                    (Right_DoubleQuote '"')
                    (kbd-scrollock)
                    (Right_DoubleQuote '"')
                    ('\n')
                  ]
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(/etc/udev/rules.d/50-leds.rules)}
                )
              ]
            )
          ]
          spids: [6392 6406]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 40)})
                    )
                  spids: [6447 6456]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 6481
                  stdin_parts: [
                    ('infocmp > terminfo.txt\n')
                    ("sed -i -e 's/?0c/?112c/g' -e 's/?8c/?48;0;64c/g' terminfo.txt\n")
                    ('tic terminfo.txt\n')
                    ('tput cnorm\n')
                  ]
                )
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$HOME')) (/.bashrc)}
                )
              ]
            )
          ]
          spids: [6445 6459]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 11)})
                    )
                  spids: [6490 6499]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 6525
                  stdin_parts: [
                    ('Package: *\n')
                    ('Pin: release a=jessie-backports\n')
                    ('Pin: origin ')
                    (Right_DoubleQuote '"')
                    (fuzon.co.uk)
                    (Right_DoubleQuote '"')
                    ('\n')
                    ('Pin-Priority: 99\n')
                  ]
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(/etc/apt/preferences.d/backports)}
                )
              ]
            )
          ]
          spids: [6488 6502]
        )
      ]
      spids: [16777215 6528]
    )
    (SimpleCommand
      words: [{(sed)} {(-i)} {(SQ <'/verbosity=/c\\verbosity=7'>)} {(/boot/armbianEnv.txt)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(echo)} {(-e)} {(SQ )})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ('Step 8: Finalise system for first run of DietPi:'))})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <----------------------------------------------------------------------------------->)}
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Configuring Dropbear:'>)})
    (C {(sed)} {(-i)} {(SQ <'/NO_START=1/c\\NO_START=0'>)} {(/etc/default/dropbear)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Configuring Services'>)})
    (C {(/DietPi/dietpi/dietpi-services)} {(stop)})
    (C {(/DietPi/dietpi/dietpi-services)} {(dietpi_controlled)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Running general cleanup of misc files'>)})
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/tmp/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(TildeSubPart token:<Lit_TildeLike '~'>) (/.bash_history)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(TildeSubPart token:<Lit_TildeLike '~'>) (/.nano_history)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Disabling swapfile'>)})
    (C {(/DietPi/dietpi/func/dietpi-set_dphys-swapfile)} {(0)} {(/var/swap)})
    (SimpleCommand
      words: [{(rm)} {(/var/swap)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 71)})
                    )
                  spids: [6737 6746]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(sed)} {(-i)} {(SQ <'/AUTO_SETUP_SWAPFILE_SIZE=/c\\AUTO_SETUP_SWAPFILE_SIZE=0'>)} 
              {(/DietPi/dietpi.txt)}
            )
          ]
          spids: [16777215 6749]
        )
      ]
      spids: [16777215 6765]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Resetting boot.ini, config.txt, cmdline.txt etc'>)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 40)})
                    )
                  spids: [6785 6794]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(sed)} {(-i)} {(SQ <'/^ethaddr/ d'>)} {(/boot/uEnv.txt)})]
          spids: [16777215 6797]
        )
      ]
      spids: [16777215 6813]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(Lit_Other '[')} {(-f)} {(/boot/cmdline.txt)} {(Lit_Other ']')})
        (C {(sed)} {(-i)} {(DQ ('s/ rootdelay=10//g'))} {(/boot/cmdline.txt)})
      ]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Generating default wpa_supplicant.conf'>)})
    (C {(/DietPi/dietpi/func/dietpi-set_hardware)} {(wificreds)} {(set)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Disabling generic WiFi/BT by default'>)})
    (C {(/DietPi/dietpi/func/dietpi-set_hardware)} {(bluetooth)} {(disable)})
    (C {(/DietPi/dietpi/func/dietpi-set_hardware)} {(wifimodules)} {(disable)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Enabling onboard WiFi modules by default'>)})
    (C {(/DietPi/dietpi/func/dietpi-set_hardware)} {(wifimodules)} {(onboard_enable)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Disabling soundcards by default'>)})
    (C {(/DietPi/dietpi/func/dietpi-set_hardware)} {(soundcard)} {(none)})
    (C {(G_AGP)} {(alsa-utils)})
    (C {(G_AGA)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Setting default CPU gov'>)})
    (C {(/DietPi/dietpi/dietpi-cpu_set)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Clearing log files'>)})
    (C {(/DietPi/dietpi/dietpi-logclear)} {(2)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Deleting DietPi-RAMlog storage'>)})
    (SimpleCommand
      words: [{(rm)} {(-R)} {(/var/lib/dietpi/dietpi-ramlog/storage/) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Deleting NTP drift file'>)})
    (SimpleCommand
      words: [{(rm)} {(/var/lib/ntp/ntp.drift)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Resetting DietPi generated globals/files'>)})
    (C {(rm)} {(/DietPi/dietpi/.) (Lit_Other '?') (Lit_Other '?') (Lit_Other '*')})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Setting DietPi-Autostart to console'>)})
    (SimpleCommand
      words: [{(echo)} {(0)}]
      redirects: [
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(/DietPi/dietpi/.dietpi-autostart_index)}
        )
      ]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <'Creating our update file (used on 1st run to check for DietPi updates)'>)}
    )
    (SimpleCommand
      words: [{(echo)} {(-1)}]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/DietPi/dietpi/.update_stage)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Set Init .install_stage to -1 (first boot)'>)})
    (SimpleCommand
      words: [{(echo)} {(-1)}]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/DietPi/dietpi/.install_stage)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <'Remove server_version / patch_file (downloads fresh from dietpi-update)'>)}
    )
    (SimpleCommand
      words: [{(rm)} {(/DietPi/dietpi/patch_file)}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(/DietPi/dietpi/server_version) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Clearing APT cache'>)})
    (C {(G_RUN_CMD)} {(apt-get)} {(clean)})
    (C {(rm)} {(-R)} {(/var/lib/apt/lists/) (Lit_Other '*')} {(-vf)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithWord w:{($ VSub_Name '$G_HW_MODEL')})
                      right: (ArithWord w:{(Lit_Digits 10)})
                    )
                  spids: [7175 7184]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(rm)} {(/etc/.dietpi_hw_model_identifier)})]
          spids: [16777215 7187]
        )
      ]
      spids: [16777215 7197]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Generating dietpi-fs_partition_resize for first boot'>)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 7238
          stdin_parts: [
            ('[Unit]\n')
            ('Description=dietpi-fs_partition_resize\n')
            ('Before=dietpi-ramdisk.service\n')
            ('\n')
            ('[Service]\n')
            ('Type=oneshot\n')
            ('RemainAfterExit=no\n')
            (
"ExecStart=/bin/bash -c '/var/lib/dietpi/fs_partition_resize.sh | tee /var/tmp/dietpi/logs/fs_partition_resize.log'\n"
            )
            ('StandardOutput=tty\n')
            ('\n')
            ('[Install]\n')
            ('WantedBy=local-fs.target\n')
          ]
        )
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(/etc/systemd/system/dietpi-fs_partition_resize.service)}
        )
      ]
    )
    (C {(systemctl)} {(daemon-reload)})
    (C {(G_RUN_CMD)} {(systemctl)} {(enable)} {(dietpi-fs_partition_resize.service)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 7339
          stdin_parts: [
            ('#!/bin/bash\n')
            ('\n')
            ('systemctl disable dietpi-fs_partition_resize.service\n')
            ('systemctl enable dietpi-fs_expand.service\n')
            ('systemctl daemon-reload\n')
            ('\n')
            ('sync\n')
            ('\n')
            ('TARGET_PARTITION=0\n')
            ('TARGET_DEV=')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ('(findmnt / -o source -n)\n')
            ('\n')
            ('# - MMCBLK[0-9]p[0-9] scrape\n')
            ('if [[ ')
            (Right_DoubleQuote '"')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            (TARGET_DEV)
            (Right_DoubleQuote '"')
            (' = *')
            (Right_DoubleQuote '"')
            (mmcblk)
            (Right_DoubleQuote '"')
            ('* ]]; then\n')
            ('\n')
            ('    TARGET_DEV=')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ("(findmnt / -o source -n | sed 's/p[0-9]")
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ("//')\n")
            ('\tTARGET_PARTITION=')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ("(findmnt / -o source -n | sed 's/.*p//')\n")
            ('\n')
            ('# - Everything else scrape (eg: /dev/sdX[0-9])\n')
            ('else\n')
            ('\n')
            ('    TARGET_DEV=')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ("(findmnt / -o source -n | sed 's/[0-9]")
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ("//')\n")
            ('\tTARGET_PARTITION=')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ("(findmnt / -o source -n | sed 's|/dev/sd.||')\n")
            ('\n')
            ('fi\n')
            ('\n')
            ('cat << _EOF_1 | fdisk ')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ('TARGET_DEV\n')
            ('p\n')
            ('d\n')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ('TARGET_PARTITION\n')
            ('n\n')
            ('p\n')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ('TARGET_PARTITION\n')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ('(parted ')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            (
"TARGET_DEV -ms unit s p | grep ':ext4::;' | sed 's/:/ /g' | sed 's/s//g' | awk '{ print "
            )
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            ("2 }')\n")
            ('\n')
            ('p\n')
            ('w\n')
            ('\n')
            ('_EOF_1\n')
            ('\n')
            ('reboot\n')
            ('\n')
          ]
        )
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(/var/lib/dietpi/fs_partition_resize.sh)}
        )
      ]
    )
    (C {(G_RUN_CMD)} {(chmod)} {(Lit_Other '+') (x)} {(/var/lib/dietpi/fs_partition_resize.sh)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Generating dietpi-fs_partition_expand for subsequent boot'>)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 7391
          stdin_parts: [
            ('[Unit]\n')
            ('Description=dietpi-fs_expand\n')
            ('Before=dietpi-ramdisk.service\n')
            ('\n')
            ('[Service]\n')
            ('Type=oneshot\n')
            ('RemainAfterExit=no\n')
            ('ExecStart=/bin/bash -c ')
            (Right_DoubleQuote '"')
            ('resize2fs ')
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
            (
'(findmnt / -o source -n) &> /var/tmp/dietpi/logs/fs_expand.log; systemctl disable dietpi-fs_expand.service; systemctl daemon-reload'
            )
            (Right_DoubleQuote '"')
            ('\n')
            ('StandardOutput=tty\n')
            ('\n')
            ('[Install]\n')
            ('WantedBy=local-fs.target\n')
          ]
        )
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(/etc/systemd/system/dietpi-fs_expand.service)}
        )
      ]
    )
    (C {(systemctl)} {(daemon-reload)})
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Storing DietPi version ID'>)})
    (C {(G_RUN_CMD)} {(wget)} 
      {(https) (Lit_Other ':') (//raw.githubusercontent.com/Fourdee/DietPi/) 
        ($ VSub_Name '$GIT_BRANCH') (/dietpi/.version)
      } {(-O)} {(/DietPi/dietpi/.version)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CORE_VERSION)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(sed)} {(-n)} {(1p)} {(/DietPi/dietpi/.version)})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [7447 7455]
              )
            }
          spids: [7446]
        )
      ]
      spids: [7446]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SUB_VERSION)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(sed)} {(-n)} {(2p)} {(/DietPi/dietpi/.version)})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [7459 7467]
              )
            }
          spids: [7458]
        )
      ]
      spids: [7458]
    )
    (DParen
      child: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:SUB_VERSION))
      spids: [7470 7474]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(_EOF_)}
          here_end_span_id: 7492
          stdin_parts: [($ VSub_Name '$CORE_VERSION') ('\n') ($ VSub_Name '$SUB_VERSION') ('\n')]
        )
        (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/DietPi/dietpi/.version)})
      ]
    )
    (C {(G_RUN_CMD)} {(cp)} {(/DietPi/dietpi/.version)} {(/var/lib/dietpi/.dietpi_image_version)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (DParen
                      child: 
                        (ArithWord
                          w: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(dpkg)} {(--get-selections)})
                                          (C {(grep)} {(-ci)} {(-m1)} 
                                            {(SQ <'^grub-efi-amd64[[:space:]]'>)}
                                          )
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [7513 7529]
                              )
                            }
                        )
                      spids: [7511 7532]
                    )
                    (C {(Lit_Other '[')} {(-d)} {(/boot/efi)} {(Lit_Other ']')})
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Recreating GRUB-EFI'>)})
            (C {(G_RUN_CMD)} {(grub-install)} {(--target) (Lit_Other '=') (x86_64-efi)} 
              {(--efi-directory) (Lit_Other '=') (/boot/efi)} {(--bootloader-id) (Lit_Other '=') (arch_grub)} {(--recheck)}
            )
          ]
          spids: [16777215 7546]
        )
      ]
      spids: [16777215 7580]
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Sync changes to disk. Please wait, this may take some time...'>)})
    (C {(G_RUN_CMD)} {(systemctl)} {(stop)} {(dietpi-ramlog)})
    (C {(G_RUN_CMD)} {(systemctl)} {(stop)} {(dietpi-ramdisk)})
    (C {(sync)})
    (C {(G_DIETPI-NOTIFY)} {(2)} 
      {(SQ <'Please check and delete all non-required folders in /root/.xxxxxx'>)}
    )
    (C {(G_DIETPI-NOTIFY)} {(2)} {(SQ <'Please delete outdated modules'>)})
    (C {(ls)} {(-lha)} {(/lib/modules)})
    (C {(G_DIETPI-NOTIFY)} {(0)} 
      {
        (DQ 
          (
'Completed, disk can now be saved to .img for later use, or, reboot system to start first run of DietPi:'
          )
        )
      }
    )
    (C {(rm)} {(dietpi-globals)})
    (C {(rm)} {(PREP_SYSTEM_FOR_DIETPI.sh)})
  ]
  spids: [3]
)