(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'CRLF conversion all combinations'>)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (If
      arms: [
        (if_arm
          cond: [(Pipeline children:[(C {(test_have_prereq)} {(EXPENSIVE)})] negated:True)]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip_all)
                  op: Equal
                  rhs: {(DQ ('EXPENSIVE not set'))}
                  spids: [26]
                )
              ]
              spids: [26]
            )
            (C {(test_done)})
          ]
          spids: [16777215 23]
        )
      ]
      spids: [16777215 34]
    )
    (FuncDef
      name: compare_files
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (SimpleCommand
                  words: [{(tr)} {(SQ <'\\015\\000'>)} {(QN)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Number '$1'))}
                      spids: [53]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Number '$1')) (.expect)}
                      spids: [58]
                    )
                  ]
                )
                (AndOr
                  children: [
                    (Pipeline
                      children: [
                        (SimpleCommand
                          words: [{(tr)} {(SQ <'\\015\\000'>)} {(QN)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Less
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Number '$2'))}
                              spids: [75]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(tr)} {(-d)} {(SQ <Z>)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Number '$2')) (.actual)}
                              spids: [90]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                    (AndOr
                      children: [
                        (C {(test_cmp)} {(DQ ($ VSub_Number '$1')) (.expect)} 
                          {(DQ ($ VSub_Number '$2')) (.actual)}
                        )
                        (C {(rm)} {(DQ ($ VSub_Number '$1')) (.expect)} 
                          {(DQ ($ VSub_Number '$2')) (.actual)}
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [42]
        )
      spids: [37 41]
    )
    (FuncDef
      name: compare_ws_file
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pfx)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [137]
                )
              ]
              spids: [137]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:exp)
                  op: Equal
                  rhs: {($ VSub_Number '$2') (.expect)}
                  spids: [141]
                )
              ]
              spids: [141]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:act)
                  op: Equal
                  rhs: {($ VSub_Name '$pfx') (.actual.) ($ VSub_Number '$3')}
                  spids: [146]
                )
              ]
              spids: [146]
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [{(tr)} {(SQ <'\\015\\000abcdef0123456789'>)} {(QN00000000000000000)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Number '$2'))}
                      spids: [160]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$exp'))}
                      spids: [165]
                    )
                  ]
                )
                (AndOr
                  children: [
                    (SimpleCommand
                      words: [{(tr)} {(SQ <'\\015\\000abcdef0123456789'>)} {(QN00000000000000000)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Number '$3'))}
                          spids: [181]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$act'))}
                          spids: [186]
                        )
                      ]
                    )
                    (AndOr
                      children: [
                        (C {(test_cmp)} {(DQ ($ VSub_Name '$exp'))} {(DQ ($ VSub_Name '$act'))})
                        (C {(rm)} {(DQ ($ VSub_Name '$exp'))} {(DQ ($ VSub_Name '$act'))})
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [134]
        )
      spids: [129 133]
    )
    (FuncDef
      name: create_gitattributes
      body: 
        (BraceGroup
          children: [
            (BraceGroup
              children: [
                (While
                  cond: [(C {(test)} {(DQ ($ VSub_Pound '$#'))} {(KW_Bang '!') (Lit_Other '=')} {(0)})]
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          children: [
                            (Case
                              to_match: {(DQ ($ VSub_Number '$1'))}
                              arms: [
                                (case_arm
                                  pat_list: [{(auto)}]
                                  action: [(C {(echo)} {(SQ <'*.txt text=auto'>)})]
                                  spids: [257 258 266 16777215]
                                )
                                (case_arm
                                  pat_list: [{(ident)}]
                                  action: [(C {(echo)} {(SQ <'*.txt ident'>)})]
                                  spids: [269 270 278 16777215]
                                )
                                (case_arm
                                  pat_list: [{(text)}]
                                  action: [(C {(echo)} {(SQ <'*.txt text'>)})]
                                  spids: [281 282 290 16777215]
                                )
                                (case_arm
                                  pat_list: [{(-text)}]
                                  action: [(C {(echo)} {(SQ <'*.txt -text'>)})]
                                  spids: [293 294 302 16777215]
                                )
                                (case_arm
                                  pat_list: [{(crlf)}]
                                  action: [(C {(echo)} {(SQ <'*.txt eol=crlf'>)})]
                                  spids: [305 306 314 16777215]
                                )
                                (case_arm
                                  pat_list: [{(lf)}]
                                  action: [(C {(echo)} {(SQ <'*.txt eol=lf'>)})]
                                  spids: [317 318 326 16777215]
                                )
                                (case_arm
                                  pat_list: [{(DQ )}]
                                  spids: [16777215 331 333 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (SimpleCommand
                                      words: [
                                        {(echo)}
                                        {(invalid)}
                                        {(attribute) (Lit_Other ':')}
                                        {(DQ ($ VSub_Number '$1'))}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: 16777215
                                          arg_word: {(2)}
                                          spids: [342]
                                        )
                                      ]
                                    )
                                    (C {(exit)} {(1)})
                                  ]
                                  spids: [336 337 360 16777215]
                                )
                              ]
                              spids: [248 254 363]
                            )
                            (C {(shift)})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      spids: [245 371]
                    )
                )
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(.gitattributes)}
                  spids: [376]
                )
              ]
              spids: [228]
            )
          ]
          spids: [225]
        )
      spids: [220 224]
    )
    (FuncDef
      name: create_NNO_files
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: crlf
              iter_words: [{(false)} {(true)} {(input)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: attr
                      iter_words: [{(DQ )} {(auto)} {(text)} {(-text)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (ForEach
                              iter_name: aeol
                              iter_words: [{(DQ )} {(lf)} {(crlf)}]
                              do_arg_iter: False
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pfx)
                                          op: Equal
                                          rhs: 
                                            {(NNO_attr_) (${ VSub_Name attr) (_aeol_) 
                                              (${ VSub_Name aeol) (_) (${ VSub_Name crlf)
                                            }
                                          spids: [442]
                                        )
                                      ]
                                      spids: [442]
                                    )
                                    (AndOr
                                      children: [
                                        (C {(cp)} {(CRLF_mix_LF)} {(${ VSub_Name pfx) (_LF.txt)})
                                        (AndOr
                                          children: [
                                            (C {(cp)} {(CRLF_mix_LF)} {(${ VSub_Name pfx) (_CRLF.txt)})
                                            (AndOr
                                              children: [
                                                (C {(cp)} {(CRLF_mix_LF)} 
                                                  {(${ VSub_Name pfx) (_CRLF_mix_LF.txt)}
                                                )
                                                (AndOr
                                                  children: [
                                                    (C {(cp)} {(CRLF_mix_LF)} 
                                                      {(${ VSub_Name pfx) (_LF_mix_CR.txt)}
                                                    )
                                                    (C {(cp)} {(CRLF_mix_LF)} 
                                                      {(${ VSub_Name pfx) (_CRLF_nul.txt)}
                                                    )
                                                  ]
                                                  op_id: Op_DAmp
                                                )
                                              ]
                                              op_id: Op_DAmp
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [439 515]
                                )
                              spids: [430 16777215]
                            )
                          ]
                          spids: [422 518]
                        )
                      spids: [411 16777215]
                    )
                  ]
                  spids: [403 521]
                )
              spids: [395 16777215]
            )
          ]
          spids: [387]
        )
      spids: [382 386]
    )
    (FuncDef
      name: check_warning
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(LF_CRLF)}]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('warning: LF will be replaced by CRLF'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Number '$2')) (.expect)}
                          spids: [552]
                        )
                      ]
                    )
                  ]
                  spids: [543 544 558 16777215]
                )
                (case_arm
                  pat_list: [{(CRLF_LF)}]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('warning: CRLF will be replaced by LF'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Number '$2')) (.expect)}
                          spids: [570]
                        )
                      ]
                    )
                  ]
                  spids: [561 562 576 16777215]
                )
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (SimpleCommand
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Number '$2')) (.expect)}
                          spids: [583]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 581 589 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [
                            {(echo)}
                            {(DQ ('Illegal 1')) (Lit_Other ':')}
                            {(DQ ($ VSub_Number '$1'))}
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 16777215
                              arg_word: {(2)}
                              spids: [597]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {(false)}
                    )
                  ]
                  spids: [592 593 615 16777215]
                )
              ]
              spids: [534 540 618]
            )
            (Pipeline
              children: [
                (C {(grep)} {(DQ ('will be replaced by'))} {(DQ ($ VSub_Number '$2'))})
                (C {(sed)} {(-e)} 
                  {
                    (DQ (s/) (Lit_Other '\\') ('(.*') (Lit_Other '\\') (') in [^ ]*') (Lit_Other '$') (/) 
                      (Lit_Other '\\') (1/)
                    )
                  }
                )
                (SimpleCommand
                  words: [{(uniq)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Number '$2')) (.actual)}
                      spids: [653]
                    )
                  ]
                )
              ]
              negated: False
            )
            (C {(test_cmp)} {(DQ ($ VSub_Number '$2')) (.expect)} {(DQ ($ VSub_Number '$2')) (.actual)})
          ]
          spids: [531]
        )
      spids: [526 530]
    )
    (FuncDef
      name: commit_check_warn
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlf)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [683]
                )
              ]
              spids: [683]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:attr)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [687]
                )
              ]
              spids: [687]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfname)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [691]
                )
              ]
              spids: [691]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlfname)
                  op: Equal
                  rhs: {($ VSub_Number '$4')}
                  spids: [695]
                )
              ]
              spids: [695]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfmixcrlf)
                  op: Equal
                  rhs: {($ VSub_Number '$5')}
                  spids: [699]
                )
              ]
              spids: [699]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfmixcr)
                  op: Equal
                  rhs: {($ VSub_Number '$6')}
                  spids: [703]
                )
              ]
              spids: [703]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlfnul)
                  op: Equal
                  rhs: {($ VSub_Number '$7')}
                  spids: [707]
                )
              ]
              spids: [707]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pfx)
                  op: Equal
                  rhs: {(crlf_) (${ VSub_Name crlf) (_attr_) (${ VSub_Name attr)}
                  spids: [711]
                )
              ]
              spids: [711]
            )
            (AndOr
              children: [
                (C {(create_gitattributes)} {(DQ ($ VSub_Name '$attr'))})
                (AndOr
                  children: [
                    (ForEach
                      iter_name: f
                      iter_words: [{(LF)} {(CRLF)} {(LF_mix_CR)} {(CRLF_mix_LF)} {(LF_nul)} {(CRLF_nul)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (AndOr
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:fname)
                                      op: Equal
                                      rhs: {(${ VSub_Name pfx) (_) ($ VSub_Name '$f') (.txt)}
                                      spids: [753]
                                    )
                                  ]
                                  spids: [753]
                                )
                                (AndOr
                                  children: [
                                    (C {(cp)} {($ VSub_Name '$f')} {($ VSub_Name '$fname')})
                                    (SimpleCommand
                                      words: [
                                        {(git)}
                                        {(-c)}
                                        {(core.autocrlf) (Lit_Other '=') ($ VSub_Name '$crlf')}
                                        {(add)}
                                        {($ VSub_Name '$fname')}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: 
                                            {(DQ (${ VSub_Name pfx) (_) ($ VSub_Name '$f') (.err))}
                                          spids: [785]
                                        )
                                      ]
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          spids: [750 796]
                        )
                      spids: [736 16777215]
                    )
                    (AndOr
                      children: [
                        (C {(git)} {(commit)} {(-m)} {(DQ ('core.autocrlf ') ($ VSub_Name '$crlf'))})
                        (AndOr
                          children: [
                            (C {(check_warning)} {(DQ ($ VSub_Name '$lfname'))} 
                              {(${ VSub_Name pfx) (_LF.err)}
                            )
                            (AndOr
                              children: [
                                (C {(check_warning)} {(DQ ($ VSub_Name '$crlfname'))} 
                                  {(${ VSub_Name pfx) (_CRLF.err)}
                                )
                                (AndOr
                                  children: [
                                    (C {(check_warning)} {(DQ ($ VSub_Name '$lfmixcrlf'))} 
                                      {(${ VSub_Name pfx) (_CRLF_mix_LF.err)}
                                    )
                                    (AndOr
                                      children: [
                                        (C {(check_warning)} {(DQ ($ VSub_Name '$lfmixcr'))} 
                                          {(${ VSub_Name pfx) (_LF_mix_CR.err)}
                                        )
                                        (C {(check_warning)} {(DQ ($ VSub_Name '$crlfnul'))} 
                                          {(${ VSub_Name pfx) (_CRLF_nul.err)}
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [680]
        )
      spids: [675 679]
    )
    (FuncDef
      name: commit_chk_wrnNNO
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:attr)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [893]
                    )
                  ]
                  spids: [893]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aeol)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [901]
                    )
                  ]
                  spids: [901]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlf)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [909]
                    )
                  ]
                  spids: [909]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfwarn)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [917]
                    )
                  ]
                  spids: [917]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfwarn)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [925]
                    )
                  ]
                  spids: [925]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcrlf)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [933]
                    )
                  ]
                  spids: [933]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcr)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [941]
                    )
                  ]
                  spids: [941]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfnul)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [949]
                    )
                  ]
                  spids: [949]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pfx)
                  op: Equal
                  rhs: 
                    {(NNO_attr_) (${ VSub_Name attr) (_aeol_) (${ VSub_Name aeol) (_) 
                      (${ VSub_Name crlf)
                    }
                  spids: [957]
                )
              ]
              spids: [957]
            )
            (AndOr
              children: [
                (C {(create_gitattributes)} {(DQ ($ VSub_Name '$attr'))} {($ VSub_Name '$aeol')})
                (ForEach
                  iter_name: f
                  iter_words: [{(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}]
                  do_arg_iter: False
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:fname)
                                  op: Equal
                                  rhs: {(${ VSub_Name pfx) (_) ($ VSub_Name '$f') (.txt)}
                                  spids: [1007]
                                )
                              ]
                              spids: [1007]
                            )
                            (AndOr
                              children: [
                                (C {(cp)} {($ VSub_Name '$f')} {($ VSub_Name '$fname')})
                                (AndOr
                                  children: [
                                    (SimpleCommand
                                      words: [{(printf)} {(Z)}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_DGreat
                                          fd: 16777215
                                          arg_word: {(DQ ($ VSub_Name '$fname'))}
                                          spids: [1031]
                                        )
                                      ]
                                    )
                                    (SimpleCommand
                                      words: [
                                        {(git)}
                                        {(-c)}
                                        {(core.autocrlf) (Lit_Other '=') ($ VSub_Name '$crlf')}
                                        {(add)}
                                        {($ VSub_Name '$fname')}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: 
                                            {(DQ (${ VSub_Name pfx) (_) ($ VSub_Name '$f') (.err))}
                                          spids: [1051]
                                        )
                                      ]
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      spids: [1004 1062]
                    )
                  spids: [992 16777215]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(test_expect_success)} 
              {
                (DQ ('commit NNO files crlf=') ($ VSub_Name '$crlf') (' attr=') ($ VSub_Name '$attr') 
                  (' LF')
                )
              } {(SQ <'\n'> <'\t\tcheck_warning "$lfwarn" ${pfx}_LF.err\n'> <'\t'>)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ('commit NNO files attr=') ($ VSub_Name '$attr') (' aeol=') ($ VSub_Name '$aeol') 
                  (' crlf=') ($ VSub_Name '$crlf') (' CRLF')
                )
              } {(SQ <'\n'> <'\t\tcheck_warning "$crlfwarn" ${pfx}_CRLF.err\n'> <'\t'>)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ('commit NNO files attr=') ($ VSub_Name '$attr') (' aeol=') ($ VSub_Name '$aeol') 
                  (' crlf=') ($ VSub_Name '$crlf') (' CRLF_mix_LF')
                )
              } {(SQ <'\n'> <'\t\tcheck_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err\n'> <'\t'>)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ('commit NNO files attr=') ($ VSub_Name '$attr') (' aeol=') ($ VSub_Name '$aeol') 
                  (' crlf=') ($ VSub_Name '$crlf') (' LF_mix_cr')
                )
              } {(SQ <'\n'> <'\t\tcheck_warning "$lfmixcr" ${pfx}_LF_mix_CR.err\n'> <'\t'>)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ('commit NNO files attr=') ($ VSub_Name '$attr') (' aeol=') ($ VSub_Name '$aeol') 
                  (' crlf=') ($ VSub_Name '$crlf') (' CRLF_nul')
                )
              } {(SQ <'\n'> <'\t\tcheck_warning "$crlfnul" ${pfx}_CRLF_nul.err\n'> <'\t'>)}
            )
          ]
          spids: [890]
        )
      spids: [885 889]
    )
    (FuncDef
      name: stats_ascii
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(LF)}]
                  action: [(C {(echo)} {(lf)})]
                  spids: [1181 1182 1190 16777215]
                )
                (case_arm
                  pat_list: [{(CRLF)}]
                  action: [(C {(echo)} {(crlf)})]
                  spids: [1193 1194 1202 16777215]
                )
                (case_arm
                  pat_list: [{(CRLF_mix_LF)}]
                  action: [(C {(echo)} {(mixed)})]
                  spids: [1205 1206 1214 16777215]
                )
                (case_arm
                  pat_list: [{(LF_mix_CR)} {(CRLF_nul)} {(LF_nul)} {(CRLF_mix_CR)}]
                  action: [(C {(echo)} {(DQ (-text))})]
                  spids: [1217 1224 1234 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(echo)} {(error_invalid)} {($ VSub_Number '$1')})]
                  spids: [1237 1238 1248 16777215]
                )
              ]
              spids: [1172 1178 1251]
            )
          ]
          spids: [1169]
        )
      spids: [1164 1168]
    )
    (FuncDef
      name: attr_ascii
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {($ VSub_Number '$1') (Lit_Comma ',') ($ VSub_Number '$2')}
              arms: [
                (case_arm
                  pat_list: [{(-text) (Lit_Comma ',') (Lit_Other '*')}]
                  action: [(C {(echo)} {(DQ (-text))})]
                  spids: [1284 1287 1295 16777215]
                )
                (case_arm
                  pat_list: [{(text) (Lit_Comma ',')}]
                  action: [(C {(echo)} {(DQ (text))})]
                  spids: [1298 1300 1308 16777215]
                )
                (case_arm
                  pat_list: [{(text) (Lit_Comma ',') (lf)}]
                  action: [(C {(echo)} {(DQ ('text eol=lf'))})]
                  spids: [1311 1314 1322 16777215]
                )
                (case_arm
                  pat_list: [{(text) (Lit_Comma ',') (crlf)}]
                  action: [(C {(echo)} {(DQ ('text eol=crlf'))})]
                  spids: [1325 1328 1336 16777215]
                )
                (case_arm
                  pat_list: [{(auto) (Lit_Comma ',')}]
                  action: [(C {(echo)} {(DQ ('text=auto'))})]
                  spids: [1339 1341 1349 16777215]
                )
                (case_arm
                  pat_list: [{(auto) (Lit_Comma ',') (lf)}]
                  action: [(C {(echo)} {(DQ ('text=auto eol=lf'))})]
                  spids: [1352 1355 1363 16777215]
                )
                (case_arm
                  pat_list: [{(auto) (Lit_Comma ',') (crlf)}]
                  action: [(C {(echo)} {(DQ ('text=auto eol=crlf'))})]
                  spids: [1366 1369 1377 16777215]
                )
                (case_arm
                  pat_list: [{(lf) (Lit_Comma ',')}]
                  action: [(C {(echo)} {(DQ ('text eol=lf'))})]
                  spids: [1380 1382 1390 16777215]
                )
                (case_arm
                  pat_list: [{(crlf) (Lit_Comma ',')}]
                  action: [(C {(echo)} {(DQ ('text eol=crlf'))})]
                  spids: [1393 1395 1403 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Comma ',')}]
                  action: [(C {(echo)} {(DQ )})]
                  spids: [1406 1407 1414 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} {(invalid_attr)} {(DQ ($ VSub_Number '$1') (',') ($ VSub_Number '$2'))})
                  ]
                  spids: [1417 1418 1430 16777215]
                )
              ]
              spids: [1275 1281 1433]
            )
          ]
          spids: [1272]
        )
      spids: [1267 1271]
    )
    (FuncDef
      name: check_files_in_repo
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlf)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1446]
                )
              ]
              spids: [1446]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:attr)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [1450]
                )
              ]
              spids: [1450]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfname)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [1454]
                )
              ]
              spids: [1454]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlfname)
                  op: Equal
                  rhs: {($ VSub_Number '$4')}
                  spids: [1458]
                )
              ]
              spids: [1458]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfmixcrlf)
                  op: Equal
                  rhs: {($ VSub_Number '$5')}
                  spids: [1462]
                )
              ]
              spids: [1462]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfmixcr)
                  op: Equal
                  rhs: {($ VSub_Number '$6')}
                  spids: [1466]
                )
              ]
              spids: [1466]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlfnul)
                  op: Equal
                  rhs: {($ VSub_Number '$7')}
                  spids: [1470]
                )
              ]
              spids: [1470]
            )
            (AndOr
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:pfx)
                      op: Equal
                      rhs: {(crlf_) (${ VSub_Name crlf) (_attr_) (${ VSub_Name attr) (_)}
                      spids: [1474]
                    )
                  ]
                  spids: [1474]
                )
                (AndOr
                  children: [
                    (C {(compare_files)} {($ VSub_Name '$lfname')} {(${ VSub_Name pfx) (LF.txt)})
                    (AndOr
                      children: [
                        (C {(compare_files)} {($ VSub_Name '$crlfname')} {(${ VSub_Name pfx) (CRLF.txt)})
                        (AndOr
                          children: [
                            (C {(compare_files)} {($ VSub_Name '$lfmixcrlf')} 
                              {(${ VSub_Name pfx) (CRLF_mix_LF.txt)}
                            )
                            (AndOr
                              children: [
                                (C {(compare_files)} {($ VSub_Name '$lfmixcr')} 
                                  {(${ VSub_Name pfx) (LF_mix_CR.txt)}
                                )
                                (C {(compare_files)} {($ VSub_Name '$crlfnul')} 
                                  {(${ VSub_Name pfx) (CRLF_nul.txt)}
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [1443]
        )
      spids: [1438 1442]
    )
    (FuncDef
      name: check_in_repo_NNO
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:attr)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1556]
                    )
                  ]
                  spids: [1556]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aeol)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1564]
                    )
                  ]
                  spids: [1564]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlf)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1572]
                    )
                  ]
                  spids: [1572]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfname)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1580]
                    )
                  ]
                  spids: [1580]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfname)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1588]
                    )
                  ]
                  spids: [1588]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcrlf)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1596]
                    )
                  ]
                  spids: [1596]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcr)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1604]
                    )
                  ]
                  spids: [1604]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfnul)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1612]
                    )
                  ]
                  spids: [1612]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pfx)
                  op: Equal
                  rhs: 
                    {(NNO_attr_) (${ VSub_Name attr) (_aeol_) (${ VSub_Name aeol) (_) 
                      (${ VSub_Name crlf)
                    }
                  spids: [1620]
                )
              ]
              spids: [1620]
            )
            (C {(test_expect_success)} 
              {(DQ ('compare_files ') ($ VSub_Name '$lfname') (' ') (${ VSub_Name pfx) (_LF.txt))} {(SQ <'\n'> <'\t\tcompare_files $lfname ${pfx}_LF.txt\n'> <'\t'>)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ('compare_files ') ($ VSub_Name '$crlfname') (' ') (${ VSub_Name pfx) (_CRLF.txt))
              } {(SQ <'\n'> <'\t\tcompare_files $crlfname ${pfx}_CRLF.txt\n'> <'\t'>)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ('compare_files ') ($ VSub_Name '$lfmixcrlf') (' ') (${ VSub_Name pfx) 
                  (_CRLF_mix_LF.txt)
                )
              } {(SQ <'\n'> <'\t\tcompare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt\n'> <'\t'>)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ('compare_files ') ($ VSub_Name '$lfmixcr') (' ') (${ VSub_Name pfx) (_LF_mix_CR.txt))
              } {(SQ <'\n'> <'\t\tcompare_files $lfmixcr ${pfx}_LF_mix_CR.txt\n'> <'\t'>)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ('compare_files ') ($ VSub_Name '$crlfnul') (' ') (${ VSub_Name pfx) (_CRLF_nul.txt))
              } {(SQ <'\n'> <'\t\tcompare_files $crlfnul ${pfx}_CRLF_nul.txt\n'> <'\t'>)}
            )
          ]
          spids: [1553]
        )
      spids: [1548 1552]
    )
    (FuncDef
      name: checkout_files
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:attr)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1740]
                    )
                  ]
                  spids: [1740]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ident)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1748]
                    )
                  ]
                  spids: [1748]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aeol)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1755]
                    )
                  ]
                  spids: [1755]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlf)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1763]
                    )
                  ]
                  spids: [1763]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ceol)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1771]
                    )
                  ]
                  spids: [1771]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfname)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1779]
                    )
                  ]
                  spids: [1779]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfname)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1787]
                    )
                  ]
                  spids: [1787]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcrlf)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1795]
                    )
                  ]
                  spids: [1795]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcr)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1803]
                    )
                  ]
                  spids: [1803]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfnul)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [1811]
                    )
                  ]
                  spids: [1811]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (AndOr
              children: [
                (C {(create_gitattributes)} {(DQ ($ VSub_Name '$attr'))} {($ VSub_Name '$ident')} 
                  {($ VSub_Name '$aeol')}
                )
                (AndOr
                  children: [
                    (C {(git)} {(config)} {(core.autocrlf)} {($ VSub_Name '$crlf')})
                    (AndOr
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:pfx)
                              op: Equal
                              rhs: 
                                {(eol_) (${ VSub_Name ceol) (_crlf_) (${ VSub_Name crlf) (_attr_) 
                                  (${ VSub_Name attr) (_)
                                }
                              spids: [1843]
                            )
                          ]
                          spids: [1843]
                        )
                        (ForEach
                          iter_name: f
                          iter_words: [{(LF)} {(CRLF)} {(LF_mix_CR)} {(CRLF_mix_LF)} {(LF_nul)}]
                          do_arg_iter: False
                          body: 
                            (DoGroup
                              children: [
                                (AndOr
                                  children: [
                                    (C {(rm)} {(crlf_false_attr__) ($ VSub_Name '$f') (.txt)})
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$ceol'))})
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(git)} {(checkout)} 
                                              {(crlf_false_attr__) ($ VSub_Name '$f') (.txt)}
                                            )
                                          ]
                                          spids: [16777215 1901]
                                        )
                                      ]
                                      else_action: [
                                        (C {(git)} {(-c)} 
                                          {(core.eol) (Lit_Other '=') ($ VSub_Name '$ceol')} {(checkout)} {(crlf_false_attr__) ($ VSub_Name '$f') (.txt)}
                                        )
                                      ]
                                      spids: [1913 1931]
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              spids: [1878 1934]
                            )
                          spids: [1866 16777215]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (C {(test_expect_success)} 
              {
                (DQ ('ls-files --eol attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') 
                  (' aeol=') ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol')
                )
              } 
              {
                (SQ <'\n'> <'\t\ttest_when_finished "rm expect actual" &&\n'> 
                  <'\t\tsort <<-EOF >expect &&\n'> <'\t\ti/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt\n'> 
                  <
'\t\ti/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt\n'
                  > <'\t\ti/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt\n'> 
                  <
'\t\ti/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt\n'
                  > 
                  <
'\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt\n'
                  > 
                  <
'\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt\n'
                  > <'\t\tEOF\n'> <'\t\tgit ls-files --eol crlf_false_attr__* |\n'> 
                  <'\t\tsed -e "s/\t/ /g" -e "s/  */ /g" |\n'> <'\t\tsort >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') 
                  ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=LF')
                )
              } 
              {
                (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$lfname') 
                  ('    crlf_false_attr__LF.txt\n') ('\t')
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') 
                  ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=CRLF')
                )
              } 
              {
                (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$crlfname') 
                  ('  crlf_false_attr__CRLF.txt\n') ('\t')
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') 
                  ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=CRLF_mix_LF')
                )
              } 
              {
                (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$lfmixcrlf') 
                  (' crlf_false_attr__CRLF_mix_LF.txt\n') ('\t')
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') 
                  ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=LF_mix_CR')
                )
              } 
              {
                (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$lfmixcr') 
                  ('   crlf_false_attr__LF_mix_CR.txt\n') ('\t')
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') 
                  ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=LF_nul')
                )
              } 
              {
                (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$crlfnul') 
                  ('   crlf_false_attr__LF_nul.txt\n') ('\t')
                )
              }
            )
          ]
          spids: [1737]
        )
      spids: [1732 1736]
    )
    (C {(test_expect_success)} {(SQ <'ls-files --eol -o Text/Binary'>)} 
      {
        (SQ <'\n'> <'\ttest_when_finished "rm expect actual TeBi_*" &&\n'> 
          <'\tSTRT=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA &&\n'> <'\tSTR=$STRT$STRT$STRT$STRT &&\n'> <'\tprintf "${STR}BBB\\001" >TeBi_127_S &&\n'> 
          <'\tprintf "${STR}BBBB\\001">TeBi_128_S &&\n'> <'\tprintf "${STR}BBB\\032" >TeBi_127_E &&\n'> <'\tprintf "\\032${STR}BBB" >TeBi_E_127 &&\n'> 
          <'\tprintf "${STR}BBBB\\000">TeBi_128_N &&\n'> <'\tprintf "${STR}BBB\\012">TeBi_128_L &&\n'> <'\tprintf "${STR}BBB\\015">TeBi_127_C &&\n'> 
          <'\tprintf "${STR}BB\\015\\012" >TeBi_126_CL &&\n'> <'\tprintf "${STR}BB\\015\\012\\015" >TeBi_126_CLC &&\n'> <'\tsort <<-\\EOF >expect &&\n'> 
          <'\ti/ w/-text TeBi_127_S\n'> <'\ti/ w/none TeBi_128_S\n'> <'\ti/ w/none TeBi_127_E\n'> <'\ti/ w/-text TeBi_E_127\n'> 
          <'\ti/ w/-text TeBi_128_N\n'> <'\ti/ w/lf TeBi_128_L\n'> <'\ti/ w/-text TeBi_127_C\n'> <'\ti/ w/crlf TeBi_126_CL\n'> 
          <'\ti/ w/-text TeBi_126_CLC\n'> <'\tEOF\n'> <'\tgit ls-files --eol -o |\n'> <'\tsed -n -e "/TeBi_/{s!attr/[\t]*!!g\n'> <'\ts!\t! !g\n'> 
          <'\ts!  *! !g\n'> <'\tp\n'> <'\t}" | sort >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'setup master'>)} 
      {
        (SQ <'\n'> <'\techo >.gitattributes &&\n'> <'\tgit checkout -b master &&\n'> 
          <'\tgit add .gitattributes &&\n'> <'\tgit commit -m "add .gitattributes" "" &&\n'> 
          <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\nLINETHREE"     >LF &&\n'
          > 
          <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\r\\nLINETHREE" >CRLF &&\n'
          > 
          <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\r\\nLINETWO\\nLINETHREE"   >CRLF_mix_LF &&\n'
          > 
          <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\rLINETHREE"     >LF_mix_CR &&\n'
          > 
          <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\rLINETHREE"   >CRLF_mix_CR &&\n'
          > 
          <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONEQ\\r\\nLINETWO\\r\\nLINETHREE" | q_to_nul >CRLF_nul &&\n'
          > 
          <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONEQ\\nLINETWO\\nLINETHREE" | q_to_nul >LF_nul &&\n'
          > <'\tcreate_NNO_files CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF &&\n'> 
          <'\tgit -c core.autocrlf=false add NNO_*.txt &&\n'> <'\tgit commit -m "mixed line endings" &&\n'> <'\ttest_tick\n'>
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:warn_LF_CRLF)
          op: Equal
          rhs: {(DQ ('LF will be replaced by CRLF'))}
          spids: [2184]
        )
      ]
      spids: [2184]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:warn_CRLF_LF)
          op: Equal
          rhs: {(DQ ('CRLF will be replaced by LF'))}
          spids: [2189]
        )
      ]
      spids: [2189]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(NATIVE_CRLF)})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:WILC) op:Equal rhs:{(LF_CRLF)} spids:[2213])]
              spids: [2213]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:WICL) op:Equal rhs:{(SQ )} spids:[2217])]
              spids: [2217]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:WAMIX) op:Equal rhs:{(LF_CRLF)} spids:[2220])]
              spids: [2220]
            )
          ]
          spids: [16777215 2210]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:WILC) op:Equal rhs:{(SQ )} spids:[2226])]
          spids: [2226]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:WICL) op:Equal rhs:{(CRLF_LF)} spids:[2229])]
          spids: [2229]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:WAMIX) op:Equal rhs:{(CRLF_LF)} spids:[2233])]
          spids: [2233]
        )
      ]
      spids: [2223 2236]
    )
    (C {(test_expect_success)} {(SQ <'commit files empty attr'>)} 
      {
        (SQ <'\n'> 
          <'\tcommit_check_warn false ""     ""        ""        ""        ""        "" &&\n'> <'\tcommit_check_warn true  ""     "LF_CRLF" ""        "LF_CRLF" ""        "" &&\n'> 
          <'\tcommit_check_warn input ""     ""        "CRLF_LF" "CRLF_LF" ""        ""\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'commit files attr=auto'>)} 
      {
        (SQ <'\n'> 
          <'\tcommit_check_warn false "auto" "$WILC"   "$WICL"   "$WAMIX"  ""        "" &&\n'> <'\tcommit_check_warn true  "auto" "LF_CRLF" ""        "LF_CRLF" ""        "" &&\n'> 
          <'\tcommit_check_warn input "auto" ""        "CRLF_LF" "CRLF_LF" ""        ""\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'commit files attr=text'>)} 
      {
        (SQ <'\n'> 
          <
'\tcommit_check_warn false "text" "$WILC"   "$WICL"   "$WAMIX"  "$WILC"   "$WICL"   &&\n'
          > <'\tcommit_check_warn true  "text" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" ""        &&\n'> 
          <'\tcommit_check_warn input "text" ""        "CRLF_LF" "CRLF_LF" ""        "CRLF_LF"\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'commit files attr=-text'>)} 
      {
        (SQ <'\n'> 
          <'\tcommit_check_warn false "-text" ""       ""        ""        ""        "" &&\n'> <'\tcommit_check_warn true  "-text" ""       ""        ""        ""        "" &&\n'> 
          <'\tcommit_check_warn input "-text" ""       ""        ""        ""        ""\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'commit files attr=lf'>)} 
      {
        (SQ <'\n'> 
          <
'\tcommit_check_warn false "lf"    ""       "CRLF_LF" "CRLF_LF"  ""       "CRLF_LF" &&\n'
          > <'\tcommit_check_warn true  "lf"    ""       "CRLF_LF" "CRLF_LF"  ""       "CRLF_LF" &&\n'> 
          <'\tcommit_check_warn input "lf"    ""       "CRLF_LF" "CRLF_LF"  ""       "CRLF_LF"\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'commit files attr=crlf'>)} 
      {
        (SQ <'\n'> 
          <'\tcommit_check_warn false "crlf" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" "" &&\n'> <'\tcommit_check_warn true  "crlf" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" "" &&\n'> 
          <'\tcommit_check_warn input "crlf" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" ""\n'>
        )
      }
    )
    (C {(commit_chk_wrnNNO)} {(DQ )} {(DQ )} {(false)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ )} {(DQ )} {(true)} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ )} {(DQ )} {(input)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ (auto))} {(DQ )} {(false)} {(DQ ($ VSub_Name '$WILC'))} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ (auto))} {(DQ )} {(true)} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ (auto))} {(DQ )} {(input)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (ForEach
      iter_name: crlf
      iter_words: [{(true)} {(false)} {(input)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(commit_chk_wrnNNO)} {(-text)} {(DQ )} {($ VSub_Name '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(-text)} {(lf)} {($ VSub_Name '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(-text)} {(crlf)} {($ VSub_Name '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(DQ )} {(lf)} {($ VSub_Name '$crlf')} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} 
              {(CRLF_LF)}
            )
            (C {(commit_chk_wrnNNO)} {(DQ )} {(crlf)} {($ VSub_Name '$crlf')} {(LF_CRLF)} {(DQ )} 
              {(LF_CRLF)} {(LF_CRLF)} {(DQ )}
            )
            (C {(commit_chk_wrnNNO)} {(auto)} {(lf)} {($ VSub_Name '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(auto)} {(crlf)} {($ VSub_Name '$crlf')} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(text)} {(lf)} {($ VSub_Name '$crlf')} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} 
              {(CRLF_LF)}
            )
            (C {(commit_chk_wrnNNO)} {(text)} {(crlf)} {($ VSub_Name '$crlf')} {(LF_CRLF)} {(DQ )} 
              {(LF_CRLF)} {(LF_CRLF)} {(DQ )}
            )
          ]
          spids: [2494 2702]
        )
      spids: [2487 16777215]
    )
    (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(false)} {(DQ ($ VSub_Name '$WILC'))} 
      {(DQ ($ VSub_Name '$WICL'))} {(DQ ($ VSub_Name '$WAMIX'))} {(DQ ($ VSub_Name '$WILC'))} {(DQ ($ VSub_Name '$WICL'))}
    )
    (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(true)} {(LF_CRLF)} {(DQ )} {(LF_CRLF)} {(LF_CRLF)} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(input)} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} 
      {(CRLF_LF)}
    )
    (C {(test_expect_success)} {(SQ <'commit NNO and cleanup'>)} 
      {
        (SQ <'\n'> <'\tgit commit -m "commit files on top of NNO" &&\n'> <'\trm -f *.txt &&\n'> 
          <'\tgit -c core.autocrlf=false reset --hard\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'commit empty gitattribues'>)} 
      {
        (SQ <'\n'> <'\tcheck_files_in_repo false ""      LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n'> 
          <'\tcheck_files_in_repo true  ""      LF LF   LF          LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo input ""      LF LF   LF          LF_mix_CR CRLF_nul\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'commit text=auto'>)} 
      {
        (SQ <'\n'> <'\tcheck_files_in_repo false "auto"  LF LF   LF          LF_mix_CR CRLF_nul &&\n'> 
          <'\tcheck_files_in_repo true  "auto"  LF LF   LF          LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo input "auto"  LF LF   LF          LF_mix_CR CRLF_nul\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'commit text'>)} 
      {
        (SQ <'\n'> <'\tcheck_files_in_repo false "text"  LF LF   LF          LF_mix_CR LF_nul &&\n'> 
          <'\tcheck_files_in_repo true  "text"  LF LF   LF          LF_mix_CR LF_nul &&\n'> <'\tcheck_files_in_repo input "text"  LF LF   LF          LF_mix_CR LF_nul\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'commit -text'>)} 
      {
        (SQ <'\n'> <'\tcheck_files_in_repo false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n'> 
          <'\tcheck_files_in_repo true  "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul\n'>
        )
      }
    )
    (ForEach
      iter_name: crlf
      iter_words: [{(true)} {(false)} {(input)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(check_in_repo_NNO)} {(DQ )} {(DQ )} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} 
              {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(-text)} {(DQ )} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(-text)} {(lf)} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(-text)} {(crlf)} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(auto)} {(DQ )} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(auto)} {(lf)} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} 
              {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(auto)} {(crlf)} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(text)} {(DQ )} {($ VSub_Name '$crlf')} {(LF)} {(LF)} {(LF)} 
              {(LF_mix_CR)} {(LF_nul)}
            )
            (C {(check_in_repo_NNO)} {(text)} {(lf)} {($ VSub_Name '$crlf')} {(LF)} {(LF)} {(LF)} 
              {(LF_mix_CR)} {(LF_nul)}
            )
            (C {(check_in_repo_NNO)} {(text)} {(crlf)} {($ VSub_Name '$crlf')} {(LF)} {(LF)} {(LF)} 
              {(LF_mix_CR)} {(LF_nul)}
            )
          ]
          spids: [2865 3066]
        )
      spids: [2858 16777215]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(NATIVE_CRLF)})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:MIX_CRLF_LF) op:Equal rhs:{(CRLF)} spids:[3125])]
              spids: [3125]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:MIX_LF_CR)
                  op: Equal
                  rhs: {(CRLF_mix_CR)}
                  spids: [3128]
                )
              ]
              spids: [3128]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:NL) op:Equal rhs:{(CRLF)} spids:[3131])]
              spids: [3131]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:LFNUL) op:Equal rhs:{(CRLF_nul)} spids:[3134])]
              spids: [3134]
            )
          ]
          spids: [16777215 3123]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:MIX_CRLF_LF)
              op: Equal
              rhs: {(CRLF_mix_LF)}
              spids: [3139]
            )
          ]
          spids: [3139]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:MIX_LF_CR) op:Equal rhs:{(LF_mix_CR)} spids:[3142])]
          spids: [3142]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:NL) op:Equal rhs:{(LF)} spids:[3145])]
          spids: [3145]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:LFNUL) op:Equal rhs:{(LF_nul)} spids:[3148])]
          spids: [3148]
        )
      ]
      spids: [3137 3151]
    )
    (C {(export)} {(CRLF_MIX_LF_CR)} {(MIX)} {(NL)})
    (ForEach
      iter_name: id
      iter_words: [{(DQ )} {(ident)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (ForEach
              iter_name: ceol
              iter_words: [{(lf)} {(crlf)} {(native)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: crlf
                      iter_words: [{(true)} {(false)} {(input)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (C {(checkout_files)} {(-text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} 
                              {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(-text)} {(DQ ($ VSub_Name '$id'))} {(DQ (lf))} 
                              {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(-text)} {(DQ ($ VSub_Name '$id'))} {(DQ (crlf))} 
                              {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ (lf))} 
                              {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ (crlf))} 
                              {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)}
                            )
                            (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ (lf))} 
                              {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ (crlf))} 
                              {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                          ]
                          spids: [3208 3443]
                        )
                      spids: [3200 16777215]
                    )
                    (C {(checkout_files)} {(DQ )} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} 
                      {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                    (C {(checkout_files)} {(DQ )} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(true)} 
                      {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                    (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(true)} 
                      {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                    (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(true)} 
                      {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)}
                    )
                    (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(input)} 
                      {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                    (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(input)} 
                      {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                  ]
                  spids: [3192 3637]
                )
              spids: [3184 16777215]
            )
            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(crlf)} {(CRLF)} 
              {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)}
            )
            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(lf)} {(LF)} 
              {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
            )
            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(DQ )} 
              {($ VSub_Name '$NL')} {(CRLF)} {($ VSub_Name '$MIX_CRLF_LF')} {($ VSub_Name '$MIX_LF_CR')} {($ VSub_Name '$LFNUL')}
            )
            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(native)} 
              {($ VSub_Name '$NL')} {(CRLF)} {($ VSub_Name '$MIX_CRLF_LF')} {($ VSub_Name '$MIX_LF_CR')} {($ VSub_Name '$LFNUL')}
            )
            (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(DQ )} 
              {($ VSub_Name '$NL')} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
            )
            (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(native)} 
              {($ VSub_Name '$NL')} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
            )
          ]
          spids: [3176 3809]
        )
      spids: [3170 16777215]
    )
    (C {(test_expect_success)} {(SQ <'ls-files --eol -d -z'>)} 
      {
        (SQ <'\n'> 
          <
'\trm crlf_false_attr__CRLF.txt crlf_false_attr__CRLF_mix_LF.txt crlf_false_attr__LF.txt .gitattributes &&\n'
          > <'\tcat >expect <<-\\EOF &&\n'> <'\ti/crlf w/ crlf_false_attr__CRLF.txt\n'> 
          <'\ti/lf w/ .gitattributes\n'> <'\ti/lf w/ crlf_false_attr__LF.txt\n'> <'\ti/mixed w/ crlf_false_attr__CRLF_mix_LF.txt\n'> <'\tEOF\n'> 
          <'\tgit ls-files --eol -d |\n'> <'\tsed -e "s!attr/[^\t]*!!g" -e "s/\t/ /g" -e "s/  */ /g" |\n'> <'\tsort >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)