(command.CommandList
  children: [
    (C {<Id.KW_Set set>} {<-e>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:codir)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$1')}
          spids: [57]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_wrapper_env)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number '$2'))}
          spids: [60]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:run_program_env)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number '$3'))}
          spids: [65]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:temp1)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$codir') </iconvdata/iconv-test.xxx>}
          spids: [74]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:temp2)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$codir') </iconvdata/iconv-test.yyy>}
          spids: [78]
        )
      ]
    )
    (C {<trap>} {(DQ <'rm -f '> ($ Id.VSub_DollarName '$temp1') <' '> ($ Id.VSub_DollarName '$temp2'))} 
      {<1>} {<2>} {<3>} {<15>}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LIBPATH)
          op: assign_op.Equal
          rhs: 
            {($ Id.VSub_DollarName '$codir') <Id.Lit_Other ':'> ($ Id.VSub_DollarName '$codir') 
              </iconvdata>
            }
          spids: [104]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ICONV)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'$codir/elf/ld.so --library-path $LIBPATH --inhibit-rpath ${from}.so \\\n'> 
                <'       $codir/iconv/iconv_prog'>
              )
            }
          spids: [114]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ICONV)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$test_wrapper_env') <' '> 
                ($ Id.VSub_DollarName '$run_program_env') <' '> ($ Id.VSub_DollarName '$ICONV')
              )
            }
          spids: [120]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Pipeline
                  children: [
                    (command.Subshell
                      command_list: 
                        (command.CommandList
                          children: [
                            (command.Sentence
                              child: (C {<echo>} {(DQ <testing> <Id.Lit_Other '\\'> <c>)})
                              terminator: <Id.Op_Semi _>
                            )
                            (C {<echo>} {<1> <Id.Lit_Comma ','> <2> <Id.Lit_Comma ','> <3>})
                          ]
                        )
                    )
                    (command.Simple
                      words: [{<grep>} {<c>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})]
                    )
                  ]
                  negated: F
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ac_n)
                  op: assign_op.Equal
                  rhs: {<-n>}
                  spids: [167]
                )
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ac_c)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [170]
                )
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ac_t)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [172]
                )
              ]
            )
          ]
          spids: [133 164]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:ac_n)
              op: assign_op.Equal
              rhs: (word.Empty)
              spids: [177]
            )
            (assign_pair
              lhs: (sh_lhs_expr.Name name:ac_c)
              op: assign_op.Equal
              rhs: {(SQ <'\\c'>)}
              spids: [179]
            )
            (assign_pair
              lhs: (sh_lhs_expr.Name name:ac_t)
              op: assign_op.Equal
              rhs: (word.Empty)
              spids: [184]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:failed)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [195]
        )
      ]
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [
        (command.Sentence
          child: (C {<read>} {<from>} {<to>} {<subset>} {<targets>})
          terminator: <Id.Op_Semi _>
        )
      ]
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$subset'))})
                            (C {<test>} {(DQ ($ Id.VSub_DollarName '$from'))} {<Id.Lit_Equals '='>} 
                              {(SQ <'#'>)}
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [218 243]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PROG)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        command_list: 
                          (command.CommandList
                            children: [(C {<eval>} {<echo>} {($ Id.VSub_DollarName '$ICONV')})]
                          )
                      )
                    }
                  spids: [256]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$targets'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ForEach
                      iter_name: t
                      iter_words: [{($ Id.VSub_DollarName '$targets')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-f>} {<testdata/> ($ Id.VSub_DollarName '$from')})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {
                                        (DQ <'   test data: '> ($ Id.VSub_DollarName '$from') <' -> '> 
                                          ($ Id.VSub_DollarName '$t') <' '> ($ Id.VSub_DollarName '$ac_c')
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName '$PROG')}
                                            {<-f>}
                                            {($ Id.VSub_DollarName '$from')}
                                            {<-t>}
                                            {($ Id.VSub_DollarName '$t')}
                                            {<testdata/> ($ Id.VSub_DollarName '$from')}
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_Less '<'>
                                              fd: -1
                                              arg_word: {</dev/null>}
                                            )
                                            (redir.Redir
                                              op: <Id.Redir_Great '>'>
                                              fd: -1
                                              arg_word: {($ Id.VSub_DollarName '$temp1')}
                                            )
                                          ]
                                        )
                                        (command.BraceGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {($ Id.VSub_QMark '$?')} {<-gt>} 
                                                          {<128>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Exit exit>
                                                          arg_word: {<1>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  spids: [348 359]
                                                )
                                              ]
                                            )
                                            (command.Sentence
                                              child: (C {<echo>} {(DQ <FAILED>)})
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:failed)
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                      spids: [376]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {(DQ <OK> ($ Id.VSub_DollarName '$ac_c'))}
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-s>} 
                                                  {<testdata/> ($ Id.VSub_DollarName '$from') <..> 
                                                    ($ Id.VSub_DollarName '$t')
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (command.Simple
                                                  words: [
                                                    {<cmp>}
                                                    {($ Id.VSub_DollarName '$temp1')}
                                                    {<testdata/> ($ Id.VSub_DollarName '$from') <..> 
                                                      ($ Id.VSub_DollarName '$t')
                                                    }
                                                  ]
                                                  redirects: [
                                                    (redir.Redir
                                                      op: <Id.Redir_Great '>'>
                                                      fd: -1
                                                      arg_word: {</dev/null>}
                                                    )
                                                    (redir.Redir
                                                      op: <Id.Redir_GreatAnd '2>&'>
                                                      fd: 2
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  more_env: [
                                                    (env_pair
                                                      name: LC_ALL
                                                      val: {<C>}
                                                      spids: [411]
                                                    )
                                                  ]
                                                )
                                                (command.BraceGroup
                                                  children: [
                                                    (command.Sentence
                                                      child: (C {<echo>} {(DQ </FAILED>)})
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                    (command.Sentence
                                                      child: 
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:failed)
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                              spids: [442]
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                    (command.Sentence
                                                      child: 
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Continue continue>
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                              {(DQ </OK> ($ Id.VSub_DollarName '$ac_c'))}
                                            )
                                          ]
                                          spids: [396 408]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {
                                        (DQ <' -> '> ($ Id.VSub_DollarName '$from') <' '> 
                                          ($ Id.VSub_DollarName '$ac_c')
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName '$PROG')}
                                            {<-f>}
                                            {($ Id.VSub_DollarName '$t')}
                                            {<-t>}
                                            {($ Id.VSub_DollarName '$to')}
                                            {<-o>}
                                            {($ Id.VSub_DollarName '$temp2')}
                                            {($ Id.VSub_DollarName '$temp1')}
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_Less '<'>
                                              fd: -1
                                              arg_word: {</dev/null>}
                                            )
                                          ]
                                        )
                                        (command.BraceGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {($ Id.VSub_QMark '$?')} {<-gt>} 
                                                          {<128>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Exit exit>
                                                          arg_word: {<1>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  spids: [502 513]
                                                )
                                              ]
                                            )
                                            (command.Sentence
                                              child: (C {<echo>} {(DQ <FAILED>)})
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:failed)
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                      spids: [530]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {(DQ <OK> ($ Id.VSub_DollarName '$ac_c'))}
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-s>} {($ Id.VSub_DollarName '$temp1')})
                                        (command.Simple
                                          words: [
                                            {<cmp>}
                                            {<testdata/> ($ Id.VSub_DollarName '$from')}
                                            {($ Id.VSub_DollarName '$temp2')}
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_Great '>'>
                                              fd: -1
                                              arg_word: {</dev/null>}
                                            )
                                            (redir.Redir
                                              op: <Id.Redir_GreatAnd '2>&'>
                                              fd: 2
                                              arg_word: {<1>}
                                            )
                                          ]
                                          more_env: [(env_pair name:LC_ALL val:{<C>} spids:[559])]
                                        )
                                        (command.BraceGroup
                                          children: [
                                            (command.Sentence
                                              child: (C {<echo>} {(DQ </FAILED>)})
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:failed)
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                      spids: [588]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {(DQ </OK>)})
                                    (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$temp1')} 
                                      {($ Id.VSub_DollarName '$temp2')}
                                    )
                                  ]
                                  spids: [295 305]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {($ Id.VSub_DollarName '$subset')} 
                                          {<Id.Lit_Equals '='>} {<Y>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {
                                        (DQ <'      suntzu: '> ($ Id.VSub_DollarName '$from') <' -> '> 
                                          ($ Id.VSub_DollarName '$t') <' -> '> ($ Id.VSub_DollarName '$to') <' '> ($ Id.VSub_DollarName '$ac_c')
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (command.Simple
                                              words: [
                                                {($ Id.VSub_DollarName '$PROG')}
                                                {<-f>}
                                                {($ Id.VSub_DollarName '$from')}
                                                {<-t>}
                                                {($ Id.VSub_DollarName '$t')}
                                                {<testdata/suntzus>}
                                              ]
                                              redirects: [
                                                (redir.Redir
                                                  op: <Id.Redir_Less '<'>
                                                  fd: -1
                                                  arg_word: {</dev/null>}
                                                )
                                              ]
                                            )
                                            (command.Simple
                                              words: [
                                                {($ Id.VSub_DollarName '$PROG')}
                                                {<-f>}
                                                {($ Id.VSub_DollarName '$t')}
                                                {<-t>}
                                                {($ Id.VSub_DollarName '$to')}
                                              ]
                                              redirects: [
                                                (redir.Redir
                                                  op: <Id.Redir_Great '>'>
                                                  fd: -1
                                                  arg_word: {($ Id.VSub_DollarName '$temp1')}
                                                )
                                              ]
                                            )
                                          ]
                                          negated: F
                                        )
                                        (command.BraceGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {($ Id.VSub_QMark '$?')} {<-gt>} 
                                                          {<128>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Exit exit>
                                                          arg_word: {<1>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  spids: [698 709]
                                                )
                                              ]
                                            )
                                            (command.Sentence
                                              child: (C {<echo>} {(DQ <FAILED>)})
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:failed)
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                      spids: [726]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {(DQ <OK> ($ Id.VSub_DollarName '$ac_c'))}
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.Simple
                                          words: [
                                            {<cmp>}
                                            {<testdata/suntzus>}
                                            {($ Id.VSub_DollarName '$temp1')}
                                          ]
                                          more_env: [(env_pair name:LC_ALL val:{<C>} spids:[746])]
                                        )
                                        (command.BraceGroup
                                          children: [
                                            (command.Sentence
                                              child: (C {<echo>} {(DQ </FAILED>)})
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:failed)
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                      spids: [767]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {(DQ </OK>)})
                                  ]
                                  spids: [630 641]
                                )
                              ]
                            )
                            (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$temp1')})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$t'))} 
                                          {<Id.Lit_Equals '='>} {<UTF8>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:tc)
                                              op: assign_op.Equal
                                              rhs: {<UTF-8>}
                                              spids: [814]
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  spids: [799 812]
                                )
                              ]
                              else_action: [
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tc)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$t'))}
                                          spids: [820]
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {<-f>} 
                                              {<../localedata/charmaps/> 
                                                ($ Id.VSub_DollarName '$from')
                                              }
                                            )
                                            (C {<test>} {<-f>} 
                                              {<../localedata/charmaps/> ($ Id.VSub_DollarName '$tc')}
                                            )
                                            (C {<test>} {<-f>} 
                                              {<testdata/> ($ Id.VSub_DollarName '$from')}
                                            )
                                            (command.Pipeline
                                              children: [
                                                (command.Simple
                                                  words: [
                                                    {<grep>}
                                                    {(SQ <'<U....><U....>'>)}
                                                    {<../localedata/charmaps/> 
                                                      ($ Id.VSub_DollarName '$from')
                                                    }
                                                  ]
                                                  redirects: [
                                                    (redir.Redir
                                                      op: <Id.Redir_Great '>'>
                                                      fd: -1
                                                      arg_word: {</dev/null>}
                                                    )
                                                  ]
                                                )
                                              ]
                                              negated: T
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {
                                        (DQ <'test charmap: '> ($ Id.VSub_DollarName '$from') <' -> '> 
                                          ($ Id.VSub_DollarName '$t') <' '> ($ Id.VSub_DollarName '$ac_c')
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName '$PROG')}
                                            {<-f>}
                                            {<../localedata/charmaps/> ($ Id.VSub_DollarName '$from')}
                                            {<-t>}
                                            {<../localedata/charmaps/> ($ Id.VSub_DollarName '$tc')}
                                            {<testdata/> ($ Id.VSub_DollarName '$from')}
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_Less '<'>
                                              fd: -1
                                              arg_word: {</dev/null>}
                                            )
                                            (redir.Redir
                                              op: <Id.Redir_Great '>'>
                                              fd: -1
                                              arg_word: {($ Id.VSub_DollarName '$temp1')}
                                            )
                                          ]
                                        )
                                        (command.BraceGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {($ Id.VSub_QMark '$?')} {<-gt>} 
                                                          {<128>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Exit exit>
                                                          arg_word: {<1>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  spids: [924 935]
                                                )
                                              ]
                                            )
                                            (command.Sentence
                                              child: (C {<echo>} {(DQ <FAILED>)})
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:failed)
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                      spids: [952]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {(DQ <OK> ($ Id.VSub_DollarName '$ac_c'))}
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-s>} 
                                                  {<testdata/> ($ Id.VSub_DollarName '$from') <..> 
                                                    ($ Id.VSub_DollarName '$t')
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (command.Simple
                                                  words: [
                                                    {<cmp>}
                                                    {($ Id.VSub_DollarName '$temp1')}
                                                    {<testdata/> ($ Id.VSub_DollarName '$from') <..> 
                                                      ($ Id.VSub_DollarName '$t')
                                                    }
                                                  ]
                                                  redirects: [
                                                    (redir.Redir
                                                      op: <Id.Redir_Great '>'>
                                                      fd: -1
                                                      arg_word: {</dev/null>}
                                                    )
                                                    (redir.Redir
                                                      op: <Id.Redir_GreatAnd '2>&'>
                                                      fd: 2
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  more_env: [
                                                    (env_pair
                                                      name: LC_ALL
                                                      val: {<C>}
                                                      spids: [987]
                                                    )
                                                  ]
                                                )
                                                (command.BraceGroup
                                                  children: [
                                                    (command.Sentence
                                                      child: (C {<echo>} {(DQ </FAILED>)})
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                    (command.Sentence
                                                      child: 
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:failed)
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                              spids: [1018]
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                    (command.Sentence
                                                      child: 
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Continue continue>
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                              {(DQ </OK> ($ Id.VSub_DollarName '$ac_c'))}
                                            )
                                          ]
                                          spids: [972 984]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {
                                        (DQ <' -> '> ($ Id.VSub_DollarName '$from') <' '> 
                                          ($ Id.VSub_DollarName '$ac_c')
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName '$PROG')}
                                            {<-t>}
                                            {<../localedata/charmaps/> ($ Id.VSub_DollarName '$from')}
                                            {<-f>}
                                            {<../localedata/charmaps/> ($ Id.VSub_DollarName '$tc')}
                                            {<-o>}
                                            {($ Id.VSub_DollarName '$temp2')}
                                            {($ Id.VSub_DollarName '$temp1')}
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_Less '<'>
                                              fd: -1
                                              arg_word: {</dev/null>}
                                            )
                                          ]
                                        )
                                        (command.BraceGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {($ Id.VSub_QMark '$?')} {<-gt>} 
                                                          {<128>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Exit exit>
                                                          arg_word: {<1>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  spids: [1082 1093]
                                                )
                                              ]
                                            )
                                            (command.Sentence
                                              child: (C {<echo>} {(DQ <FAILED>)})
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:failed)
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                      spids: [1110]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                                      {(DQ <OK> ($ Id.VSub_DollarName '$ac_c'))}
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-s>} {($ Id.VSub_DollarName '$temp1')})
                                        (command.Simple
                                          words: [
                                            {<cmp>}
                                            {<testdata/> ($ Id.VSub_DollarName '$from')}
                                            {($ Id.VSub_DollarName '$temp2')}
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_Great '>'>
                                              fd: -1
                                              arg_word: {</dev/null>}
                                            )
                                            (redir.Redir
                                              op: <Id.Redir_GreatAnd '2>&'>
                                              fd: 2
                                              arg_word: {<1>}
                                            )
                                          ]
                                          more_env: [(env_pair name:LC_ALL val:{<C>} spids:[1139])]
                                        )
                                        (command.BraceGroup
                                          children: [
                                            (command.Sentence
                                              child: (C {<echo>} {(DQ </FAILED>)})
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:failed)
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                      spids: [1168]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {(DQ </OK>)})
                                    (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$temp1')} 
                                      {($ Id.VSub_DollarName '$temp2')}
                                    )
                                  ]
                                  spids: [829 877]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [269 280]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$subset'))} {<Id.Lit_Equals '='>} {<N>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                      {
                        (DQ <'      suntzu: ASCII -> '> ($ Id.VSub_DollarName '$to') <' -> ASCII '> 
                          ($ Id.VSub_DollarName '$ac_c')
                        )
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Pipeline
                          children: [
                            (command.Simple
                              words: [
                                {($ Id.VSub_DollarName '$PROG')}
                                {<-f>}
                                {<ASCII>}
                                {<-t>}
                                {($ Id.VSub_DollarName '$to')}
                                {<testdata/suntzus>}
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Less '<'>
                                  fd: -1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                            (command.Simple
                              words: [
                                {($ Id.VSub_DollarName '$PROG')}
                                {<-f>}
                                {($ Id.VSub_DollarName '$to')}
                                {<-t>}
                                {<ASCII>}
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$temp1')}
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (command.BraceGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<test>} {($ Id.VSub_QMark '$?')} {<-gt>} {<128>})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  spids: [1270 1281]
                                )
                              ]
                            )
                            (command.Sentence
                              child: (C {<echo>} {(DQ <FAILED>)})
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:failed)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [1298]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      ]
                    )
                    (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
                      {(DQ <OK> ($ Id.VSub_DollarName '$ac_c'))}
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Simple
                          words: [{<cmp>} {<testdata/suntzus>} {($ Id.VSub_DollarName '$temp1')}]
                          more_env: [(env_pair name:LC_ALL val:{<C>} spids:[1318])]
                        )
                        (command.BraceGroup
                          children: [
                            (command.Sentence
                              child: (C {<echo>} {(DQ </FAILED>)})
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:failed)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [1339]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      ]
                    )
                    (C {<echo>} {(DQ </OK>)})
                  ]
                  spids: [1204 1217]
                )
              ]
            )
          ]
        )
      redirects: [(redir.Redir op:<Id.Redir_Less '<'> fd:-1 arg_word:{<TESTS>})]
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [
        (command.Sentence
          child: (C {<read>} {<utf8>} {<from>} {<filename>})
          terminator: <Id.Op_Semi _>
        )
      ]
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$filename'))})
                            (C {<test>} {(DQ ($ Id.VSub_DollarName '$utf8'))} {<Id.Lit_Equals '='>} 
                              {(SQ <'#'>)}
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1389 1414]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PROG)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        command_list: 
                          (command.CommandList
                            children: [(C {<eval>} {<echo>} {($ Id.VSub_DollarName '$ICONV')})]
                          )
                      )
                    }
                  spids: [1427]
                )
              ]
            )
            (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
              {
                (DQ <'test encoder: '> ($ Id.VSub_DollarName '$utf8') <' -> '> 
                  ($ Id.VSub_DollarName '$from') <' '> ($ Id.VSub_DollarName '$ac_c')
                )
              }
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$PROG')}
                {<-f>}
                {($ Id.VSub_DollarName '$utf8')}
                {<-t>}
                {($ Id.VSub_DollarName '$from')}
              ]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Less '<'>
                  fd: -1
                  arg_word: {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name utf8)}
                )
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$temp1')}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {<cmp>}
                    {($ Id.VSub_DollarName '$temp1')}
                    {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name from) <.BE>}
                  ]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Great '>'>
                      fd: -1
                      arg_word: {</dev/null>}
                    )
                    (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{<C>} spids:[1484])]
                )
                (command.Simple
                  words: [
                    {<cmp>}
                    {($ Id.VSub_DollarName '$temp1')}
                    {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name from) <.LE>}
                  ]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Great '>'>
                      fd: -1
                      arg_word: {</dev/null>}
                    )
                    (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{<C>} spids:[1511])]
                )
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: (C {<echo>} {(DQ </FAILED>)})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:failed)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [1547]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              ]
            )
            (C {<echo>} {(DQ <OK>)})
            (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
              {
                (DQ <'test decoder: '> ($ Id.VSub_DollarName '$from') <' -> '> 
                  ($ Id.VSub_DollarName '$utf8') <' '> ($ Id.VSub_DollarName '$ac_c')
                )
              }
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$PROG')}
                {<-f>}
                {($ Id.VSub_DollarName '$from')}
                {<-t>}
                {($ Id.VSub_DollarName '$utf8')}
              ]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Less '<'>
                  fd: -1
                  arg_word: {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name from) <.BE>}
                )
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$temp1')}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {<cmp>}
                    {($ Id.VSub_DollarName '$temp1')}
                    {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name utf8)}
                  ]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Great '>'>
                      fd: -1
                      arg_word: {</dev/null>}
                    )
                    (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{<C>} spids:[1610])]
                )
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: (C {<echo>} {(DQ </FAILED>)})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:failed)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [1645]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              ]
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$PROG')}
                {<-f>}
                {($ Id.VSub_DollarName '$from')}
                {<-t>}
                {($ Id.VSub_DollarName '$utf8')}
              ]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Less '<'>
                  fd: -1
                  arg_word: {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name from) <.LE>}
                )
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$temp1')}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {<cmp>}
                    {($ Id.VSub_DollarName '$temp1')}
                    {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name utf8)}
                  ]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Great '>'>
                      fd: -1
                      arg_word: {</dev/null>}
                    )
                    (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{<C>} spids:[1682])]
                )
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: (C {<echo>} {(DQ </FAILED>)})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:failed)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [1717]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              ]
            )
            (C {<echo>} {(DQ <OK>)})
            (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
              {
                (DQ <'test non-BOM: '> (${ Id.VSub_Name from) <'BE -> '> (${ Id.VSub_Name from) <'LE '> 
                  ($ Id.VSub_DollarName '$ac_c')
                )
              }
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$PROG')}
                {<-f>}
                {(${ Id.VSub_Name from) <BE>}
                {<-t>}
                {(${ Id.VSub_Name from) <LE>}
              ]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Less '<'>
                  fd: -1
                  arg_word: {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name from) <.BE>}
                )
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$temp1')}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {<cmp>}
                    {($ Id.VSub_DollarName '$temp1')}
                    {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name from) <.LE>}
                  ]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Great '>'>
                      fd: -1
                      arg_word: {</dev/null>}
                    )
                    (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{<C>} spids:[1790])]
                )
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: (C {<echo>} {(DQ </FAILED>)})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:failed)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [1826]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              ]
            )
            (C {<echo>} {(DQ <OK>)})
            (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
              {
                (DQ <'test non-BOM: '> (${ Id.VSub_Name from) <'LE -> '> (${ Id.VSub_Name from) <'BE '> 
                  ($ Id.VSub_DollarName '$ac_c')
                )
              }
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$PROG')}
                {<-f>}
                {(${ Id.VSub_Name from) <LE>}
                {<-t>}
                {(${ Id.VSub_Name from) <BE>}
              ]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Less '<'>
                  fd: -1
                  arg_word: {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name from) <.LE>}
                )
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$temp1')}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {<cmp>}
                    {($ Id.VSub_DollarName '$temp1')}
                    {<testdata/> (${ Id.VSub_Name filename) <..> (${ Id.VSub_Name from) <.BE>}
                  ]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Great '>'>
                      fd: -1
                      arg_word: {</dev/null>}
                    )
                    (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{<C>} spids:[1899])]
                )
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: (C {<echo>} {(DQ </FAILED>)})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:failed)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [1935]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              ]
            )
            (C {<echo>} {(DQ <OK>)})
          ]
        )
      redirects: [(redir.Redir op:<Id.Redir_Less '<'> fd:-1 arg_word:{<TESTS2>})]
    )
    (command.Simple
      words: [{<printf>} {(SQ <'\\016\\377\\377\\377\\377\\377\\377\\377'>)}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{($ Id.VSub_DollarName '$temp1')})
      ]
    )
    (command.ForEach
      iter_name: from
      iter_words: [{($ Id.VSub_DollarName '$iconv_modules')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<echo>} {($ Id.VSub_DollarName '$ac_n')} 
              {
                (DQ <'test decoder '> ($ Id.VSub_DollarName '$from') <' '> 
                  ($ Id.VSub_DollarName '$ac_c')
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PROG)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        command_list: 
                          (command.CommandList
                            children: [(C {<eval>} {<echo>} {($ Id.VSub_DollarName '$ICONV')})]
                          )
                      )
                    }
                  spids: [1997]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [
                            {($ Id.VSub_DollarName '$PROG')}
                            {<-f>}
                            {($ Id.VSub_DollarName '$from')}
                            {<-t>}
                            {<UTF8>}
                          ]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Less '<'>
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$temp1')}
                            )
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: {</dev/null>}
                            )
                            (redir.Redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              fd: 2
                              arg_word: {<1>}
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Id.Lit_Other ':'>})]
                  spids: [2009 2033]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:status)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '$?')}
                      spids: [2045]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: (C {<test>} {($ Id.VSub_DollarName '$status')} {<-gt>} {<1>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [
                        (C {<echo>} {(DQ </FAILED>)})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:failed)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [2071]
                            )
                          ]
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Continue continue>
                        )
                      ]
                      spids: [2049 2061]
                    )
                  ]
                )
              ]
            )
            (C {<echo>} {(DQ <OK>)})
          ]
        )
    )
    (command.ControlFlow
      token: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName '$failed')}
    )
  ]
)