(command.CommandList
  children: [
    (command.ShFunction
      name: unmount_devpts
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<mountpoint>} {<-q>} {<'/dev/pts/'>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<umount>} {<-n>} {<-l>} {<'/dev/pts/'>})]
                  spids: [38 47]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<mountpoint>} {<-q>} {<'/dev/shm/'>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<umount>} {<-n>} {<-l>} {<'/dev/shm/'>})]
                  spids: [63 72]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: mount_devtmpfs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<grep>} {<-E>} {<-q>} {(DQ <'^[^[:space:]]+ /dev devtmpfs'>)} 
                              {<'/proc/mounts'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<mount>} {<-n>} {<-o>} 
                      {<remount> <Id.Lit_Comma ','> <nosuid> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> 
                        ($ Id.VSub_DollarName tmpfs_size) <Id.Lit_Comma ','> <Id.Lit_VarLike 'mode='> <0755>
                      } {<-t>} {<devtmpfs>} {<devtmpfs>} {<'/dev'>}
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [99 114]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<mount>} {<-n>} {<-o>} 
                                  {<nosuid> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> 
                                    ($ Id.VSub_DollarName tmpfs_size) <Id.Lit_Comma ','> <Id.Lit_VarLike 'mode='> <0755>
                                  } {<-t>} {<devtmpfs>} {<devtmpfs>} {<'/dev'>}
                                )
                              ]
                              negated: T
                              stderr_indices: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<log_failure_msg>} {(DQ <'udev requires devtmpfs support, not started'>)})
                    (C {<log_end_msg>} {<1>})
                  ]
                  spids: [149 176]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: create_dev_makedev
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-e>} {<'/sbin/MAKEDEV'>} {<Id.Lit_RBracket ']'>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<ln>} {<-sf>} {<'/sbin/MAKEDEV'>} {<'/dev/MAKEDEV'>})]
                  spids: [209 220]
                )
              ]
              else_action: [(C {<ln>} {<-sf>} {<'/bin/true'>} {<'/dev/MAKEDEV'>})]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: supported_kernel
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              to_match: 
                {
                  (DQ 
                    (command_sub
                      left_token: <Id.Left_DollarParen '$('>
                      child: (C {<uname>} {<-r>})
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              arms: [
                (case_arm
                  pat_list: [
                    {<2.> <Id.Lit_LBracket '['> <012345> <Id.Lit_RBracket ']'> <.> <Id.Lit_Star '*'>}
                    {<2.6.> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}
                    {<2.6.> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                      <Id.KW_Bang '!'> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})]
                  spids: [269 290 296 -1]
                )
                (case_arm
                  pat_list: [
                    {<2.6.> <Id.Lit_LBracket '['> <12> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                      <Id.Lit_RBracket ']'>
                    }
                    {<2.6.> <Id.Lit_LBracket '['> <12> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                      <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})]
                  spids: [299 319 325 -1]
                )
                (case_arm
                  pat_list: [
                    {<2.6.3> <Id.Lit_LBracket '['> <0-1> <Id.Lit_RBracket ']'>}
                    {<2.6.3> <Id.Lit_LBracket '['> <0-1> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                      <Id.KW_Bang '!'> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})]
                  spids: [328 342 348 -1]
                )
              ]
              redirects: []
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: my_tty
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-x>} {<'/bin/readlink'>} {<Id.Lit_RBracket ']'>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<0>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-e>} {<'/proc/self/fd/0'>} {<Id.Lit_RBracket ']'>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<0>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [(C {<readlink>} {<--silent>} {<'/proc/self/fd/0'>}) (C {<true>})]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: warn_if_interactive
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName RUNLEVEL))} 
                              {<Id.Lit_Equals '='>} {(DQ <S>)} {<-a>} {(DQ ($ Id.VSub_DollarName PREVLEVEL))} {<Id.Lit_Equals '='>} {(DQ <N>)} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return>)]
                  spids: [421 450]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TTY='> name:TTY)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<my_tty>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [460]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName TTY))} {<-o>} 
                              {(DQ ($ Id.VSub_DollarName TTY))} {<Id.Lit_Equals '='>} {(DQ <'/dev/console'>)} {<-o>} {(DQ ($ Id.VSub_DollarName TTY))} 
                              {<Id.Lit_Equals '='>} {(DQ <'/dev/null'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return>)]
                  spids: [466 503]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<printf>} 
              {
                (DQ <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> 
                  <Id.Lit_BadBackslash '\\'> <'nIt has been detected that the command'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> 
                  <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_Number 0) <' '> ($ Id.VSub_Star '*') <Id.Lit_BadBackslash '\\'> <n> 
                  <Id.Lit_BadBackslash '\\'> <n>
                )
              }
            )
            (C {<printf>} 
              {(DQ <'has been run from an interactive shell.'> <Id.Lit_BadBackslash '\\'> <n>)}
            )
            (C {<printf>} 
              {
                (DQ <'It will probably not do what you expect, so this script will wait'> 
                  <Id.Lit_BadBackslash '\\'> <n>
                )
              }
            )
            (C {<printf>} 
              {
                (DQ <'60 seconds before continuing. Press ^C to stop it.'> <Id.Lit_BadBackslash '\\'> 
                  <n>
                )
              }
            )
            (C {<printf>} 
              {
                (DQ <'RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!'> <Id.Lit_BadBackslash '\\'> <n> 
                  <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n>
                )
              }
            )
            (C {<sleep>} {<60>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: make_static_nodes
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-e>} 
                  {<'/lib/modules/'> 
                    (command_sub
                      left_token: <Id.Left_DollarParen '$('>
                      child: (C {<uname>} {<-r>})
                      right: <Id.Eof_RParen _>
                    ) <'/modules.devname'>
                  } {<Id.Lit_RBracket ']'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<0>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-x>} {<'/bin/kmod'>} {<Id.Lit_RBracket ']'>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<0>}
                )
              ]
            )
            (command.Pipeline
              children: [
                (C {<'/bin/kmod'>} {<static-nodes>} {<--format> <Id.Lit_Equals '='> <tmpfiles>} 
                  {<--output> <Id.Lit_Equals '='> <'/proc/self/fd/1'>}
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<read>} {<type>} {<name>} {<mode>} {<uid>} {<gid>} {<age>} {<arg>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      children: [
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {<Id.Lit_LBracket '['>} {<-e>} {($ Id.VSub_DollarName name)} 
                              {<Id.Lit_RBracket ']'>}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                        )
                        (command.Case
                          to_match: {(DQ ($ Id.VSub_DollarName type))}
                          arms: [
                            (case_arm
                              pat_list: [{<c>} {<b>} {<c> <Id.KW_Bang '!'>} {<b> <Id.KW_Bang '!'>}]
                              action: [
                                (C {<mknod>} {<-m>} {($ Id.VSub_DollarName mode)} 
                                  {($ Id.VSub_DollarName name)} {($ Id.VSub_DollarName type)} 
                                  {
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<echo>} {($ Id.VSub_DollarName arg)})
                                            (C {<sed>} {(SQ <'s/:/ /'>)})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  }
                                )
                              ]
                              spids: [691 700 726 -1]
                            )
                            (case_arm
                              pat_list: [{<d>} {<d> <Id.KW_Bang '!'>}]
                              action: [(C {<mkdir>} {($ Id.VSub_DollarName name)})]
                              spids: [729 733 739 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (command.Simple
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ <'unparseable line ('> ($ Id.VSub_DollarName type) <' '> 
                                        ($ Id.VSub_DollarName name) <' '> ($ Id.VSub_DollarName mode) <' '> ($ Id.VSub_DollarName uid) <' '> ($ Id.VSub_DollarName gid) <' '> 
                                        ($ Id.VSub_DollarName age) <' '> ($ Id.VSub_DollarName arg) <')'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                              ]
                              spids: [742 743 768 -1]
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-x>} {<'/sbin/restorecon'>} 
                                          {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [(C {<'/sbin/restorecon'>} {($ Id.VSub_DollarName name)})]
                              spids: [775 786]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                    )
                  redirects: []
                )
              ]
              negated: F
              stderr_indices: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: {(DQ <'/sbin:/bin'>)}
          spids: [807]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NAME='> name:NAME)
          op: assign_op.Equal
          rhs: {(DQ <systemd-udevd>)}
          spids: [812]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DAEMON='> name:DAEMON)
          op: assign_op.Equal
          rhs: {(DQ <'/lib/systemd/systemd-udevd'>)}
          spids: [817]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DESC='> name:DESC)
          op: assign_op.Equal
          rhs: {(DQ <'the hotplug events dispatcher'>)}
          spids: [822]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-x>} {($ Id.VSub_DollarName DAEMON)} {<Id.Lit_RBracket ']'>})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmpfs_size='> name:tmpfs_size)
          op: assign_op.Equal
          rhs: {(DQ <10M>)}
          spids: [846]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-e>} {<'/etc/udev/udev.conf'>} {<Id.Lit_RBracket ']'>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<.>} {<'/etc/udev/udev.conf'>})]
          spids: [852 863]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<.>} {<'/lib/lsb/init-functions'>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      children: [(C {<supported_kernel>})]
                      negated: T
                      stderr_indices: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<log_failure_msg>} {(DQ <'udev requires a kernel >= 2.6.32, not started'>)})
            (C {<log_end_msg>} {<1>})
          ]
          spids: [878 885]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {<'/proc/filesystems'>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<log_failure_msg>} {(DQ <'udev requires a mounted procfs, not started'>)})
            (C {<log_end_msg>} {<1>})
          ]
          spids: [902 915]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'[[:space:]]devtmpfs$'>)} {<'/proc/filesystems'>})
                      ]
                      negated: T
                      stderr_indices: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<log_failure_msg>} {(DQ <'udev requires devtmpfs support, not started'>)})
            (C {<log_end_msg>} {<1>})
          ]
          spids: [932 947]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<'/sys/class/'>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<log_failure_msg>} {(DQ <'udev requires a mounted sysfs, not started'>)})
            (C {<log_end_msg>} {<1>})
          ]
          spids: [964 977]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<ps>} {<--no-headers>} {<--format>} {<args>} {<ax>})
                        (C {<egrep>} {<-q>} {(SQ <'^\\['>)})
                      ]
                      negated: T
                      stderr_indices: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<log_warning_msg>} {(DQ <'udev does not support containers, not started'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          spids: [994 1019]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<-d>} {<'/sys/class/mem/null'>} {<-a>} 
                          {<Id.KW_Bang '!'>} {<-L>} {<'/sys/class/mem/null'>} {<Id.Lit_RBracket ']'>}
                        )
                        (C {<Id.Lit_LBracket '['>} {<-e>} {<'/sys/block'>} {<-a>} {<Id.KW_Bang '!'>} {<-e>} 
                          {<'/sys/class/block'>} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<log_warning_msg>} {(DQ <'CONFIG_SYSFS_DEPRECATED must not be selected'>)})
            (C {<log_warning_msg>} 
              {(DQ <'Booting will continue in 30 seconds but many things will be broken'>)}
            )
            (C {<sleep>} {<30>})
          ]
          spids: [1036 1075]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number 1))}
      arms: [
        (case_arm
          pat_list: [{<start>}]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              words: [{<init_is_upstart>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})]
                  spids: [1122 1130]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {(DQ <'/run/udev/'>)} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<warn_if_interactive>})]
                  spids: [1142 1157]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-w>} {<'/sys/kernel/uevent_helper'>} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/sys/kernel/uevent_helper'>}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [1167 1178]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [(C {<mountpoint>} {<-q>} {<'/dev/'>})]
                              negated: T
                              stderr_indices: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<unmount_devpts>})
                    (C {<mount_devtmpfs>})
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<-d>} {<'/proc/1'>} {<Id.Lit_RBracket ']'>})
                        (C {<mount>} {<-n>} {<'/proc'>})
                      ]
                    )
                  ]
                  spids: [1192 1203]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<make_static_nodes>})
            (C {<udevadm>} {<info>} {<--cleanup-db>})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-x>} {<'/sbin/restorecon'>} {<Id.Lit_RBracket ']'>})
                (C {<'/sbin/restorecon'>} {<-R>} {<'/dev'>})
              ]
            )
            (C {<log_daemon_msg>} {(DQ <'Starting '> ($ Id.VSub_DollarName DESC))} 
              {(DQ ($ Id.VSub_DollarName NAME))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {($ Id.VSub_DollarName DAEMON)} {<--daemon>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<log_end_msg>} {($ Id.VSub_QMark '?')})]
                  spids: [1283 1290]
                )
              ]
              else_action: [
                (C {<log_warning_msg>} {($ Id.VSub_QMark '?')})
                (C {<log_warning_msg>} {(DQ <'Waiting 15 seconds and trying to continue anyway'>)})
                (C {<sleep>} {<15>})
              ]
              redirects: []
            )
            (C {<log_action_begin_msg>} {(DQ <'Synthesizing the initial hotplug events'>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<udevadm>} {<trigger>} {<--action> <Id.Lit_Equals '='> <add>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<log_action_end_msg>} {($ Id.VSub_QMark '?')})]
                  spids: [1329 1340]
                )
              ]
              else_action: [(C {<log_action_end_msg>} {($ Id.VSub_QMark '?')})]
              redirects: []
            )
            (C {<create_dev_makedev>})
            (C {<log_action_begin_msg>} {(DQ <'Waiting for /dev to be fully populated'>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<udevadm>} {<settle>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<log_action_end_msg>} {<0>})]
                  spids: [1375 1382]
                )
              ]
              else_action: [(C {<log_action_end_msg>} {<0>} {(SQ <timeout>)})]
              redirects: []
            )
          ]
          spids: [1118 1119 1405 -1]
        )
        (case_arm
          pat_list: [{<stop>}]
          action: [
            (C {<log_daemon_msg>} {(DQ <'Stopping '> ($ Id.VSub_DollarName DESC))} 
              {(DQ ($ Id.VSub_DollarName NAME))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<start-stop-daemon>} {<--stop>} {<--name>} {($ Id.VSub_DollarName NAME)} 
                              {<--user>} {<root>} {<--quiet>} {<--oknodo>} {<--retry>} {<5>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<log_end_msg>} {($ Id.VSub_QMark '?')})]
                  spids: [1425 1448]
                )
              ]
              else_action: [(C {<log_end_msg>} {($ Id.VSub_QMark '?')})]
              redirects: []
            )
          ]
          spids: [1409 1410 1467 -1]
        )
        (case_arm
          pat_list: [{<restart>}]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              words: [{<init_is_upstart>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})]
                  spids: [1475 1483]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<log_daemon_msg>} {(DQ <'Stopping '> ($ Id.VSub_DollarName DESC))} 
              {(DQ ($ Id.VSub_DollarName NAME))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<start-stop-daemon>} {<--stop>} {<--name>} {($ Id.VSub_DollarName NAME)} 
                              {<--user>} {<root>} {<--quiet>} {<--oknodo>} {<--retry>} {<5>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<log_end_msg>} {($ Id.VSub_QMark '?')})]
                  spids: [1506 1529]
                )
              ]
              else_action: [
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [(C {<log_end_msg>} {($ Id.VSub_QMark '?')}) (C {<true>})]
                )
              ]
              redirects: []
            )
            (C {<log_daemon_msg>} {(DQ <'Starting '> ($ Id.VSub_DollarName DESC))} 
              {(DQ ($ Id.VSub_DollarName NAME))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {($ Id.VSub_DollarName DAEMON)} {<--daemon>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<log_end_msg>} {($ Id.VSub_QMark '?')})]
                  spids: [1565 1572]
                )
              ]
              else_action: [(C {<log_end_msg>} {($ Id.VSub_QMark '?')})]
              redirects: []
            )
          ]
          spids: [1471 1472 1591 -1]
        )
        (case_arm
          pat_list: [{<reload>} {<force-reload>}]
          action: [(C {<udevadm>} {<control>} {<--reload-rules>})]
          spids: [1595 1598 1608 -1]
        )
        (case_arm
          pat_list: [{<status>}]
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<status_of_proc>} {($ Id.VSub_DollarName DAEMON)} {($ 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: [1612 1613 1635 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.Simple
              words: [
                {<echo>}
                {(DQ <'Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload|status}'>)}
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [1639 1640 1658 -1]
        )
      ]
      redirects: []
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)