(command.CommandList
  children: [
    (command.ShFunction
      name: unmount_devpts
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<mountpoint>} {<-q>} {<'/dev/pts/'>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<umount>} {<-n>} {<-l>} {<'/dev/pts/'>})]
                  spids: [38 47]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<mountpoint>} {<-q>} {<'/dev/shm/'>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<umount>} {<-n>} {<-l>} {<'/dev/shm/'>})]
                  spids: [63 72]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: mount_devtmpfs
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<log_failure_msg>} {(DQ <'udev requires devtmpfs support, not started'>)})
                    (C {<log_end_msg>} {<1>})
                  ]
                  spids: [149 176]
                )
              ]
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
        )
    )
    (command.ShFunction
      name: create_dev_makedev
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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'>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: supported_kernel
      body: 
        (BraceGroup
          children: [
            (command.Case
              to_match: 
                {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<uname>} {<-r>})))}
              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]
                )
              ]
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
        )
    )
    (command.ShFunction
      name: my_tty
      body: 
        (BraceGroup
          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>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: warn_if_interactive
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TTY)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<my_tty>}))}
                  spids: [460]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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]
                )
              ]
            )
            (C {<printf>} 
              {
                (DQ <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                  <'nIt has been detected that the command'> <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <t> ($ Id.VSub_Number '$0') <' '> 
                  ($ Id.VSub_Star '$*') <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <n>
                )
              }
            )
            (C {<printf>} {(DQ <'has been run from an interactive shell.'> <Id.Lit_Other '\\'> <n>)})
            (C {<printf>} 
              {
                (DQ <'It will probably not do what you expect, so this script will wait'> 
                  <Id.Lit_Other '\\'> <n>
                )
              }
            )
            (C {<printf>} 
              {(DQ <'60 seconds before continuing. Press ^C to stop it.'> <Id.Lit_Other '\\'> <n>)}
            )
            (C {<printf>} 
              {
                (DQ <'RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!'> <Id.Lit_Other '\\'> <n> 
                  <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <n>
                )
              }
            )
            (C {<sleep>} {<60>})
          ]
        )
    )
    (command.ShFunction
      name: make_static_nodes
      body: 
        (BraceGroup
          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>})
                    ) <'/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: [
                    (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
                                        )
                                    )
                                  }
                                )
                              ]
                              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>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              spids: [742 743 768 -1]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (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]
                            )
                          ]
                        )
                      ]
                    )
                )
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: {(DQ <'/sbin:/bin'>)}
          spids: [807]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NAME)
          op: assign_op.Equal
          rhs: {(DQ <systemd-udevd>)}
          spids: [812]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DAEMON)
          op: assign_op.Equal
          rhs: {(DQ <'/lib/systemd/systemd-udevd'>)}
          spids: [817]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DESC)
          op: assign_op.Equal
          rhs: {(DQ <'the hotplug events dispatcher'>)}
          spids: [822]
        )
      ]
    )
    (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 name:tmpfs_size)
          op: assign_op.Equal
          rhs: {(DQ <10M>)}
          spids: [846]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (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]
        )
      ]
    )
    (C {<.>} {<'/lib/lsb/init-functions'>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (command.Pipeline children:[(C {<supported_kernel>})] negated:T)
              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]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (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]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Pipeline
                  children: [
                    (C {<grep>} {<-q>} {(SQ <'[[:space:]]devtmpfs$'>)} {<'/proc/filesystems'>})
                  ]
                  negated: T
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (C {<log_failure_msg>} {(DQ <'udev requires devtmpfs support, not started'>)})
            (C {<log_end_msg>} {<1>})
          ]
          spids: [932 947]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (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]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Pipeline
                  children: [
                    (C {<ps>} {<--no-headers>} {<--format>} {<args>} {<ax>})
                    (C {<egrep>} {<-q>} {(SQ <'^\\['>)})
                  ]
                  negated: T
                )
              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]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (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]
        )
      ]
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{<start>}]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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'>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})]
                  spids: [1122 1130]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [1167 1178]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {<mountpoint>} {<-q>} {<'/dev/'>})]
                          negated: T
                        )
                      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]
                )
              ]
            )
            (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: [
                    (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>})
              ]
            )
            (C {<log_action_begin_msg>} {(DQ <'Synthesizing the initial hotplug events'>)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 '$?')})]
            )
            (C {<create_dev_makedev>})
            (C {<log_action_begin_msg>} {(DQ <'Waiting for /dev to be fully populated'>)})
            (command.If
              arms: [
                (if_arm
                  cond: [(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>)})]
            )
          ]
          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: [
                    (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 '$?')})]
            )
          ]
          spids: [1409 1410 1467 -1]
        )
        (case_arm
          pat_list: [{<restart>}]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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'>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})]
                  spids: [1475 1483]
                )
              ]
            )
            (C {<log_daemon_msg>} {(DQ <'Stopping '> ($ Id.VSub_DollarName '$DESC'))} 
              {(DQ ($ Id.VSub_DollarName '$NAME'))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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>})]
                )
              ]
            )
            (C {<log_daemon_msg>} {(DQ <'Starting '> ($ Id.VSub_DollarName '$DESC'))} 
              {(DQ ($ Id.VSub_DollarName '$NAME'))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 '$?')})]
            )
          ]
          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>})]
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [1639 1640 1658 -1]
        )
      ]
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)