(command.CommandList
  children: [
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:NM)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [52]
                )
              ]
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:56)
        )
        (C {(shift)})
      ]
    )
    (command.WhileUntil
      keyword: (Token id:Id.KW_While val:while span_id:60)
      cond: [
        (command.Sentence
          child: 
            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(-gt)} {(0)} {(Id.Lit_RBracket ']')})
          terminator: (Token id:Id.Op_Semi val:';' span_id:71)
        )
      ]
      body: 
        (command.DoGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Pipeline
                  children: [
                    (command.Subshell
                      command_list: 
                        (command.CommandList
                          children: [
                            (command.Sentence
                              child: 
                                (C {($ Id.VSub_DollarName '$NM')} {(-P)} {($ Id.VSub_Number '$1')})
                              terminator: (Token id:Id.Op_Semi val:';' span_id:83)
                            )
                            (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'end[end]:' span_id:88))})
                          ]
                        )
                    )
                    (C {(gawk)} 
                      {
                        (SQ (Token id:Id.Lit_Chars val:' BEGIN {\n' span_id:98) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["accept"]=1\n'
                            span_id: 99
                          ) (Token id:Id.Lit_Chars val:'C["close"]=1\n' span_id:100) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["connect"]=1\n'
                            span_id: 101
                          ) (Token id:Id.Lit_Chars val:'C["creat"]=1\n' span_id:102) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["fcntl"]=1\n'
                            span_id: 103
                          ) (Token id:Id.Lit_Chars val:'C["fdatasync"]=1\n' span_id:104) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["fsync"]=1\n'
                            span_id: 105
                          ) (Token id:Id.Lit_Chars val:'C["msgrcv"]=1\n' span_id:106) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["msgsnd"]=1\n'
                            span_id: 107
                          ) (Token id:Id.Lit_Chars val:'C["msync"]=1\n' span_id:108) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["nanosleep"]=1\n'
                            span_id: 109
                          ) (Token id:Id.Lit_Chars val:'C["open"]=1\n' span_id:110) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["open64"]=1\n'
                            span_id: 111
                          ) (Token id:Id.Lit_Chars val:'C["pause"]=1\n' span_id:112) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["poll"]=1\n'
                            span_id: 113
                          ) (Token id:Id.Lit_Chars val:'C["pread"]=1\n' span_id:114) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["pread64"]=1\n'
                            span_id: 115
                          ) (Token id:Id.Lit_Chars val:'C["pselect"]=1\n' span_id:116) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["pwrite"]=1\n'
                            span_id: 117
                          ) (Token id:Id.Lit_Chars val:'C["pwrite64"]=1\n' span_id:118) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["read"]=1\n'
                            span_id: 119
                          ) (Token id:Id.Lit_Chars val:'C["readv"]=1\n' span_id:120) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["recv"]=1\n'
                            span_id: 121
                          ) (Token id:Id.Lit_Chars val:'C["recvfrom"]=1\n' span_id:122) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["recvmsg"]=1\n'
                            span_id: 123
                          ) (Token id:Id.Lit_Chars val:'C["select"]=1\n' span_id:124) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["send"]=1\n'
                            span_id: 125
                          ) (Token id:Id.Lit_Chars val:'C["sendmsg"]=1\n' span_id:126) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["sendto"]=1\n'
                            span_id: 127
                          ) (Token id:Id.Lit_Chars val:'C["sigpause"]=1\n' span_id:128) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["sigsuspend"]=1\n'
                            span_id: 129
                          ) (Token id:Id.Lit_Chars val:'C["sigwait"]=1\n' span_id:130) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["sigwaitinfo"]=1\n'
                            span_id: 131
                          ) (Token id:Id.Lit_Chars val:'C["tcdrain"]=1\n' span_id:132) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["wait"]=1\n'
                            span_id: 133
                          ) (Token id:Id.Lit_Chars val:'C["waitid"]=1\n' span_id:134) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["waitpid"]=1\n'
                            span_id: 135
                          ) (Token id:Id.Lit_Chars val:'C["write"]=1\n' span_id:136) 
                          (Token
                            id: Id.Lit_Chars
                            val: 'C["writev"]=1\n'
                            span_id: 137
                          ) (Token id:Id.Lit_Chars val:'C["__xpg_sigpause"]=1\n' span_id:138) 
                          (Token id:Id.Lit_Chars val:'}\n' span_id:139) (Token id:Id.Lit_Chars val:'/:$/ {\n' span_id:140) 
                          (Token
                            id: Id.Lit_Chars
                            val: '  if (seen)\n'
                            span_id: 141
                          ) (Token id:Id.Lit_Chars val:'    {\n' span_id:142) 
                          (Token
                            id: Id.Lit_Chars
                            val: '      if (!seen_enable || !seen_disable)\n'
                            span_id: 143
                          ) (Token id:Id.Lit_Chars val:'\t{\n' span_id:144) 
                          (Token
                            id: Id.Lit_Chars
                            val: '\t  printf "in '
                            span_id: 145
                          )
                        ) ($ Id.VSub_Number '$1') (SQ (Token id:Id.Lit_Chars val:'(%s) %s' span_id:149)) 
                        (word_part.EscapedLiteral
                          token: (Token id:Id.Lit_EscapedChar val:"\\'" span_id:151)
                        ) 
                        (SQ 
                          (Token
                            id: Id.Lit_Chars
                            val: 's cancellation missing\\n", object, seen\n'
                            span_id: 153
                          ) (Token id:Id.Lit_Chars val:'\t  ret = 1\n' span_id:154) 
                          (Token id:Id.Lit_Chars val:'\t}\n' span_id:155) (Token id:Id.Lit_Chars val:'    }\n' span_id:156) 
                          (Token
                            id: Id.Lit_Chars
                            val: '  seen=""\n'
                            span_id: 157
                          ) (Token id:Id.Lit_Chars val:'  seen_enable=""\n' span_id:158) 
                          (Token
                            id: Id.Lit_Chars
                            val: '  seen_disable=""\n'
                            span_id: 159
                          ) (Token id:Id.Lit_Chars val:'  object=gensub(/^.*\\[(.*)\\]:$/, "\\\\1", 1, $0)\n' span_id:160) 
                          (Token
                            id: Id.Lit_Chars
                            val: '  next\n'
                            span_id: 161
                          ) (Token id:Id.Lit_Chars val:'}\n' span_id:162) (Token id:Id.Lit_Chars val:'{\n' span_id:163) 
                          (Token
                            id: Id.Lit_Chars
                            val: '  if (C[$1] && $2 ~ /^[TW]$/)\n'
                            span_id: 164
                          ) (Token id:Id.Lit_Chars val:'    seen=$1\n' span_id:165) 
                          (Token
                            id: Id.Lit_Chars
                            val: 
'  else if ($1 ~ /^([.]|)__(libc|pthread)_enable_asynccancel$/ && $2 == "U")\n'
                            span_id: 166
                          ) (Token id:Id.Lit_Chars val:'    seen_enable=1\n' span_id:167) 
                          (Token
                            id: Id.Lit_Chars
                            val: 
'  else if ($1 ~ /^([.]|)__(libc|pthread)_disable_asynccancel$/ && $2 == "U")\n'
                            span_id: 168
                          ) (Token id:Id.Lit_Chars val:'    seen_disable=1\n' span_id:169) 
                          (Token id:Id.Lit_Chars val:'}\n' span_id:170) (Token id:Id.Lit_Chars val:'END {\n' span_id:171) 
                          (Token
                            id: Id.Lit_Chars
                            val: '  exit ret\n'
                            span_id: 172
                          ) (Token id:Id.Lit_Chars val:'}' span_id:173)
                        )
                      }
                    )
                  ]
                  negated: F
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:178)
                )
              ]
            )
            (C {(shift)})
          ]
        )
    )
  ]
)