(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ (integrity))} spids:[7])]
      spids: [7]
    )
    (C {(cp)} {($ VSub_Name '$OBJ') (/sshd_proxy)} {($ VSub_Name '$OBJ') (/sshd_proxy_bak)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tries) op:Equal rhs:{(10)} spids:[24])]
      spids: [24]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:startoffset) op:Equal rhs:{(2900)} spids:[27])]
      spids: [27]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:macs)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(${ VSub_Name SSH)} {(-Q)} {(mac)})])
                left_token: <Left_Backtick '`'>
                spids: [31 39]
              )
            }
          spids: [30]
        )
      ]
      spids: [30]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:macs)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name '$macs') (' ') 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(${ VSub_Name SSH)} {(-Q)} {(cipher-auth)})]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [51 59]
                )
              )
            }
          spids: [47]
        )
      ]
      spids: [47]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('KexAlgorithms diffie-hellman-group14-sha1,diffie-hellman-group1-sha1'))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_proxy)}
          spids: [77]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:cmd)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name '$SUDO') (' sh ') (${ VSub_Name SRC) ('/sshd-log-wrapper.sh ') 
                (${ VSub_Name TEST_SSHD_LOGFILE) (' ') (${ VSub_Name SSHD) (' -i -f ') ($ VSub_Name '$OBJ') (/sshd_proxy)
              )
            }
          spids: [86]
        )
      ]
      spids: [86]
    )
    (ForEach
      iter_name: m
      iter_words: [{($ VSub_Name '$macs')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(trace)} {(DQ ('test ') ($ VSub_Name '$tid') (': mac ') ($ VSub_Name '$m'))})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:elen) op:Equal rhs:{(0)} spids:[129])]
              spids: [129]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:epad) op:Equal rhs:{(0)} spids:[133])]
              spids: [133]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:emac) op:Equal rhs:{(0)} spids:[137])]
              spids: [137]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:etmo) op:Equal rhs:{(0)} spids:[141])]
              spids: [141]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ecnt) op:Equal rhs:{(0)} spids:[145])]
              spids: [145]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:skip) op:Equal rhs:{(0)} spids:[149])]
              spids: [149]
            )
            (ForEach
              iter_name: off
              iter_words: [
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(jot)} {($ VSub_Name '$tries')} {($ VSub_Name '$startoffset')})]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [159 165]
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:skip)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(expr)} {($ VSub_Name '$skip')} {(-)} {(1)})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [172 180]
                              )
                            }
                          spids: [171]
                        )
                      ]
                      spids: [171]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {($ VSub_Name '$skip')} {(-gt)} {(0)} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                          spids: [-1 196]
                        )
                      ]
                      spids: [-1 206]
                    )
                    (C {(cp)} {($ VSub_Name '$OBJ') (/sshd_proxy_bak)} 
                      {($ VSub_Name '$OBJ') (/sshd_proxy)}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pxy)
                          op: Equal
                          rhs: 
                            {
                              (DQ ('proxycommand=') ($ VSub_Name '$cmd') (' | ') ($ VSub_Name '$OBJ') 
                                ('/modpipe -wm xor:') ($ VSub_Name '$off') (':1')
                              )
                            }
                          spids: [222]
                        )
                      ]
                      spids: [222]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(${ VSub_Name SSH)} {(-Q)} {(cipher-auth)})
                                    (SimpleCommand
                                      words: [
                                        {(grep)}
                                        {
                                          (DQ ('^') (${ VSub_Name m) 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar '\\$'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: -1
                                          arg_word: {(/dev/null)}
                                          spids: [256]
                                        )
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: 2
                                          arg_word: {(1)}
                                          spids: [259]
                                        )
                                      ]
                                    )
                                  ]
                                  negated: False
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(echo)} {(DQ ('Ciphers=') ($ VSub_Name '$m'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)}
                                  spids: [274]
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:macopt)
                                  op: Equal
                                  rhs: {(DQ ('-c ') ($ VSub_Name '$m'))}
                                  spids: [280]
                                )
                              ]
                              spids: [280]
                            )
                          ]
                          spids: [-1 264]
                        )
                      ]
                      else_action: [
                        (SimpleCommand
                          words: [{(echo)} {(DQ ('Ciphers=aes128-ctr'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: -1
                              arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)}
                              spids: [296]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(DQ ('MACs=') ($ VSub_Name '$m'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: -1
                              arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)}
                              spids: [309]
                            )
                          ]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:macopt)
                              op: Equal
                              rhs: {(DQ ('-m ') ($ VSub_Name '$m') (' -c aes128-ctr'))}
                              spids: [315]
                            )
                          ]
                          spids: [315]
                        )
                      ]
                      spids: [287 323]
                    )
                    (C {(verbose)} 
                      {
                        (DQ ('test ') ($ VSub_Name '$tid') (': ') ($ VSub_Name '$m') (' @') 
                          ($ VSub_Name '$off')
                        )
                      }
                    )
                    (SimpleCommand
                      words: [
                        {(${ VSub_Name SSH)}
                        {($ VSub_Name '$macopt')}
                        {(-2F)}
                        {($ VSub_Name '$OBJ') (/ssh_proxy)}
                        {(-o)}
                        {(DQ ($ VSub_Name '$pxy'))}
                        {(-oServerAliveInterval) (Lit_Other '=') (1)}
                        {(-oServerAliveCountMax) (Lit_Other '=') (30)}
                        {(999.999.999.999)}
                        {(SQ <'printf "%4096s" " "'>)}
                      ]
                      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[373])]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(fail)} 
                              {
                                (DQ ('ssh -m ') ($ VSub_Name '$m') (' succeeds with bit-flip at ') 
                                  ($ VSub_Name '$off')
                                )
                              }
                            )
                          ]
                          spids: [-1 390]
                        )
                      ]
                      spids: [-1 403]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ecnt)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(expr)} {($ VSub_Name '$ecnt')} {(Lit_Other '+')} {(1)})
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [407 415]
                              )
                            }
                          spids: [406]
                        )
                      ]
                      spids: [406]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:out)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(egrep)} {(-v)} {(DQ ('^debug'))} 
                                            {($ VSub_Name '$TEST_SSH_LOGFILE')}
                                          )
                                          (C {(tail)} {(-2)})
                                          (C {(tr)} {(-s)} {(SQ <'\\r\\n'>)} {(SQ <.>)})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [419 451]
                              )
                            }
                          spids: [418]
                        )
                      ]
                      spids: [418]
                    )
                    (Case
                      to_match: {(DQ ($ VSub_Name '$out'))}
                      arms: [
                        (case_arm
                          pat_list: [{(Bad) (Lit_Other '?') (packet) (Lit_Other '*')}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:elen)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(expr)} {($ VSub_Name '$elen')} {(Lit_Other '+')} 
                                                    {(1)}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [470 478]
                                          )
                                        }
                                      spids: [469]
                                    )
                                  ]
                                  spids: [469]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:skip)
                                  op: Equal
                                  rhs: {(3)}
                                  spids: [481]
                                )
                              ]
                              spids: [481]
                            )
                          ]
                          spids: [463 467 483 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(Corrupted) (Lit_Other '?') (MAC) (Lit_Other '*')}
                            {(Lit_Other '*') (message) (Lit_Other '?') (authentication) (Lit_Other '?') 
                              (code) (Lit_Other '?') (incorrect) (Lit_Other '*')
                            }
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:emac)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(expr)} {($ VSub_Name '$emac')} {(Lit_Other '+')} 
                                                    {(1)}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [506 514]
                                          )
                                        }
                                      spids: [505]
                                    )
                                  ]
                                  spids: [505]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:skip)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [517]
                                )
                              ]
                              spids: [517]
                            )
                          ]
                          spids: [486 502 519 -1]
                        )
                        (case_arm
                          pat_list: [{(padding) (Lit_Other '*')}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:epad)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(expr)} {($ VSub_Name '$epad')} {(Lit_Other '+')} 
                                                    {(1)}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [527 535]
                                          )
                                        }
                                      spids: [526]
                                    )
                                  ]
                                  spids: [526]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:skip)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [538]
                                )
                              ]
                              spids: [538]
                            )
                          ]
                          spids: [522 524 540 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(fail)} 
                              {
                                (DQ ('unexpected error mac ') ($ VSub_Name '$m') (' at ') 
                                  ($ VSub_Name '$off') (': ') ($ VSub_Name '$out')
                                )
                              }
                            )
                          ]
                          spids: [543 544 556 -1]
                        )
                      ]
                      spids: [454 460 559]
                    )
                  ]
                  spids: [168 562]
                )
              spids: [158 166]
            )
            (C {(verbose)} 
              {
                (DQ ('test ') ($ VSub_Name '$tid') (': ') ($ VSub_Name '$ecnt') (' errors: mac ') 
                  ($ VSub_Name '$emac') (' padding ') ($ VSub_Name '$epad') (' length ') ($ VSub_Name '$elen')
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Name '$emac')} {(-eq)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(fail)} {(DQ ($ VSub_Name '$m') (': no mac errors'))})]
                  spids: [-1 594]
                )
              ]
              spids: [-1 605]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expect)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(expr)} {($ VSub_Name '$ecnt')} {(-)} {($ VSub_Name '$epad')} {(-)} 
                                {($ VSub_Name '$elen')}
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [609 621]
                      )
                    }
                  spids: [608]
                )
              ]
              spids: [608]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Name '$emac')} {(-ne)} {($ VSub_Name '$expect')} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(fail)} 
                      {
                        (DQ ($ VSub_Name '$m') (': expected ') ($ VSub_Name '$expect') 
                          (' mac errors, got ') ($ VSub_Name '$emac')
                        )
                      }
                    )
                  ]
                  spids: [-1 637]
                )
              ]
              spids: [-1 651]
            )
          ]
          spids: [116 653]
        )
      spids: [112 114]
    )
  ]
)