public class org.springframework.web.servlet.resource.ResourceUrlProvider implements org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.web.servlet.resource.ResourceUrlProvider
  super_class: java.lang.Object
{
  protected final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private org.springframework.web.util.UrlPathHelper urlPathHelper;
    descriptor: Lorg/springframework/web/util/UrlPathHelper;
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.util.PathMatcher pathMatcher;
    descriptor: Lorg/springframework/util/PathMatcher;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Map<java.lang.String, org.springframework.web.servlet.resource.ResourceHttpRequestHandler> handlerMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;>;

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 53
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putfield org.springframework.web.servlet.resource.ResourceUrlProvider.logger:Lorg/apache/commons/logging/Log;
         2: .line 55
            aload 0 /* this */
            new org.springframework.web.util.UrlPathHelper
            dup
            invokespecial org.springframework.web.util.UrlPathHelper.<init>:()V
            putfield org.springframework.web.servlet.resource.ResourceUrlProvider.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
         3: .line 57
            aload 0 /* this */
            new org.springframework.util.AntPathMatcher
            dup
            invokespecial org.springframework.util.AntPathMatcher.<init>:()V
            putfield org.springframework.web.servlet.resource.ResourceUrlProvider.pathMatcher:Lorg/springframework/util/PathMatcher;
         4: .line 59
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
         5: .line 61
            aload 0 /* this */
            iconst_1
            putfield org.springframework.web.servlet.resource.ResourceUrlProvider.autodetect:Z
         6: .line 51
            return
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;

  public void setUrlPathHelper(org.springframework.web.util.UrlPathHelper);
    descriptor: (Lorg/springframework/web/util/UrlPathHelper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
        start local 1 // org.springframework.web.util.UrlPathHelper urlPathHelper
         0: .line 70
            aload 0 /* this */
            aload 1 /* urlPathHelper */
            putfield org.springframework.web.servlet.resource.ResourceUrlProvider.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
         1: .line 71
            return
        end local 1 // org.springframework.web.util.UrlPathHelper urlPathHelper
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
            0    2     1  urlPathHelper  Lorg/springframework/web/util/UrlPathHelper;
    MethodParameters:
               Name  Flags
      urlPathHelper  

  public org.springframework.web.util.UrlPathHelper getUrlPathHelper();
    descriptor: ()Lorg/springframework/web/util/UrlPathHelper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
         0: .line 78
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;

  public void setPathMatcher(org.springframework.util.PathMatcher);
    descriptor: (Lorg/springframework/util/PathMatcher;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
        start local 1 // org.springframework.util.PathMatcher pathMatcher
         0: .line 86
            aload 0 /* this */
            aload 1 /* pathMatcher */
            putfield org.springframework.web.servlet.resource.ResourceUrlProvider.pathMatcher:Lorg/springframework/util/PathMatcher;
         1: .line 87
            return
        end local 1 // org.springframework.util.PathMatcher pathMatcher
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
            0    2     1  pathMatcher  Lorg/springframework/util/PathMatcher;
    MethodParameters:
             Name  Flags
      pathMatcher  

  public org.springframework.util.PathMatcher getPathMatcher();
    descriptor: ()Lorg/springframework/util/PathMatcher;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
         0: .line 93
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.pathMatcher:Lorg/springframework/util/PathMatcher;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;

  public void setHandlerMap(java.util.Map<java.lang.String, org.springframework.web.servlet.resource.ResourceHttpRequestHandler>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
        start local 1 // java.util.Map handlerMap
         0: .line 103
            aload 1 /* handlerMap */
            ifnull 4
         1: .line 104
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 105
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
            aload 1 /* handlerMap */
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         3: .line 106
            aload 0 /* this */
            iconst_0
            putfield org.springframework.web.servlet.resource.ResourceUrlProvider.autodetect:Z
         4: .line 108
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Map handlerMap
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
            0    5     1  handlerMap  Ljava/util/Map<Ljava/lang/String;Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      handlerMap  

  public java.util.Map<java.lang.String, org.springframework.web.servlet.resource.ResourceHttpRequestHandler> getHandlerMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
         0: .line 115
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;>;

  public boolean isAutodetect();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
         0: .line 123
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.autodetect:Z
            ireturn
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;

  public void onApplicationEvent(org.springframework.context.event.ContextRefreshedEvent);
    descriptor: (Lorg/springframework/context/event/ContextRefreshedEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
        start local 1 // org.springframework.context.event.ContextRefreshedEvent event
         0: .line 128
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.isAutodetect:()Z
            ifeq 5
         1: .line 129
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 130
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual org.springframework.context.event.ContextRefreshedEvent.getApplicationContext:()Lorg/springframework/context/ApplicationContext;
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.detectResourceHandlers:(Lorg/springframework/context/ApplicationContext;)V
         3: .line 131
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 5
         4: .line 132
            aload 0 /* this */
            iconst_0
            putfield org.springframework.web.servlet.resource.ResourceUrlProvider.autodetect:Z
         5: .line 135
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.springframework.context.event.ContextRefreshedEvent event
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
            0    6     1  event  Lorg/springframework/context/event/ContextRefreshedEvent;
    MethodParameters:
       Name  Flags
      event  

  protected void detectResourceHandlers(org.springframework.context.ApplicationContext);
    descriptor: (Lorg/springframework/context/ApplicationContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
        start local 1 // org.springframework.context.ApplicationContext appContext
         0: .line 139
            aload 1 /* appContext */
            ldc Lorg/springframework/web/servlet/handler/SimpleUrlHandlerMapping;
            invokeinterface org.springframework.context.ApplicationContext.getBeansOfType:(Ljava/lang/Class;)Ljava/util/Map;
            astore 2 /* beans */
        start local 2 // java.util.Map beans
         1: .line 140
            new java.util.ArrayList
            dup
            aload 2 /* beans */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 3 /* mappings */
        start local 3 // java.util.List mappings
         2: .line 141
            aload 3 /* mappings */
            invokestatic org.springframework.core.annotation.AnnotationAwareOrderComparator.sort:(Ljava/util/List;)V
         3: .line 143
            aload 3 /* mappings */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider org.springframework.context.ApplicationContext java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
            astore 4 /* mapping */
        start local 4 // org.springframework.web.servlet.handler.SimpleUrlHandlerMapping mapping
         5: .line 144
            aload 4 /* mapping */
            invokevirtual org.springframework.web.servlet.handler.SimpleUrlHandlerMapping.getHandlerMap:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 11
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider org.springframework.context.ApplicationContext java.util.Map java.util.List org.springframework.web.servlet.handler.SimpleUrlHandlerMapping java.util.Iterator top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* pattern */
        start local 6 // java.lang.String pattern
         7: .line 145
            aload 4 /* mapping */
            invokevirtual org.springframework.web.servlet.handler.SimpleUrlHandlerMapping.getHandlerMap:()Ljava/util/Map;
            aload 6 /* pattern */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* handler */
        start local 8 // java.lang.Object handler
         8: .line 146
            aload 8 /* handler */
            instanceof org.springframework.web.servlet.resource.ResourceHttpRequestHandler
            ifeq 11
         9: .line 147
            aload 8 /* handler */
            checkcast org.springframework.web.servlet.resource.ResourceHttpRequestHandler
            astore 9 /* resourceHandler */
        start local 9 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler resourceHandler
        10: .line 148
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
            aload 6 /* pattern */
            aload 9 /* resourceHandler */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler resourceHandler
        end local 8 // java.lang.Object handler
        end local 6 // java.lang.String pattern
        11: .line 144
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 4 // org.springframework.web.servlet.handler.SimpleUrlHandlerMapping mapping
        12: .line 143
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider org.springframework.context.ApplicationContext java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        13: .line 153
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 15
        14: .line 154
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.logger:Lorg/apache/commons/logging/Log;
            ldc "No resource handling mappings found"
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
        15: .line 156
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider org.springframework.context.ApplicationContext java.util.Map java.util.List
      StackMap stack:
            return
        end local 3 // java.util.List mappings
        end local 2 // java.util.Map beans
        end local 1 // org.springframework.context.ApplicationContext appContext
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
            0   16     1       appContext  Lorg/springframework/context/ApplicationContext;
            1   16     2            beans  Ljava/util/Map<Ljava/lang/String;Lorg/springframework/web/servlet/handler/SimpleUrlHandlerMapping;>;
            2   16     3         mappings  Ljava/util/List<Lorg/springframework/web/servlet/handler/SimpleUrlHandlerMapping;>;
            5   12     4          mapping  Lorg/springframework/web/servlet/handler/SimpleUrlHandlerMapping;
            7   11     6          pattern  Ljava/lang/String;
            8   11     8          handler  Ljava/lang/Object;
           10   11     9  resourceHandler  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    MethodParameters:
            Name  Flags
      appContext  

  public final java.lang.String getForRequestUrl(javax.servlet.http.HttpServletRequest, java.lang.String);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
        start local 1 // javax.servlet.http.HttpServletRequest request
        start local 2 // java.lang.String requestUrl
         0: .line 168
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.getLookupPathIndex:(Ljavax/servlet/http/HttpServletRequest;)I
            istore 3 /* prefixIndex */
        start local 3 // int prefixIndex
         1: .line 169
            aload 0 /* this */
            aload 2 /* requestUrl */
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.getEndPathIndex:(Ljava/lang/String;)I
            istore 4 /* suffixIndex */
        start local 4 // int suffixIndex
         2: .line 170
            iload 3 /* prefixIndex */
            iload 4 /* suffixIndex */
            if_icmplt 4
         3: .line 171
            aconst_null
            areturn
         4: .line 173
      StackMap locals: int int
      StackMap stack:
            aload 2 /* requestUrl */
            iconst_0
            iload 3 /* prefixIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* prefix */
        start local 5 // java.lang.String prefix
         5: .line 174
            aload 2 /* requestUrl */
            iload 4 /* suffixIndex */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 6 /* suffix */
        start local 6 // java.lang.String suffix
         6: .line 175
            aload 2 /* requestUrl */
            iload 3 /* prefixIndex */
            iload 4 /* suffixIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* lookupPath */
        start local 7 // java.lang.String lookupPath
         7: .line 176
            aload 0 /* this */
            aload 7 /* lookupPath */
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.getForLookupPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* resolvedLookupPath */
        start local 8 // java.lang.String resolvedLookupPath
         8: .line 177
            aload 8 /* resolvedLookupPath */
            ifnull 9
            new java.lang.StringBuilder
            dup
            aload 5 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* resolvedLookupPath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 10
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider javax.servlet.http.HttpServletRequest java.lang.String int int java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
         9: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        10: areturn
        end local 8 // java.lang.String resolvedLookupPath
        end local 7 // java.lang.String lookupPath
        end local 6 // java.lang.String suffix
        end local 5 // java.lang.String prefix
        end local 4 // int suffixIndex
        end local 3 // int prefixIndex
        end local 2 // java.lang.String requestUrl
        end local 1 // javax.servlet.http.HttpServletRequest request
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
            0   11     1             request  Ljavax/servlet/http/HttpServletRequest;
            0   11     2          requestUrl  Ljava/lang/String;
            1   11     3         prefixIndex  I
            2   11     4         suffixIndex  I
            5   11     5              prefix  Ljava/lang/String;
            6   11     6              suffix  Ljava/lang/String;
            7   11     7          lookupPath  Ljava/lang/String;
            8   11     8  resolvedLookupPath  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      request     
      requestUrl  

  private int getLookupPathIndex(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
        start local 1 // javax.servlet.http.HttpServletRequest request
         0: .line 181
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.getUrlPathHelper:()Lorg/springframework/web/util/UrlPathHelper;
            astore 2 /* pathHelper */
        start local 2 // org.springframework.web.util.UrlPathHelper pathHelper
         1: .line 182
            aload 2 /* pathHelper */
            aload 1 /* request */
            invokevirtual org.springframework.web.util.UrlPathHelper.getRequestUri:(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 3 /* requestUri */
        start local 3 // java.lang.String requestUri
         2: .line 183
            aload 2 /* pathHelper */
            aload 1 /* request */
            invokevirtual org.springframework.web.util.UrlPathHelper.getLookupPathForRequest:(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 4 /* lookupPath */
        start local 4 // java.lang.String lookupPath
         3: .line 184
            aload 3 /* requestUri */
            aload 4 /* lookupPath */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            ireturn
        end local 4 // java.lang.String lookupPath
        end local 3 // java.lang.String requestUri
        end local 2 // org.springframework.web.util.UrlPathHelper pathHelper
        end local 1 // javax.servlet.http.HttpServletRequest request
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
            0    4     1     request  Ljavax/servlet/http/HttpServletRequest;
            1    4     2  pathHelper  Lorg/springframework/web/util/UrlPathHelper;
            2    4     3  requestUri  Ljava/lang/String;
            3    4     4  lookupPath  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      request  

  private int getEndPathIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
        start local 1 // java.lang.String lookupPath
         0: .line 188
            aload 1 /* lookupPath */
            invokevirtual java.lang.String.length:()I
            istore 2 /* suffixIndex */
        start local 2 // int suffixIndex
         1: .line 189
            aload 1 /* lookupPath */
            bipush 63
            invokevirtual java.lang.String.indexOf:(I)I
            istore 3 /* queryIndex */
        start local 3 // int queryIndex
         2: .line 190
            iload 3 /* queryIndex */
            ifle 4
         3: .line 191
            iload 3 /* queryIndex */
            istore 2 /* suffixIndex */
         4: .line 193
      StackMap locals: int int
      StackMap stack:
            aload 1 /* lookupPath */
            bipush 35
            invokevirtual java.lang.String.indexOf:(I)I
            istore 4 /* hashIndex */
        start local 4 // int hashIndex
         5: .line 194
            iload 4 /* hashIndex */
            ifle 7
         6: .line 195
            iload 2 /* suffixIndex */
            iload 4 /* hashIndex */
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* suffixIndex */
         7: .line 197
      StackMap locals: int
      StackMap stack:
            iload 2 /* suffixIndex */
            ireturn
        end local 4 // int hashIndex
        end local 3 // int queryIndex
        end local 2 // int suffixIndex
        end local 1 // java.lang.String lookupPath
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
            0    8     1   lookupPath  Ljava/lang/String;
            1    8     2  suffixIndex  I
            2    8     3   queryIndex  I
            5    8     4    hashIndex  I
    MethodParameters:
            Name  Flags
      lookupPath  

  public final java.lang.String getForLookupPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
        start local 1 // java.lang.String lookupPath
         0: .line 218
      StackMap locals:
      StackMap stack:
            aload 1 /* lookupPath */
            astore 2 /* previous */
        start local 2 // java.lang.String previous
         1: .line 219
            aload 1 /* lookupPath */
            ldc "//"
            ldc "/"
            invokestatic org.springframework.util.StringUtils.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* lookupPath */
         2: .line 220
            aload 1 /* lookupPath */
            aload 2 /* previous */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 0
         3: .line 222
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* matchingPatterns */
        start local 3 // java.util.List matchingPatterns
         4: .line 223
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider java.lang.String java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* pattern */
        start local 4 // java.lang.String pattern
         6: .line 224
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.getPathMatcher:()Lorg/springframework/util/PathMatcher;
            aload 4 /* pattern */
            aload 1 /* lookupPath */
            invokeinterface org.springframework.util.PathMatcher.match:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 8
         7: .line 225
            aload 3 /* matchingPatterns */
            aload 4 /* pattern */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String pattern
         8: .line 223
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 229
            aload 3 /* matchingPatterns */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 23
        10: .line 230
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.getPathMatcher:()Lorg/springframework/util/PathMatcher;
            aload 1 /* lookupPath */
            invokeinterface org.springframework.util.PathMatcher.getPatternComparator:(Ljava/lang/String;)Ljava/util/Comparator;
            astore 4 /* patternComparator */
        start local 4 // java.util.Comparator patternComparator
        11: .line 231
            aload 3 /* matchingPatterns */
            aload 4 /* patternComparator */
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
        12: .line 232
            aload 3 /* matchingPatterns */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 22
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider java.lang.String java.lang.String java.util.List java.util.Comparator top java.util.Iterator
      StackMap stack:
        13: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* pattern */
        start local 5 // java.lang.String pattern
        14: .line 233
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.getPathMatcher:()Lorg/springframework/util/PathMatcher;
            aload 5 /* pattern */
            aload 1 /* lookupPath */
            invokeinterface org.springframework.util.PathMatcher.extractPathWithinPattern:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* pathWithinMapping */
        start local 7 // java.lang.String pathWithinMapping
        15: .line 234
            aload 1 /* lookupPath */
            iconst_0
            aload 1 /* lookupPath */
            aload 7 /* pathWithinMapping */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 8 /* pathMapping */
        start local 8 // java.lang.String pathMapping
        16: .line 235
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.handlerMap:Ljava/util/Map;
            aload 5 /* pattern */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.web.servlet.resource.ResourceHttpRequestHandler
            astore 9 /* handler */
        start local 9 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler handler
        17: .line 236
            new org.springframework.web.servlet.resource.DefaultResourceResolverChain
            dup
            aload 9 /* handler */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getResourceResolvers:()Ljava/util/List;
            invokespecial org.springframework.web.servlet.resource.DefaultResourceResolverChain.<init>:(Ljava/util/List;)V
            astore 10 /* chain */
        start local 10 // org.springframework.web.servlet.resource.ResourceResolverChain chain
        18: .line 237
            aload 10 /* chain */
            aload 7 /* pathWithinMapping */
            aload 9 /* handler */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getLocations:()Ljava/util/List;
            invokeinterface org.springframework.web.servlet.resource.ResourceResolverChain.resolveUrlPath:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
            astore 11 /* resolved */
        start local 11 // java.lang.String resolved
        19: .line 238
            aload 11 /* resolved */
            ifnonnull 21
        20: .line 239
            goto 22
        21: .line 241
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider java.lang.String java.lang.String java.util.List java.util.Comparator java.lang.String java.util.Iterator java.lang.String java.lang.String org.springframework.web.servlet.resource.ResourceHttpRequestHandler org.springframework.web.servlet.resource.ResourceResolverChain java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 8 /* pathMapping */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* resolved */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 11 // java.lang.String resolved
        end local 10 // org.springframework.web.servlet.resource.ResourceResolverChain chain
        end local 9 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler handler
        end local 8 // java.lang.String pathMapping
        end local 7 // java.lang.String pathWithinMapping
        end local 5 // java.lang.String pattern
        22: .line 232
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider java.lang.String java.lang.String java.util.List java.util.Comparator top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 4 // java.util.Comparator patternComparator
        23: .line 245
      StackMap locals: org.springframework.web.servlet.resource.ResourceUrlProvider java.lang.String java.lang.String java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 25
        24: .line 246
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceUrlProvider.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "No match for \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* lookupPath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
        25: .line 249
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.util.List matchingPatterns
        end local 2 // java.lang.String previous
        end local 1 // java.lang.String lookupPath
        end local 0 // org.springframework.web.servlet.resource.ResourceUrlProvider this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   26     0               this  Lorg/springframework/web/servlet/resource/ResourceUrlProvider;
            0   26     1         lookupPath  Ljava/lang/String;
            1   26     2           previous  Ljava/lang/String;
            4   26     3   matchingPatterns  Ljava/util/List<Ljava/lang/String;>;
            6    8     4            pattern  Ljava/lang/String;
           11   23     4  patternComparator  Ljava/util/Comparator<Ljava/lang/String;>;
           14   22     5            pattern  Ljava/lang/String;
           15   22     7  pathWithinMapping  Ljava/lang/String;
           16   22     8        pathMapping  Ljava/lang/String;
           17   22     9            handler  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
           18   22    10              chain  Lorg/springframework/web/servlet/resource/ResourceResolverChain;
           19   22    11           resolved  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      lookupPath  

  public void onApplicationEvent(org.springframework.context.ApplicationEvent);
    descriptor: (Lorg/springframework/context/ApplicationEvent;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.springframework.context.event.ContextRefreshedEvent
            invokevirtual org.springframework.web.servlet.resource.ResourceUrlProvider.onApplicationEvent:(Lorg/springframework/context/event/ContextRefreshedEvent;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lorg/springframework/context/ApplicationListener<Lorg/springframework/context/event/ContextRefreshedEvent;>;
SourceFile: "ResourceUrlProvider.java"