(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PATH)
          op: Equal
          rhs: {(/sbin) (Lit_Other ':') (/bin) (Lit_Other ':') (/usr/bin)}
          spids: [43]
        )
      ]
      spids: [43]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FSCK_LOGFILE)
          op: Equal
          rhs: {(/var/log/fsck/checkroot)}
          spids: [50]
        )
      ]
      spids: [50]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FSCKFIX'))} {(Lit_Other ']')})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:FSCKFIX) op:Equal rhs:{(no)} spids:[63])]
          spids: [63]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SULOGIN'))} {(Lit_Other ']')})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:SULOGIN) op:Equal rhs:{(no)} spids:[76])]
          spids: [76]
        )
      ]
    )
    (C {(.)} {(/lib/init/vars.sh)})
    (C {(.)} {(/lib/lsb/init-functions)})
    (C {(.)} {(/lib/init/mount-functions.sh)})
    (FuncDef
      name: do_start
      body: 
        (BraceGroup
          children: [
            (C {(trap)} {(DQ )} {(INT)})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SULOGIN'))} {(Lit_Other '=')} {(yes)} 
                  {(Lit_Other ']')}
                )
                (C {(sulogin)} {(-t)} {(30)} {($ VSub_Name '$CONSOLE')})
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KERNEL)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: (CommandList children:[(C {(uname)} {(-s)})])
                          left_token: <Left_CommandSub '$('>
                          spids: [160 164]
                        )
                      )
                    }
                  spids: [158]
                )
              ]
              spids: [158]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:MACHINE)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: (CommandList children:[(C {(uname)} {(-m)})])
                          left_token: <Left_CommandSub '$('>
                          spids: [170 174]
                        )
                      )
                    }
                  spids: [168]
                )
              ]
              spids: [168]
            )
            (C {(read_fstab)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ENABLE_SWAP) op:Equal rhs:{(no)} spids:[199])]
              spids: [199]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$KERNEL'))}
              arms: [
                (case_arm
                  pat_list: [{(Linux)}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$NOSWAP'))} {(Lit_Other '=')} {(yes)} 
                              {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other '=')} 
                                  {(no)} {(Lit_Other ']')}
                                )
                                (C {(log_warning_msg)} 
                                  {(DQ ('Not activating swap as requested via bootoption noswap.'))}
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ENABLE_SWAP)
                                  op: Equal
                                  rhs: {(no)}
                                  spids: [255]
                                )
                              ]
                              spids: [255]
                            )
                          ]
                          spids: [16777215 231]
                        )
                      ]
                      else_action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$swap_on_lv'))} 
                                  {(Lit_Other '=')} {(yes)} {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (AndOr
                                  ops: [Op_DPipe]
                                  children: [
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VERBOSE'))} 
                                      {(Lit_Other '=')} {(no)} {(Lit_Other ']')}
                                    )
                                    (C {(log_warning_msg)} 
                                      {(DQ ('Not activating swap on logical volume.'))}
                                    )
                                  ]
                                )
                              ]
                              spids: [16777215 277]
                            )
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$swap_on_file'))} 
                                  {(Lit_Other '=')} {(yes)} {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (AndOr
                                  ops: [Op_DPipe]
                                  children: [
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VERBOSE'))} 
                                      {(Lit_Other '=')} {(no)} {(Lit_Other ']')}
                                    )
                                    (C {(log_warning_msg)} {(DQ ('Not activating swap on swapfile.'))})
                                  ]
                                )
                              ]
                              spids: [301 316]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ENABLE_SWAP)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [343]
                                )
                              ]
                              spids: [343]
                            )
                          ]
                          spids: [340 347]
                        )
                      ]
                      spids: [259 350]
                    )
                  ]
                  spids: [212 213 353 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ENABLE_SWAP)
                          op: Equal
                          rhs: {(yes)}
                          spids: [360]
                        )
                      ]
                      spids: [360]
                    )
                  ]
                  spids: [356 357 364 16777215]
                )
              ]
              spids: [203 209 367]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ENABLE_SWAP'))} {(Lit_Other '=')} {(yes)} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other '=')} {(no)} 
                              {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (C {(log_action_begin_msg)} {(DQ ('Activating swap'))})
                            (SimpleCommand
                              words: [{(swapon)} {(-a)} {(-e)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                  spids: [419]
                                )
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 2
                                  arg_word: {(1)}
                                  spids: [422]
                                )
                              ]
                            )
                            (C {(log_action_end_msg)} {($ VSub_QMark '$?')})
                          ]
                          spids: [16777215 403]
                        )
                      ]
                      else_action: [
                        (C {(log_daemon_msg)} {(DQ ('Activating swap'))})
                        (C {(swapon)} {(-a)} {(-v)})
                        (C {(log_end_msg)} {($ VSub_QMark '$?')})
                      ]
                      spids: [431 453]
                    )
                  ]
                  spids: [16777215 385]
                )
              ]
              spids: [16777215 456]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KERNEL)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: (CommandList children:[(C {(uname)})])
                          left_token: <Left_CommandSub '$('>
                          spids: [494 496]
                        )
                      )
                    }
                  spids: [492]
                )
              ]
              spids: [492]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$rootcheck'))} {(Lit_Other '=')} {(yes)} 
                          {(Lit_Other ']')}
                        )
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$KERNEL'))} {(Lit_Other '=')} {(Linux)} 
                          {(Lit_Other ']')}
                        )
                      ]
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ddev)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(mountpoint)} {(-qx)} {($ VSub_Name '$rootdev')})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [534 540]
                                )
                              )
                            }
                          spids: [532]
                        )
                      ]
                      spids: [532]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:rdev)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(mountpoint)} {(-d)} {(/)})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [546 552]
                                )
                              )
                            }
                          spids: [544]
                        )
                      ]
                      spids: [544]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ddev'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$rdev'))} {(Lit_Other ']')}
                                )
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ddev'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ ('4:0'))} {(Lit_Other ']')}
                                )
                              ]
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (C {(Lit_Other '[')} 
                                      {
                                        (DQ 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [(C {(mountpoint)} {(-qx)} {(/dev/root)})]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [599 605]
                                          )
                                        )
                                      } {(Lit_Other '=')} {(DQ ('4:0'))} {(Lit_Other ']')}
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:rootdev)
                                          op: Equal
                                          rhs: {(/dev/root)}
                                          spids: [620]
                                        )
                                      ]
                                      spids: [620]
                                    )
                                  ]
                                  spids: [16777215 617]
                                )
                              ]
                              else_action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (AndOr
                                          ops: [Op_DAmp Op_DAmp]
                                          children: [
                                            (C {(rm)} {(-f)} {(/run/rootdev)})
                                            (C {(mknod)} {(-m)} {(600)} {(/run/rootdev)} {(b)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name rdev>
                                                  suffix_op: 
                                                    (StringUnary
                                                      op_id: VOp1_Percent
                                                      arg_word: {(':*')}
                                                    )
                                                  spids: [651 655]
                                                )
                                              } 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name rdev>
                                                  suffix_op: 
                                                    (StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('*:')}
                                                    )
                                                  spids: [657 661]
                                                )
                                              }
                                            )
                                            (C {(Lit_Other '[')} {(-e)} {(/run/rootdev)} 
                                              {(Lit_Other ']')}
                                            )
                                          ]
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:rootdev)
                                              op: Equal
                                              rhs: {(/run/rootdev)}
                                              spids: [679]
                                            )
                                          ]
                                          spids: [679]
                                        )
                                      ]
                                      spids: [16777215 676]
                                    )
                                  ]
                                  else_action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:rootfatal)
                                          op: Equal
                                          rhs: {(yes)}
                                          spids: [686]
                                        )
                                      ]
                                      spids: [686]
                                    )
                                  ]
                                  spids: [683 690]
                                )
                              ]
                              spids: [624 693]
                            )
                          ]
                          spids: [16777215 591]
                        )
                      ]
                      spids: [16777215 696]
                    )
                  ]
                  spids: [16777215 529]
                )
              ]
              spids: [16777215 699]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$rootfatal'))} {(Lit_Other '=')} {(yes)} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (C {(log_failure_msg)} 
                      {
                        (DQ ('The device node ') ($ VSub_Name '$rootdev') 
                          (' for the root filesystem is missing or incorrect \n') ('or there is no entry for the root filesystem listed in /etc/fstab. \n') 
                          ('The system is also unable to create a temporary node in /run. \n') ('This means you have to fix the problem manually.')
                        )
                      }
                    )
                    (C {(log_warning_msg)} 
                      {
                        (DQ ('A maintenance shell will now be started. \n') 
                          ('CONTROL-D will terminate this shell and restart the system.')
                        )
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Pipeline
                              children: [(C {(sulogin)} {($ VSub_Name '$CONSOLE')})]
                              negated: T
                            )
                          ]
                          action: [
                            (C {(log_failure_msg)} 
                              {
                                (DQ ('Attempt to start maintenance shell failed. \n') 
                                  ('Will restart in 5 seconds.')
                                )
                              }
                            )
                            (C {(sleep)} {(5)})
                          ]
                          spids: [16777215 766]
                        )
                      ]
                      spids: [16777215 782]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other '=')} {(no)} 
                          {(Lit_Other ']')}
                        )
                        (C {(log_action_msg)} {(DQ ('Will now restart'))})
                      ]
                    )
                    (C {(reboot)} {(-f)})
                  ]
                  spids: [16777215 730]
                )
              ]
              spids: [16777215 811]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:FSCKCODE) op:Equal rhs:{(0)} spids:[873])]
              spids: [873]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(Lit_Other '[')} {(-e)} {(/run/initramfs/fsck-root)} {(Lit_Other ']')})]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:rootcheck)
                          op: Equal
                          rhs: {(no)}
                          spids: [892]
                        )
                      ]
                      spids: [892]
                    )
                  ]
                  spids: [16777215 889]
                )
              ]
              spids: [16777215 896]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(is_fastboot_active)})]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$rootcheck'))} {(Lit_Other '=')} {(yes)} 
                          {(Lit_Other ']')}
                        )
                        (C {(log_warning_msg)} 
                          {(DQ ('Fast boot enabled, so skipping root file system check.'))}
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:rootcheck)
                          op: Equal
                          rhs: {(no)}
                          spids: [929]
                        )
                      ]
                      spids: [929]
                    )
                  ]
                  spids: [16777215 905]
                )
              ]
              spids: [16777215 933]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (SimpleCommand
                      words: [{(which)} {(findmnt)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(/dev/null)}
                          spids: [943]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [946]
                        )
                      ]
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(findmnt)} {(-f)} {(-n)} {(-o)} {(FSTYPE)} {(/)})
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [958 970]
                                  )
                                )
                              } {(Lit_Other '=')} {(DQ (btrfs))} {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$rootcheck'))} {(Lit_Other '=')} 
                                  {(yes)} {(Lit_Other ']')}
                                )
                                (C {(log_warning_msg)} 
                                  {(DQ ('btrfs root detected, so skipping root file system check.'))}
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:rootcheck)
                                  op: Equal
                                  rhs: {(no)}
                                  spids: [1006]
                                )
                              ]
                              spids: [1006]
                            )
                          ]
                          spids: [16777215 982]
                        )
                      ]
                      spids: [16777215 1010]
                    )
                  ]
                  spids: [16777215 950]
                )
              ]
              spids: [16777215 1013]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$rootcheck'))} {(Lit_Other '=')} {(yes)} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(mount)} {(-n)} {(-o)} {(remount) (Lit_Comma ',') (ro)} 
                                      {($ VSub_Name '$rootdev')} {(/)}
                                    )
                                  ]
                                  negated: T
                                )
                                (Pipeline
                                  children: [
                                    (SimpleCommand
                                      words: [
                                        {(mount)}
                                        {(-n)}
                                        {(-o)}
                                        {(remount) (Lit_Comma ',') (ro)}
                                        {(-t)}
                                        {(dummytype)}
                                        {($ VSub_Name '$rootdev')}
                                        {(/)}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                          spids: [1131]
                                        )
                                      ]
                                    )
                                  ]
                                  negated: T
                                )
                                (Pipeline
                                  children: [
                                    (SimpleCommand
                                      words: [
                                        {(mount)}
                                        {(-n)}
                                        {(-o)}
                                        {(remount) (Lit_Comma ',') (ro)}
                                        {(/)}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                          spids: [1152]
                                        )
                                      ]
                                    )
                                  ]
                                  negated: T
                                )
                              ]
                            )
                          ]
                          action: [
                            (C {(log_failure_msg)} 
                              {
                                (DQ 
                                  (
'Cannot check root file system because it is not mounted read-only.'
                                  )
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:rootcheck)
                                  op: Equal
                                  rhs: {(no)}
                                  spids: [1166]
                                )
                              ]
                              spids: [1166]
                            )
                          ]
                          spids: [16777215 1156]
                        )
                      ]
                      spids: [16777215 1170]
                    )
                  ]
                  spids: [16777215 1032]
                )
              ]
              spids: [16777215 1173]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$rootcheck'))} {(Lit_Other '=')} {(yes)} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(Lit_Other '[')} {(-f)} {(/forcefsck)} {(Lit_Other ']')})
                                (C {(grep)} {(-q)} {(-s)} {(-w)} {(-i)} {(DQ (forcefsck))} {(/proc/cmdline)})
                              ]
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:force)
                                  op: Equal
                                  rhs: {(DQ (-f))}
                                  spids: [1239]
                                )
                              ]
                              spids: [1239]
                            )
                          ]
                          spids: [16777215 1236]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:force)
                              op: Equal
                              rhs: {(DQ )}
                              spids: [1248]
                            )
                          ]
                          spids: [1248]
                        )
                      ]
                      spids: [1245 1253]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FSCKFIX'))} {(Lit_Other '=')} 
                              {(yes)} {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:fix)
                                  op: Equal
                                  rhs: {(DQ (-y))}
                                  spids: [1275]
                                )
                              ]
                              spids: [1275]
                            )
                          ]
                          spids: [16777215 1272]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:fix)
                              op: Equal
                              rhs: {(DQ (-a))}
                              spids: [1284]
                            )
                          ]
                          spids: [1284]
                        )
                      ]
                      spids: [1281 1290]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:spinner)
                          op: Equal
                          rhs: {(DQ (-C))}
                          spids: [1294]
                        )
                      ]
                      spids: [1294]
                    )
                    (Case
                      to_match: {(DQ ($ VSub_Name '$TERM'))}
                      arms: [
                        (case_arm
                          pat_list: [{(dumb)} {(network)} {(unknown)} {(DQ )}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:spinner)
                                  op: Equal
                                  rhs: {(DQ )}
                                  spids: [1320]
                                )
                              ]
                              spids: [1320]
                            )
                          ]
                          spids: [1309 1317 1324 16777215]
                        )
                      ]
                      spids: [1300 1306 1327]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} 
                              {(DQ (${ VSub_Name KERNEL) (':') (${ VSub_Name MACHINE))} {(Lit_Other '=')} {(Linux) (Lit_Other ':') (s390x)} {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:spinner)
                                  op: Equal
                                  rhs: {(DQ )}
                                  spids: [1360]
                                )
                              ]
                              spids: [1360]
                            )
                          ]
                          spids: [16777215 1357]
                        )
                      ]
                      spids: [16777215 1365]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other '=')} {(no)} 
                              {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (C {(log_action_begin_msg)} {(DQ ('Checking root file system'))})
                            (C {(logsave)} {(-s)} {($ VSub_Name '$FSCK_LOGFILE')} {(fsck)} 
                              {($ VSub_Name '$spinner')} {($ VSub_Name '$force')} {($ VSub_Name '$fix')} {(-t)} {($ VSub_Name '$roottype')} 
                              {($ VSub_Name '$rootdev')}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:FSCKCODE)
                                  op: Equal
                                  rhs: {($ VSub_QMark '$?')}
                                  spids: [1416]
                                )
                              ]
                              spids: [1416]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FSCKCODE'))} 
                                      {(Lit_Other '=')} {(0)} {(Lit_Other ']')}
                                    )
                                  ]
                                  action: [(C {(log_action_end_msg)} {(0)})]
                                  spids: [16777215 1435]
                                )
                              ]
                              else_action: [
                                (C {(log_action_end_msg)} {(1)} 
                                  {(DQ ('code ') ($ VSub_Name '$FSCKCODE'))}
                                )
                              ]
                              spids: [1443 1456]
                            )
                          ]
                          spids: [16777215 1385]
                        )
                      ]
                      else_action: [
                        (C {(log_daemon_msg)} {(DQ ('Will now check root file system'))})
                        (C {(logsave)} {(-s)} {($ VSub_Name '$FSCK_LOGFILE')} {(fsck)} 
                          {($ VSub_Name '$spinner')} {($ VSub_Name '$force')} {($ VSub_Name '$fix')} {(-V)} {(-t)} {($ VSub_Name '$roottype')} 
                          {($ VSub_Name '$rootdev')}
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:FSCKCODE)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [1492]
                            )
                          ]
                          spids: [1492]
                        )
                        (C {(log_end_msg)} {($ VSub_Name '$FSCKCODE')})
                      ]
                      spids: [1459 1501]
                    )
                  ]
                  spids: [16777215 1204]
                )
              ]
              spids: [16777215 1504]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FSCKCODE'))} {(-eq)} {(32)} {(Lit_Other ']')})
                  ]
                  action: [(C {(log_warning_msg)} {(DQ ('File system check was interrupted by user'))})]
                  spids: [16777215 1555]
                )
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FSCKCODE'))} {(-gt)} {(3)} {(Lit_Other ']')})
                  ]
                  action: [
                    (C {(log_failure_msg)} 
                      {
                        (DQ 
                          (
'An automatic file system check (fsck) of the root filesystem failed. \n'
                          ) ('A manual fsck must be performed, then the system restarted. \n') 
                          ('The fsck should be performed in maintenance mode with the \n') ('root filesystem mounted in read-only mode.')
                        )
                      }
                    )
                    (C {(log_warning_msg)} 
                      {
                        (DQ ('The root filesystem is currently mounted in read-only mode. \n') 
                          ('A maintenance shell will now be started. \n') ('After performing system maintenance, press CONTROL-D \n') 
                          ('to terminate the maintenance shell and restart the system.')
                        )
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Pipeline
                              children: [(C {(sulogin)} {($ VSub_Name '$CONSOLE')})]
                              negated: T
                            )
                          ]
                          action: [
                            (C {(log_failure_msg)} 
                              {
                                (DQ ('Attempt to start maintenance shell failed. \n') 
                                  ('Will restart in 5 seconds.')
                                )
                              }
                            )
                            (C {(sleep)} {(5)})
                          ]
                          spids: [16777215 1624]
                        )
                      ]
                      spids: [16777215 1640]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other '=')} {(no)} 
                          {(Lit_Other ']')}
                        )
                        (C {(log_action_msg)} {(DQ ('Will now restart'))})
                      ]
                    )
                    (C {(reboot)} {(-f)})
                  ]
                  spids: [1565 1580]
                )
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FSCKCODE'))} {(-gt)} {(1)} {(Lit_Other ']')})
                  ]
                  action: [
                    (C {(log_failure_msg)} 
                      {
                        (DQ ('The file system check corrected errors on the root partition \n') 
                          ('but requested that the system be restarted.')
                        )
                      }
                    )
                    (C {(log_warning_msg)} {(DQ ('The system will be restarted in 5 seconds.'))})
                    (C {(sleep)} {(5)})
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other '=')} {(no)} 
                          {(Lit_Other ']')}
                        )
                        (C {(log_action_msg)} {(DQ ('Will now restart'))})
                      ]
                    )
                    (C {(reboot)} {(-f)})
                  ]
                  spids: [1669 1684]
                )
              ]
              spids: [16777215 1733]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [
                        (SimpleCommand
                          words: [
                            {(mount)}
                            {(-n)}
                            {(-o)}
                            {(remount) (Lit_Comma ',') ($ VSub_Name '$rootopts') (Lit_Comma ',') 
                              ($ VSub_Name '$rootmode')
                            }
                            {($ VSub_Name '$fstabroot')}
                            {(/)}
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [1781]
                            )
                          ]
                        )
                      ]
                      negated: T
                    )
                  ]
                  action: [
                    (C {(mount)} {(-n)} {(-o)} 
                      {(remount) (Lit_Comma ',') ($ VSub_Name '$rootopts') (Lit_Comma ',') 
                        ($ VSub_Name '$rootmode')
                      } {(/)}
                    )
                  ]
                  spids: [16777215 1785]
                )
              ]
              spids: [16777215 1803]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$rootmode'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(DQ (ro))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(mtab_migrate)})]
                  spids: [16777215 1837]
                )
              ]
              spids: [16777215 1843]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (AndOr
                      ops: [Op_DAmp Op_DAmp]
                      children: [
                        (C {(selinux_enabled)})
                        (C {(Lit_Other '[')} {(-x)} {(/sbin/restorecon)} {(Lit_Other ']')})
                        (C {(Lit_Other '[')} {(-r)} {(/etc/mtab)} {(Lit_Other ']')})
                      ]
                    )
                  ]
                  action: [(C {(restorecon)} {(/etc/mtab)})]
                  spids: [16777215 1872]
                )
              ]
              spids: [16777215 1880]
            )
            (C {(rm)} {(-f)} {(/run/rootdev)})
            (C {(/etc/init.d/mountkernfs.sh)} {(reload)})
            (C {(/etc/init.d/mountdevsubfs.sh)} {(reload)})
          ]
          spids: [98]
        )
      spids: [93 97]
    )
    (FuncDef
      name: do_status
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:rootrw) op:Equal rhs:{(false)} spids:[1945])]
              spids: [1945]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:swapon) op:Equal rhs:{(false)} spids:[1949])]
              spids: [1949]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-f)} {(/etc/mtab)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(grep)} {(DQ (' / '))} {(/etc/mtab)})
                                    (C {(grep)} {(-q)} {(rw)})
                                  ]
                                  negated: F
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:rootrw)
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [1990]
                                )
                              ]
                              spids: [1990]
                            )
                          ]
                          spids: [16777215 1987]
                        )
                      ]
                      spids: [16777215 1994]
                    )
                  ]
                  spids: [16777215 1965]
                )
              ]
              spids: [16777215 1997]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-f)} {(/proc/swaps)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} 
                                  {
                                    (DQ 
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(cat)} {(/proc/swaps)})
                                                  (C {(grep)} {(-v)} {(Lit_Other '^') (Filename)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [2020 2032]
                                      )
                                    )
                                  } {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:swapon)
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [2042]
                                )
                              ]
                              spids: [2042]
                            )
                          ]
                          spids: [16777215 2039]
                        )
                      ]
                      spids: [16777215 2046]
                    )
                  ]
                  spids: [16777215 2012]
                )
              ]
              spids: [16777215 2049]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(Lit_Other '[')} {(true)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$rootrw'))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(true)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$swapon'))} 
                              {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [16777215 2082]
                )
              ]
              else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(4)})]
              spids: [2090 2098]
            )
          ]
          spids: [1934]
        )
      spids: [1929 1933]
    )
    (Case
      to_match: {(DQ ($ VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{(start)} {(DQ )}]
          action: [(C {(do_start)})]
          spids: [2112 2116 2122 16777215]
        )
        (case_arm
          pat_list: [{(restart)} {(reload)} {(force-reload)}]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ("Error: argument '") ($ VSub_Number '$1') ("' not supported"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[2141])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(3)})
          ]
          spids: [2125 2130 2150 16777215]
        )
        (case_arm pat_list:[{(stop)}] spids:[2153 2154 2161 16777215])
        (case_arm
          pat_list: [{(status)}]
          action: [
            (C {(do_status)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [2164 2165 2176 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('Usage: checkroot.sh [start|stop]'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[2189])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(3)})
          ]
          spids: [2179 2180 2198 16777215]
        )
      ]
      spids: [2103 2109 2200]
    )
    (C {(Lit_Other ':')})
  ]
)