(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DEV='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DEV='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEV='> name:DEV)
          op: assign_op.Equal
          rhs: {<ath0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'd='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'd='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <usage>
      name: usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Usage: '> ($ Id.VSub_Number 0) <' [-i athX] [-d meters]'>)}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'args='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'args='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <getopt>
                    more_env: []
                    words: [
                      {<getopt>}
                      {<d> <Id.Lit_Colon ':'> <i> <Id.Lit_Colon ':'>}
                      {($ Id.VSub_Star '*')}
                    ]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <usage>
          more_env: []
          words: [{<usage>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-->} {($ Id.VSub_DollarName args)}]
      redirects: []
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [i]
      iterable: (for_iter__Args)
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName i))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <-i>
                  pattern: (pat.Words words:[{<-i>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'DEV='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'DEV='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEV='> name:DEV)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 2))}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-d>
                  pattern: (pat.Words words:[{<-d>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'd='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'd='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 2))}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-->
                  pattern: (pat.Words words:[{<-->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Break break>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {($ Id.VSub_DollarName d)} {<-eq>} {<0>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <usage>
          more_env: []
          words: [{<usage>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'slottime='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'slottime='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'slottime='> name:slottime)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <expr>
                    more_env: []
                    words: [
                      {<expr>}
                      {<9>}
                      {<Id.Lit_Other '+'>}
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(')}
                      {($ Id.VSub_DollarName d)}
                      {<'/'>}
                      {<300>}
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')')}
                    ]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <expr>
                      more_env: []
                      words: [
                        {<expr>}
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(')}
                        {($ Id.VSub_DollarName d)}
                        {<Id.Lit_Other '%'>}
                        {<300>}
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')')}
                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                        {<0>}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                        (Redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'slottime='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'slottime='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'slottime='> name:slottime)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <expr>
                            more_env: []
                            words: [{<expr>} {($ Id.VSub_DollarName slottime)} {<Id.Lit_Other '+'>} {<1>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [189 215]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'timeout='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'timeout='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'timeout='> name:timeout)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <expr>
                    more_env: []
                    words: [
                      {<expr>}
                      {($ Id.VSub_DollarName slottime)}
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*')}
                      {<2>}
                      {<Id.Lit_Other '+'>}
                      {<3>}
                    ]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <printf>
      more_env: []
      words: [
        {<printf>}
        {
          (DQ <'Setup IFS parameters on interface '> (${ Id.VSub_Name DEV) <' for %i meter p-2-p link'> 
            <Id.Lit_BadBackslash '\\'> <n>
          )
        }
        {($ Id.VSub_DollarName d)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ATHN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ATHN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ATHN='> name:ATHN)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <echo>
                        more_env: []
                        words: [{<echo>} {($ Id.VSub_DollarName DEV)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <sed>
                        more_env: []
                        words: [{<sed>} {(SQ <'s/ath//'>)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <sysctl>
      more_env: []
      words: [
        {<sysctl>}
        {<dev.ath.> ($ Id.VSub_DollarName ATHN) <.slottime> <Id.Lit_Equals '='> 
          ($ Id.VSub_DollarName slottime)
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <sysctl>
      more_env: []
      words: [
        {<sysctl>}
        {<dev.ath.> ($ Id.VSub_DollarName ATHN) <.acktimeout> <Id.Lit_Equals '='> 
          ($ Id.VSub_DollarName timeout)
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <sysctl>
      more_env: []
      words: [
        {<sysctl>}
        {<dev.ath.> ($ Id.VSub_DollarName ATHN) <.ctstimeout> <Id.Lit_Equals '='> 
          ($ Id.VSub_DollarName timeout)
        }
      ]
      redirects: []
      do_fork: T
    )
  ]
)