class org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo
  super_class: java.lang.Object
{
  private final java.lang.String pattern;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private int uriVars;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int singleWildcards;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int doubleWildcards;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.lang.Integer length;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
        start local 1 // java.lang.String pattern
         0: .line 820
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 821
            aload 0 /* this */
            aload 1 /* pattern */
            putfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
         2: .line 822
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            ifnull 8
         3: .line 823
            aload 0 /* this */
            invokevirtual org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.initCounters:()V
         4: .line 824
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            ldc "/**"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            putfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.catchAllPattern:Z
         5: .line 825
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.catchAllPattern:Z
            ifne 6
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            ldc "/**"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 6
            iconst_1
            goto 7
      StackMap locals: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo java.lang.String
      StackMap stack: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo
         6: iconst_0
      StackMap locals: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo java.lang.String
      StackMap stack: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo int
         7: putfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.prefixPattern:Z
         8: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.uriVars:I
            ifne 12
         9: .line 828
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            ifnull 10
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            goto 11
      StackMap locals:
      StackMap stack: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo
        10: iconst_0
      StackMap locals: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo java.lang.String
      StackMap stack: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo int
        11: invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.length:Ljava/lang/Integer;
        12: .line 830
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String pattern
        end local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lorg/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo;
            0   13     1  pattern  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
         Name  Flags
      pattern  

  protected void initCounters();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
         0: .line 833
            iconst_0
            istore 1 /* pos */
        start local 1 // int pos
         1: .line 834
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            ifnull 20
         2: .line 835
            goto 19
         3: .line 836
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            iload 1 /* pos */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 123
            if_icmpne 7
         4: .line 837
            aload 0 /* this */
            dup
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.uriVars:I
            iconst_1
            iadd
            putfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.uriVars:I
         5: .line 838
            iinc 1 /* pos */ 1
         6: .line 839
            goto 19
         7: .line 840
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            iload 1 /* pos */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 42
            if_icmpne 18
         8: .line 841
            iload 1 /* pos */
            iconst_1
            iadd
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 12
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            iload 1 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 42
            if_icmpne 12
         9: .line 842
            aload 0 /* this */
            dup
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.doubleWildcards:I
            iconst_1
            iadd
            putfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.doubleWildcards:I
        10: .line 843
            iinc 1 /* pos */ 2
        11: .line 844
            goto 19
        12: .line 845
      StackMap locals:
      StackMap stack:
            iload 1 /* pos */
            ifle 16
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            iload 1 /* pos */
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            ldc ".*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
        13: .line 846
            aload 0 /* this */
            dup
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.singleWildcards:I
            iconst_1
            iadd
            putfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.singleWildcards:I
        14: .line 847
            iinc 1 /* pos */ 1
        15: .line 848
            goto 19
        16: .line 850
      StackMap locals:
      StackMap stack:
            iinc 1 /* pos */ 1
        17: .line 852
            goto 19
        18: .line 854
      StackMap locals:
      StackMap stack:
            iinc 1 /* pos */ 1
        19: .line 835
      StackMap locals:
      StackMap stack:
            iload 1 /* pos */
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        20: .line 858
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int pos
        end local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lorg/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo;
            1   21     1   pos  I

  public int getUriVars();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
         0: .line 861
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.uriVars:I
            ireturn
        end local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo;

  public int getSingleWildcards();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
         0: .line 865
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.singleWildcards:I
            ireturn
        end local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo;

  public int getDoubleWildcards();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
         0: .line 869
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.doubleWildcards:I
            ireturn
        end local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo;

  public boolean isLeastSpecific();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
         0: .line 873
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.catchAllPattern:Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo;

  public boolean isPrefixPattern();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
         0: .line 877
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.prefixPattern:Z
            ireturn
        end local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo;

  public int getTotalCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
         0: .line 881
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.uriVars:I
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.singleWildcards:I
            iadd
            iconst_2
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.doubleWildcards:I
            imul
            iadd
            ireturn
        end local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo;

  public int getLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
         0: .line 888
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.length:Ljava/lang/Integer;
            ifnonnull 6
         1: .line 889
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            ifnull 3
         2: .line 890
            getstatic org.springframework.util.AntPathMatcher.VARIABLE_PATTERN:Ljava/util/regex/Pattern;
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.pattern:Ljava/lang/String;
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            ldc "#"
            invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            goto 4
      StackMap locals:
      StackMap stack: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo
         3: iconst_0
      StackMap locals: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo
      StackMap stack: org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo int
         4: invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         5: .line 889
            putfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.length:Ljava/lang/Integer;
         6: .line 892
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo.length:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 0 // org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo;
}
SourceFile: "AntPathMatcher.java"
NestHost: org.springframework.util.AntPathMatcher
InnerClasses:
  protected AntPatternComparator = org.springframework.util.AntPathMatcher$AntPatternComparator of org.springframework.util.AntPathMatcher
  private PatternInfo = org.springframework.util.AntPathMatcher$AntPatternComparator$PatternInfo of org.springframework.util.AntPathMatcher$AntPatternComparator