public class org.apache.tools.ant.taskdefs.Concat extends org.apache.tools.ant.Task implements org.apache.tools.ant.types.ResourceCollection
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.tools.ant.taskdefs.Concat
  super_class: org.apache.tools.ant.Task
{
  private static final int BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private static final org.apache.tools.ant.util.FileUtils FILE_UTILS;
    descriptor: Lorg/apache/tools/ant/util/FileUtils;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.tools.ant.types.resources.selectors.ResourceSelector EXISTS;
    descriptor: Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.tools.ant.types.resources.selectors.ResourceSelector NOT_EXISTS;
    descriptor: Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.apache.tools.ant.types.Resource dest;
    descriptor: Lorg/apache/tools/ant/types/Resource;
    flags: (0x0002) ACC_PRIVATE

  private boolean append;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String encoding;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String outputEncoding;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean binary;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.StringBuffer textBuffer;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.tools.ant.types.resources.Resources rc;
    descriptor: Lorg/apache/tools/ant/types/resources/Resources;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Vector<org.apache.tools.ant.types.FilterChain> filterChains;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Lorg/apache/tools/ant/types/FilterChain;>;

  private boolean forceOverwrite;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean force;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.apache.tools.ant.taskdefs.Concat$TextElement footer;
    descriptor: Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.tools.ant.taskdefs.Concat$TextElement header;
    descriptor: Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
    flags: (0x0002) ACC_PRIVATE

  private boolean fixLastLine;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String eolString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.io.Writer outputWriter;
    descriptor: Ljava/io/Writer;
    flags: (0x0002) ACC_PRIVATE

  private boolean ignoreEmpty;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String resourceName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.tools.ant.taskdefs.Concat$ReaderFactory<org.apache.tools.ant.types.Resource> resourceReaderFactory;
    descriptor: Lorg/apache/tools/ant/taskdefs/Concat$ReaderFactory;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/apache/tools/ant/taskdefs/Concat$ReaderFactory<Lorg/apache/tools/ant/types/Resource;>;

  private org.apache.tools.ant.taskdefs.Concat$ReaderFactory<java.io.Reader> identityReaderFactory;
    descriptor: Lorg/apache/tools/ant/taskdefs/Concat$ReaderFactory;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/apache/tools/ant/taskdefs/Concat$ReaderFactory<Ljava/io/Reader;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 83
            invokestatic org.apache.tools.ant.util.FileUtils.getFileUtils:()Lorg/apache/tools/ant/util/FileUtils;
            putstatic org.apache.tools.ant.taskdefs.Concat.FILE_UTILS:Lorg/apache/tools/ant/util/FileUtils;
         1: .line 85
            new org.apache.tools.ant.types.resources.selectors.Exists
            dup
            invokespecial org.apache.tools.ant.types.resources.selectors.Exists.<init>:()V
            putstatic org.apache.tools.ant.taskdefs.Concat.EXISTS:Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;
         2: .line 86
            new org.apache.tools.ant.types.resources.selectors.Not
            dup
            getstatic org.apache.tools.ant.taskdefs.Concat.EXISTS:Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;
            invokespecial org.apache.tools.ant.types.resources.selectors.Not.<init>:(Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;)V
            putstatic org.apache.tools.ant.taskdefs.Concat.NOT_EXISTS:Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 507
            aload 0 /* this */
            invokespecial org.apache.tools.ant.Task.<init>:()V
         1: .line 473
            aload 0 /* this */
            iconst_1
            putfield org.apache.tools.ant.taskdefs.Concat.forceOverwrite:Z
         2: .line 475
            aload 0 /* this */
            iconst_0
            putfield org.apache.tools.ant.taskdefs.Concat.force:Z
         3: .line 481
            aload 0 /* this */
            iconst_0
            putfield org.apache.tools.ant.taskdefs.Concat.fixLastLine:Z
         4: .line 485
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.outputWriter:Ljava/io/Writer;
         5: .line 488
            aload 0 /* this */
            iconst_1
            putfield org.apache.tools.ant.taskdefs.Concat.ignoreEmpty:Z
         6: .line 492
            aload 0 /* this */
            new org.apache.tools.ant.taskdefs.Concat$1
            dup
            aload 0 /* this */
            invokespecial org.apache.tools.ant.taskdefs.Concat$1.<init>:(Lorg/apache/tools/ant/taskdefs/Concat;)V
            putfield org.apache.tools.ant.taskdefs.Concat.resourceReaderFactory:Lorg/apache/tools/ant/taskdefs/Concat$ReaderFactory;
         7: .line 502
            aload 0 /* this */
            invokedynamic getReader()Lorg/apache/tools/ant/taskdefs/Concat$ReaderFactory;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/io/Reader;
                  org/apache/tools/ant/taskdefs/Concat.lambda$0(Ljava/io/Reader;)Ljava/io/Reader; (6)
                  (Ljava/io/Reader;)Ljava/io/Reader;
            putfield org.apache.tools.ant.taskdefs.Concat.identityReaderFactory:Lorg/apache/tools/ant/taskdefs/Concat$ReaderFactory;
         8: .line 508
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.reset:()V
         9: .line 509
            return
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/tools/ant/taskdefs/Concat;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 515
            aload 0 /* this */
            iconst_0
            putfield org.apache.tools.ant.taskdefs.Concat.append:Z
         1: .line 516
            aload 0 /* this */
            iconst_1
            putfield org.apache.tools.ant.taskdefs.Concat.forceOverwrite:Z
         2: .line 517
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
         3: .line 518
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.encoding:Ljava/lang/String;
         4: .line 519
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.outputEncoding:Ljava/lang/String;
         5: .line 520
            aload 0 /* this */
            iconst_0
            putfield org.apache.tools.ant.taskdefs.Concat.fixLastLine:Z
         6: .line 521
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.filterChains:Ljava/util/Vector;
         7: .line 522
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.footer:Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
         8: .line 523
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.header:Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
         9: .line 524
            aload 0 /* this */
            iconst_0
            putfield org.apache.tools.ant.taskdefs.Concat.binary:Z
        10: .line 525
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.outputWriter:Ljava/io/Writer;
        11: .line 526
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
        12: .line 527
            aload 0 /* this */
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            putfield org.apache.tools.ant.taskdefs.Concat.eolString:Ljava/lang/String;
        13: .line 528
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
        14: .line 529
            aload 0 /* this */
            iconst_1
            putfield org.apache.tools.ant.taskdefs.Concat.ignoreEmpty:Z
        15: .line 530
            aload 0 /* this */
            iconst_0
            putfield org.apache.tools.ant.taskdefs.Concat.force:Z
        16: .line 531
            return
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lorg/apache/tools/ant/taskdefs/Concat;

  public void setDestfile(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // java.io.File destinationFile
         0: .line 540
            aload 0 /* this */
            new org.apache.tools.ant.types.resources.FileResource
            dup
            aload 1 /* destinationFile */
            invokespecial org.apache.tools.ant.types.resources.FileResource.<init>:(Ljava/io/File;)V
            invokevirtual org.apache.tools.ant.taskdefs.Concat.setDest:(Lorg/apache/tools/ant/types/Resource;)V
         1: .line 541
            return
        end local 1 // java.io.File destinationFile
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  destinationFile  Ljava/io/File;
    MethodParameters:
                 Name  Flags
      destinationFile  

  public void setDest(org.apache.tools.ant.types.Resource);
    descriptor: (Lorg/apache/tools/ant/types/Resource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.types.Resource dest
         0: .line 549
            aload 0 /* this */
            aload 1 /* dest */
            putfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
         1: .line 550
            return
        end local 1 // org.apache.tools.ant.types.Resource dest
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  dest  Lorg/apache/tools/ant/types/Resource;
    MethodParameters:
      Name  Flags
      dest  

  public void setAppend(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // boolean append
         0: .line 560
            aload 0 /* this */
            iload 1 /* append */
            putfield org.apache.tools.ant.taskdefs.Concat.append:Z
         1: .line 561
            return
        end local 1 // boolean append
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  append  Z
    MethodParameters:
        Name  Flags
      append  

  public void setEncoding(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // java.lang.String encoding
         0: .line 569
            aload 0 /* this */
            aload 1 /* encoding */
            putfield org.apache.tools.ant.taskdefs.Concat.encoding:Ljava/lang/String;
         1: .line 570
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.outputEncoding:Ljava/lang/String;
            ifnonnull 3
         2: .line 571
            aload 0 /* this */
            aload 1 /* encoding */
            putfield org.apache.tools.ant.taskdefs.Concat.outputEncoding:Ljava/lang/String;
         3: .line 573
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String encoding
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    4     1  encoding  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      encoding  

  public void setOutputEncoding(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // java.lang.String outputEncoding
         0: .line 581
            aload 0 /* this */
            aload 1 /* outputEncoding */
            putfield org.apache.tools.ant.taskdefs.Concat.outputEncoding:Ljava/lang/String;
         1: .line 582
            return
        end local 1 // java.lang.String outputEncoding
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  outputEncoding  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      outputEncoding  

  public void setForce(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // boolean forceOverwrite
         0: .line 594
            aload 0 /* this */
            iload 1 /* forceOverwrite */
            putfield org.apache.tools.ant.taskdefs.Concat.forceOverwrite:Z
         1: .line 595
            return
        end local 1 // boolean forceOverwrite
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  forceOverwrite  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                Name  Flags
      forceOverwrite  

  public void setOverwrite(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // boolean forceOverwrite
         0: .line 605
            aload 0 /* this */
            iload 1 /* forceOverwrite */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.setForce:(Z)V
         1: .line 606
            return
        end local 1 // boolean forceOverwrite
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  forceOverwrite  Z
    MethodParameters:
                Name  Flags
      forceOverwrite  

  public void setForceReadOnly(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // boolean f
         0: .line 617
            aload 0 /* this */
            iload 1 /* f */
            putfield org.apache.tools.ant.taskdefs.Concat.force:Z
         1: .line 618
            return
        end local 1 // boolean f
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1     f  Z
    MethodParameters:
      Name  Flags
      f     

  public void setIgnoreEmpty(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // boolean ignoreEmpty
         0: .line 628
            aload 0 /* this */
            iload 1 /* ignoreEmpty */
            putfield org.apache.tools.ant.taskdefs.Concat.ignoreEmpty:Z
         1: .line 629
            return
        end local 1 // boolean ignoreEmpty
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  ignoreEmpty  Z
    MethodParameters:
             Name  Flags
      ignoreEmpty  

  public void setResourceName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // java.lang.String resourceName
         0: .line 637
            aload 0 /* this */
            aload 1 /* resourceName */
            putfield org.apache.tools.ant.taskdefs.Concat.resourceName:Ljava/lang/String;
         1: .line 638
            return
        end local 1 // java.lang.String resourceName
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  resourceName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      resourceName  

  public org.apache.tools.ant.types.Path createPath();
    descriptor: ()Lorg/apache/tools/ant/types/Path;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 648
            new org.apache.tools.ant.types.Path
            dup
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.getProject:()Lorg/apache/tools/ant/Project;
            invokespecial org.apache.tools.ant.types.Path.<init>:(Lorg/apache/tools/ant/Project;)V
            astore 1 /* path */
        start local 1 // org.apache.tools.ant.types.Path path
         1: .line 649
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.add:(Lorg/apache/tools/ant/types/ResourceCollection;)V
         2: .line 650
            aload 1 /* path */
            areturn
        end local 1 // org.apache.tools.ant.types.Path path
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            1    3     1  path  Lorg/apache/tools/ant/types/Path;

  public void addFileset(org.apache.tools.ant.types.FileSet);
    descriptor: (Lorg/apache/tools/ant/types/FileSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.types.FileSet set
         0: .line 658
            aload 0 /* this */
            aload 1 /* set */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.add:(Lorg/apache/tools/ant/types/ResourceCollection;)V
         1: .line 659
            return
        end local 1 // org.apache.tools.ant.types.FileSet set
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1   set  Lorg/apache/tools/ant/types/FileSet;
    MethodParameters:
      Name  Flags
      set   

  public void addFilelist(org.apache.tools.ant.types.FileList);
    descriptor: (Lorg/apache/tools/ant/types/FileList;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.types.FileList list
         0: .line 666
            aload 0 /* this */
            aload 1 /* list */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.add:(Lorg/apache/tools/ant/types/ResourceCollection;)V
         1: .line 667
            return
        end local 1 // org.apache.tools.ant.types.FileList list
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  list  Lorg/apache/tools/ant/types/FileList;
    MethodParameters:
      Name  Flags
      list  

  public void add(org.apache.tools.ant.types.ResourceCollection);
    descriptor: (Lorg/apache/tools/ant/types/ResourceCollection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.types.ResourceCollection c
         0: .line 675
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 676
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            ifnonnull 5
         2: .line 677
            aload 0 /* this */
            new org.apache.tools.ant.types.resources.Resources
            dup
            invokespecial org.apache.tools.ant.types.resources.Resources.<init>:()V
            putfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
         3: .line 678
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.getProject:()Lorg/apache/tools/ant/Project;
            invokevirtual org.apache.tools.ant.types.resources.Resources.setProject:(Lorg/apache/tools/ant/Project;)V
         4: .line 679
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            iconst_1
            invokevirtual org.apache.tools.ant.types.resources.Resources.setCache:(Z)V
         5: .line 675
      StackMap locals: org.apache.tools.ant.taskdefs.Concat
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 682
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            aload 1 /* c */
            invokevirtual org.apache.tools.ant.types.resources.Resources.add:(Lorg/apache/tools/ant/types/ResourceCollection;)V
        10: .line 683
            return
        end local 1 // org.apache.tools.ant.types.ResourceCollection c
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            0   11     1     c  Lorg/apache/tools/ant/types/ResourceCollection;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
      Name  Flags
      c     

  public void addFilterChain(org.apache.tools.ant.types.FilterChain);
    descriptor: (Lorg/apache/tools/ant/types/FilterChain;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.types.FilterChain filterChain
         0: .line 691
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.filterChains:Ljava/util/Vector;
            ifnonnull 2
         1: .line 692
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield org.apache.tools.ant.taskdefs.Concat.filterChains:Ljava/util/Vector;
         2: .line 694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.filterChains:Ljava/util/Vector;
            aload 1 /* filterChain */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         3: .line 695
            return
        end local 1 // org.apache.tools.ant.types.FilterChain filterChain
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    4     1  filterChain  Lorg/apache/tools/ant/types/FilterChain;
    MethodParameters:
             Name  Flags
      filterChain  

  public void addText(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // java.lang.String text
         0: .line 702
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
            ifnonnull 2
         1: .line 705
            aload 0 /* this */
            new java.lang.StringBuffer
            dup
            aload 1 /* text */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuffer.<init>:(I)V
            putfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
         2: .line 710
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
            aload 1 /* text */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         3: .line 711
            return
        end local 1 // java.lang.String text
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    4     1  text  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      text  

  public void addHeader(org.apache.tools.ant.taskdefs.Concat$TextElement);
    descriptor: (Lorg/apache/tools/ant/taskdefs/Concat$TextElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.taskdefs.Concat$TextElement headerToAdd
         0: .line 719
            aload 0 /* this */
            aload 1 /* headerToAdd */
            putfield org.apache.tools.ant.taskdefs.Concat.header:Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
         1: .line 720
            return
        end local 1 // org.apache.tools.ant.taskdefs.Concat$TextElement headerToAdd
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  headerToAdd  Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
    MethodParameters:
             Name  Flags
      headerToAdd  

  public void addFooter(org.apache.tools.ant.taskdefs.Concat$TextElement);
    descriptor: (Lorg/apache/tools/ant/taskdefs/Concat$TextElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.taskdefs.Concat$TextElement footerToAdd
         0: .line 728
            aload 0 /* this */
            aload 1 /* footerToAdd */
            putfield org.apache.tools.ant.taskdefs.Concat.footer:Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
         1: .line 729
            return
        end local 1 // org.apache.tools.ant.taskdefs.Concat$TextElement footerToAdd
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  footerToAdd  Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
    MethodParameters:
             Name  Flags
      footerToAdd  

  public void setFixLastLine(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // boolean fixLastLine
         0: .line 739
            aload 0 /* this */
            iload 1 /* fixLastLine */
            putfield org.apache.tools.ant.taskdefs.Concat.fixLastLine:Z
         1: .line 740
            return
        end local 1 // boolean fixLastLine
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  fixLastLine  Z
    MethodParameters:
             Name  Flags
      fixLastLine  

  public void setEol(org.apache.tools.ant.taskdefs.FixCRLF$CrLf);
    descriptor: (Lorg/apache/tools/ant/taskdefs/FixCRLF$CrLf;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.taskdefs.FixCRLF$CrLf crlf
         0: .line 751
            aload 1 /* crlf */
            invokevirtual org.apache.tools.ant.taskdefs.FixCRLF$CrLf.getValue:()Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
         1: .line 752
            ldc "cr"
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            ldc "mac"
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 753
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            ldc "\r"
            putfield org.apache.tools.ant.taskdefs.Concat.eolString:Ljava/lang/String;
         3: .line 754
            goto 9
      StackMap locals:
      StackMap stack:
         4: ldc "lf"
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            ldc "unix"
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 755
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "\n"
            putfield org.apache.tools.ant.taskdefs.Concat.eolString:Ljava/lang/String;
         6: .line 756
            goto 9
      StackMap locals:
      StackMap stack:
         7: ldc "crlf"
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            ldc "dos"
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 757
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "\r\n"
            putfield org.apache.tools.ant.taskdefs.Concat.eolString:Ljava/lang/String;
         9: .line 759
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String s
        end local 1 // org.apache.tools.ant.taskdefs.FixCRLF$CrLf crlf
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            0   10     1  crlf  Lorg/apache/tools/ant/taskdefs/FixCRLF$CrLf;
            1   10     2     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      crlf  

  public void setWriter(java.io.Writer);
    descriptor: (Ljava/io/Writer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // java.io.Writer outputWriter
         0: .line 768
            aload 0 /* this */
            aload 1 /* outputWriter */
            putfield org.apache.tools.ant.taskdefs.Concat.outputWriter:Ljava/io/Writer;
         1: .line 769
            return
        end local 1 // java.io.Writer outputWriter
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  outputWriter  Ljava/io/Writer;
    MethodParameters:
              Name  Flags
      outputWriter  

  public void setBinary(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // boolean binary
         0: .line 779
            aload 0 /* this */
            iload 1 /* binary */
            putfield org.apache.tools.ant.taskdefs.Concat.binary:Z
         1: .line 780
            return
        end local 1 // boolean binary
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    2     1  binary  Z
    MethodParameters:
        Name  Flags
      binary  

  public void execute();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=3, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 787
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.validate:()V
         1: .line 788
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.binary:Z
            ifeq 5
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
            ifnonnull 5
         2: .line 789
            new org.apache.tools.ant.BuildException
            dup
         3: .line 790
            ldc "dest|destfile attribute is required for binary concatenation"
         4: .line 789
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 792
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.getResources:()Lorg/apache/tools/ant/types/ResourceCollection;
            astore 1 /* c */
        start local 1 // org.apache.tools.ant.types.ResourceCollection c
         6: .line 793
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.isUpToDate:(Lorg/apache/tools/ant/types/ResourceCollection;)Z
            ifeq 9
         7: .line 794
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is up-to-date."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_3
            invokevirtual org.apache.tools.ant.taskdefs.Concat.log:(Ljava/lang/String;I)V
         8: .line 795
            return
         9: .line 797
      StackMap locals: org.apache.tools.ant.types.ResourceCollection
      StackMap stack:
            aload 1 /* c */
            invokeinterface org.apache.tools.ant.types.ResourceCollection.isEmpty:()Z
            ifeq 11
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.ignoreEmpty:Z
            ifeq 11
        10: .line 798
            return
        11: .line 802
      StackMap locals:
      StackMap stack:
            new org.apache.tools.ant.taskdefs.Concat$ConcatResource
            dup
            aload 0 /* this */
            aload 1 /* c */
            invokespecial org.apache.tools.ant.taskdefs.Concat$ConcatResource.<init>:(Lorg/apache/tools/ant/taskdefs/Concat;Lorg/apache/tools/ant/types/ResourceCollection;)V
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
            ifnonnull 13
        12: .line 803
            new org.apache.tools.ant.types.resources.LogOutputResource
            dup
            aload 0 /* this */
            iconst_1
            invokespecial org.apache.tools.ant.types.resources.LogOutputResource.<init>:(Lorg/apache/tools/ant/ProjectComponent;I)V
            goto 14
        13: .line 804
      StackMap locals:
      StackMap stack: org.apache.tools.ant.taskdefs.Concat$ConcatResource
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
        14: .line 805
      StackMap locals: org.apache.tools.ant.taskdefs.Concat org.apache.tools.ant.types.ResourceCollection
      StackMap stack: org.apache.tools.ant.taskdefs.Concat$ConcatResource org.apache.tools.ant.types.Resource
            aconst_null
            aconst_null
            iconst_1
            iconst_0
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.append:Z
            aconst_null
        15: .line 806
            aconst_null
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.getProject:()Lorg/apache/tools/ant/Project;
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.force:Z
        16: .line 802
            invokestatic org.apache.tools.ant.util.ResourceUtils.copyResource:(Lorg/apache/tools/ant/types/Resource;Lorg/apache/tools/ant/types/Resource;Lorg/apache/tools/ant/types/FilterSetCollection;Ljava/util/Vector;ZZZLjava/lang/String;Ljava/lang/String;Lorg/apache/tools/ant/Project;Z)V
        17: .line 807
            goto 20
      StackMap locals:
      StackMap stack: java.io.IOException
        18: astore 2 /* e */
        start local 2 // java.io.IOException e
        19: .line 808
            new org.apache.tools.ant.BuildException
            dup
            new java.lang.StringBuilder
            dup
            ldc "error concatenating content to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        20: .line 810
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.tools.ant.types.ResourceCollection c
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            6   21     1     c  Lorg/apache/tools/ant/types/ResourceCollection;
           19   20     2     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          11    17      18  Class java.io.IOException

  public java.util.Iterator<org.apache.tools.ant.types.Resource> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 818
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.validate:()V
         1: .line 820
            new org.apache.tools.ant.taskdefs.Concat$ConcatResource
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.getResources:()Lorg/apache/tools/ant/types/ResourceCollection;
            invokespecial org.apache.tools.ant.taskdefs.Concat$ConcatResource.<init>:(Lorg/apache/tools/ant/taskdefs/Concat;Lorg/apache/tools/ant/types/ResourceCollection;)V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
         2: .line 821
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
         3: .line 819
            areturn
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
    Signature: ()Ljava/util/Iterator<Lorg/apache/tools/ant/types/Resource;>;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 830
            iconst_1
            ireturn
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tools/ant/taskdefs/Concat;

  public boolean isFilesystemOnly();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 839
            iconst_0
            ireturn
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tools/ant/taskdefs/Concat;

  private void validate();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 848
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.sanitizeText:()V
         1: .line 851
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.binary:Z
            ifeq 22
         2: .line 852
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
            ifnull 6
         3: .line 853
            new org.apache.tools.ant.BuildException
            dup
         4: .line 854
            ldc "Nested text is incompatible with binary concatenation"
         5: .line 853
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 856
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.encoding:Ljava/lang/String;
            ifnonnull 7
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.outputEncoding:Ljava/lang/String;
            ifnull 10
         7: .line 857
      StackMap locals:
      StackMap stack:
            new org.apache.tools.ant.BuildException
            dup
         8: .line 858
            ldc "Setting input or output encoding is incompatible with binary concatenation"
         9: .line 857
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.filterChains:Ljava/util/Vector;
            ifnull 14
        11: .line 861
            new org.apache.tools.ant.BuildException
            dup
        12: .line 862
            ldc "Setting filters is incompatible with binary concatenation"
        13: .line 861
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 864
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.fixLastLine:Z
            ifeq 18
        15: .line 865
            new org.apache.tools.ant.BuildException
            dup
        16: .line 866
            ldc "Setting fixlastline is incompatible with binary concatenation"
        17: .line 865
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 868
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.header:Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
            ifnonnull 19
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.footer:Lorg/apache/tools/ant/taskdefs/Concat$TextElement;
            ifnull 22
        19: .line 869
      StackMap locals:
      StackMap stack:
            new org.apache.tools.ant.BuildException
            dup
        20: .line 870
            ldc "Nested header or footer is incompatible with binary concatenation"
        21: .line 869
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 873
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
            ifnull 26
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.outputWriter:Ljava/io/Writer;
            ifnull 26
        23: .line 874
            new org.apache.tools.ant.BuildException
            dup
        24: .line 875
            ldc "Cannot specify both a destination resource and an output writer"
        25: .line 874
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 878
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            ifnonnull 30
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
            ifnonnull 30
        27: .line 880
            new org.apache.tools.ant.BuildException
            dup
        28: .line 881
            ldc "At least one resource must be provided, or some text."
        29: .line 880
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 883
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            ifnull 34
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
            ifnull 34
        31: .line 886
            new org.apache.tools.ant.BuildException
            dup
        32: .line 887
            ldc "Cannot include inline text when using resources."
        33: .line 886
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 889
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   35     0  this  Lorg/apache/tools/ant/taskdefs/Concat;

  private org.apache.tools.ant.types.ResourceCollection getResources();
    descriptor: ()Lorg/apache/tools/ant/types/ResourceCollection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 895
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            ifnonnull 2
         1: .line 896
            new org.apache.tools.ant.types.resources.StringResource
            dup
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.getProject:()Lorg/apache/tools/ant/Project;
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokespecial org.apache.tools.ant.types.resources.StringResource.<init>:(Lorg/apache/tools/ant/Project;Ljava/lang/String;)V
            areturn
         2: .line 898
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
            ifnull 12
         3: .line 899
            new org.apache.tools.ant.types.resources.Intersect
            dup
            invokespecial org.apache.tools.ant.types.resources.Intersect.<init>:()V
            astore 1 /* checkDestNotInSources */
        start local 1 // org.apache.tools.ant.types.resources.Intersect checkDestNotInSources
         4: .line 900
            aload 1 /* checkDestNotInSources */
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.getProject:()Lorg/apache/tools/ant/Project;
            invokevirtual org.apache.tools.ant.types.resources.Intersect.setProject:(Lorg/apache/tools/ant/Project;)V
         5: .line 901
            aload 1 /* checkDestNotInSources */
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            invokevirtual org.apache.tools.ant.types.resources.Intersect.add:(Lorg/apache/tools/ant/types/ResourceCollection;)V
         6: .line 902
            aload 1 /* checkDestNotInSources */
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
            invokevirtual org.apache.tools.ant.types.resources.Intersect.add:(Lorg/apache/tools/ant/types/ResourceCollection;)V
         7: .line 903
            aload 1 /* checkDestNotInSources */
            invokevirtual org.apache.tools.ant.types.resources.Intersect.size:()I
            ifle 12
         8: .line 904
            new org.apache.tools.ant.BuildException
            dup
         9: .line 905
            ldc "Destination resource %s was specified as an input resource."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 906
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
        11: .line 904
            aastore
            invokespecial org.apache.tools.ant.BuildException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 1 // org.apache.tools.ant.types.resources.Intersect checkDestNotInSources
        12: .line 909
      StackMap locals:
      StackMap stack:
            new org.apache.tools.ant.types.resources.Restrict
            dup
            invokespecial org.apache.tools.ant.types.resources.Restrict.<init>:()V
            astore 1 /* noexistRc */
        start local 1 // org.apache.tools.ant.types.resources.Restrict noexistRc
        13: .line 910
            aload 1 /* noexistRc */
            getstatic org.apache.tools.ant.taskdefs.Concat.NOT_EXISTS:Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;
            invokevirtual org.apache.tools.ant.types.resources.Restrict.add:(Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;)V
        14: .line 911
            aload 1 /* noexistRc */
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            invokevirtual org.apache.tools.ant.types.resources.Restrict.add:(Lorg/apache/tools/ant/types/ResourceCollection;)V
        15: .line 912
            aload 1 /* noexistRc */
            invokevirtual org.apache.tools.ant.types.resources.Restrict.iterator:()Ljava/util/Iterator;
            astore 3
            goto 18
      StackMap locals: org.apache.tools.ant.taskdefs.Concat org.apache.tools.ant.types.resources.Restrict top java.util.Iterator
      StackMap stack:
        16: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tools.ant.types.Resource
            astore 2 /* r */
        start local 2 // org.apache.tools.ant.types.Resource r
        17: .line 913
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 2 /* r */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not exist."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            invokevirtual org.apache.tools.ant.taskdefs.Concat.log:(Ljava/lang/String;I)V
        end local 2 // org.apache.tools.ant.types.Resource r
        18: .line 912
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        19: .line 915
            new org.apache.tools.ant.types.resources.Restrict
            dup
            invokespecial org.apache.tools.ant.types.resources.Restrict.<init>:()V
            astore 2 /* result */
        start local 2 // org.apache.tools.ant.types.resources.Restrict result
        20: .line 916
            aload 2 /* result */
            getstatic org.apache.tools.ant.taskdefs.Concat.EXISTS:Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;
            invokevirtual org.apache.tools.ant.types.resources.Restrict.add:(Lorg/apache/tools/ant/types/resources/selectors/ResourceSelector;)V
        21: .line 917
            aload 2 /* result */
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.rc:Lorg/apache/tools/ant/types/resources/Resources;
            invokevirtual org.apache.tools.ant.types.resources.Restrict.add:(Lorg/apache/tools/ant/types/ResourceCollection;)V
        22: .line 918
            aload 2 /* result */
            areturn
        end local 2 // org.apache.tools.ant.types.resources.Restrict result
        end local 1 // org.apache.tools.ant.types.resources.Restrict noexistRc
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   23     0                   this  Lorg/apache/tools/ant/taskdefs/Concat;
            4   12     1  checkDestNotInSources  Lorg/apache/tools/ant/types/resources/Intersect;
           13   23     1              noexistRc  Lorg/apache/tools/ant/types/resources/Restrict;
           17   18     2                      r  Lorg/apache/tools/ant/types/Resource;
           20   23     2                 result  Lorg/apache/tools/ant/types/resources/Restrict;

  private boolean isUpToDate(org.apache.tools.ant.types.ResourceCollection);
    descriptor: (Lorg/apache/tools/ant/types/ResourceCollection;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.types.ResourceCollection c
         0: .line 922
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
            ifnull 3
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.forceOverwrite:Z
            ifne 3
         1: .line 923
            aload 1 /* c */
            invokeinterface org.apache.tools.ant.types.ResourceCollection.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic test(Lorg/apache/tools/ant/taskdefs/Concat;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/apache/tools/ant/taskdefs/Concat.lambda$1(Lorg/apache/tools/ant/types/Resource;)Z (7)
                  (Lorg/apache/tools/ant/types/Resource;)Z
            invokeinterface java.util.stream.Stream.noneMatch:(Ljava/util/function/Predicate;)Z
            ifeq 3
         2: .line 922
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // org.apache.tools.ant.types.ResourceCollection c
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    4     1     c  Lorg/apache/tools/ant/types/ResourceCollection;
    MethodParameters:
      Name  Flags
      c     

  private void sanitizeText();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
         0: .line 933
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
            ifnull 2
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 934
            aload 0 /* this */
            aconst_null
            putfield org.apache.tools.ant.taskdefs.Concat.textBuffer:Ljava/lang/StringBuffer;
         2: .line 936
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tools/ant/taskdefs/Concat;

  private java.io.Reader getFilteredReader(java.io.Reader);
    descriptor: (Ljava/io/Reader;)Ljava/io/Reader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // java.io.Reader r
         0: .line 939
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.filterChains:Ljava/util/Vector;
            ifnonnull 2
         1: .line 940
            aload 1 /* r */
            areturn
         2: .line 942
      StackMap locals:
      StackMap stack:
            new org.apache.tools.ant.filters.util.ChainReaderHelper
            dup
            invokespecial org.apache.tools.ant.filters.util.ChainReaderHelper.<init>:()V
            astore 2 /* helper */
        start local 2 // org.apache.tools.ant.filters.util.ChainReaderHelper helper
         3: .line 943
            aload 2 /* helper */
            sipush 8192
            invokevirtual org.apache.tools.ant.filters.util.ChainReaderHelper.setBufferSize:(I)V
         4: .line 944
            aload 2 /* helper */
            aload 1 /* r */
            invokevirtual org.apache.tools.ant.filters.util.ChainReaderHelper.setPrimaryReader:(Ljava/io/Reader;)V
         5: .line 945
            aload 2 /* helper */
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.filterChains:Ljava/util/Vector;
            invokevirtual org.apache.tools.ant.filters.util.ChainReaderHelper.setFilterChains:(Ljava/util/Vector;)V
         6: .line 946
            aload 2 /* helper */
            aload 0 /* this */
            invokevirtual org.apache.tools.ant.taskdefs.Concat.getProject:()Lorg/apache/tools/ant/Project;
            invokevirtual org.apache.tools.ant.filters.util.ChainReaderHelper.setProject:(Lorg/apache/tools/ant/Project;)V
         7: .line 948
            aload 2 /* helper */
            invokevirtual org.apache.tools.ant.filters.util.ChainReaderHelper.getAssembledReader:()Lorg/apache/tools/ant/filters/util/ChainReaderHelper$ChainReader;
            areturn
        end local 2 // org.apache.tools.ant.filters.util.ChainReaderHelper helper
        end local 1 // java.io.Reader r
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    8     1       r  Ljava/io/Reader;
            3    8     2  helper  Lorg/apache/tools/ant/filters/util/ChainReaderHelper;
    MethodParameters:
      Name  Flags
      r     

  private static java.io.Reader lambda$0(java.io.Reader);
    descriptor: (Ljava/io/Reader;)Ljava/io/Reader;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.Reader o
         0: .line 502
            aload 0 /* o */
            areturn
        end local 0 // java.io.Reader o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     o  Ljava/io/Reader;
    Exceptions:
      throws java.io.IOException

  private boolean lambda$1(org.apache.tools.ant.types.Resource);
    descriptor: (Lorg/apache/tools/ant/types/Resource;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.tools.ant.taskdefs.Concat this
        start local 1 // org.apache.tools.ant.types.Resource r
         0: .line 923
            aload 1 /* r */
            aload 0 /* this */
            getfield org.apache.tools.ant.taskdefs.Concat.dest:Lorg/apache/tools/ant/types/Resource;
            getstatic org.apache.tools.ant.taskdefs.Concat.FILE_UTILS:Lorg/apache/tools/ant/util/FileUtils;
            invokevirtual org.apache.tools.ant.util.FileUtils.getFileTimestampGranularity:()J
            invokestatic org.apache.tools.ant.types.selectors.SelectorUtils.isOutOfDate:(Lorg/apache/tools/ant/types/Resource;Lorg/apache/tools/ant/types/Resource;J)Z
            ireturn
        end local 1 // org.apache.tools.ant.types.Resource r
        end local 0 // org.apache.tools.ant.taskdefs.Concat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tools/ant/taskdefs/Concat;
            0    1     1     r  Lorg/apache/tools/ant/types/Resource;
}
SourceFile: "Concat.java"
NestMembers:
  org.apache.tools.ant.taskdefs.Concat$1  org.apache.tools.ant.taskdefs.Concat$ConcatResource  org.apache.tools.ant.taskdefs.Concat$MultiReader  org.apache.tools.ant.taskdefs.Concat$ReaderFactory  org.apache.tools.ant.taskdefs.Concat$TextElement
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public ChainReader = org.apache.tools.ant.filters.util.ChainReaderHelper$ChainReader of org.apache.tools.ant.filters.util.ChainReaderHelper
  org.apache.tools.ant.taskdefs.Concat$1
  private final ConcatResource = org.apache.tools.ant.taskdefs.Concat$ConcatResource of org.apache.tools.ant.taskdefs.Concat
  private final MultiReader = org.apache.tools.ant.taskdefs.Concat$MultiReader of org.apache.tools.ant.taskdefs.Concat
  private abstract ReaderFactory = org.apache.tools.ant.taskdefs.Concat$ReaderFactory of org.apache.tools.ant.taskdefs.Concat
  public TextElement = org.apache.tools.ant.taskdefs.Concat$TextElement of org.apache.tools.ant.taskdefs.Concat
  public CrLf = org.apache.tools.ant.taskdefs.FixCRLF$CrLf of org.apache.tools.ant.taskdefs.FixCRLF