(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(Id.Lit_LBracket '[')} {(-x)} {(/usr/sbin/alsactl)} {(Id.Lit_RBracket ']')})
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:75)
          arg_word: {(0)}
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: 
            {(/usr/local/sbin) (Id.Lit_Other ':') (/usr/local/bin) (Id.Lit_Other ':') (/usr/sbin) 
              (Id.Lit_Other ':') (/usr/bin) (Id.Lit_Other ':') (/sbin) (Id.Lit_Other ':') (/bin)
            }
          spids: [80]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MYNAME)
          op: assign_op.Equal
          rhs: {(/etc/init.d/alsa-utils)}
          spids: [93]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ALSACTLHOME)
          op: assign_op.Equal
          rhs: {(/run/alsa)}
          spids: [96]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ ($ Id.VSub_DollarName '$ALSACTLHOME'))} 
          {(Id.Lit_RBracket ']')}
        )
        (C {(mkdir)} {(-p)} {(DQ ($ Id.VSub_DollarName '$ALSACTLHOME'))})
      ]
    )
    (C {(.)} {(/lib/lsb/init-functions)})
    (C {(.)} {(/usr/share/alsa/utils.sh)})
    (command.ShFunction
      name: log_action_end_msg_and_exit
      body: 
        (command.BraceGroup
          children: [
            (C {(log_action_end_msg)} {(DQ ($ Id.VSub_Number '$1'))} 
              {
                (braced_var_sub
                  token: (Token id:Id.VSub_Number val:2 span_id:150)
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonPlus
                      arg_word: {(DQ ($ Id.VSub_Number '$2'))}
                    )
                )
              }
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:158)
              arg_word: {($ Id.VSub_Number '$1')}
            )
          ]
        )
    )
    (command.ShFunction
      name: executable
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe Id.Op_DPipe]
              children: [
                (C {(Id.Lit_LBracket '[')} {(-x)} {(/bin/which)} {(Id.Lit_RBracket ']')})
                (C {(Id.Lit_LBracket '[')} {(-x)} {(/usr/bin/which)} {(Id.Lit_RBracket ']')})
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:207)
                  arg_word: {(1)}
                )
              ]
            )
            (command.Simple
              words: [{(which)} {(DQ ($ Id.VSub_Number '$1'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:218)
                  fd: -1
                  arg_word: {(/dev/null)}
                )
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:221)
                  fd: 2
                  arg_word: {(1)}
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(executable)} {(amixer)})
        (command.BraceGroup
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [
                    {(echo)}
                    {(DQ (${ Id.VSub_Name MYNAME) (': Error: No amixer program available.'))}
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:244)
                      fd: -1
                      arg_word: {(2)}
                    )
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:247)
            )
            (command.Sentence
              child: 
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:249)
                  arg_word: {(1)}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:253)
            )
          ]
        )
      ]
    )
    (command.ShFunction
      name: restore_levels
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(Id.Lit_LBracket '[')} {(-f)} {(/var/lib/alsa/asound.state)} {(Id.Lit_RBracket ']')})
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:278)
                  arg_word: {(1)}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CARD)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [283]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(all)} 
                  {(Id.Lit_RBracket ']')}
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:CARD)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                      spids: [303]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:MSG)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (command_sub
                                          left_token: 
                                            (Token
                                              id: Id.Left_DollarParen
                                              val: '$('
                                              span_id: 328
                                            )
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (command.Simple
                                                  words: [
                                                    {(alsactl)}
                                                    {(-E)}
                                                    {(Id.Lit_VarLike 'HOME=') 
                                                      (DQ ($ Id.VSub_DollarName '$ALSACTLHOME'))
                                                    }
                                                    {(restore)}
                                                    {($ Id.VSub_DollarName '$CARD')}
                                                  ]
                                                  redirects: [
                                                    (redir.Redir
                                                      op: 
                                                        (Token
                                                          id: Id.Redir_GreatAnd
                                                          val: '2>&'
                                                          span_id: 342
                                                        )
                                                      fd: 2
                                                      arg_word: {(1)}
                                                    )
                                                    (redir.Redir
                                                      op: 
                                                        (Token
                                                          id: Id.Redir_Great
                                                          val: '>'
                                                          span_id: 345
                                                        )
                                                      fd: -1
                                                      arg_word: {(/dev/null)}
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                        )
                                      )
                                    }
                                  spids: [326]
                                )
                              ]
                            )
                            (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} 
                              {(DQ ($ Id.VSub_DollarName '$MSG'))} {(Id.Lit_RBracket ']')}
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:362)
                    )
                  ]
                  action: [
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:367)
                      arg_word: {(0)}
                    )
                  ]
                  spids: [324 364]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{(alsactl)} {(-F)} {(restore)} {($ Id.VSub_DollarName '$CARD')}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:391)
                      fd: -1
                      arg_word: {(/dev/null)}
                    )
                    (redir.Redir
                      op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:394)
                      fd: 2
                      arg_word: {(1)}
                    )
                  ]
                )
                (C {(log_action_cont_msg)} 
                  {(DQ ("warning: 'alsactl -E HOME=")) ($ Id.VSub_DollarName '$ALSACTLHOME') 
                    (DQ (' restore') 
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:CARD span_id:407)
                        suffix_op: 
                          (suffix_op.Unary
                            op_id: Id.VTest_ColonPlus
                            arg_word: {(' ') ($ Id.VSub_DollarName '$CARD')}
                          )
                      ) ("' failed with error message '") ($ Id.VSub_DollarName '$MSG') ("'")
                    )
                  }
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:418)
                  arg_word: {(1)}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: store_levels
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CARD)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [438]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(all)} 
                  {(Id.Lit_RBracket ']')}
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:CARD)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                      spids: [458]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:MSG)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:467)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Simple
                                              words: [
                                                {(alsactl)}
                                                {(-E)}
                                                {(Id.Lit_VarLike 'HOME=') 
                                                  (DQ ($ Id.VSub_DollarName '$ALSACTLHOME'))
                                                }
                                                {(store)}
                                                {($ Id.VSub_DollarName '$CARD')}
                                              ]
                                              redirects: [
                                                (redir.Redir
                                                  op: 
                                                    (Token
                                                      id: Id.Redir_GreatAnd
                                                      val: '2>&'
                                                      span_id: 481
                                                    )
                                                  fd: 2
                                                  arg_word: {(1)}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  )
                                }
                              spids: [465]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:486)
                    )
                  ]
                  action: [
                    (C {(sleep)} {(1)})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:496)
                      arg_word: {(0)}
                    )
                  ]
                  spids: [463 488]
                )
              ]
              else_action: [
                (C {(log_action_cont_msg)} 
                  {
                    (DQ ("warning: 'alsactl store") 
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:CARD span_id:509)
                        suffix_op: 
                          (suffix_op.Unary
                            op_id: Id.VTest_ColonPlus
                            arg_word: {(' ') ($ Id.VSub_DollarName '$CARD')}
                          )
                      ) ("' failed with error message '") ($ Id.VSub_DollarName '$MSG') ("'")
                    )
                  }
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:520)
                  arg_word: {(1)}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: mute_and_zero_levels_on_card
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CARDOPT)
                  op: assign_op.Equal
                  rhs: {(DQ ('-c ') ($ Id.VSub_Number '$1'))}
                  spids: [541]
                )
              ]
            )
            (command.ForEach
              iter_name: CTL
              iter_words: [
                {(Master)}
                {(PCM)}
                {(Synth)}
                {(CD)}
                {(Line)}
                {(Mic)}
                {(DQ ('PCM,1'))}
                {(Wave)}
                {(Music)}
                {(AC97)}
                {(DQ ('Master Digital'))}
                {(DAC)}
                {(DQ ('DAC,0'))}
                {(DQ ('DAC,1'))}
                {(Headphone)}
                {(Speaker)}
                {(Playback)}
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [(C {(mute_and_zero_level)} {(DQ ($ Id.VSub_DollarName '$CTL'))})]
                )
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:662)
              arg_word: {(0)}
            )
          ]
        )
    )
    (command.ShFunction
      name: mute_and_zero_levels
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TTZML_RETURNSTATUS)
                  op: assign_op.Equal
                  rhs: {(0)}
                  spids: [679]
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(all)}]
                  action: [
                    (command.ForEach
                      iter_name: CARD
                      iter_words: [
                        {
                          (command_sub
                            left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:702)
                            command_list: (command.CommandList children:[(C {(echo_card_indices)})])
                          )
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {(mute_and_zero_levels_on_card)} 
                                  {(DQ ($ Id.VSub_DollarName '$CARD'))}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:TTZML_RETURNSTATUS)
                                      op: assign_op.Equal
                                      rhs: {(1)}
                                      spids: [719]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [692 693 726 -1]
                )
                (case_arm
                  pat_list: [{(Id.Lit_Star '*')}]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {(mute_and_zero_levels_on_card)} {(DQ ($ Id.VSub_Number '$1'))})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:TTZML_RETURNSTATUS)
                              op: assign_op.Equal
                              rhs: {(1)}
                              spids: [741]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [729 730 745 -1]
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:751)
              arg_word: {($ Id.VSub_DollarName '$TTZML_RETURNSTATUS')}
            )
          ]
        )
    )
    (command.ShFunction
      name: card_OK
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_RBracket ']')})
                (C {(bugout)})
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                          {(all)} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:796)
                    )
                  ]
                  action: [
                    (C {(Id.Lit_LBracket '[')} {(-d)} {(/proc/asound)} {(Id.Lit_RBracket ']')})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:810)
                      arg_word: {($ Id.VSub_QMark '$?')}
                    )
                  ]
                  spids: [782 798]
                )
              ]
              else_action: [
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ (/proc/asound/card) ($ Id.VSub_Number '$1'))} 
                      {(Id.Lit_RBracket ']')}
                    )
                    (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ (/proc/asound/) ($ Id.VSub_Number '$1'))} 
                      {(Id.Lit_RBracket ']')}
                    )
                  ]
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:843)
                  arg_word: {($ Id.VSub_QMark '$?')}
                )
              ]
            )
          ]
        )
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{(start)}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:EXITSTATUS)
                  op: assign_op.Equal
                  rhs: {(0)}
                  spids: [873]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGET_CARD)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$2'))}
                  spids: [877]
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))}
              arms: [
                (case_arm
                  pat_list: [{(DQ )} {(all)}]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:TARGET_CARD)
                              op: assign_op.Equal
                              rhs: {(all)}
                              spids: [898]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:901)
                    )
                    (C {(log_action_begin_msg)} {(DQ ('Setting up ALSA'))})
                  ]
                  spids: [892 896 909 -1]
                )
                (case_arm
                  pat_list: [{(Id.Lit_Star '*')}]
                  action: [
                    (C {(log_action_begin_msg)} 
                      {(DQ ('Setting up ALSA card ') (${ Id.VSub_Name TARGET_CARD))}
                    )
                  ]
                  spids: [912 913 924 -1]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(card_OK)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))})
                (C {(log_action_end_msg_and_exit)} 
                  {
                    (DQ 
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:941)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Sentence
                                child: 
                                  (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} 
                                    {(DQ ($ Id.VSub_Number '$2'))} {(Id.Lit_RBracket ']')}
                                  )
                                terminator: (Token id:Id.Op_Semi val:';' span_id:953)
                              )
                              (command.Sentence
                                child: (C {(echo)} {($ Id.VSub_QMark '$?')})
                                terminator: (Token id:Id.Op_Semi val:';' span_id:959)
                              )
                            ]
                          )
                      )
                    )
                  } {(DQ ('none loaded'))}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(preinit_levels)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:EXITSTATUS)
                      op: assign_op.Equal
                      rhs: {(1)}
                      spids: [977]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {(restore_levels)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))})]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:991)
                    )
                  ]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {(sanify_levels)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:EXITSTATUS)
                              op: assign_op.Equal
                              rhs: {(1)}
                              spids: [1004]
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Simple
                          words: [{(restore_levels)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:1014)
                              fd: -1
                              arg_word: {(/dev/null)}
                            )
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:1017)
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                        )
                        (C {(Id.Lit_Other ':')})
                      ]
                    )
                  ]
                  spids: [981 993]
                )
              ]
            )
            (C {(log_action_end_msg_and_exit)} {(DQ ($ Id.VSub_DollarName '$EXITSTATUS'))})
          ]
          spids: [869 870 1035 -1]
        )
        (case_arm
          pat_list: [{(stop)}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:EXITSTATUS)
                  op: assign_op.Equal
                  rhs: {(0)}
                  spids: [1042]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGET_CARD)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$2'))}
                  spids: [1046]
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))}
              arms: [
                (case_arm
                  pat_list: [{(DQ )} {(all)}]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:TARGET_CARD)
                              op: assign_op.Equal
                              rhs: {(all)}
                              spids: [1067]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1070)
                    )
                    (C {(log_action_begin_msg)} {(DQ ('Shutting down ALSA'))})
                  ]
                  spids: [1061 1065 1078 -1]
                )
                (case_arm
                  pat_list: [{(Id.Lit_Star '*')}]
                  action: [
                    (C {(log_action_begin_msg)} 
                      {(DQ ('Shutting down ALSA card ') (${ Id.VSub_Name TARGET_CARD))}
                    )
                  ]
                  spids: [1081 1082 1093 -1]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(card_OK)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))})
                (C {(log_action_end_msg_and_exit)} 
                  {
                    (DQ 
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1110)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Sentence
                                child: 
                                  (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} 
                                    {(DQ ($ Id.VSub_Number '$2'))} {(Id.Lit_RBracket ']')}
                                  )
                                terminator: (Token id:Id.Op_Semi val:';' span_id:1122)
                              )
                              (command.Sentence
                                child: (C {(echo)} {($ Id.VSub_QMark '$?')})
                                terminator: (Token id:Id.Op_Semi val:';' span_id:1128)
                              )
                            ]
                          )
                      )
                    )
                  } {(DQ ('none loaded'))}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(store_levels)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:EXITSTATUS)
                      op: assign_op.Equal
                      rhs: {(1)}
                      spids: [1146]
                    )
                  ]
                )
              ]
            )
            (C {(log_action_end_msg_and_exit)} {(DQ ($ Id.VSub_DollarName '$EXITSTATUS'))})
          ]
          spids: [1038 1039 1161 -1]
        )
        (case_arm
          pat_list: [{(restart)} {(force-reload)}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:EXITSTATUS)
                  op: assign_op.Equal
                  rhs: {(0)}
                  spids: [1170]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_Number '$0')} {(stop)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:EXITSTATUS)
                      op: assign_op.Equal
                      rhs: {(1)}
                      spids: [1180]
                    )
                  ]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_Number '$0')} {(start)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:EXITSTATUS)
                      op: assign_op.Equal
                      rhs: {(1)}
                      spids: [1190]
                    )
                  ]
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:1194)
              arg_word: {($ Id.VSub_DollarName '$EXITSTATUS')}
            )
          ]
          spids: [1164 1167 1199 -1]
        )
        (case_arm
          pat_list: [{(reset)}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGET_CARD)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$2'))}
                  spids: [1206]
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))}
              arms: [
                (case_arm
                  pat_list: [{(DQ )} {(all)}]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:TARGET_CARD)
                              op: assign_op.Equal
                              rhs: {(all)}
                              spids: [1227]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1230)
                    )
                    (C {(log_action_begin_msg)} {(DQ ('Resetting ALSA'))})
                  ]
                  spids: [1221 1225 1238 -1]
                )
                (case_arm
                  pat_list: [{(Id.Lit_Star '*')}]
                  action: [
                    (C {(log_action_begin_msg)} 
                      {(DQ ('Resetting ALSA card ') (${ Id.VSub_Name TARGET_CARD))}
                    )
                  ]
                  spids: [1241 1242 1253 -1]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(card_OK)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))})
                (C {(log_action_end_msg_and_exit)} 
                  {
                    (DQ 
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1270)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Sentence
                                child: 
                                  (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} 
                                    {(DQ ($ Id.VSub_Number '$2'))} {(Id.Lit_RBracket ']')}
                                  )
                                terminator: (Token id:Id.Op_Semi val:';' span_id:1282)
                              )
                              (command.Sentence
                                child: (C {(echo)} {($ Id.VSub_QMark '$?')})
                                terminator: (Token id:Id.Op_Semi val:';' span_id:1288)
                              )
                            ]
                          )
                      )
                    )
                  } {(DQ ('none loaded'))}
                )
              ]
            )
            (C {(preinit_levels)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))})
            (C {(sanify_levels)} {(DQ ($ Id.VSub_DollarName '$TARGET_CARD'))})
            (C {(log_action_end_msg_and_exit)} {(DQ ($ Id.VSub_QMark '$?'))})
          ]
          spids: [1202 1203 1319 -1]
        )
        (case_arm
          pat_list: [{(Id.Lit_Star '*')}]
          action: [
            (command.Simple
              words: [
                {(echo)}
                {
                  (DQ ('Usage: ') ($ Id.VSub_DollarName '$MYNAME') 
                    (' {start [CARD]|stop [CARD]|restart [CARD]|reset [CARD]}')
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1334)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:1338)
              arg_word: {(3)}
            )
          ]
          spids: [1322 1323 1343 -1]
        )
      ]
    )
  ]
)