(CommandList
  children: [
    (FuncDef
      name: _bluetooth_adresses
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name COMP_BLUETOOTH_SCAN>
                                    suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{})
                                    spids: [17 20]
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:COMPREPLY)
                          op: PlusEqual
                          rhs: 
                            {
                              (ArrayLiteralPart
                                words: [
                                  {
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (DQ 
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (Pipeline
                                                            children: [
                                                              (C {(hcitool)} {(scan)})
                                                              (C {(awk)} {(SQ <'/^\\t/{print $1}'>)})
                                                            ]
                                                            negated: False
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_CommandSub '$('>
                                                    spids: [38 54]
                                                  )
                                                )
                                              } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [31 63]
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [28]
                        )
                      ]
                      spids: [28]
                    )
                  ]
                  spids: [16777215 25]
                )
              ]
              spids: [16777215 68]
            )
          ]
          spids: [8]
        )
      spids: [4 7]
    )
    (FuncDef
      name: _bluetooth_devices
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPREPLY)
                  op: PlusEqual
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} 
                                      {
                                        (DQ 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (Pipeline
                                                    children: [
                                                      (C {(hcitool)} {(dev)})
                                                      (C {(awk)} {(SQ <'/^\\t/{print $1}'>)})
                                                    ]
                                                    negated: False
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [90 106]
                                          )
                                        )
                                      } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [83 115]
                            )
                          }
                        ]
                      )
                    }
                  spids: [80]
                )
              ]
              spids: [80]
            )
          ]
          spids: [77]
        )
      spids: [73 76]
    )
    (FuncDef
      name: _bluetooth_services
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPREPLY)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} 
                                      {
                                        (SQ <'DID SP DUN LAN FAX OPUSH FTP HS HF HFAG SAP NAP\n'> 
                                          <
'        GN PANU HCRP HID CIP A2SRC A2SNK AVRCT AVRTG UDIUE UDITE SYNCML'
                                          >
                                        )
                                      } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [132 151]
                            )
                          }
                        ]
                      )
                    }
                  spids: [129]
                )
              ]
              spids: [129]
            )
          ]
          spids: [126]
        )
      spids: [122 125]
    )
    (FuncDef
      name: _bluetooth_packet_types
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPREPLY)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} {(SQ <'DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3'>)} 
                                      {(--)} {(DQ ($ VSub_Name '$cur'))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [168 186]
                            )
                          }
                        ]
                      )
                    }
                  spids: [165]
                )
              ]
              spids: [165]
            )
          ]
          spids: [162]
        )
      spids: [158 161]
    )
    (AndOr
      children: [
        (FuncDef
          name: _hcitool
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[202])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[204])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[206])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[208])
                    (assign_pair lhs:(LhsName name:split) op:Equal spids:[210])
                  ]
                  spids: [200]
                )
                (AndOr
                  children: [
                    (C {(_init_completion)} {(-s)})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  op_id: Op_DPipe
                )
                (Case
                  to_match: {($ VSub_Name '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [{(-i)}]
                      action: [
                        (C {(_bluetooth_devices)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [230 231 242 16777215]
                    )
                    (case_arm
                      pat_list: [{(--role)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(compgen)} {(-W)} {(SQ <'m s'>)} {(--)} 
                                                  {(DQ ($ VSub_Name '$cur'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [252 268]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [249]
                            )
                          ]
                          spids: [249]
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [245 246 278 16777215]
                    )
                    (case_arm
                      pat_list: [{(--pkt-type)}]
                      action: [
                        (C {(_bluetooth_packet_types)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [281 282 293 16777215]
                    )
                  ]
                  spids: [223 227 296]
                )
                (AndOr
                  children: [
                    (C {($ VSub_Name '$split')})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  op_id: Op_DAmp
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:arg) op:Equal spids:[312])]
                  spids: [310]
                )
                (C {(_get_first_arg)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$arg')})
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(DQ ($ VSub_Name '$cur'))}
                                          right: {(-) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} 
                                                          {(SQ <'$( _parse_help "$1" )'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [354 370]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [351]
                                    )
                                  ]
                                  spids: [351]
                                )
                              ]
                              spids: [16777215 348]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {
                                                        (SQ 
                                                          <
'dev inq scan name info spinq epinq cmd\n'
                                                          > <'                con cc dc sr cpt rssi lq tpl afh lst auth enc key clkoff\n'> 
                                                          <'                clock'>
                                                        )
                                                      } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [381 399]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [378]
                                )
                              ]
                              spids: [378]
                            )
                          ]
                          spids: [375 404]
                        )
                      ]
                      spids: [16777215 329]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:args) op:Equal spids:[412])]
                      spids: [410]
                    )
                    (Case
                      to_match: {($ VSub_Name '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(name)}
                            {(info)}
                            {(dc)}
                            {(rssi)}
                            {(lq)}
                            {(afh)}
                            {(auth)}
                            {(key)}
                            {(clkoff)}
                            {(lst)}
                          ]
                          action: [
                            (C {(_count_args)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_eq
                                              left: {($ VSub_Name '$args')}
                                              right: {(2)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(_bluetooth_adresses)})]
                                  spids: [16777215 460]
                                )
                              ]
                              spids: [16777215 466]
                            )
                          ]
                          spids: [422 441 469 16777215]
                        )
                        (case_arm
                          pat_list: [{(cc)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: {(DQ ($ VSub_Name '$cur'))}
                                              right: {(-) (Lit_Other '*')}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:COMPREPLY)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {(SQ <'--role --pkt-type'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [498 514]
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [495]
                                        )
                                      ]
                                      spids: [495]
                                    )
                                  ]
                                  spids: [16777215 492]
                                )
                              ]
                              else_action: [
                                (C {(_count_args)})
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_eq
                                                  left: {($ VSub_Name '$args')}
                                                  right: {(2)}
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [(C {(_bluetooth_adresses)})]
                                      spids: [16777215 538]
                                    )
                                  ]
                                  spids: [16777215 544]
                                )
                              ]
                              spids: [519 547]
                            )
                          ]
                          spids: [472 473 550 16777215]
                        )
                        (case_arm
                          pat_list: [{(sr)}]
                          action: [
                            (C {(_count_args)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_eq
                                              left: {($ VSub_Name '$args')}
                                              right: {(2)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(_bluetooth_adresses)})]
                                  spids: [16777215 573]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} {(SQ <'master slave'>)} 
                                                          {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [585 601]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [582]
                                    )
                                  ]
                                  spids: [582]
                                )
                              ]
                              spids: [579 606]
                            )
                          ]
                          spids: [553 554 609 16777215]
                        )
                        (case_arm
                          pat_list: [{(cpt)}]
                          action: [
                            (C {(_count_args)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_eq
                                              left: {($ VSub_Name '$args')}
                                              right: {(2)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(_bluetooth_adresses)})]
                                  spids: [16777215 632]
                                )
                              ]
                              else_action: [(C {(_bluetooth_packet_types)})]
                              spids: [638 644]
                            )
                          ]
                          spids: [612 613 647 16777215]
                        )
                        (case_arm
                          pat_list: [{(tpl)} {(enc)} {(clock)}]
                          action: [
                            (C {(_count_args)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_eq
                                              left: {($ VSub_Name '$args')}
                                              right: {(2)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(_bluetooth_adresses)})]
                                  spids: [16777215 674]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} {(SQ <'0 1'>)} {(--)} 
                                                          {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [686 702]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [683]
                                    )
                                  ]
                                  spids: [683]
                                )
                              ]
                              spids: [680 707]
                            )
                          ]
                          spids: [650 655 710 16777215]
                        )
                      ]
                      spids: [415 419 713]
                    )
                  ]
                  spids: [407 716]
                )
              ]
              spids: [197]
            )
          spids: [193 196]
        )
        (C {(complete)} {(-F)} {(_hcitool)} {(hcitool)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (FuncDef
          name: _sdptool
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[740])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[742])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[744])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[746])
                    (assign_pair lhs:(LhsName name:split) op:Equal spids:[748])
                  ]
                  spids: [738]
                )
                (AndOr
                  children: [
                    (C {(_init_completion)} {(-s)})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  op_id: Op_DPipe
                )
                (Case
                  to_match: {($ VSub_Name '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [{(--bdaddr)}]
                      action: [
                        (C {(_bluetooth_adresses)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [768 769 780 16777215]
                    )
                  ]
                  spids: [761 765 783]
                )
                (AndOr
                  children: [
                    (C {($ VSub_Name '$split')})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  op_id: Op_DAmp
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:arg) op:Equal spids:[799])]
                  spids: [797]
                )
                (C {(_get_first_arg)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$arg')})
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(DQ ($ VSub_Name '$cur'))}
                                          right: {(-) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} 
                                                          {(SQ <'$( _parse_help "$1" )'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [841 857]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [838]
                                    )
                                  ]
                                  spids: [838]
                                )
                              ]
                              spids: [16777215 835]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {
                                                        (SQ <'search browse records add del get\n'> 
                                                          <'                setattr setseq'>
                                                        )
                                                      } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [868 885]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [865]
                                )
                              ]
                              spids: [865]
                            )
                          ]
                          spids: [862 890]
                        )
                      ]
                      spids: [16777215 816]
                    )
                  ]
                  else_action: [
                    (Case
                      to_match: {($ VSub_Name '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{(search)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: {(DQ ($ VSub_Name '$cur'))}
                                              right: {(-) (Lit_Other '*')}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:COMPREPLY)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {(SQ <'--bdaddr --tree --raw --xml'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [929 947]
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [926]
                                        )
                                      ]
                                      spids: [926]
                                    )
                                  ]
                                  spids: [16777215 923]
                                )
                              ]
                              else_action: [(C {(_bluetooth_services)})]
                              spids: [952 958]
                            )
                          ]
                          spids: [903 904 961 16777215]
                        )
                        (case_arm
                          pat_list: [{(browse)} {(records)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: {(DQ ($ VSub_Name '$cur'))}
                                              right: {(-) (Lit_Other '*')}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:COMPREPLY)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {(SQ <'--tree --raw --xml'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [992 1008]
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [989]
                                        )
                                      ]
                                      spids: [989]
                                    )
                                  ]
                                  spids: [16777215 986]
                                )
                              ]
                              else_action: [(C {(_bluetooth_adresses)})]
                              spids: [1013 1019]
                            )
                          ]
                          spids: [964 967 1022 16777215]
                        )
                        (case_arm
                          pat_list: [{(add)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: {(DQ ($ VSub_Name '$cur'))}
                                              right: {(-) (Lit_Other '*')}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:COMPREPLY)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {(SQ <'--handle --channel'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [1051 1067]
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [1048]
                                        )
                                      ]
                                      spids: [1048]
                                    )
                                  ]
                                  spids: [16777215 1045]
                                )
                              ]
                              else_action: [(C {(_bluetooth_services)})]
                              spids: [1072 1078]
                            )
                          ]
                          spids: [1025 1026 1081 16777215]
                        )
                        (case_arm
                          pat_list: [{(get)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: {(DQ ($ VSub_Name '$cur'))}
                                              right: {(-) (Lit_Other '*')}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:COMPREPLY)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {(SQ <'--bdaddr --tree --raw --xml'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [1110 1128]
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [1107]
                                        )
                                      ]
                                      spids: [1107]
                                    )
                                  ]
                                  spids: [16777215 1104]
                                )
                              ]
                              spids: [16777215 1133]
                            )
                          ]
                          spids: [1084 1085 1136 16777215]
                        )
                      ]
                      spids: [896 900 1139]
                    )
                  ]
                  spids: [893 1142]
                )
              ]
              spids: [735]
            )
          spids: [731 734]
        )
        (C {(complete)} {(-F)} {(_sdptool)} {(sdptool)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (FuncDef
          name: _l2ping
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[1166])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[1168])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[1170])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[1172])
                  ]
                  spids: [1164]
                )
                (AndOr
                  children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)]
                  op_id: Op_DPipe
                )
                (Case
                  to_match: {($ VSub_Name '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [{(-i)}]
                      action: [
                        (C {(_bluetooth_devices)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [1190 1191 1202 16777215]
                    )
                    (case_arm
                      pat_list: [{(-s)} {(-c)} {(-t)} {(-d)}]
                      action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                      spids: [1205 1212 1220 16777215]
                    )
                  ]
                  spids: [1183 1187 1223]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {(DQ ($ VSub_Name '$cur'))}
                                  right: {(-) (Lit_Other '*')}
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(compgen)} {(-W)} {(SQ <'$( _parse_usage "$1" )'>)} 
                                                  {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1249 1265]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [1246]
                            )
                          ]
                          spids: [1246]
                        )
                      ]
                      spids: [16777215 1243]
                    )
                  ]
                  else_action: [(C {(_bluetooth_adresses)})]
                  spids: [1270 1276]
                )
              ]
              spids: [1161]
            )
          spids: [1157 1160]
        )
        (C {(complete)} {(-F)} {(_l2ping)} {(l2ping)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (FuncDef
          name: _rfcomm
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[1300])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[1302])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[1304])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[1306])
                  ]
                  spids: [1298]
                )
                (AndOr
                  children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)]
                  op_id: Op_DPipe
                )
                (Case
                  to_match: {($ VSub_Name '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [{(-f)} {(--config)}]
                      action: [
                        (C {(_filedir)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [1324 1327 1338 16777215]
                    )
                    (case_arm
                      pat_list: [{(-i)}]
                      action: [
                        (C {(_bluetooth_devices)})
                        (C {(_bluetooth_adresses)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [1341 1342 1356 16777215]
                    )
                  ]
                  spids: [1317 1321 1359]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:arg) op:Equal spids:[1365])]
                  spids: [1363]
                )
                (C {(_get_first_arg)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$arg')})
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(DQ ($ VSub_Name '$cur'))}
                                          right: {(-) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} 
                                                          {(SQ <'$( _parse_help "$1" )'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [1407 1423]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [1404]
                                    )
                                  ]
                                  spids: [1404]
                                )
                              ]
                              spids: [16777215 1401]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {
                                                        (SQ <'show connect listen watch bind\n'> 
                                                          <'                release'>
                                                        )
                                                      } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [1434 1451]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [1431]
                                )
                              ]
                              spids: [1431]
                            )
                          ]
                          spids: [1428 1456]
                        )
                      ]
                      spids: [16777215 1382]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:args) op:Equal spids:[1464])]
                      spids: [1462]
                    )
                    (C {(_count_args)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_eq
                                      left: {($ VSub_Name '$args')}
                                      right: {(2)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(_bluetooth_devices)})]
                          spids: [16777215 1483]
                        )
                      ]
                      else_action: [
                        (Case
                          to_match: {($ VSub_Name '$arg')}
                          arms: [
                            (case_arm
                              pat_list: [{(connect)} {(bind)}]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_eq
                                                  left: {($ VSub_Name '$args')}
                                                  right: {(3)}
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [(C {(_bluetooth_adresses)})]
                                      spids: [16777215 1518]
                                    )
                                  ]
                                  spids: [16777215 1524]
                                )
                              ]
                              spids: [1499 1502 1527 16777215]
                            )
                          ]
                          spids: [1492 1496 1530]
                        )
                      ]
                      spids: [1489 1533]
                    )
                  ]
                  spids: [1459 1536]
                )
              ]
              spids: [1295]
            )
          spids: [1291 1294]
        )
        (C {(complete)} {(-F)} {(_rfcomm)} {(rfcomm)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (FuncDef
          name: _ciptool
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[1560])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[1562])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[1564])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[1566])
                  ]
                  spids: [1558]
                )
                (AndOr
                  children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)]
                  op_id: Op_DPipe
                )
                (Case
                  to_match: {($ VSub_Name '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [{(-i)}]
                      action: [
                        (C {(_bluetooth_devices)})
                        (C {(_bluetooth_adresses)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [1584 1585 1599 16777215]
                    )
                  ]
                  spids: [1577 1581 1602]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:arg) op:Equal spids:[1608])]
                  spids: [1606]
                )
                (C {(_get_first_arg)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$arg')})
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(DQ ($ VSub_Name '$cur'))}
                                          right: {(-) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} 
                                                          {(SQ <'$( _parse_help "$1" )'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [1650 1666]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [1647]
                                    )
                                  ]
                                  spids: [1647]
                                )
                              ]
                              spids: [16777215 1644]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {(SQ <'show search connect release loopback'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [1677 1695]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [1674]
                                )
                              ]
                              spids: [1674]
                            )
                          ]
                          spids: [1671 1700]
                        )
                      ]
                      spids: [16777215 1625]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:args) op:Equal spids:[1708])]
                      spids: [1706]
                    )
                    (Case
                      to_match: {($ VSub_Name '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{(connect)} {(release)} {(loopback)}]
                          action: [
                            (C {(_count_args)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_eq
                                              left: {($ VSub_Name '$args')}
                                              right: {(2)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(_bluetooth_adresses)})]
                                  spids: [16777215 1742]
                                )
                              ]
                              spids: [16777215 1748]
                            )
                          ]
                          spids: [1718 1723 1751 16777215]
                        )
                      ]
                      spids: [1711 1715 1754]
                    )
                  ]
                  spids: [1703 1757]
                )
              ]
              spids: [1555]
            )
          spids: [1551 1554]
        )
        (C {(complete)} {(-F)} {(_ciptool)} {(ciptool)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (FuncDef
          name: _dfutool
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[1781])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[1783])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[1785])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[1787])
                  ]
                  spids: [1779]
                )
                (AndOr
                  children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)]
                  op_id: Op_DPipe
                )
                (Case
                  to_match: {($ VSub_Name '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [{(-d)} {(--device)}]
                      action: [
                        (C {(_bluetooth_devices)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [1805 1808 1819 16777215]
                    )
                  ]
                  spids: [1798 1802 1822]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {(DQ ($ VSub_Name '$cur'))}
                                  right: {(-) (Lit_Other '*')}
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(compgen)} {(-W)} {(SQ <'$( _parse_help "$1" )'>)} 
                                                  {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1848 1864]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [1845]
                            )
                          ]
                          spids: [1845]
                        )
                      ]
                      spids: [16777215 1842]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:args) op:Equal spids:[1874])]
                      spids: [1872]
                    )
                    (C {(_count_args)})
                    (Case
                      to_match: {($ VSub_Name '$args')}
                      arms: [
                        (case_arm
                          pat_list: [{(1)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {(SQ <'verify modify upgrade archive'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [1894 1912]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [1891]
                                )
                              ]
                              spids: [1891]
                            )
                          ]
                          spids: [1887 1888 1917 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [(C {(_filedir)})]
                          spids: [1920 1921 1927 16777215]
                        )
                      ]
                      spids: [1880 1884 1930]
                    )
                  ]
                  spids: [1869 1933]
                )
              ]
              spids: [1776]
            )
          spids: [1772 1775]
        )
        (C {(complete)} {(-F)} {(_dfutool)} {(dfutool)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (FuncDef
          name: _hciconfig
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[1957])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[1959])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[1961])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[1963])
                  ]
                  spids: [1955]
                )
                (AndOr
                  children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)]
                  op_id: Op_DPipe
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:arg) op:Equal spids:[1976])]
                  spids: [1974]
                )
                (C {(_get_first_arg)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$arg')})
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(DQ ($ VSub_Name '$cur'))}
                                          right: {(-) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} {(SQ <'--help --all'>)} 
                                                          {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [2018 2034]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [2015]
                                    )
                                  ]
                                  spids: [2015]
                                )
                              ]
                              spids: [16777215 2012]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {
                                                        (SQ 
                                                          <
'up down reset rstat auth noauth encrypt\n'
                                                          > <'                noencrypt secmgr nosecmgr piscan noscan iscan pscan ptype name\n'> 
                                                          <
'                class voice iac inqmode inqdata inqtype inqparams pageparms\n'
                                                          > <'                pageto afhmode aclmtu scomtu putkey delkey commands features\n'> 
                                                          <'                version revision lm'>
                                                        )
                                                      } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2045 2065]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [2042]
                                )
                              ]
                              spids: [2042]
                            )
                          ]
                          spids: [2039 2070]
                        )
                      ]
                      spids: [16777215 1993]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:args) op:Equal spids:[2078])]
                      spids: [2076]
                    )
                    (Case
                      to_match: {($ VSub_Name '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{(putkey)} {(delkey)}]
                          action: [
                            (C {(_count_args)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_eq
                                              left: {($ VSub_Name '$args')}
                                              right: {(2)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(_bluetooth_adresses)})]
                                  spids: [16777215 2110]
                                )
                              ]
                              spids: [16777215 2116]
                            )
                          ]
                          spids: [2088 2091 2119 16777215]
                        )
                        (case_arm
                          pat_list: [{(lm)}]
                          action: [
                            (C {(_count_args)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_eq
                                              left: {($ VSub_Name '$args')}
                                              right: {(2)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:COMPREPLY)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {(SQ <'MASTER SLAVE NONE ACCEPT'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [2148 2166]
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [2145]
                                        )
                                      ]
                                      spids: [2145]
                                    )
                                  ]
                                  spids: [16777215 2142]
                                )
                              ]
                              spids: [16777215 2171]
                            )
                          ]
                          spids: [2122 2123 2174 16777215]
                        )
                        (case_arm
                          pat_list: [{(ptype)}]
                          action: [
                            (C {(_count_args)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_eq
                                              left: {($ VSub_Name '$args')}
                                              right: {(2)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(_bluetooth_packet_types)})]
                                  spids: [16777215 2197]
                                )
                              ]
                              spids: [16777215 2203]
                            )
                          ]
                          spids: [2177 2178 2206 16777215]
                        )
                      ]
                      spids: [2081 2085 2209]
                    )
                  ]
                  spids: [2073 2212]
                )
              ]
              spids: [1952]
            )
          spids: [1948 1951]
        )
        (C {(complete)} {(-F)} {(_hciconfig)} {(hciconfig)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (FuncDef
          name: _hciattach
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[2236])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[2238])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[2240])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[2242])
                  ]
                  spids: [2234]
                )
                (AndOr
                  children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)]
                  op_id: Op_DPipe
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {(DQ ($ VSub_Name '$cur'))}
                                  right: {(-) (Lit_Other '*')}
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(compgen)} {(-W)} {(SQ <'-n -p -t -b -s -l'>)} {(--)} 
                                                  {(DQ ($ VSub_Name '$cur'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [2275 2291]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [2272]
                            )
                          ]
                          spids: [2272]
                        )
                      ]
                      spids: [16777215 2269]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:args) op:Equal spids:[2301])]
                      spids: [2299]
                    )
                    (C {(_count_args)})
                    (Case
                      to_match: {($ VSub_Name '$args')}
                      arms: [
                        (case_arm
                          pat_list: [{(1)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(printf)} {(SQ <'%s\\n'>)} 
                                                      {(/dev/tty) (Lit_Other '*')}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2321 2332]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [2318]
                                )
                              ]
                              spids: [2318]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {
                                                        (SQ <'${COMPREPLY[@]}\n'> 
                                                          <
'                    ${COMPREPLY[@]#/dev/}'
                                                          >
                                                        )
                                                      } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2340 2357]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [2337]
                                )
                              ]
                              spids: [2337]
                            )
                          ]
                          spids: [2314 2315 2362 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {
                                                        (SQ <'any ericsson digi xircom csr bboxes\n'> 
                                                          <
'                    swave bcsp 0x0105 0x080a 0x0160 0x0002'
                                                          >
                                                        )
                                                      } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2372 2389]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [2369]
                                )
                              ]
                              spids: [2369]
                            )
                          ]
                          spids: [2365 2366 2394 16777215]
                        )
                        (case_arm
                          pat_list: [{(3)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {
                                                        (SQ 
                                                          <
'9600 19200 38400 57600 115200 230400\n'
                                                          > <'                    460800 921600'>
                                                        )
                                                      } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2404 2421]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [2401]
                                )
                              ]
                              spids: [2401]
                            )
                          ]
                          spids: [2397 2398 2426 16777215]
                        )
                        (case_arm
                          pat_list: [{(4)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} {(SQ <'flow noflow'>)} {(--)} 
                                                      {(DQ ($ VSub_Name '$cur'))}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2436 2452]
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [2433]
                                )
                              ]
                              spids: [2433]
                            )
                          ]
                          spids: [2429 2430 2457 16777215]
                        )
                        (case_arm
                          pat_list: [{(5)}]
                          action: [(C {(_bluetooth_adresses)})]
                          spids: [2460 2461 2467 16777215]
                        )
                      ]
                      spids: [2307 2311 2470]
                    )
                  ]
                  spids: [2296 2473]
                )
              ]
              spids: [2231]
            )
          spids: [2227 2230]
        )
        (C {(complete)} {(-F)} {(_hciattach)} {(hciattach)})
      ]
      op_id: Op_DAmp
    )
  ]
)