(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: 
            {<'/sbin'> <Id.Lit_Colon ':'> <'/usr/sbin'> <Id.Lit_Colon ':'> <'/bin'> <Id.Lit_Colon ':'> 
              <'/usr/bin'>
            }
          spids: [48]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DESC)
          op: assign_op.Equal
          rhs: {(DQ <'Kernel crash collector'>)}
          spids: [57]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NAME)
          op: assign_op.Equal
          rhs: {<kerneloops>}
          spids: [62]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DAEMON)
          op: assign_op.Equal
          rhs: {<'/usr/sbin/'> ($ Id.VSub_DollarName '$NAME')}
          spids: [65]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PIDFILE)
          op: assign_op.Equal
          rhs: {<'/var/run/'> ($ Id.VSub_DollarName '$NAME') <.pid>}
          spids: [69]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SCRIPTNAME)
          op: assign_op.Equal
          rhs: {<'/etc/init.d/'> ($ Id.VSub_DollarName '$NAME')}
          spids: [74]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ENABLED)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [78]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-x>} {(DQ ($ Id.VSub_DollarName '$DAEMON'))} {<Id.Lit_RBracket ']'>})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-r>} {<'/etc/default/'> ($ Id.VSub_DollarName '$NAME')} 
          {<Id.Lit_RBracket ']'>}
        )
        (C {<.>} {<'/etc/default/'> ($ Id.VSub_DollarName '$NAME')})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ENABLED'))} {<Id.Lit_Equals '='>} 
          {(DQ <1>)} {<Id.Lit_RBracket ']'>}
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
      ]
    )
    (C {<.>} {<'/lib/init/vars.sh'>})
    (C {<.>} {<'/lib/lsb/init-functions'>})
    (command.ShFunction
      name: do_start
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {<start-stop-daemon>}
                    {<--start>}
                    {<--quiet>}
                    {<--chuid>}
                    {<kernoops> <Id.Lit_Colon ':'> <adm>}
                    {<--pidfile>}
                    {($ Id.VSub_DollarName '$PIDFILE')}
                    {<--exec>}
                    {($ Id.VSub_DollarName '$DAEMON')}
                    {<--test>}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<start-stop-daemon>} {<--start>} {<--quiet>} {<--chuid>} 
                  {<kernoops> <Id.Lit_Colon ':'> <adm>} {<--pidfile>} {($ Id.VSub_DollarName '$PIDFILE')} {<--exec>} {($ Id.VSub_DollarName '$DAEMON')} {<-->} 
                  {($ Id.VSub_DollarName '$DAEMON_ARGS')}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<2>}
                )
              ]
            )
            (command.Simple
              words: [{<pidofproc>} {($ Id.VSub_DollarName '$DAEMON')}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$PIDFILE')}
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: do_stop
      body: 
        (BraceGroup
          children: [
            (C {<start-stop-daemon>} {<--stop>} {<--quiet>} 
              {<--retry> <Id.Lit_Equals '='> <'TERM/30/KILL/5'>} {<--pidfile>} {($ Id.VSub_DollarName '$PIDFILE')} {<--name>} {($ Id.VSub_DollarName '$NAME')}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:RETVAL)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_QMark '$?'))}
                  spids: [335]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$RETVAL'))} {<Id.Lit_Equals '='>} 
                  {<2>} {<Id.Lit_RBracket ']'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<2>}
                )
              ]
            )
            (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$PIDFILE')})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {(DQ ($ Id.VSub_DollarName '$RETVAL'))}
            )
          ]
        )
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{<start>}]
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} 
                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>}
                )
                (C {<log_daemon_msg>} {(DQ <'Starting '> ($ Id.VSub_DollarName '$DESC'))} 
                  {(DQ ($ Id.VSub_DollarName '$NAME'))}
                )
              ]
            )
            (C {<do_start>})
            (command.Case
              to_match: {(DQ ($ Id.VSub_QMark '$?'))}
              arms: [
                (case_arm
                  pat_list: [{<0>} {<1>}]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} 
                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>}
                        )
                        (C {<log_end_msg>} {<0>})
                      ]
                    )
                  ]
                  spids: [432 435 456 -1]
                )
                (case_arm
                  pat_list: [{<2>}]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} 
                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>}
                        )
                        (C {<log_end_msg>} {<1>})
                      ]
                    )
                  ]
                  spids: [459 460 481 -1]
                )
              ]
            )
          ]
          spids: [389 390 487 -1]
        )
        (case_arm
          pat_list: [{<stop>}]
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} 
                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>}
                )
                (C {<log_daemon_msg>} {(DQ <'Stopping '> ($ Id.VSub_DollarName '$DESC'))} 
                  {(DQ ($ Id.VSub_DollarName '$NAME'))}
                )
              ]
            )
            (C {<do_stop>})
            (command.Case
              to_match: {(DQ ($ Id.VSub_QMark '$?'))}
              arms: [
                (case_arm
                  pat_list: [{<0>} {<1>}]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} 
                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>}
                        )
                        (C {<log_end_msg>} {<0>})
                      ]
                    )
                  ]
                  spids: [533 536 557 -1]
                )
                (case_arm
                  pat_list: [{<2>}]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} 
                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>}
                        )
                        (C {<log_end_msg>} {<1>})
                      ]
                    )
                  ]
                  spids: [560 561 582 -1]
                )
              ]
            )
          ]
          spids: [490 491 588 -1]
        )
        (case_arm
          pat_list: [{<status>}]
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<status_of_proc>} {(DQ ($ Id.VSub_DollarName '$DAEMON'))} 
                  {(DQ ($ Id.VSub_DollarName '$NAME'))}
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Exit exit>
                  arg_word: {($ Id.VSub_QMark '$?')}
                )
              ]
            )
          ]
          spids: [591 592 618 -1]
        )
        (case_arm
          pat_list: [{<restart>} {<force-reload>}]
          action: [
            (C {<log_daemon_msg>} {(DQ <'Restarting '> ($ Id.VSub_DollarName '$DESC'))} 
              {(DQ ($ Id.VSub_DollarName '$NAME'))}
            )
            (C {<do_stop>})
            (command.Case
              to_match: {(DQ ($ Id.VSub_QMark '$?'))}
              arms: [
                (case_arm
                  pat_list: [{<0>} {<1>}]
                  action: [
                    (C {<do_start>})
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_QMark '$?'))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>}]
                          action: [(C {<log_end_msg>} {<0>})]
                          spids: [669 670 676 -1]
                        )
                        (case_arm
                          pat_list: [{<1>}]
                          action: [(C {<log_end_msg>} {<1>})]
                          spids: [679 680 686 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [(C {<log_end_msg>} {<1>})]
                          spids: [692 693 699 -1]
                        )
                      ]
                    )
                  ]
                  spids: [651 654 708 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(C {<log_end_msg>} {<1>})]
                  spids: [711 712 724 -1]
                )
              ]
            )
          ]
          spids: [621 624 730 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.Simple
              words: [
                {<echo>}
                {
                  (DQ <'Usage: '> ($ Id.VSub_DollarName '$SCRIPTNAME') 
                    <' {start|stop|status|restart|force-reload}'>
                  )
                }
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>})
          ]
          spids: [733 734 754 -1]
        )
      ]
    )
    (C {<Id.Lit_Colon ':'>})
  ]
)