(BraceGroup
  left: <Id.Lit_LBrace '{'>
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [95]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_EqualTilde
                          left: {($ Id.VSub_Number 1)}
                          right: 
                            {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                              <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                            }
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [122]
                )
              ]
              redirects: []
            )
          ]
          spids: [99 119]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-f>} {<'/DietPi/dietpi/func/dietpi-globals'>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
            (C {<G_CHECK_ROOT_USER>})
            (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Drive_Manager>)})
          ]
          spids: [134 145]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                      {(DQ ($ Id.VSub_DollarName HOME)) <'/dietpi-globals'>} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<.>} {(DQ ($ Id.VSub_DollarName HOME)) <'/dietpi-globals'>})
            (C {<G_CHECK_ROOT_USER>})
            (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Drive_Manager>)})
          ]
          spids: [170 184]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_CODE='> name:EXIT_CODE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [216]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROGRAM_NAME='> name:PROGRAM_NAME)
          op: assign_op.Equal
          rhs: {(SQ <'DietPi-Drive Manager'>)}
          spids: [221]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SERVICE_CONTROL='> name:SERVICE_CONTROL)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [232]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'FP_DRIVE_MANAGER_SELECTION='>
              name: FP_DRIVE_MANAGER_SELECTION
            )
          op: assign_op.Equal
          rhs: {(SQ <'/tmp/dietpi-drive_manager_selmnt'>)}
          spids: [241]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_TEMP_FSTAB='> name:FP_TEMP_FSTAB)
          op: assign_op.Equal
          rhs: {(SQ <'/tmp/.fstab'>)}
          spids: [252]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_ROOTFS_SOURCE='> name:FP_ROOTFS_SOURCE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [259]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAX_DRIVES='> name:MAX_DRIVES)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [268]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FORMAT_GPT='> name:FORMAT_GPT)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [272]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'FORMAT_FILESYSTEM_TYPE='>
              name: FORMAT_FILESYSTEM_TYPE
            )
          op: assign_op.Equal
          rhs: {<0>}
          spids: [279]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'FORMAT_RECREATE_PARTITION_TABLE='>
              name: FORMAT_RECREATE_PARTITION_TABLE
            )
          op: assign_op.Equal
          rhs: {<1>}
          spids: [286]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FORMAT_COMPLETED='> name:FORMAT_COMPLETED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [293]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'FORMAT_PREVIOUS_MOUNT_SOURCE='>
              name: FORMAT_PREVIOUS_MOUNT_SOURCE
            )
          op: assign_op.Equal
          rhs: {<0>}
          spids: [297]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'INDEX_DRIVE_BEING_EDITED='>
              name: INDEX_DRIVE_BEING_EDITED
            )
          op: assign_op.Equal
          rhs: {<0>}
          spids: [305]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ROOTFS_RW_CHECKED='> name:ROOTFS_RW_CHECKED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [310]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aDRIVE_UUID='> name:aDRIVE_UUID)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [315]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aDRIVE_PART_UUID='> name:aDRIVE_PART_UUID)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [320]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'aDRIVE_MOUNT_SOURCE='>
              name: aDRIVE_MOUNT_SOURCE
            )
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [325]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'aDRIVE_MOUNT_TARGET='>
              name: aDRIVE_MOUNT_TARGET
            )
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [330]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aDRIVE_FSTYPE='> name:aDRIVE_FSTYPE)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [335]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aDRIVE_SIZE_TOTAL='> name:aDRIVE_SIZE_TOTAL)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [340]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aDRIVE_SIZE_USED='> name:aDRIVE_SIZE_USED)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [345]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'aDRIVE_SIZE_PERCENTUSED='>
              name: aDRIVE_SIZE_PERCENTUSED
            )
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [350]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aDRIVE_SIZE_FREE='> name:aDRIVE_SIZE_FREE)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [355]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aDRIVE_ISAVAILABLE='> name:aDRIVE_ISAVAILABLE)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [361]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'aDRIVE_ISFILESYSTEM='>
              name: aDRIVE_ISFILESYSTEM
            )
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [366]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aDRIVE_ISMOUNTED='> name:aDRIVE_ISMOUNTED)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [371]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aDRIVE_ISUUIDMOUNT='> name:aDRIVE_ISUUIDMOUNT)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [376]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'aDRIVE_ISREADONLY_FSTAB='>
              name: aDRIVE_ISREADONLY_FSTAB
            )
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [381]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'aDRIVE_ISREADONLY_CURRENTLY='>
              name: aDRIVE_ISREADONLY_CURRENTLY
            )
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
          spids: [386]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'INIT_FSTAB_SLOTS_ENABLED='>
              name: INIT_FSTAB_SLOTS_ENABLED
            )
          op: assign_op.Equal
          rhs: {<0>}
          spids: [392]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'FP_USERDATA_CURRENT='>
              name: FP_USERDATA_CURRENT
            )
          op: assign_op.Equal
          rhs: {<0>}
          spids: [397]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: Destroy
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<unset>} {<aDRIVE_MOUNT_SOURCE>})
            (C {<unset>} {<aDRIVE_MOUNT_TARGET>})
            (C {<unset>} {<aDRIVE_FSTYPE>})
            (C {<unset>} {<aDRIVE_SIZE_TOTAL>})
            (C {<unset>} {<aDRIVE_SIZE_USED>})
            (C {<unset>} {<aDRIVE_SIZE_PERCENTUSED>})
            (C {<unset>} {<aDRIVE_SIZE_FREE>})
            (C {<unset>} {<aDRIVE_PART_UUID>})
            (C {<unset>} {<aDRIVE_UUID>})
            (C {<unset>} {<aDRIVE_ISMOUNTED>})
            (C {<unset>} {<aDRIVE_ISFILESYSTEM>})
            (C {<unset>} {<aDRIVE_ISAVAILABLE>})
            (C {<unset>} {<aDRIVE_ISUUIDMOUNT>})
            (C {<unset>} {<aDRIVE_ISREADONLY_FSTAB>})
            (C {<unset>} {<aDRIVE_ISREADONLY_CURRENTLY>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Init_Drives_and_Refresh
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'init='> <1>})
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [(command.DParen child:{($ Id.VSub_DollarName init)} redirects:[])]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'init='> name:init)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [526]
                        )
                      ]
                      redirects: []
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Detecting drives, please wait...'>)})
                    (C {<cp>} {<'/etc/fstab'>} {(DQ ($ Id.VSub_DollarName FP_TEMP_FSTAB))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAX_DRIVES='> name:MAX_DRIVES)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [(C {<blkid>} {<-o>} {<device>}) (C {<wc>} {<-l>})]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [559]
                        )
                      ]
                      redirects: []
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'fp_temp='> (SQ <'/tmp/.dietpi-drive_manager_devlist'>)}
                    )
                    (command.Simple
                      words: [{<blkid>} {<-o>} {<device>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName fp_temp)}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<readarray>} {<-t>} {<aDRIVE_MOUNT_SOURCE>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {($ Id.VSub_DollarName fp_temp)}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<blkid>} {<-s>} {<UUID>} {<-o>} {<value>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName fp_temp)}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<readarray>} {<-t>} {<aDRIVE_UUID>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {($ Id.VSub_DollarName fp_temp)}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<blkid>} {<-s>} {<PARTUUID>} {<-o>} {<value>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName fp_temp)}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<readarray>} {<-t>} {<aDRIVE_PART_UUID>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {($ Id.VSub_DollarName fp_temp)}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<blkid>} {<-s>} {<TYPE>} {<-o>} {<value>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName fp_temp)}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<readarray>} {<-t>} {<aDRIVE_FSTYPE>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {($ Id.VSub_DollarName fp_temp)}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (C {<local>} {<Id.Lit_VarLike 'mount_index='> <1>})
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {($ Id.VSub_DollarName MAX_DRIVES)}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISAVAILABLE['>
                                      name: aDRIVE_ISAVAILABLE
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [732]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISUUIDMOUNT['>
                                      name: aDRIVE_ISUUIDMOUNT
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [740]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_MOUNT_TARGET['>
                                      name: aDRIVE_MOUNT_TARGET
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <NULL>)}
                                  spids: [748]
                                )
                              ]
                              redirects: []
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'drive_mount_target_dev='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<grep>} {<-m1>} 
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                                var_name: aDRIVE_MOUNT_SOURCE
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {($ Id.VSub_DollarName i)}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <'[[:space:]]'>
                                            )
                                          } {(DQ ($ Id.VSub_DollarName FP_TEMP_FSTAB))}
                                        )
                                        (C {<awk>} {(SQ <'{print $2}'>)})
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'drive_mount_target_uuid='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<grep>} {<-m1>} 
                                          {
                                            (DQ <'UUID='> 
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name aDRIVE_UUID>
                                                var_name: aDRIVE_UUID
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {($ Id.VSub_DollarName i)}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <'[[:space:]]'>
                                            )
                                          } {(DQ ($ Id.VSub_DollarName FP_TEMP_FSTAB))}
                                        )
                                        (C {<awk>} {(SQ <'{print $2}'>)})
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'drive_mount_target_partuuid='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<grep>} {<-m1>} 
                                          {
                                            (DQ <'PARTUUID='> 
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name aDRIVE_PART_UUID>
                                                var_name: aDRIVE_PART_UUID
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {($ Id.VSub_DollarName i)}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <'[[:space:]]'>
                                            )
                                          } {(DQ ($ Id.VSub_DollarName FP_TEMP_FSTAB))}
                                        )
                                        (C {<awk>} {(SQ <'{print $2}'>)})
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName drive_mount_target_dev))} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_MOUNT_TARGET['>
                                              name: aDRIVE_MOUNT_TARGET
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName drive_mount_target_dev)}
                                          spids: [879]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISAVAILABLE['>
                                              name: aDRIVE_ISAVAILABLE
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [887]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (DQ <'Detected /dev mount: '> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                            var_name: aDRIVE_MOUNT_SOURCE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <' > '> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                            var_name: aDRIVE_MOUNT_TARGET
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [862 875]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName drive_mount_target_uuid))} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_MOUNT_TARGET['>
                                              name: aDRIVE_MOUNT_TARGET
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName drive_mount_target_uuid)}
                                          spids: [940]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISAVAILABLE['>
                                              name: aDRIVE_ISAVAILABLE
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [949]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISUUIDMOUNT['>
                                              name: aDRIVE_ISUUIDMOUNT
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [957]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (DQ <'Detected UUID mount: '> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                            var_name: aDRIVE_MOUNT_SOURCE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <' > '> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                            var_name: aDRIVE_MOUNT_TARGET
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [923 936]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName drive_mount_target_partuuid)
                                                )
                                              } {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_MOUNT_TARGET['>
                                              name: aDRIVE_MOUNT_TARGET
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName drive_mount_target_partuuid)}
                                          spids: [1010]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISAVAILABLE['>
                                              name: aDRIVE_ISAVAILABLE
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1019]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISUUIDMOUNT['>
                                              name: aDRIVE_ISUUIDMOUNT
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1027]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (DQ <'Detected PARTUUID mount: '> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                            var_name: aDRIVE_MOUNT_SOURCE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <' > '> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                            var_name: aDRIVE_MOUNT_TARGET
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [993 1006]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_UUID>
                                                    var_name: aDRIVE_UUID
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: {($ Id.VSub_DollarName i)}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                )
                                              } {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_MOUNT_TARGET['>
                                              name: aDRIVE_MOUNT_TARGET
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'/mnt/'> 
                                                (braced_var_sub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name aDRIVE_UUID>
                                                  var_name: aDRIVE_UUID
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: {($ Id.VSub_DollarName i)}
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                          spids: [1088]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (DQ <'Creating UUID fstab entry: '> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                            var_name: aDRIVE_MOUNT_SOURCE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      }
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {
                                                        (DQ 
                                                          (braced_var_sub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                                            var_name: aDRIVE_MOUNT_SOURCE
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName i)}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        )
                                                      } {<Id.Lit_Equals '='>} 
                                                      {
                                                        (DQ 
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            child: 
                                                              (C {<findmnt>} {<'/'>} {<-o>} {<source>} 
                                                                {<-n>}
                                                              )
                                                            right: <Id.Eof_RParen _>
                                                          )
                                                        )
                                                      } {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      left: 
                                                        <Id.Lit_ArrayLhsOpen 'aDRIVE_MOUNT_TARGET['>
                                                      name: aDRIVE_MOUNT_TARGET
                                                      index: {($ Id.VSub_DollarName i)}
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <'/'>)}
                                                  spids: [1165]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {
                                                (DQ 
                                                  <
' - Drive is currently mounted, using existing mount location: '
                                                  > 
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                    var_name: aDRIVE_MOUNT_TARGET
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: {($ Id.VSub_DollarName i)}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                          spids: [1129 1161]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        {
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            child: 
                                                              (command.Pipeline
                                                                children: [
                                                                  (C {<df>} {<-P>})
                                                                  (C {<grep>} {<-ci>} {<-m1>} 
                                                                    {
                                                                      (DQ 
                                                                        (braced_var_sub
                                                                          left: 
                                                                            <Id.Left_DollarBrace 
'${'
                                                                            >
                                                                          token: 
                                                                            <Id.VSub_Name 
aDRIVE_MOUNT_SOURCE
                                                                            >
                                                                          var_name: 
aDRIVE_MOUNT_SOURCE
                                                                          bracket_op: 
                                                                            (bracket_op.ArrayIndex
                                                                              expr: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName i
                                                                                  )
                                                                                }
                                                                            )
                                                                          right: 
                                                                            <Id.Right_DollarBrace 
'}'
                                                                            >
                                                                        ) <'[[:space:]]'>
                                                                      )
                                                                    }
                                                                  )
                                                                ]
                                                                negated: F
                                                                stderr_indices: []
                                                              )
                                                            right: <Id.Eof_RParen _>
                                                          )
                                                        }
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {
                                                (DQ 
                                                  <
' - Drive is currently mounted, using existing mount location: '
                                                  > 
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                    var_name: aDRIVE_MOUNT_TARGET
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: {($ Id.VSub_DollarName i)}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      left: 
                                                        <Id.Lit_ArrayLhsOpen 'aDRIVE_MOUNT_TARGET['>
                                                      name: aDRIVE_MOUNT_TARGET
                                                      index: {($ Id.VSub_DollarName i)}
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<df>} {<-P>})
                                                              (C {<grep>} {<-m1>} 
                                                                {
                                                                  (DQ 
                                                                    (braced_var_sub
                                                                      left: 
                                                                        <Id.Left_DollarBrace '${'>
                                                                      token: 
                                                                        <Id.VSub_Name 
aDRIVE_MOUNT_SOURCE
                                                                        >
                                                                      var_name: aDRIVE_MOUNT_SOURCE
                                                                      bracket_op: 
                                                                        (bracket_op.ArrayIndex
                                                                          expr: 
                                                                            {
                                                                              ($ Id.VSub_DollarName i)
                                                                            }
                                                                        )
                                                                      right: 
                                                                        <Id.Right_DollarBrace '}'>
                                                                    ) <'[[:space:]]'>
                                                                  )
                                                                }
                                                              )
                                                              (C {<awk>} {(SQ <'{print $NF}'>)})
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                  spids: [1248]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [1196 1228]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (C {<sed>} {<-i>} 
                                      {
                                        (DQ <Id.Lit_BadBackslash '\\'> <'@^'> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                            var_name: aDRIVE_MOUNT_SOURCE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <'[[:space:]]@d'>
                                        )
                                      } {(DQ ($ Id.VSub_DollarName FP_TEMP_FSTAB))}
                                    )
                                    (C {<sed>} {<-i>} 
                                      {
                                        (DQ <Id.Lit_BadBackslash '\\'> <'@^UUID='> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_UUID>
                                            var_name: aDRIVE_UUID
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <'[[:space:]]@d'>
                                        )
                                      } {(DQ ($ Id.VSub_DollarName FP_TEMP_FSTAB))}
                                    )
                                    (C {<local>} 
                                      {<Id.Lit_VarLike 'mount_options='> 
                                        (SQ <'defaults,noatime,nofail'>)
                                      }
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<Id.Lit_LBracket '['>} 
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: 
                                                                  <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                                var_name: aDRIVE_MOUNT_TARGET
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: {($ Id.VSub_DollarName i)}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            )
                                                          } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(SQ <'/'>)} {<Id.Lit_RBracket ']'>}
                                                        )
                                                        (C {<Id.Lit_LBracket '['>} 
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: 
                                                                  <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                                var_name: aDRIVE_MOUNT_TARGET
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: {($ Id.VSub_DollarName i)}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            )
                                                          } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(SQ <'/boot'>)} {<Id.Lit_RBracket ']'>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'mount_options+='>
                                                      name: mount_options
                                                    )
                                                  op: assign_op.PlusEqual
                                                  rhs: {(SQ <',x-systemd.automount'>)}
                                                  spids: [1407]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [1357 1403]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.Simple
                                      words: [
                                        {<echo>}
                                        {<-e>}
                                        {
                                          (DQ <'UUID='> 
                                            (braced_var_sub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name aDRIVE_UUID>
                                              var_name: aDRIVE_UUID
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: {($ Id.VSub_DollarName i)}
                                                )
                                              right: <Id.Right_DollarBrace '}'>
                                            ) <'    '> 
                                            (braced_var_sub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                              var_name: aDRIVE_MOUNT_TARGET
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: {($ Id.VSub_DollarName i)}
                                                )
                                              right: <Id.Right_DollarBrace '}'>
                                            ) <'    auto    '> ($ Id.VSub_DollarName mount_options) <'    0 0'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {(DQ ($ Id.VSub_DollarName FP_TEMP_FSTAB))}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISAVAILABLE['>
                                              name: aDRIVE_ISAVAILABLE
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1450]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISUUIDMOUNT['>
                                              name: aDRIVE_ISUUIDMOUNT
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1458]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1063 1081]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (command.DParen
                                                  child: 
                                                    {
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_ISAVAILABLE>
                                                        var_name: aDRIVE_ISAVAILABLE
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                  redirects: []
                                                )
                                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                                  {
                                                    (DQ 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                        var_name: aDRIVE_MOUNT_TARGET
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    )
                                                  } {<Id.Lit_RBracket ']'>}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (DQ <'Creating mount folder for '> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                            var_name: aDRIVE_MOUNT_TARGET
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      }
                                    )
                                    (C {<mkdir>} {<-p>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                            var_name: aDRIVE_MOUNT_TARGET
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [1475 1510]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (C {<cp>} {(DQ ($ Id.VSub_DollarName FP_TEMP_FSTAB))} {<'/etc/fstab'>})
                    (C {<systemctl>} {<daemon-reload>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName FP_TEMP_FSTAB))})
                    (C {<mount>} {<-a>})
                    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Processing drive information, please wait...'>)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'FP_ROOTFS_SOURCE='>
                              name: FP_ROOTFS_SOURCE
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<df>} {<-P>})
                                      (C {<grep>} {<-m1>} {(SQ <'[[:space:]]/$'>)})
                                      (C {<awk>} {(SQ <'{print $1}'>)})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [1600]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {($ Id.VSub_DollarName MAX_DRIVES)}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_FSTYPE['>
                                      name: aDRIVE_FSTYPE
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'No filesystem'>)}
                                  spids: [1657]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_SIZE_TOTAL['>
                                      name: aDRIVE_SIZE_TOTAL
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <NULL>)}
                                  spids: [1667]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_SIZE_USED['>
                                      name: aDRIVE_SIZE_USED
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <NULL>)}
                                  spids: [1677]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_SIZE_FREE['>
                                      name: aDRIVE_SIZE_FREE
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <NULL>)}
                                  spids: [1687]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_SIZE_PERCENTUSED['>
                                      name: aDRIVE_SIZE_PERCENTUSED
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <NULL>)}
                                  spids: [1697]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISMOUNTED['>
                                      name: aDRIVE_ISMOUNTED
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [1708]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISFILESYSTEM['>
                                      name: aDRIVE_ISFILESYSTEM
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [1716]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISREADONLY_FSTAB['>
                                      name: aDRIVE_ISREADONLY_FSTAB
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [1724]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISREADONLY_CURRENTLY['>
                                      name: aDRIVE_ISREADONLY_CURRENTLY
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [1732]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cmd_scrape_string='>
                                      name: cmd_scrape_string
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (C {<blkid>} 
                                            {
                                              (DQ 
                                                (braced_var_sub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                                  var_name: aDRIVE_MOUNT_SOURCE
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: {($ Id.VSub_DollarName i)}
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            } {<-s>} {<TYPE>} {<-o>} {<value>}
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [1741]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName cmd_scrape_string))} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISFILESYSTEM['>
                                              name: aDRIVE_ISFILESYSTEM
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1781]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_FSTYPE['>
                                              name: aDRIVE_FSTYPE
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName cmd_scrape_string))}
                                          spids: [1789]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1764 1777]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cmd_scrape_string='>
                                      name: cmd_scrape_string
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<df>} {<-Ph>})
                                              (C {<grep>} {<-m1>} 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                      var_name: aDRIVE_MOUNT_TARGET
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: {($ Id.VSub_DollarName i)}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    ) <Id.Lit_Dollar '$'>
                                                  )
                                                }
                                              )
                                              (C {<awk>} {(SQ <'{print $2}'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [1808]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName cmd_scrape_string))} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_SIZE_TOTAL['>
                                              name: aDRIVE_SIZE_TOTAL
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName cmd_scrape_string))}
                                          spids: [1857]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISMOUNTED['>
                                              name: aDRIVE_ISMOUNTED
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1867]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1840 1853]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cmd_scrape_string='>
                                      name: cmd_scrape_string
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<df>} {<-Ph>})
                                              (C {<grep>} {<-m1>} 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                      var_name: aDRIVE_MOUNT_TARGET
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: {($ Id.VSub_DollarName i)}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    ) <Id.Lit_Dollar '$'>
                                                  )
                                                }
                                              )
                                              (C {<awk>} {(SQ <'{print $3}'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [1880]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName cmd_scrape_string))} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_SIZE_USED['>
                                              name: aDRIVE_SIZE_USED
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName cmd_scrape_string))}
                                          spids: [1929]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1912 1925]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cmd_scrape_string='>
                                      name: cmd_scrape_string
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<df>} {<-Ph>})
                                              (C {<grep>} {<-m1>} 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                      var_name: aDRIVE_MOUNT_TARGET
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: {($ Id.VSub_DollarName i)}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    ) <Id.Lit_Dollar '$'>
                                                  )
                                                }
                                              )
                                              (C {<awk>} {(SQ <'{print $4}'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [1944]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName cmd_scrape_string))} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_SIZE_FREE['>
                                              name: aDRIVE_SIZE_FREE
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName cmd_scrape_string))}
                                          spids: [1993]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1976 1989]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cmd_scrape_string='>
                                      name: cmd_scrape_string
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<df>} {<-Ph>})
                                              (C {<grep>} {<-m1>} 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                      var_name: aDRIVE_MOUNT_TARGET
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: {($ Id.VSub_DollarName i)}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    ) <Id.Lit_Dollar '$'>
                                                  )
                                                }
                                              )
                                              (C {<awk>} {(SQ <'{print $5}'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [2008]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName cmd_scrape_string))} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_SIZE_PERCENTUSED['>
                                              name: aDRIVE_SIZE_PERCENTUSED
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName cmd_scrape_string))}
                                          spids: [2057]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [2040 2053]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cmd_scrape_string='>
                                      name: cmd_scrape_string
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<grep>} {<-m1>} 
                                                {
                                                  (DQ <'[[:space:]]'> 
                                                    (braced_var_sub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                      var_name: aDRIVE_MOUNT_TARGET
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: {($ Id.VSub_DollarName i)}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    ) <'[[:space:]]'>
                                                  )
                                                } {<'/etc/fstab'>}
                                              )
                                              (C {<grep>} {<-m1>} {(SQ <',ro,'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [2072]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName cmd_scrape_string))} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'aDRIVE_ISREADONLY_FSTAB['>
                                              name: aDRIVE_ISREADONLY_FSTAB
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [2120]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [2103 2116]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cmd_scrape_string='>
                                      name: cmd_scrape_string
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<grep>} 
                                                {
                                                  (DQ <'[[:space:]]'> 
                                                    (braced_var_sub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                      var_name: aDRIVE_MOUNT_TARGET
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: {($ Id.VSub_DollarName i)}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    ) <'[[:space:]]'>
                                                  )
                                                } {<'/proc/mounts'>}
                                              )
                                              (C {<grep>} {<-m1>} {(SQ <'[[:space:]]ro,'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [2149]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName cmd_scrape_string))} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: 
                                                <Id.Lit_ArrayLhsOpen 'aDRIVE_ISREADONLY_CURRENTLY['>
                                              name: aDRIVE_ISREADONLY_CURRENTLY
                                              index: {($ Id.VSub_DollarName i)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [2195]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [2178 2191]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: {($ Id.VSub_DollarName ROOTFS_RW_CHECKED)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'ROOTFS_RW_CHECKED='>
                                      name: ROOTFS_RW_CHECKED
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [2232]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForExpr
                              init: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_Equal
                                  left: ($ Id.Lit_ArithVarLike i)
                                  right: {<Id.Lit_Digits 0>}
                                )
                              cond: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: ($ Id.Lit_ArithVarLike i)
                                  right: {($ Id.VSub_DollarName MAX_DRIVES)}
                                )
                              update: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: ($ Id.Lit_ArithVarLike i)
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<Id.Lit_LBracket '['>} 
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: 
                                                                  <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                                var_name: aDRIVE_MOUNT_TARGET
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: {($ Id.VSub_DollarName i)}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            {
                                                              (braced_var_sub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: 
                                                                  <Id.VSub_Name 
aDRIVE_ISREADONLY_CURRENTLY
                                                                  >
                                                                var_name: 
aDRIVE_ISREADONLY_CURRENTLY
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: {($ Id.VSub_DollarName i)}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: 
                                                        <Id.Lit_VarLike 'INDEX_DRIVE_BEING_EDITED='>
                                                      name: INDEX_DRIVE_BEING_EDITED
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName i)}
                                                  spids: [2301]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {
                                                (DQ <'RootFS is currently set to R/O. '> 
                                                  ($ Id.VSub_DollarName PROGRAM_NAME) <' requires R/W access.'>
                                                )
                                              }
                                            )
                                            (C {<whiptail>} {<--title>} {(DQ <'RootFS is R/O'>)} 
                                              {<--yesno>} 
                                              {
                                                (DQ 
                                                  <
'RootFS is currently set to \'Read Only\'. DietPi-Drive_Manager requires \'Read Write\' access to function.'
                                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                                  <
'nWould you like to renable \'Read Write\' access on RootFS?'
                                                  >
                                                )
                                              } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<--defaultno>} {<14>} {<75>}
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.DParen
                                                              child: 
                                                                (arith_expr.Binary
                                                                  op_id: Id.Arith_DEqual
                                                                  left: {($ Id.VSub_QMark '?')}
                                                                  right: {<Id.Lit_Digits 0>}
                                                                )
                                                              redirects: []
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<Toggle_WriteMode>})
                                                    (C {<G_DIETPI-NOTIFY>} {<0>} 
                                                      {(DQ <'RootFS R/W now enabled.'>)}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'init='>
                                                              name: init
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                          spids: [2384]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [2349 2363]
                                                )
                                              ]
                                              else_action: [
                                                (C {<'/DietPi/dietpi/dietpi-services'>} {<start>})
                                                (C {<G_DIETPI-NOTIFY>} {<0>} 
                                                  {(DQ <'RootFS currently set to R/O.'>)}
                                                )
                                                (C {<G_DIETPI-NOTIFY>} {<2>} 
                                                  {
                                                    (DQ 
                                                      <
'Please run \'dietpi-drive_manager\' again, if you want to re-enable RootFS R/W.'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {<Destroy>})
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Exit exit>
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [2260 2297]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                          spids: [2216 2228]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'FP_USERDATA_CURRENT='>
                              name: FP_USERDATA_CURRENT
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (C {<readlink>} {<-f>} {($ Id.VSub_DollarName G_FP_DIETPI_USERDATA)})
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [2445]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Return_Drive_Without_Partitions
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: {<'/dev/sd'> <Id.Lit_Other '*'>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Pipeline
                      children: [
                        (C {<echo>} {<-e>} {(DQ ($ Id.VSub_Number 1))})
                        (C {<sed>} {(SQ <'s/[0-9]$//g'>)})
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  ]
                  spids: [2475 2489]
                )
              ]
              else_action: [
                (command.Pipeline
                  children: [
                    (C {<echo>} {<-e>} {(DQ ($ Id.VSub_Number 1))})
                    (C {<sed>} {(SQ <'s/p[0-9]$//g'>)})
                  ]
                  negated: F
                  stderr_indices: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Run_Format
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'drivepath_no_partitions='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (C {<Return_Drive_Without_Partitions>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  right: <Id.Eof_RParen _>
                )
              }
            )
            (C {<umount>} 
              {
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                  var_name: aDRIVE_MOUNT_SOURCE
                  bracket_op: 
                    (bracket_op.ArrayIndex
                      expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: {($ Id.VSub_DollarName FORMAT_RECREATE_PARTITION_TABLE)}
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/zero'>} 
                      {<Id.Lit_VarLike 'of='> ($ Id.VSub_DollarName drivepath_no_partitions)} {<Id.Lit_VarLike 'bs='> <5M>} {<Id.Lit_VarLike 'count='> <1>}
                    )
                    (C {<local>} {<Id.Lit_VarLike 'parition_table_type='> (SQ <msdos>)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: {($ Id.VSub_DollarName FORMAT_GPT)}
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'parition_table_type='>
                                      name: parition_table_type
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <gpt>)}
                                  spids: [2643]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2629 2639]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {(DQ <'Partition table target: '> ($ Id.VSub_DollarName parition_table_type))}
                    )
                    (C {<parted>} {<-s>} {(DQ ($ Id.VSub_DollarName drivepath_no_partitions))} 
                      {<mklabel>} {(DQ ($ Id.VSub_DollarName parition_table_type))}
                    )
                    (C {<parted>} {<-a>} {<optimal>} {(DQ ($ Id.VSub_DollarName drivepath_no_partitions))} 
                      {<mkpart>} {<primary>} {<0> <Id.Lit_Other '%'>} {<100> <Id.Lit_Other '%'>}
                    )
                    (C {<sleep>} {<1>})
                    (C {<umount>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [2583 2593]
                )
              ]
              else_action: [
                (C {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/zero'>} 
                  {<Id.Lit_VarLike 'of='> 
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                      var_name: aDRIVE_MOUNT_SOURCE
                      bracket_op: 
                        (bracket_op.ArrayIndex
                          expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    )
                  } {<Id.Lit_VarLike 'bs='> <5M>} {<Id.Lit_VarLike 'count='> <1>}
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<mkfs.ext4>} {<-F>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                    (C {<resize2fs>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [2772 2786]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<mkfs.ntfs>} {<-f>} {<-I>} {<-F>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [2821 2835]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 2>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<mkfs.vfat>} {<-I>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [2864 2878]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 3>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<mkfs.hfsplus>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [2903 2917]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 4>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<mkfs.btrfs>} {<-f>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [2936 2950]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 5>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<mkfs.f2fs>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [2975 2989]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 6>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<mkfs.exfat>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [3008 3022]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<rm>} {<-R>} 
              {
                (DQ 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                    var_name: aDRIVE_MOUNT_TARGET
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                )
              }
            )
            (C {<sed>} {<-i>} 
              {
                (DQ <Id.Lit_BadBackslash '\\'> <'@'> 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                    var_name: aDRIVE_MOUNT_TARGET
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  ) <'[[:space:]]@d'>
                )
              } {<'/etc/fstab'>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'FORMAT_COMPLETED='>
                      name: FORMAT_COMPLETED
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3079]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'FORMAT_PREVIOUS_MOUNT_SOURCE='>
                      name: FORMAT_PREVIOUS_MOUNT_SOURCE
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                        var_name: aDRIVE_MOUNT_SOURCE
                        bracket_op: 
                          (bracket_op.ArrayIndex
                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [3083]
                )
              ]
              redirects: []
            )
            (C {<Init_Drives_and_Refresh>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: RootFS_Move
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<cp>} {<'/etc/fstab'>} {<'/etc/fstab.bak'>})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: ($ Id.Lit_ArithVarLike i)
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: ($ Id.Lit_ArithVarLike i)
                  right: {($ Id.VSub_DollarName MAX_DRIVES)}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                            var_name: aDRIVE_MOUNT_SOURCE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName FORMAT_PREVIOUS_MOUNT_SOURCE))} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'INDEX_DRIVE_BEING_EDITED='>
                                      name: INDEX_DRIVE_BEING_EDITED
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName i)}
                                  spids: [3176]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [3150 3172]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (C {<sed>} {<-i>} 
              {
                (DQ <Id.Lit_BadBackslash '\\'> <'@'> 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                    var_name: aDRIVE_MOUNT_TARGET
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  ) <'[[:space:]]@d'>
                )
              } {<'/etc/fstab'>}
            )
            (C {<sed>} {<-i>} 
              {
                (DQ <Id.Lit_BadBackslash '\\'> <'@[[:space:]]/[[:space:]]@c UUID='> 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name aDRIVE_UUID>
                    var_name: aDRIVE_UUID
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  ) <' / auto defaults,noatime 0 1'>
                )
              } {<'/etc/fstab'>}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<dpkg>} {<--get-selections>})
                                              (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^rsync[[[:space:]]'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {(DQ <'Installing Rsync, please wait...'> <Id.Lit_BadBackslash '\\'> <n>)}
                    )
                    (C {<sleep>} {<1>})
                    (C {<G_AGI>} {<rsync>})
                  ]
                  spids: [3244 3272]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<rsync>} {<-paxv>} {<--exclude>} {(SQ <'/lost+found'>)} {<'/'>} 
              {
                (DQ 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                    var_name: aDRIVE_MOUNT_TARGET
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                ) <'/'>
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: {($ Id.VSub_QMark '?')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<1>} 
                      {(SQ <'Rsync has failed, RootFS transfer has been aborted.'>)}
                    )
                    (C {<cp>} {<'/etc/fstab.bak'>} {<'/etc/fstab'>})
                    (C {<Destroy>})
                    (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
                  ]
                  spids: [3326 3340]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                  right: {<Id.Lit_Digits 10>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'rootfs_current='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<awk>} {(SQ <'{for(i=1;i<=NF;i++) {print $i} }'>)} 
                                  {<'/boot/cmdline.txt'>}
                                )
                                (C {<grep>} {<-m1>} {(SQ <'root='>)})
                              ]
                              negated: F
                              stderr_indices: []
                            )
                          right: <Id.Eof_RParen _>
                        )
                      }
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'s#'> ($ Id.VSub_DollarName rootfs_current) <'#root=PARTUUID='> 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name aDRIVE_PART_UUID>
                            var_name: aDRIVE_PART_UUID
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          ) <'#g'>
                        )
                      } {<'/boot/cmdline.txt'>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (C {<grep>} {<-ci>} {<-m1>} 
                                                    {(SQ <'[[:space:]]rootdelay='>)} {<'/boot/cmdline.txt'>}
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} {(DQ <'s#console=tty1#console=tty1 rootdelay=10#g'>)} 
                              {<'/boot/cmdline.txt'>}
                            )
                          ]
                          spids: [3451 3475]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'rootfstype_current='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<awk>} {(SQ <'{for(i=1;i<=NF;i++) {print $i} }'>)} 
                                  {<'/boot/cmdline.txt'>}
                                )
                                (C {<grep>} {<-m1>} {(SQ <'rootfstype='>)})
                              ]
                              negated: F
                              stderr_indices: []
                            )
                          right: <Id.Eof_RParen _>
                        )
                      }
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'s#'> ($ Id.VSub_DollarName rootfstype_current) <'#rootfstype='> 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name aDRIVE_FSTYPE>
                            var_name: aDRIVE_FSTYPE
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          ) <'#g'>
                        )
                      } {<'/boot/cmdline.txt'>}
                    )
                  ]
                  spids: [3380 3394]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                          right: {<Id.Lit_Digits 10>}
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                          right: {<Id.Lit_Digits 11>}
                                        )
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                      right: {<Id.Lit_Digits 12>}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'rootfs_current='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<awk>} {(SQ <'{for(i=1;i<=NF;i++) {print $i} }'>)} 
                                  {<'/DietPi/boot.ini'>}
                                )
                                (C {<grep>} {<-m1>} {(SQ <'root='>)})
                                (C {<sed>} {(SQ <'s/\\"//'>)})
                              ]
                              negated: F
                              stderr_indices: []
                            )
                          right: <Id.Eof_RParen _>
                        )
                      }
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'s#'> ($ Id.VSub_DollarName rootfs_current) <'#root=UUID='> 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name aDRIVE_UUID>
                            var_name: aDRIVE_UUID
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          ) <'#g'>
                        )
                      } {<'/DietPi/boot.ini'>}
                    )
                  ]
                  spids: [3548 3578]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<systemctl>} {<daemon-reload>})
            (C {<whiptail>} {<--title>} {(DQ <'RootFS transfer completed'>)} {<--msgbox>} 
              {(DQ <'RootFS transfer completed. Press enter to reboot system.'>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<8>} {<60>}
            )
            (C {<reboot>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: RootFS_Low_Free_Space_Check
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'free_space_limit='> <500>})
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {(SQ <'Checking available free space on RootFS, please wait...'>)}
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: ($ Id.Lit_ArithVarLike i)
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: ($ Id.Lit_ArithVarLike i)
                  right: {($ Id.VSub_DollarName MAX_DRIVES)}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ <'/'>)} {<Id.Lit_Equals '='>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                            var_name: aDRIVE_MOUNT_TARGET
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      } {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'INDEX_DRIVE_BEING_EDITED='>
                                      name: INDEX_DRIVE_BEING_EDITED
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName i)}
                                  spids: [3764]
                                )
                              ]
                              redirects: []
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'free_space_current='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<df>} {<-B>} {<M>})
                                        (C {<grep>} {<-m1>} 
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                var_name: aDRIVE_MOUNT_TARGET
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {($ Id.VSub_DollarName i)}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <Id.Lit_Dollar '$'>
                                            )
                                          }
                                        )
                                        (C {<awk>} {(SQ <'{print $4}'>)})
                                        (C {<sed>} {(SQ <'s/[^0-9]//g'>)})
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Less
                                                  left: {($ Id.VSub_DollarName free_space_current)}
                                                  right: {($ Id.VSub_DollarName free_space_limit)}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<local>} 
                                      {<Id.Lit_VarLike 'message='> 
                                        (DQ <'Error:'> <Id.Lit_BadBackslash '\\'> <n> 
                                          <Id.Lit_BadBackslash '\\'> <'nAvailable free space on RootFS is low ('> ($ Id.VSub_DollarName free_space_current) 
                                          <
' MB). To prevent potential issues due to running out of free space, this script will now be terminated.'
                                          > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nPlease free up at least '> 
                                          ($ Id.VSub_DollarName free_space_limit) <' MB of free space, then try again.'>
                                        )
                                      }
                                    )
                                    (C {<whiptail>} {<--title>} {(DQ <'Insufficient free space'>)} 
                                      {<--msgbox>} {(DQ ($ Id.VSub_DollarName message))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<14>} 
                                      {<70>}
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<1>} 
                                      {
                                        (DQ <'Insufficient free space on RootFS. '> 
                                          ($ Id.VSub_DollarName free_space_current) <' MB available, '> ($ Id.VSub_DollarName free_space_limit) <' MB required'>
                                        )
                                      }
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<1>} {(SQ <Aborting>)})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'EXIT_CODE='>
                                              name: EXIT_CODE
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [3910]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [3818 3832]
                                )
                              ]
                              else_action: [
                                (C {<G_DIETPI-NOTIFY>} {<0>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName free_space_current) <' MB available, '> 
                                      ($ Id.VSub_DollarName free_space_limit) <' MB required'>
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [3738 3760]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: RootFS_RW_Check
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Checking RootFS R/W access. Please wait...'>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (C {<mount>})
                                          (C {<grep>} {<-m1>} {(SQ <'[[:space:]]/[[:space:]]'>)})
                                          (C {<grep>} {<-ci>} {<-m1>} {(SQ <'(ro,'>)})
                                        ]
                                        negated: F
                                        stderr_indices: []
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<1>} {(DQ <'RootFS is currently set to R/O.'>)})
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (DQ 
                          <
'DietPi requires RootFS R/W access. Please run \'dietpi-drive_manager\' to re-enable.'
                          > <Id.Lit_BadBackslash '\\'> <n>
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_CODE='> name:EXIT_CODE)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [4063]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4005 4039]
                )
              ]
              else_action: [
                (C {<G_DIETPI-NOTIFY>} {<0>} {(DQ <'RootFS R/W access.'> <Id.Lit_BadBackslash '\\'> <n>)})
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Toggle_WriteMode
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'line_number='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<grep>} {<-m1>} {<-n>} 
                          {
                            (DQ <'[[:space:]]'> 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                var_name: aDRIVE_MOUNT_TARGET
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              ) <'[[:space:]]'>
                            )
                          } {<'/etc/fstab'>}
                        )
                        (C {<cut>} {<-f1>} {<-d> <Id.Lit_Colon ':'>})
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  right: <Id.Eof_RParen _>
                )
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'exit_status='> <0>})
            (C {<local>} {<Id.Lit_VarLike 'message_result='> <0>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_ISREADONLY_FSTAB>
                                        var_name: aDRIVE_ISREADONLY_FSTAB
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  right: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_ISREADONLY_CURRENTLY>
                                        var_name: aDRIVE_ISREADONLY_CURRENTLY
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'message_result='>
                              name: message_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [
                                      {<mount>}
                                      {<-v>}
                                      {<-o>}
                                      {<rw> <Id.Lit_Comma ','> <remount>}
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                            var_name: aDRIVE_MOUNT_SOURCE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      }
                                    ]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_GreatAnd '2>&'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<1>}
                                      )
                                    ]
                                    more_env: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [4172]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'exit_status='>
                              name: exit_status
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [4198]
                        )
                      ]
                      redirects: []
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ (${ Id.VSub_Name line_number) <'s/[[:space:]]defaults,ro,/ defaults,/'>)} {<'/etc/fstab'>}
                    )
                  ]
                  spids: [4144 4168]
                )
              ]
              else_action: [
                (C {<sed>} {<-i>} 
                  {(DQ (${ Id.VSub_Name line_number) <'s/[[:space:]]defaults,/ defaults,ro,/'>)} {<'/etc/fstab'>}
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'message_result='>
                          name: message_result
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                words: [
                                  {<mount>}
                                  {<-v>}
                                  {<-o>}
                                  {<ro> <Id.Lit_Comma ','> <remount>}
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                        var_name: aDRIVE_MOUNT_SOURCE
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    )
                                  }
                                ]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_GreatAnd '2>&'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<1>}
                                  )
                                ]
                                more_env: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      spids: [4241]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_status='> name:exit_status)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '?')}
                      spids: [4267]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (C {<systemctl>} {<daemon-reload>})
            (C {<mount>} {<-a>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: {($ Id.VSub_DollarName exit_status)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<whiptail>} {<--title>} {(DQ <'Failed to apply now'>)} {<--msgbox>} 
                      {
                        (DQ <'Due to:'> <Id.Lit_BadBackslash '\\'> <'n - '> 
                          ($ Id.VSub_DollarName message_result) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                          <'nIf you have set to read only, this will be active on next reboot.'>
                        )
                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<14>} {<70>}
                    )
                  ]
                  spids: [4287 4301]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4346]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MENU_LASTITEM='> name:MENU_LASTITEM)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [4350]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: Menu_Main_Drive_Manager
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'whiptail_menu_array='> 
                (sh_array_literal left:<Id.Op_LParen _> words:[])
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'drive_available='> <0>})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: ($ Id.Lit_ArithVarLike i)
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: ($ Id.Lit_ArithVarLike i)
                  right: {($ Id.VSub_DollarName MAX_DRIVES)}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'drive_available='>
                              name: drive_available
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [4408]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        {
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_ISAVAILABLE>
                                            var_name: aDRIVE_ISAVAILABLE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<echo>} {<-e>} 
                                                            {
                                                              (DQ 
                                                                (braced_var_sub
                                                                  left: <Id.Left_DollarBrace '${'>
                                                                  token: 
                                                                    <Id.VSub_Name 
aDRIVE_MOUNT_SOURCE
                                                                    >
                                                                  var_name: aDRIVE_MOUNT_SOURCE
                                                                  bracket_op: 
                                                                    (bracket_op.ArrayIndex
                                                                      expr: {($ Id.VSub_DollarName i)}
                                                                    )
                                                                  right: <Id.Right_DollarBrace '}'>
                                                                )
                                                              )
                                                            }
                                                          )
                                                          (C {<grep>} {<-ci>} {<-m1>} {(SQ <'1$'>)})
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                    right: <Id.Eof_RParen _>
                                                  )
                                                }
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<local>} 
                                      {<Id.Lit_VarLike 'drivepath_no_partitions='> 
                                        (command_sub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (C {<Return_Drive_Without_Partitions>} 
                                              {
                                                (braced_var_sub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                                  var_name: aDRIVE_MOUNT_SOURCE
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: {($ Id.VSub_DollarName i)}
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              }
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                              name: whiptail_menu_array
                                            )
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (sh_array_literal
                                                left: <Id.Op_LParen _>
                                                words: [
                                                  {(SQ )}
                                                  {
                                                    (DQ <'─('> 
                                                      ($ Id.VSub_DollarName drivepath_no_partitions) 
                                                      <
')────────────────────────────────────────'
                                                      >
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [4490]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [4436 4471]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                {
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_ISMOUNTED>
                                                    var_name: aDRIVE_ISMOUNTED
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: {($ Id.VSub_DollarName i)}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                              name: whiptail_menu_array
                                            )
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (sh_array_literal
                                                left: <Id.Op_LParen _>
                                                words: [
                                                  {
                                                    (DQ 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                        var_name: aDRIVE_MOUNT_TARGET
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    )
                                                  }
                                                  {
                                                    (DQ <': '> 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                                        var_name: aDRIVE_MOUNT_SOURCE
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      ) <' | '> 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_FSTYPE>
                                                        var_name: aDRIVE_FSTYPE
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      ) <' | Size: '> 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_SIZE_TOTAL>
                                                        var_name: aDRIVE_SIZE_TOTAL
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      ) <' | Used: '> 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_SIZE_USED>
                                                        var_name: aDRIVE_SIZE_USED
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      ) <' ('> 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_SIZE_PERCENTUSED>
                                                        var_name: aDRIVE_SIZE_PERCENTUSED
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      ) <')'>
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [4535]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [4512 4527]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Unary
                                                      op_id: Id.Arith_Bang
                                                      child: 
                                                        {
                                                          (braced_var_sub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name aDRIVE_ISFILESYSTEM>
                                                            var_name: aDRIVE_ISFILESYSTEM
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName i)}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                                  name: whiptail_menu_array
                                                )
                                              op: assign_op.PlusEqual
                                              rhs: 
                                                {
                                                  (sh_array_literal
                                                    left: <Id.Op_LParen _>
                                                    words: [
                                                      {
                                                        (DQ 
                                                          (braced_var_sub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                            var_name: aDRIVE_MOUNT_TARGET
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName i)}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        )
                                                      }
                                                      {
                                                        (DQ <': '> 
                                                          (braced_var_sub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                                            var_name: aDRIVE_MOUNT_SOURCE
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName i)}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          ) <' | No filesystem / format required'>
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [4621]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [4600 4617]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                              name: whiptail_menu_array
                                            )
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (sh_array_literal
                                                left: <Id.Op_LParen _>
                                                words: [
                                                  {
                                                    (DQ 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                        var_name: aDRIVE_MOUNT_TARGET
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    )
                                                  }
                                                  {
                                                    (DQ <': '> 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                                        var_name: aDRIVE_MOUNT_SOURCE
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      ) <' | '> 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_FSTYPE>
                                                        var_name: aDRIVE_FSTYPE
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      ) <' | Not mounted'>
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [4654]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [4413 4428]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                      name: whiptail_menu_array
                    )
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ )}
                          {
                            (DQ 
                              <
'───────────────────────────────────────────────────────'
                              >
                            )
                          }
                        ]
                      )
                    }
                  spids: [4702]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: {($ Id.VSub_DollarName drive_available)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                              name: whiptail_menu_array
                            )
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {(DQ <Refresh>)}
                                  {(DQ <': No drives found. Insert a drive and select this option'>)}
                                ]
                              )
                            }
                          spids: [4730]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4714 4726]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                          name: whiptail_menu_array
                        )
                      op: assign_op.PlusEqual
                      rhs: 
                        {
                          (sh_array_literal
                            left: <Id.Op_LParen _>
                            words: [{(DQ <Refresh>)} {(DQ <': Scan for recently added/removed drives'>)}]
                          )
                        }
                      spids: [4747]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'userdata_location_text='> 
                (DQ <'RootFS ('> ($ Id.VSub_DollarName FP_USERDATA_CURRENT) <')'>)
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FP_USERDATA_CURRENT))} 
                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName G_FP_DIETPI_USERDATA))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'userdata_location_text='>
                              name: userdata_location_text
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'USB ('> ($ Id.VSub_DollarName FP_USERDATA_CURRENT) <')'>)}
                          spids: [4801]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4779 4797]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))}
                  spids: [4814]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                              {<--menu>}
                              {
                                (DQ <'Please select a drive to see available options.'> 
                                  <Id.Lit_BadBackslash '\\'> <'n - User data location: '> ($ Id.VSub_DollarName userdata_location_text)
                                )
                              }
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName MENU_LASTITEM))}
                              {<--cancel-button>}
                              {(DQ <Exit>)}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))}
                              {<20>}
                              {<110>}
                              {<11>}
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    var_name: whiptail_menu_array
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                )
                              }
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [4820]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [4884]
                )
              ]
              redirects: []
            )
            (C {<unset>} {<whiptail_menu_array>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'MENU_LASTITEM='>
                              name: MENU_LASTITEM
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName OPTION))}
                          spids: [4913]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <Refresh>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Init_Drives_and_Refresh>})]
                          spids: [4924 4941]
                        )
                      ]
                      else_action: [
                        (C {<Init_Drives_and_Refresh>})
                        (command.ForExpr
                          init: 
                            (arith_expr.BinaryAssign
                              op_id: Id.Arith_Equal
                              left: ($ Id.Lit_ArithVarLike i)
                              right: {<Id.Lit_Digits 0>}
                            )
                          cond: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Less
                              left: ($ Id.Lit_ArithVarLike i)
                              right: {($ Id.VSub_DollarName MAX_DRIVES)}
                            )
                          update: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: ($ Id.Lit_ArithVarLike i)
                            )
                          body: 
                            (command.DoGroup
                              children: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<Id.Lit_LBracket '['>} 
                                                  {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} 
                                                  {
                                                    (DQ 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                        var_name: aDRIVE_MOUNT_TARGET
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName i)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    )
                                                  } {<Id.Lit_RBracket ']'>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DParen
                                                          child: 
                                                            {
                                                              (braced_var_sub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: 
                                                                  <Id.VSub_Name aDRIVE_ISAVAILABLE>
                                                                var_name: aDRIVE_ISAVAILABLE
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: {($ Id.VSub_DollarName i)}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                          redirects: []
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 
'INDEX_DRIVE_BEING_EDITED='
                                                            >
                                                          name: INDEX_DRIVE_BEING_EDITED
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName i)}
                                                      spids: [5037]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'TARGETMENUID='>
                                                          name: TARGETMENUID
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                      spids: [5041]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Break break>
                                                )
                                              ]
                                              spids: [5018 5033]
                                            )
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<Id.Lit_LBracket '['>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_RBracket ']'>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (C {<whiptail>} {<--title>} {(DQ <'Info: No drive'>)} 
                                                  {<--msgbox>} {(DQ <'This drive is no longer available'>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} 
                                                  {<8>} {<60>}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Break break>
                                                )
                                              ]
                                              spids: [5049 5062]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                      spids: [4988 5010]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                              ]
                            )
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4895 4909]
                )
              ]
              else_action: [(C {<Menu_Exit>})]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Menu_Drive_Manager_Edit_Drive
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5142]
                )
              ]
              redirects: []
            )
            (C {<local>} {<Id.Lit_VarLike 'partition_contains_userdata='> <0>})
            (C {<local>} 
              {<Id.Lit_VarLike 'whiptail_desc='> (sh_array_literal left:<Id.Op_LParen _> words:[])}
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'whiptail_menu_array='> 
                (sh_array_literal left:<Id.Op_LParen _> words:[])
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'whiptail_desc+='> name:whiptail_desc)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (DQ <'Mount target: '> 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                          var_name: aDRIVE_MOUNT_TARGET
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        ) <Id.Lit_BadBackslash '\\'> <n>
                      )
                    }
                  spids: [5173]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'whiptail_desc+='> name:whiptail_desc)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (DQ <'Mount source: '> 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                          var_name: aDRIVE_MOUNT_SOURCE
                          bracket_op: 
                            (bracket_op.ArrayIndex
                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        ) <Id.Lit_BadBackslash '\\'> <n>
                      )
                    }
                  spids: [5187]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_ISFILESYSTEM>
                                        var_name: aDRIVE_ISFILESYSTEM
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'whiptail_desc+='>
                              name: whiptail_desc
                            )
                          op: assign_op.PlusEqual
                          rhs: {(DQ <'Status:       Drive has no filesystem and must be formatted'>)}
                          spids: [5227]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5206 5223]
                )
              ]
              else_action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_ISUUIDMOUNT>
                                        var_name: aDRIVE_ISUUIDMOUNT
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'whiptail_desc+='>
                                  name: whiptail_desc
                                )
                              op: assign_op.PlusEqual
                              rhs: 
                                {
                                  (DQ 
                                    <
'Mount method: UUID (Permanent: always mount to \'Mount Target\')'
                                    > <Id.Lit_BadBackslash '\\'> <n>
                                  )
                                }
                              spids: [5257]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [5238 5253]
                    )
                  ]
                  else_action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'whiptail_desc+='>
                              name: whiptail_desc
                            )
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (DQ 
                                <
'Mount method: /dev/sd (Warning: mount location not permanent, use UUID)'
                                > <Id.Lit_BadBackslash '\\'> <n>
                              )
                            }
                          spids: [5270]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'whiptail_desc+='>
                          name: whiptail_desc
                        )
                      op: assign_op.PlusEqual
                      rhs: 
                        {
                          (DQ <'Filesystem:   '> 
                            (braced_var_sub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name aDRIVE_FSTYPE>
                              var_name: aDRIVE_FSTYPE
                              bracket_op: 
                                (bracket_op.ArrayIndex
                                  expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                )
                              right: <Id.Right_DollarBrace '}'>
                            ) <Id.Lit_BadBackslash '\\'> <n>
                          )
                        }
                      spids: [5283]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'whiptail_desc+='>
                          name: whiptail_desc
                        )
                      op: assign_op.PlusEqual
                      rhs: 
                        {
                          (DQ <'UUID:         '> 
                            (braced_var_sub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name aDRIVE_UUID>
                              var_name: aDRIVE_UUID
                              bracket_op: 
                                (bracket_op.ArrayIndex
                                  expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                )
                              right: <Id.Right_DollarBrace '}'>
                            ) <Id.Lit_BadBackslash '\\'> <n>
                          )
                        }
                      spids: [5297]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_ISMOUNTED>
                                        var_name: aDRIVE_ISMOUNTED
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'whiptail_desc+='>
                                  name: whiptail_desc
                                )
                              op: assign_op.PlusEqual
                              rhs: 
                                {
                                  (DQ <'Capacity:     '> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name aDRIVE_SIZE_TOTAL>
                                      var_name: aDRIVE_SIZE_TOTAL
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <b> <Id.Lit_BadBackslash '\\'> <n>
                                  )
                                }
                              spids: [5331]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'whiptail_desc+='>
                                  name: whiptail_desc
                                )
                              op: assign_op.PlusEqual
                              rhs: 
                                {
                                  (DQ <'Used:         '> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name aDRIVE_SIZE_USED>
                                      var_name: aDRIVE_SIZE_USED
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <'b ('> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name aDRIVE_SIZE_PERCENTUSED>
                                      var_name: aDRIVE_SIZE_PERCENTUSED
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <')'> <Id.Lit_BadBackslash '\\'> <n>
                                  )
                                }
                              spids: [5346]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'whiptail_desc+='>
                                  name: whiptail_desc
                                )
                              op: assign_op.PlusEqual
                              rhs: {(DQ <'Status:       Drive is online and ready for use'>)}
                              spids: [5368]
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<Id.Lit_LBracket '['>} 
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                    var_name: aDRIVE_MOUNT_TARGET
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          {
                                                            ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                            )
                                                          }
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                )
                                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                                            )
                                            (C {<Id.Lit_LBracket '['>} 
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                    var_name: aDRIVE_MOUNT_TARGET
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          {
                                                            ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                            )
                                                          }
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                )
                                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'/boot'>)} {<Id.Lit_RBracket ']'>}
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                          name: whiptail_menu_array
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (sh_array_literal
                                            left: <Id.Op_LParen _>
                                            words: [
                                              {(DQ <Unmount>)}
                                              {(DQ <': Allows you to physically remove the drive'>)}
                                            ]
                                          )
                                        }
                                      spids: [5428]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [5379 5424]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (command.Subshell
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {
                                                        (DQ 
                                                          (braced_var_sub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                            var_name: aDRIVE_MOUNT_TARGET
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  {
                                                                    ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                                    )
                                                                  }
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        )
                                                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                                                    )
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: 
                                                            {
                                                              ($ Id.VSub_DollarName 
FP_USERDATA_CURRENT
                                                              )
                                                            }
                                                          right: 
                                                            {
                                                              (DQ 
                                                                (braced_var_sub
                                                                  left: <Id.Left_DollarBrace '${'>
                                                                  token: 
                                                                    <Id.VSub_Name 
aDRIVE_MOUNT_TARGET
                                                                    >
                                                                  var_name: aDRIVE_MOUNT_TARGET
                                                                  bracket_op: 
                                                                    (bracket_op.ArrayIndex
                                                                      expr: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                                          )
                                                                        }
                                                                    )
                                                                  right: <Id.Right_DollarBrace '}'>
                                                                )
                                                              ) <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (command.Subshell
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {
                                                        (DQ 
                                                          (braced_var_sub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                            var_name: aDRIVE_MOUNT_TARGET
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  {
                                                                    ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                                    )
                                                                  }
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        )
                                                      } {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                                                    )
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName FP_USERDATA_CURRENT)
                                                        )
                                                      } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName G_FP_DIETPI_USERDATA))} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                          name: whiptail_menu_array
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (sh_array_literal
                                            left: <Id.Op_LParen _>
                                            words: [
                                              {(DQ <'User data'>)}
                                              {
                                                (DQ 
                                                  <
': Your user data is currently located on this drive'
                                                  >
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [5544]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'partition_contains_userdata='>
                                          name: partition_contains_userdata
                                        )
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [5556]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [5445 5537]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ <'Move User data'>)}
                                          {(DQ <': Move your DietPi user data to this drive'>)}
                                        ]
                                      )
                                    }
                                  spids: [5565]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            {
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name aDRIVE_ISUUIDMOUNT>
                                                var_name: aDRIVE_ISUUIDMOUNT
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      {
                                                        ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                        )
                                                      }
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                          name: whiptail_menu_array
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (sh_array_literal
                                            left: <Id.Op_LParen _>
                                            words: [
                                              {(DQ <'Mount Method'>)}
                                              {(DQ <': Change from UUID to /dev/sd'>)}
                                            ]
                                          )
                                        }
                                      spids: [5601]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [5582 5597]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ <'Mount Method'>)}
                                          {(DQ <': Change from /dev/sd to UUID'>)}
                                        ]
                                      )
                                    }
                                  spids: [5618]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_ISREADONLY_FSTAB>
                                                    var_name: aDRIVE_ISREADONLY_FSTAB
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          {
                                                            ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                            )
                                                          }
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                              right: 
                                                {
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_ISREADONLY_CURRENTLY>
                                                    var_name: aDRIVE_ISREADONLY_CURRENTLY
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          {
                                                            ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                            )
                                                          }
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                          name: whiptail_menu_array
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (sh_array_literal
                                            left: <Id.Op_LParen _>
                                            words: [
                                              {(DQ <'Read Only'>)}
                                              {(DQ <': Enabled | Select to allow R/W'>)}
                                            ]
                                          )
                                        }
                                      spids: [5667]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whiptail_desc+='>
                                          name: whiptail_desc
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'nRead only:    Enabled'>)}
                                      spids: [5679]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [5639 5663]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ <'Read Only'>)}
                                          {(DQ <': Disabled | Select to set read only'>)}
                                        ]
                                      )
                                    }
                                  spids: [5691]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_desc+='>
                                      name: whiptail_desc
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'nRead only:    Disabled'>)}
                                  spids: [5703]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [5312 5327]
                    )
                  ]
                  else_action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'whiptail_desc+='>
                              name: whiptail_desc
                            )
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (DQ <'Status:       Drive is not mounted and can be unplugged'> 
                                <Id.Lit_BadBackslash '\\'> <n>
                              )
                            }
                          spids: [5720]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                              name: whiptail_menu_array
                            )
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {(DQ <Mount>)}
                                  {
                                    (DQ <': Mount the drive to '> 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                        var_name: aDRIVE_MOUNT_TARGET
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [5729]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<Id.Lit_LBracket '['>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                        var_name: aDRIVE_MOUNT_TARGET
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    )
                                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                                )
                                (C {<Id.Lit_LBracket '['>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                        var_name: aDRIVE_MOUNT_TARGET
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    )
                                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'/boot'>)} {<Id.Lit_RBracket ']'>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                              name: whiptail_menu_array
                            )
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {(DQ <Format>)}
                                  {(DQ <': Wipe all data and format drive with ext4'>)}
                                ]
                              )
                            }
                          spids: [5809]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5760 5805]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: 
                                        {
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                            var_name: aDRIVE_MOUNT_SOURCE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                      right: {($ Id.VSub_DollarName FP_ROOTFS_SOURCE)}
                                    )
                                  redirects: []
                                )
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Less
                                                  left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                                  right: {<Id.Lit_Digits 10>}
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                                  right: {<Id.Lit_Digits 10>}
                                                )
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                              right: {<Id.Lit_Digits 11>}
                                            )
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                          right: {<Id.Lit_Digits 12>}
                                        )
                                    )
                                  redirects: []
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                              name: whiptail_menu_array
                            )
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {(DQ <'Transfer RootFS'>)}
                                  {(DQ <': Transfer RootFS to this drive'>)}
                                ]
                              )
                            }
                          spids: [5890]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5830 5886]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))}
                  spids: [5907]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                              {<--menu>}
                              {(DQ ($ Id.VSub_DollarName whiptail_desc))}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName MENU_LASTITEM))}
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))}
                              {<22>}
                              {<90>}
                              {<6>}
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    var_name: whiptail_menu_array
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                )
                              }
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [5913]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [5974]
                )
              ]
              redirects: []
            )
            (C {<unset>} {<whiptail_desc>})
            (C {<unset>} {<whiptail_menu_array>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'MENU_LASTITEM='>
                              name: MENU_LASTITEM
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName OPTION))}
                          spids: [6008]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <Mount>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} {<-e>} 
                              {
                                (DQ <Id.Lit_BadBackslash '\\'> <'@'> 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                    var_name: aDRIVE_MOUNT_TARGET
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <'[[:space:]]@s@^#@@'>
                                )
                              } {<'/etc/fstab'>}
                            )
                            (C {<systemctl>} {<daemon-reload>})
                            (C {<mount>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                    var_name: aDRIVE_MOUNT_TARGET
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                )
                              }
                            )
                          ]
                          spids: [6015 6032]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <Unmount>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                {($ Id.VSub_DollarName partition_contains_userdata)}
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'Info: dismount prevented'>)} 
                                      {<--msgbox>} 
                                      {
                                        (DQ 
                                          <
'Your DietPi user data is currently located on this drive:'
                                          > <Id.Lit_BadBackslash '\\'> <'n - '> ($ Id.VSub_DollarName FP_USERDATA_CURRENT) 
                                          <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDismounting the drive at this time is not possible.'> 
                                          <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nPlease move your user data elsewhere, before trying again:'> 
                                          <Id.Lit_BadBackslash '\\'> <'nhttp://dietpi.com/phpbb/viewtopic.php?f=8&t=478'>
                                        )
                                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<13>} {<80>}
                                    )
                                  ]
                                  spids: [6105 6115]
                                )
                              ]
                              else_action: [
                                (C {<umount>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                        var_name: aDRIVE_MOUNT_TARGET
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    )
                                  }
                                )
                                (C {<sed>} {<-i>} {<-e>} 
                                  {
                                    (DQ <Id.Lit_BadBackslash '\\'> <'@'> 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                        var_name: aDRIVE_MOUNT_TARGET
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <'[[:space:]]@s@^#*@#@'>
                                    )
                                  } {<'/etc/fstab'>}
                                )
                                (C {<systemctl>} {<daemon-reload>})
                              ]
                              redirects: []
                            )
                          ]
                          spids: [6080 6097]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <'Mount Method'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} 
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_UUID>
                                                    var_name: aDRIVE_UUID
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          {
                                                            ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                            )
                                                          }
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                )
                                              } {<Id.Lit_Equals '='>} {(DQ <NULL>)} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'Error: No UUID'>)} {<--msgbox>} 
                                      {
                                        (DQ 
                                          <
'This drive does not have a UUID assigned. Unable to proceed.'
                                          >
                                        )
                                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<8>} {<60>}
                                    )
                                  ]
                                  spids: [6235 6257]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    {
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name aDRIVE_ISUUIDMOUNT>
                                                        var_name: aDRIVE_ISUUIDMOUNT
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              {
                                                                ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                                )
                                                              }
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<sed>} {<-i>} 
                                          {
                                            (DQ <'s@^UUID='> 
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name aDRIVE_UUID>
                                                var_name: aDRIVE_UUID
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      {
                                                        ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                        )
                                                      }
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <'@'> 
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                                var_name: aDRIVE_MOUNT_SOURCE
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      {
                                                        ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                        )
                                                      }
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <'@g'>
                                            )
                                          } {<'/etc/fstab'>}
                                        )
                                      ]
                                      spids: [6291 6306]
                                    )
                                  ]
                                  else_action: [
                                    (C {<sed>} {<-i>} 
                                      {
                                        (DQ <'s@^'> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                            var_name: aDRIVE_MOUNT_SOURCE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <'@UUID='> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name aDRIVE_UUID>
                                            var_name: aDRIVE_UUID
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <'@g'>
                                        )
                                      } {<'/etc/fstab'>}
                                    )
                                  ]
                                  redirects: []
                                )
                                (C {<systemctl>} {<daemon-reload>})
                              ]
                              redirects: []
                            )
                          ]
                          spids: [6210 6227]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <'Move User data'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} 
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_FSTYPE>
                                                    var_name: aDRIVE_FSTYPE
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          {
                                                            ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                            )
                                                          }
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                )
                                              } {<Id.Lit_Equals '='>} {(DQ <vfat>)} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'Warning: FAT32'>)} {<--msgbox>} 
                                      {
                                        (DQ <'Warning:'> <Id.Lit_BadBackslash '\\'> <n> 
                                          <Id.Lit_BadBackslash '\\'> 
                                          <
'nFAT32 does not support file and folder permissions. Some of the programs which use the DietPi user directory (eg: Owncloud data storage), rely on permissions to function correctly.'
                                          > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                          <
'nIf you continue with the DietPi user data move to this FAT32 drive, programs may have issues reading and writing data.'
                                          >
                                        )
                                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<14>} {<70>}
                                    )
                                  ]
                                  spids: [6405 6427]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'target_userdata_dir='> 
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                    var_name: aDRIVE_MOUNT_TARGET
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} 
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name aDRIVE_MOUNT_TARGET>
                                                    var_name: aDRIVE_MOUNT_TARGET
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          {
                                                            ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                            )
                                                          }
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                )
                                              } {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'target_userdata_dir='>
                                              name: target_userdata_dir
                                            )
                                          op: assign_op.Equal
                                          rhs: {(SQ <'/mnt'>)}
                                          spids: [6512]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [6486 6508]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'target_userdata_dir+='>
                                      name: target_userdata_dir
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <'/dietpi_userdata'>)}
                                  spids: [6523]
                                )
                              ]
                              redirects: []
                            )
                            (C {<whiptail>} {<--title>} {(DQ <'Move user data'>)} {<--yesno>} 
                              {
                                (DQ <'Your user data will be moved:'> <Id.Lit_BadBackslash '\\'> 
                                  <'n - From: '> ($ Id.VSub_DollarName FP_USERDATA_CURRENT) <Id.Lit_BadBackslash '\\'> <'n - To: '> 
                                  ($ Id.VSub_DollarName target_userdata_dir) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDo you wish to continue?'>
                                )
                              } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<--defaultno>} {<12>} {<70>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [6567]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName CHOICE)}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<'/DietPi/dietpi/func/dietpi-set_userdata'>} 
                                      {(DQ ($ Id.VSub_DollarName FP_USERDATA_CURRENT))} {(DQ ($ Id.VSub_DollarName target_userdata_dir))}
                                    )
                                    (C {<sleep>} {<1>})
                                  ]
                                  spids: [6571 6585]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [6384 6401]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <Format>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'FORMAT_RECREATE_PARTITION_TABLE='>
                                      name: FORMAT_RECREATE_PARTITION_TABLE
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [6631]
                                )
                              ]
                              redirects: []
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'drivepath_no_partitions='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (C {<Return_Drive_Without_Partitions>} 
                                      {
                                        (braced_var_sub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                          var_name: aDRIVE_MOUNT_SOURCE
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      }
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                {($ Id.VSub_DollarName partition_contains_userdata)}
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'Info: format prevented'>)} 
                                      {<--msgbox>} 
                                      {
                                        (DQ 
                                          <
'Your DietPi user data is currently located on this drive:'
                                          > <Id.Lit_BadBackslash '\\'> <'n - '> ($ Id.VSub_DollarName FP_USERDATA_CURRENT) 
                                          <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nFormatting the drive at this time is not possible.'> 
                                          <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nPlease move your user data elsewhere, before trying again:'> 
                                          <Id.Lit_BadBackslash '\\'> <'nhttp://dietpi.com/phpbb/viewtopic.php?f=8&t=478'>
                                        )
                                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<13>} {<80>}
                                    )
                                  ]
                                  spids: [6656 6666]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<df>} {<-Ph>})
                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                            {
                                                              (DQ <'^'> 
                                                                ($ Id.VSub_DollarName 
drivepath_no_partitions
                                                                )
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                    right: <Id.Eof_RParen _>
                                                  )
                                                }
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'Notice:'>)} {<--msgbox>} 
                                      {
                                        (DQ 
                                          <
'As DietPi will format the entire drive with 1 partition, you must unmount ALL partitions on this disk, before formatting is available.'
                                          >
                                        )
                                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<10>} {<70>}
                                    )
                                  ]
                                  spids: [6713 6741]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'TARGETMENUID='>
                                          name: TARGETMENUID
                                        )
                                      op: assign_op.Equal
                                      rhs: {<2>}
                                      spids: [6775]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [6610 6627]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <'Transfer RootFS'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'FORMAT_RECREATE_PARTITION_TABLE='>
                                      name: FORMAT_RECREATE_PARTITION_TABLE
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [6809]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<df>} {<-Ph>})
                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                            {
                                                              (DQ <'^'> 
                                                                (braced_var_sub
                                                                  left: <Id.Left_DollarBrace '${'>
                                                                  token: 
                                                                    <Id.VSub_Name 
aDRIVE_MOUNT_SOURCE
                                                                    >
                                                                  var_name: aDRIVE_MOUNT_SOURCE
                                                                  bracket_op: 
                                                                    (bracket_op.ArrayIndex
                                                                      expr: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                                          )
                                                                        }
                                                                    )
                                                                  right: <Id.Right_DollarBrace '}'>
                                                                )
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                    right: <Id.Eof_RParen _>
                                                  )
                                                }
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'Notice:'>)} {<--msgbox>} 
                                      {
                                        (DQ 
                                          <
'Partition must be unmounted, before format and RootFS transfer can begin.'
                                          > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                          <'nPlease unmount the partition, then try again.'>
                                        )
                                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<10>} {<70>}
                                    )
                                  ]
                                  spids: [6818 6850]
                                )
                              ]
                              else_action: [
                                (C {<whiptail>} {<--title>} {(DQ <'Move RootFS'>)} {<--yesno>} 
                                  {<--defaultno>} 
                                  {
                                    (DQ 
                                      <
'This process will move RootFS data to another location. This may increase filesystem performance when using a USB drive over SD card, however, there are some limitations:'
                                      > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                      <
'n - The SD/EMMC card is still required for the boot process'
                                      > <Id.Lit_BadBackslash '\\'> <'n - ALL data on the target PARTITION will be deleted'> 
                                      <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                      <
'nNB: As this feature is still in testing, we recommend you use this feature on a fresh installation only.'
                                      > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDo you wish to continue?'>
                                    )
                                  } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<18>} {<77>}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'CHOICE='>
                                          name: CHOICE
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_QMark '?')}
                                      spids: [6929]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName CHOICE)}
                                                      right: {<Id.Lit_Digits 0>}
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<whiptail>} {<--title>} {(DQ <'Info:'>)} {<--msgbox>} 
                                          {
                                            (DQ 
                                              <
'On the next screen, you will be asked to format the target partition.'
                                              > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                              <
'nPlease see the following recommendations for RootFS target filesystem type:'
                                              > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - Odroid'> <Id.Lit_BadBackslash '\\'> 
                                              <'nRootFS transfer supports ONLY EXT4 format'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - RPi'> <Id.Lit_BadBackslash '\\'> 
                                              <'nRootFS transfer supports EXT4, BTRFS and F2FS'>
                                            )
                                          } {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<16>} {<75>}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'TARGETMENUID='>
                                                  name: TARGETMENUID
                                                )
                                              op: assign_op.Equal
                                              rhs: {<2>}
                                              spids: [6997]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.WhileUntil
                                          keyword: <Id.KW_While while>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName TARGETMENUID)}
                                                      right: {<Id.Lit_Digits 2>}
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          body: (command.DoGroup children:[(C {<Menu_Format>})])
                                          redirects: []
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DParen
                                                          child: 
                                                            {($ Id.VSub_DollarName FORMAT_COMPLETED)}
                                                          redirects: []
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [(C {<RootFS_Move>})]
                                              spids: [7027 7037]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                      spids: [6933 6947]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [6788 6805]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <'Read Only'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<Toggle_WriteMode>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'ROOTFS_RW_CHECKED='>
                                      name: ROOTFS_RW_CHECKED
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [7081]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7057 7074]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [5990 6004]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [7098]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (C {<Init_Drives_and_Refresh>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Menu_Format
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [7126]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'FORMAT_COMPLETED='>
                      name: FORMAT_COMPLETED
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7131]
                )
              ]
              redirects: []
            )
            (C {<'/DietPi/dietpi/func/dietpi-set_dphys-swapfile'>} {<0>} {<'/var/swap'>})
            (C {<local>} {<Id.Lit_VarLike 'partition_table_text='> (SQ <MBR>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: {($ Id.VSub_DollarName FORMAT_GPT)}
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'partition_table_text='>
                              name: partition_table_text
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <GPT>)}
                          spids: [7170]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7156 7166]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<local>} {<Id.Lit_VarLike 'format_type_text='> (SQ <EXT4>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'format_type_text='>
                              name: format_type_text
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <NTFS>)}
                          spids: [7207]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7189 7203]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 2>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'format_type_text='>
                              name: format_type_text
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <FAT32>)}
                          spids: [7232]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7214 7228]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 3>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'format_type_text='>
                              name: format_type_text
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <'HFS+'>)}
                          spids: [7257]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7239 7253]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 4>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'format_type_text='>
                              name: format_type_text
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <BTRFS>)}
                          spids: [7282]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7264 7278]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 5>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'format_type_text='>
                              name: format_type_text
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <F2FS>)}
                          spids: [7307]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7289 7303]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE)}
                                  right: {<Id.Lit_Digits 6>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'format_type_text='>
                              name: format_type_text
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <EXFAT>)}
                          spids: [7332]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7314 7328]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'whiptail_menu_array='> 
                (sh_array_literal left:<Id.Op_LParen _> words:[])
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                      name: whiptail_menu_array
                    )
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ <'Partition Type'>)}
                          {(DQ <': '> ($ Id.VSub_DollarName partition_table_text))}
                        ]
                      )
                    }
                  spids: [7351]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                      name: whiptail_menu_array
                    )
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ <'Filesystem Type'>)}
                          {(DQ <': '> ($ Id.VSub_DollarName format_type_text))}
                        ]
                      )
                    }
                  spids: [7364]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                      name: whiptail_menu_array
                    )
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ <Format>)}
                          {(DQ <': Wipe all data and format drive with current options'>)}
                        ]
                      )
                    }
                  spids: [7377]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(DQ <'Format Drive'>)}
                  spids: [7390]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                              {<--menu>}
                              {(DQ <'Please select formatting options:'>)}
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName MENU_LASTITEM))}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))}
                              {<11>}
                              {<75>}
                              {<3>}
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    var_name: whiptail_menu_array
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                )
                              }
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [7396]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [7456]
                )
              ]
              redirects: []
            )
            (C {<unset>} {<whiptail_menu_array>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'MENU_LASTITEM='>
                              name: MENU_LASTITEM
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName OPTION))}
                          spids: [7485]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <'Partition Type'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'WHIP_TITLE='>
                                      name: WHIP_TITLE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Partition table?'>)}
                                  spids: [7513]
                                )
                              ]
                              redirects: []
                            )
                            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} 
                              {<--yesno>} 
                              {
                                (DQ <'Would you like to use GPT or MBR parition table?'> 
                                  <Id.Lit_BadBackslash '\\'> <'n - GPT is required for 2TB+ drives'> <Id.Lit_BadBackslash '\\'> 
                                  <'n - MBR does NOT support 2TB+ drives'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nIf unsure, select GPT (default)'>
                                )
                              } {<--yes-button>} {(DQ <MBR>)} {<--no-button>} {(DQ <GPT>)} {<--backtitle>} 
                              {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<--defaultno>} {<12>} {<70>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [7566]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'FORMAT_GPT='>
                                      name: FORMAT_GPT
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [7570]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName CHOICE)}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'FORMAT_GPT='>
                                              name: FORMAT_GPT
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [7592]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'partition_table_text='>
                                              name: partition_table_text
                                            )
                                          op: assign_op.Equal
                                          rhs: {(SQ <MBR>)}
                                          spids: [7596]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [7574 7588]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [7492 7509]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <'Filesystem Type'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.Equal
                                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[])}
                                  spids: [7628]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <0>)} {(DQ <': EXT4   | Default (Recommended)'>)}]
                                      )
                                    }
                                  spids: [7633]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ <1>)}
                                          {(DQ <': NTFS   | Windows (High CPU usage)'>)}
                                        ]
                                      )
                                    }
                                  spids: [7645]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ <2>)}
                                          {(DQ <': FAT32  | All OS (4GB filesize limit)'>)}
                                        ]
                                      )
                                    }
                                  spids: [7657]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ <3>)}
                                          {
                                            (DQ 
                                              <
': HFS+   | Mac OS X (Intel Mac default file system)'
                                              >
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [7669]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ <4>)}
                                          {(DQ <': BTRFS  | Linux (Modern filesystem)'>)}
                                        ]
                                      )
                                    }
                                  spids: [7681]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ <5>)}
                                          {(DQ <': F2FS   | Linux (Flash filesystem)'>)}
                                        ]
                                      )
                                    }
                                  spids: [7693]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                                      name: whiptail_menu_array
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ <6>)}
                                          {(DQ <': exFAT  | Windows (Flash filesystem)'>)}
                                        ]
                                      )
                                    }
                                  spids: [7705]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'WHIP_TITLE='>
                                      name: WHIP_TITLE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Filesystem Type?'>)}
                                  spids: [7718]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            words: [
                                              {<whiptail>}
                                              {<--title>}
                                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                                              {<--menu>}
                                              {
                                                (DQ 
                                                  <
'Please select a filesystem type for this format:'
                                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nEXT4:'> <Id.Lit_BadBackslash '\\'> 
                                                  <
'nHighly recommended if you plan to use this drive solely on this system (dedicated drive).'
                                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nNTFS:'> <Id.Lit_BadBackslash '\\'> 
                                                  <
'nRecommended if you plan to use this drive on a Windows system. High CPU usage during transfers.'
                                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nFull list of different filesystem types:'> 
                                                  <Id.Lit_BadBackslash '\\'> <'nhttp://dietpi.com/phpbb/viewtopic.php?f=8&t=673&p=2898#p2898'>
                                                )
                                              }
                                              {<--cancel-button>}
                                              {(DQ <Back>)}
                                              {<--default-item>}
                                              {(DQ ($ Id.VSub_DollarName FORMAT_FILESYSTEM_TYPE))}
                                              {<--backtitle>}
                                              {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))}
                                              {<24>}
                                              {<70>}
                                              {<5>}
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name whiptail_menu_array>
                                                    var_name: whiptail_menu_array
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                )
                                              }
                                            ]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_GreatAnd '3>&'>
                                                loc: (redir_loc.Fd fd:3)
                                                arg: {<1>}
                                              )
                                              (redir
                                                op: <Id.Redir_GreatAnd '1>&'>
                                                loc: (redir_loc.Fd fd:1)
                                                arg: {<2>}
                                              )
                                              (redir
                                                op: <Id.Redir_GreatAnd '2>&'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<3>}
                                              )
                                            ]
                                            more_env: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [7724]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [7802]
                                )
                              ]
                              redirects: []
                            )
                            (C {<unset>} {<whiptail_menu_array>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName CHOICE)}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DAmp
                                                          left: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: {($ Id.VSub_DollarName OPTION)}
                                                              right: {<Id.Lit_Digits 3>}
                                                            )
                                                          right: 
                                                            (arith_expr.Unary
                                                              op_id: Id.Arith_Bang
                                                              child: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_DollarParen '$('>
                                                                    child: 
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (C {<dpkg>} 
                                                                            {<--get-selections>}
                                                                          )
                                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                                            {(SQ <'^hfsutils'>)}
                                                                          )
                                                                        ]
                                                                        negated: F
                                                                        stderr_indices: []
                                                                      )
                                                                    right: <Id.Eof_RParen _>
                                                                  )
                                                                }
                                                            )
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {
                                                (DQ 
                                                  <
'Installing additional packages for HFS+ support, please wait...'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<G_AGI>} {<hfsplus>} {<hfsprogs>} {<hfsutils>})
                                          ]
                                          spids: [7835 7872]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DAmp
                                                          left: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: {($ Id.VSub_DollarName OPTION)}
                                                              right: {<Id.Lit_Digits 4>}
                                                            )
                                                          right: 
                                                            (arith_expr.Unary
                                                              op_id: Id.Arith_Bang
                                                              child: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_DollarParen '$('>
                                                                    child: 
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (C {<dpkg>} 
                                                                            {<--get-selections>}
                                                                          )
                                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                                            {(SQ <'^btrfs-tools'>)}
                                                                          )
                                                                        ]
                                                                        negated: F
                                                                        stderr_indices: []
                                                                      )
                                                                    right: <Id.Eof_RParen _>
                                                                  )
                                                                }
                                                            )
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {
                                                (DQ 
                                                  <
'Installing additional packages for BTRFS support, please wait...'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<G_AGI>} {<btrfs-tools>})
                                          ]
                                          spids: [7899 7936]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DAmp
                                                          left: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: {($ Id.VSub_DollarName OPTION)}
                                                              right: {<Id.Lit_Digits 5>}
                                                            )
                                                          right: 
                                                            (arith_expr.Unary
                                                              op_id: Id.Arith_Bang
                                                              child: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_DollarParen '$('>
                                                                    child: 
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (C {<dpkg>} 
                                                                            {<--get-selections>}
                                                                          )
                                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                                            {(SQ <'^f2fs-tools'>)}
                                                                          )
                                                                        ]
                                                                        negated: F
                                                                        stderr_indices: []
                                                                      )
                                                                    right: <Id.Eof_RParen _>
                                                                  )
                                                                }
                                                            )
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {
                                                (DQ 
                                                  <
'Installing additional packages for F2FS support, please wait...'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<G_AGI>} {<f2fs-tools>})
                                          ]
                                          spids: [7959 7996]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DAmp
                                                          left: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: {($ Id.VSub_DollarName OPTION)}
                                                              right: {<Id.Lit_Digits 6>}
                                                            )
                                                          right: 
                                                            (arith_expr.Unary
                                                              op_id: Id.Arith_Bang
                                                              child: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_DollarParen '$('>
                                                                    child: 
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (C {<dpkg>} 
                                                                            {<--get-selections>}
                                                                          )
                                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                                            {(SQ <'^exfat-utils'>)}
                                                                          )
                                                                        ]
                                                                        negated: F
                                                                        stderr_indices: []
                                                                      )
                                                                    right: <Id.Eof_RParen _>
                                                                  )
                                                                }
                                                            )
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {
                                                (DQ 
                                                  <
'Installing additional packages for exFAT support, please wait...'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<G_AGI>} {<exfat-utils>} {<exfat-fuse>})
                                          ]
                                          spids: [8019 8056]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'FORMAT_FILESYSTEM_TYPE='>
                                              name: FORMAT_FILESYSTEM_TYPE
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName OPTION)}
                                          spids: [8081]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [7813 7827]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [7607 7624]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} 
                                      {<Id.Lit_Equals '='>} {(DQ <Format>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'drivepath_no_partitions='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (C {<Return_Drive_Without_Partitions>} 
                                      {
                                        (braced_var_sub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                          var_name: aDRIVE_MOUNT_SOURCE
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      }
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'text_desc='> 
                                (DQ <'Format Drive:'> <Id.Lit_BadBackslash '\\'> <'n - '> 
                                  ($ Id.VSub_DollarName drivepath_no_partitions) <Id.Lit_BadBackslash '\\'> <'n - UUID='> 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name aDRIVE_UUID>
                                    var_name: aDRIVE_UUID
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: {($ Id.VSub_DollarName INDEX_DRIVE_BEING_EDITED)}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <Id.Lit_BadBackslash '\\'> <'n - Partition table: '> ($ Id.VSub_DollarName partition_table_text) 
                                  <Id.Lit_BadBackslash '\\'> <'n - Filesystem type: '> ($ Id.VSub_DollarName format_type_text) <Id.Lit_BadBackslash '\\'> <n> 
                                  <Id.Lit_BadBackslash '\\'> <'nALL DATA and PARTITIONS on this drive will be DELETED.'> <Id.Lit_BadBackslash '\\'> 
                                  <'nDo you wish to continue?'>
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    {
                                                      ($ Id.VSub_DollarName 
FORMAT_RECREATE_PARTITION_TABLE
                                                      )
                                                    }
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'text_desc='>
                                              name: text_desc
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'Format partition:'> <Id.Lit_BadBackslash '\\'> 
                                                <'n - '> 
                                                (braced_var_sub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name aDRIVE_MOUNT_SOURCE>
                                                  var_name: aDRIVE_MOUNT_SOURCE
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        {
                                                          ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                          )
                                                        }
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                ) <Id.Lit_BadBackslash '\\'> <'n - UUID='> 
                                                (braced_var_sub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name aDRIVE_UUID>
                                                  var_name: aDRIVE_UUID
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        {
                                                          ($ Id.VSub_DollarName 
INDEX_DRIVE_BEING_EDITED
                                                          )
                                                        }
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                ) <Id.Lit_BadBackslash '\\'> <'n - Partition table: '> ($ Id.VSub_DollarName partition_table_text) 
                                                <Id.Lit_BadBackslash '\\'> <'n - Filesystem type: '> ($ Id.VSub_DollarName format_type_text) <Id.Lit_BadBackslash '\\'> <n> 
                                                <Id.Lit_BadBackslash '\\'> <'nALL DATA on this partition will be DELETED.'> <Id.Lit_BadBackslash '\\'> 
                                                <'nDo you wish to continue?'>
                                              )
                                            }
                                          spids: [8174]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [8158 8170]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'WHIP_TITLE='>
                                      name: WHIP_TITLE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Start Format?'>)}
                                  spids: [8213]
                                )
                              ]
                              redirects: []
                            )
                            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} 
                              {<--yesno>} {(DQ ($ Id.VSub_DollarName text_desc))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} 
                              {<--defaultno>} {<14>} {<75>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [8246]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName CHOICE)}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<Run_Format>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'TARGETMENUID='>
                                              name: TARGETMENUID
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [8272]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [8250 8264]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [8090 8107]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [7467 7481]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                      op: assign_op.Equal
                      rhs: {<1>}
                      spids: [8289]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Menu_Select_Mount_Location
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'whiptail_menu_array='> 
                (sh_array_literal left:<Id.Op_LParen _> words:[])
              }
            )
            (command.Pipeline
              children: [
                (C {<df>} {<-Ph>})
                (C {<tail>} {<-n>} {<Id.Lit_Other '+'> <2>})
                (C {<grep>} {<-v>} {(SQ <'tmpfs[[:space:]]'>)})
                (command.Simple
                  words: [{<grep>} {<-v>} {(SQ <'^udev'>)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/tmp/dietpi-drive_manager_selmnt'>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              negated: F
              stderr_indices: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: (condition.Shell commands:[(C {<read>} {<line>})])
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'whiptail_menu_array+='>
                              name: whiptail_menu_array
                            )
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {
                                    (DQ 
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {<-e>} {($ Id.VSub_DollarName line)})
                                              (C {<awk>} {(SQ <'{print $6}'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    )
                                  }
                                  {
                                    (DQ <': '> 
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {<-e>} {($ Id.VSub_DollarName line)})
                                              (C {<awk>} {(SQ <'{print $1}'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      ) <' | size: '> 
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {<-e>} {($ Id.VSub_DollarName line)})
                                              (C {<awk>} {(SQ <'{print $2}'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      ) <' | available: '> 
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {<-e>} {($ Id.VSub_DollarName line)})
                                              (C {<awk>} {(SQ <'{print $4}'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [8371]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {<'/tmp/dietpi-drive_manager_selmnt'>}
                )
              ]
            )
            (C {<rm>} {<'/tmp/dietpi-drive_manager_selmnt'>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))}
                  spids: [8459]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                              {<--menu>}
                              {(DQ <'Please select a mount location to use:'>)}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName MENU_LASTITEM))}
                              {<--cancel-button>}
                              {(DQ <Exit>)}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))}
                              {<16>}
                              {<110>}
                              {<7>}
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    var_name: whiptail_menu_array
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                )
                              }
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [8465]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [8526]
                )
              ]
              redirects: []
            )
            (C {<unset>} {<whiptail_menu_array>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'drive_manager_selection='> (DQ ($ Id.VSub_DollarName OPTION))}
                    )
                    (C {<G_DIETPI-NOTIFY>} {<0>} 
                      {(DQ <'Drive mount selected: '> ($ Id.VSub_DollarName drive_manager_selection))}
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName drive_manager_selection))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName FP_DRIVE_MANAGER_SELECTION))}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [8537 8551]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Menu_Exit
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(DQ <'Exit '> ($ Id.VSub_DollarName PROGRAM_NAME) <'?'>)}
                  spids: [8605]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_QUESTION='> name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: {(DQ <'Exit '> ($ Id.VSub_DollarName PROGRAM_NAME) <'?'>)}
                  spids: [8613]
                )
              ]
              redirects: []
            )
            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} 
              {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName PROGRAM_NAME))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} 
              {(DQ <Back>)} {<--defaultno>} {<9>} {<55>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [8660]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'TARGETMENUID='>
                              name: TARGETMENUID
                            )
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [8686]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [8664 8678]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [8699]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_GreatEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 1>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'SERVICE_CONTROL='>
                      name: SERVICE_CONTROL
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8742]
                )
              ]
              redirects: []
            )
          ]
          spids: [8724 8738]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (command.DParen child:{($ Id.VSub_DollarName SERVICE_CONTROL)} redirects:[])
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<'/DietPi/dietpi/dietpi-services'>} {<stop>})]
          spids: [8758 8768]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 4>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<_EOF_>}
                      here_end_span_id: 8834
                      stdin_parts: [
                        <'#Samba Client------------------------------------------------------\n'>
                        <
'#/mnt/samba . Please use dietpi-config and the Networking Options: NAS menu to setup this mount\n'
                        >
                        <'\n'>
                        <'#FTP Client Mount--------------------------------------------------\n'>
                        <
'#/mnt/ftp_client . Please use dietpi-config and the Networking Options: NAS menu to setup this mount\n'
                        >
                        <'\n'>
                        <'#NFS Client Mount--------------------------------------------------\n'>
                        <
'#/mnt/nfs_client . Please use dietpi-config and the Networking Options: NAS menu to setup this mount\n'
                        >
                        <'\n'>
                        <'#TMPFS / MISC ------------------------------------------------------\n'>
                        <
'proc            /proc           proc    defaults\t\t\t\t\t\t\t\t\t\t\t0 0\n'
                        >
                        <
'tmpfs \t\t\t/tmp  \t\t\ttmpfs \tdefaults,noatime,nodev,nosuid,mode=1777\t\t\t\t0 0\n'
                        >
                        <
'tmpfs \t\t\t/var/log \t\ttmpfs \tdefaults,size=20m,noatime,nodev,nosuid,mode=1777\t0 0\n'
                        >
                        <
'tmpfs \t\t\t/DietPi \t\ttmpfs \tdefaults,size=10m,noatime,nodev,nosuid,mode=1777\t0 0\n'
                        >
                        <'\n'>
                        <'#Internal Drives---------------------------------------------------\n'>
                      ]
                    )
                )
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/etc/fstab'>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (C {<Init_Drives_and_Refresh>})
          ]
          spids: [8789 8803]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 3>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<RootFS_RW_Check>})]
          spids: [8845 8859]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 2>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Init_Drives_and_Refresh>}) (C {<RootFS_Low_Free_Space_Check>})]
          spids: [8871 8885]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 1>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Init_Drives_and_Refresh>}) (C {<Menu_Select_Mount_Location>})]
          spids: [8900 8914]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName G_HW_MODEL)}
                          right: {<Id.Lit_Digits 20>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<G_DIETPI-NOTIFY>} {<1>} 
              {(DQ ($ Id.VSub_DollarName PROGRAM_NAME) <' is not currently supported on VM images'>)}
            )
          ]
          spids: [8929 8943]
        )
      ]
      else_action: [
        (C {<Init_Drives_and_Refresh>})
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Great
                          left: {($ Id.VSub_DollarName TARGETMENUID)}
                          right: (arith_expr.Unary op_id:Id.Node_UnaryMinus child:{<Id.Lit_Digits 1>})
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          body: 
            (command.DoGroup
              children: [
                (C {<clear>})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName TARGETMENUID)}
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<Menu_Main_Drive_Manager>})]
                      spids: [8993 9007]
                    )
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName TARGETMENUID)}
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<Menu_Drive_Manager_Edit_Drive>})]
                      spids: [9015 9029]
                    )
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName TARGETMENUID)}
                                      right: {<Id.Lit_Digits 2>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<Menu_Format>})]
                      spids: [9037 9051]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
            )
          redirects: []
        )
      ]
      redirects: []
    )
    (C {<Destroy>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (command.DParen child:{($ Id.VSub_DollarName SERVICE_CONTROL)} redirects:[])
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<'/DietPi/dietpi/dietpi-services'>} {<start>})]
          spids: [9090 9100]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ControlFlow
      token: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName EXIT_CODE)}
    )
  ]
  redirects: []
  right: <Id.Lit_RBrace '}'>
)