public class freemarker.cache.TemplateCache
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: freemarker.cache.TemplateCache
  super_class: java.lang.Object
{
  public static final long DEFAULT_TEMPLATE_UPDATE_DELAY_MILLIS;
    descriptor: J
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5000

  private static final java.lang.String ASTERISKSTR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "*"

  private static final char ASTERISK;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 42

  private static final char SLASH;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 47

  private static final java.lang.String LOCALE_PART_SEPARATOR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "_"

  private static final freemarker.log.Logger LOG;
    descriptor: Lfreemarker/log/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final freemarker.cache.TemplateLoader templateLoader;
    descriptor: Lfreemarker/cache/TemplateLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.cache.CacheStorage storage;
    descriptor: Lfreemarker/cache/CacheStorage;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.cache.TemplateLookupStrategy templateLookupStrategy;
    descriptor: Lfreemarker/cache/TemplateLookupStrategy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.cache.TemplateNameFormat templateNameFormat;
    descriptor: Lfreemarker/cache/TemplateNameFormat;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.cache.TemplateConfigurationFactory templateConfigurations;
    descriptor: Lfreemarker/cache/TemplateConfigurationFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean isStorageConcurrent;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long updateDelay;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

  private freemarker.template.Configuration config;
    descriptor: Lfreemarker/template/Configuration;
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.reflect.Method INIT_CAUSE;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 71
            ldc "freemarker.cache"
            invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
            putstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
         1: .line 464
            invokestatic freemarker.cache.TemplateCache.getInitCauseMethod:()Ljava/lang/reflect/Method;
            putstatic freemarker.cache.TemplateCache.INIT_CAUSE:Ljava/lang/reflect/Method;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.cache.TemplateCache this
         0: .line 100
            aload 0 /* this */
            getstatic freemarker.template.Configuration.VERSION_2_3_0:Lfreemarker/template/Version;
            invokestatic freemarker.template._TemplateAPI.createDefaultTemplateLoader:(Lfreemarker/template/Version;)Lfreemarker/cache/TemplateLoader;
            invokespecial freemarker.cache.TemplateCache.<init>:(Lfreemarker/cache/TemplateLoader;)V
         1: .line 101
            return
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/cache/TemplateCache;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void <init>(freemarker.cache.TemplateLoader);
    descriptor: (Lfreemarker/cache/TemplateLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.cache.TemplateLoader templateLoader
         0: .line 108
            aload 0 /* this */
            aload 1 /* templateLoader */
            aconst_null
            invokespecial freemarker.cache.TemplateCache.<init>:(Lfreemarker/cache/TemplateLoader;Lfreemarker/template/Configuration;)V
         1: .line 109
            return
        end local 1 // freemarker.cache.TemplateLoader templateLoader
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lfreemarker/cache/TemplateCache;
            0    2     1  templateLoader  Lfreemarker/cache/TemplateLoader;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                Name  Flags
      templateLoader  

  public void <init>(freemarker.cache.TemplateLoader, freemarker.cache.CacheStorage);
    descriptor: (Lfreemarker/cache/TemplateLoader;Lfreemarker/cache/CacheStorage;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.cache.TemplateLoader templateLoader
        start local 2 // freemarker.cache.CacheStorage cacheStorage
         0: .line 116
            aload 0 /* this */
            aload 1 /* templateLoader */
            aload 2 /* cacheStorage */
            aconst_null
            invokespecial freemarker.cache.TemplateCache.<init>:(Lfreemarker/cache/TemplateLoader;Lfreemarker/cache/CacheStorage;Lfreemarker/template/Configuration;)V
         1: .line 117
            return
        end local 2 // freemarker.cache.CacheStorage cacheStorage
        end local 1 // freemarker.cache.TemplateLoader templateLoader
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lfreemarker/cache/TemplateCache;
            0    2     1  templateLoader  Lfreemarker/cache/TemplateLoader;
            0    2     2    cacheStorage  Lfreemarker/cache/CacheStorage;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                Name  Flags
      templateLoader  
      cacheStorage    

  public void <init>(freemarker.cache.TemplateLoader, freemarker.template.Configuration);
    descriptor: (Lfreemarker/cache/TemplateLoader;Lfreemarker/template/Configuration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.cache.TemplateLoader templateLoader
        start local 2 // freemarker.template.Configuration config
         0: .line 126
            aload 0 /* this */
            aload 1 /* templateLoader */
            getstatic freemarker.template.Configuration.VERSION_2_3_0:Lfreemarker/template/Version;
            invokestatic freemarker.template._TemplateAPI.createDefaultCacheStorage:(Lfreemarker/template/Version;)Lfreemarker/cache/CacheStorage;
            aload 2 /* config */
            invokespecial freemarker.cache.TemplateCache.<init>:(Lfreemarker/cache/TemplateLoader;Lfreemarker/cache/CacheStorage;Lfreemarker/template/Configuration;)V
         1: .line 127
            return
        end local 2 // freemarker.template.Configuration config
        end local 1 // freemarker.cache.TemplateLoader templateLoader
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lfreemarker/cache/TemplateCache;
            0    2     1  templateLoader  Lfreemarker/cache/TemplateLoader;
            0    2     2          config  Lfreemarker/template/Configuration;
    MethodParameters:
                Name  Flags
      templateLoader  
      config          

  public void <init>(freemarker.cache.TemplateLoader, freemarker.cache.CacheStorage, freemarker.template.Configuration);
    descriptor: (Lfreemarker/cache/TemplateLoader;Lfreemarker/cache/CacheStorage;Lfreemarker/template/Configuration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.cache.TemplateLoader templateLoader
        start local 2 // freemarker.cache.CacheStorage cacheStorage
        start local 3 // freemarker.template.Configuration config
         0: .line 137
            aload 0 /* this */
            aload 1 /* templateLoader */
            aload 2 /* cacheStorage */
         1: .line 138
            getstatic freemarker.template.Configuration.VERSION_2_3_0:Lfreemarker/template/Version;
            invokestatic freemarker.template._TemplateAPI.getDefaultTemplateLookupStrategy:(Lfreemarker/template/Version;)Lfreemarker/cache/TemplateLookupStrategy;
         2: .line 139
            getstatic freemarker.template.Configuration.VERSION_2_3_0:Lfreemarker/template/Version;
            invokestatic freemarker.template._TemplateAPI.getDefaultTemplateNameFormat:(Lfreemarker/template/Version;)Lfreemarker/cache/TemplateNameFormat;
         3: .line 140
            aload 3 /* config */
            invokespecial freemarker.cache.TemplateCache.<init>:(Lfreemarker/cache/TemplateLoader;Lfreemarker/cache/CacheStorage;Lfreemarker/cache/TemplateLookupStrategy;Lfreemarker/cache/TemplateNameFormat;Lfreemarker/template/Configuration;)V
         4: .line 141
            return
        end local 3 // freemarker.template.Configuration config
        end local 2 // freemarker.cache.CacheStorage cacheStorage
        end local 1 // freemarker.cache.TemplateLoader templateLoader
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lfreemarker/cache/TemplateCache;
            0    5     1  templateLoader  Lfreemarker/cache/TemplateLoader;
            0    5     2    cacheStorage  Lfreemarker/cache/CacheStorage;
            0    5     3          config  Lfreemarker/template/Configuration;
    MethodParameters:
                Name  Flags
      templateLoader  
      cacheStorage    
      config          

  public void <init>(freemarker.cache.TemplateLoader, freemarker.cache.CacheStorage, freemarker.cache.TemplateLookupStrategy, freemarker.cache.TemplateNameFormat, freemarker.template.Configuration);
    descriptor: (Lfreemarker/cache/TemplateLoader;Lfreemarker/cache/CacheStorage;Lfreemarker/cache/TemplateLookupStrategy;Lfreemarker/cache/TemplateNameFormat;Lfreemarker/template/Configuration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.cache.TemplateLoader templateLoader
        start local 2 // freemarker.cache.CacheStorage cacheStorage
        start local 3 // freemarker.cache.TemplateLookupStrategy templateLookupStrategy
        start local 4 // freemarker.cache.TemplateNameFormat templateNameFormat
        start local 5 // freemarker.template.Configuration config
         0: .line 153
            aload 0 /* this */
            aload 1 /* templateLoader */
            aload 2 /* cacheStorage */
            aload 3 /* templateLookupStrategy */
            aload 4 /* templateNameFormat */
            aconst_null
            aload 5 /* config */
            invokespecial freemarker.cache.TemplateCache.<init>:(Lfreemarker/cache/TemplateLoader;Lfreemarker/cache/CacheStorage;Lfreemarker/cache/TemplateLookupStrategy;Lfreemarker/cache/TemplateNameFormat;Lfreemarker/cache/TemplateConfigurationFactory;Lfreemarker/template/Configuration;)V
         1: .line 154
            return
        end local 5 // freemarker.template.Configuration config
        end local 4 // freemarker.cache.TemplateNameFormat templateNameFormat
        end local 3 // freemarker.cache.TemplateLookupStrategy templateLookupStrategy
        end local 2 // freemarker.cache.CacheStorage cacheStorage
        end local 1 // freemarker.cache.TemplateLoader templateLoader
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lfreemarker/cache/TemplateCache;
            0    2     1          templateLoader  Lfreemarker/cache/TemplateLoader;
            0    2     2            cacheStorage  Lfreemarker/cache/CacheStorage;
            0    2     3  templateLookupStrategy  Lfreemarker/cache/TemplateLookupStrategy;
            0    2     4      templateNameFormat  Lfreemarker/cache/TemplateNameFormat;
            0    2     5                  config  Lfreemarker/template/Configuration;
    MethodParameters:
                        Name  Flags
      templateLoader          
      cacheStorage            
      templateLookupStrategy  
      templateNameFormat      
      config                  

  public void <init>(freemarker.cache.TemplateLoader, freemarker.cache.CacheStorage, freemarker.cache.TemplateLookupStrategy, freemarker.cache.TemplateNameFormat, freemarker.cache.TemplateConfigurationFactory, freemarker.template.Configuration);
    descriptor: (Lfreemarker/cache/TemplateLoader;Lfreemarker/cache/CacheStorage;Lfreemarker/cache/TemplateLookupStrategy;Lfreemarker/cache/TemplateNameFormat;Lfreemarker/cache/TemplateConfigurationFactory;Lfreemarker/template/Configuration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.cache.TemplateLoader templateLoader
        start local 2 // freemarker.cache.CacheStorage cacheStorage
        start local 3 // freemarker.cache.TemplateLookupStrategy templateLookupStrategy
        start local 4 // freemarker.cache.TemplateNameFormat templateNameFormat
        start local 5 // freemarker.cache.TemplateConfigurationFactory templateConfigurations
        start local 6 // freemarker.template.Configuration config
         0: .line 175
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            ldc 5000
            putfield freemarker.cache.TemplateCache.updateDelay:J
         2: .line 86
            aload 0 /* this */
            iconst_1
            putfield freemarker.cache.TemplateCache.localizedLookup:Z
         3: .line 179
            aload 0 /* this */
            aload 1 /* templateLoader */
            putfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
         4: .line 181
            ldc "cacheStorage"
            aload 2 /* cacheStorage */
            invokestatic freemarker.template.utility.NullArgumentException.check:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 182
            aload 0 /* this */
            aload 2 /* cacheStorage */
            putfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
         6: .line 183
            aload 0 /* this */
            aload 2 /* cacheStorage */
            instanceof freemarker.cache.ConcurrentCacheStorage
            ifeq 8
         7: .line 184
            aload 2 /* cacheStorage */
            checkcast freemarker.cache.ConcurrentCacheStorage
            invokeinterface freemarker.cache.ConcurrentCacheStorage.isConcurrent:()Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader freemarker.cache.CacheStorage freemarker.cache.TemplateLookupStrategy freemarker.cache.TemplateNameFormat freemarker.cache.TemplateConfigurationFactory freemarker.template.Configuration
      StackMap stack: freemarker.cache.TemplateCache
         8: iconst_0
         9: .line 183
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader freemarker.cache.CacheStorage freemarker.cache.TemplateLookupStrategy freemarker.cache.TemplateNameFormat freemarker.cache.TemplateConfigurationFactory freemarker.template.Configuration
      StackMap stack: freemarker.cache.TemplateCache int
            putfield freemarker.cache.TemplateCache.isStorageConcurrent:Z
        10: .line 186
            ldc "templateLookupStrategy"
            aload 3 /* templateLookupStrategy */
            invokestatic freemarker.template.utility.NullArgumentException.check:(Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 187
            aload 0 /* this */
            aload 3 /* templateLookupStrategy */
            putfield freemarker.cache.TemplateCache.templateLookupStrategy:Lfreemarker/cache/TemplateLookupStrategy;
        12: .line 189
            ldc "templateNameFormat"
            aload 4 /* templateNameFormat */
            invokestatic freemarker.template.utility.NullArgumentException.check:(Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 190
            aload 0 /* this */
            aload 4 /* templateNameFormat */
            putfield freemarker.cache.TemplateCache.templateNameFormat:Lfreemarker/cache/TemplateNameFormat;
        14: .line 193
            aload 0 /* this */
            aload 5 /* templateConfigurations */
            putfield freemarker.cache.TemplateCache.templateConfigurations:Lfreemarker/cache/TemplateConfigurationFactory;
        15: .line 195
            aload 0 /* this */
            aload 6 /* config */
            putfield freemarker.cache.TemplateCache.config:Lfreemarker/template/Configuration;
        16: .line 196
            return
        end local 6 // freemarker.template.Configuration config
        end local 5 // freemarker.cache.TemplateConfigurationFactory templateConfigurations
        end local 4 // freemarker.cache.TemplateNameFormat templateNameFormat
        end local 3 // freemarker.cache.TemplateLookupStrategy templateLookupStrategy
        end local 2 // freemarker.cache.CacheStorage cacheStorage
        end local 1 // freemarker.cache.TemplateLoader templateLoader
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   17     0                    this  Lfreemarker/cache/TemplateCache;
            0   17     1          templateLoader  Lfreemarker/cache/TemplateLoader;
            0   17     2            cacheStorage  Lfreemarker/cache/CacheStorage;
            0   17     3  templateLookupStrategy  Lfreemarker/cache/TemplateLookupStrategy;
            0   17     4      templateNameFormat  Lfreemarker/cache/TemplateNameFormat;
            0   17     5  templateConfigurations  Lfreemarker/cache/TemplateConfigurationFactory;
            0   17     6                  config  Lfreemarker/template/Configuration;
    MethodParameters:
                        Name  Flags
      templateLoader          
      cacheStorage            
      templateLookupStrategy  
      templateNameFormat      
      templateConfigurations  
      config                  

  public void setConfiguration(freemarker.template.Configuration);
    descriptor: (Lfreemarker/template/Configuration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.template.Configuration config
         0: .line 207
            aload 0 /* this */
            aload 1 /* config */
            putfield freemarker.cache.TemplateCache.config:Lfreemarker/template/Configuration;
         1: .line 208
            aload 0 /* this */
            invokevirtual freemarker.cache.TemplateCache.clear:()V
         2: .line 209
            return
        end local 1 // freemarker.template.Configuration config
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lfreemarker/cache/TemplateCache;
            0    3     1  config  Lfreemarker/template/Configuration;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      config  

  public freemarker.cache.TemplateLoader getTemplateLoader();
    descriptor: ()Lfreemarker/cache/TemplateLoader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.cache.TemplateCache this
         0: .line 212
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            areturn
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/cache/TemplateCache;

  public freemarker.cache.CacheStorage getCacheStorage();
    descriptor: ()Lfreemarker/cache/CacheStorage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.cache.TemplateCache this
         0: .line 216
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            areturn
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/cache/TemplateCache;

  public freemarker.cache.TemplateLookupStrategy getTemplateLookupStrategy();
    descriptor: ()Lfreemarker/cache/TemplateLookupStrategy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.cache.TemplateCache this
         0: .line 223
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLookupStrategy:Lfreemarker/cache/TemplateLookupStrategy;
            areturn
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/cache/TemplateCache;

  public freemarker.cache.TemplateNameFormat getTemplateNameFormat();
    descriptor: ()Lfreemarker/cache/TemplateNameFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.cache.TemplateCache this
         0: .line 230
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateNameFormat:Lfreemarker/cache/TemplateNameFormat;
            areturn
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/cache/TemplateCache;

  public freemarker.cache.TemplateConfigurationFactory getTemplateConfigurations();
    descriptor: ()Lfreemarker/cache/TemplateConfigurationFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.cache.TemplateCache this
         0: .line 237
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateConfigurations:Lfreemarker/cache/TemplateConfigurationFactory;
            areturn
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/cache/TemplateCache;

  public freemarker.cache.TemplateCache$MaybeMissingTemplate getTemplate(java.lang.String, java.util.Locale, java.lang.Object, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)Lfreemarker/cache/TemplateCache$MaybeMissingTemplate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String name
        start local 2 // java.util.Locale locale
        start local 3 // java.lang.Object customLookupCondition
        start local 4 // java.lang.String encoding
        start local 5 // boolean parseAsFTL
         0: .line 273
            ldc "name"
            aload 1 /* name */
            invokestatic freemarker.template.utility.NullArgumentException.check:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 274
            ldc "locale"
            aload 2 /* locale */
            invokestatic freemarker.template.utility.NullArgumentException.check:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 275
            ldc "encoding"
            aload 4 /* encoding */
            invokestatic freemarker.template.utility.NullArgumentException.check:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 278
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateNameFormat:Lfreemarker/cache/TemplateNameFormat;
            aload 1 /* name */
            invokevirtual freemarker.cache.TemplateNameFormat.normalizeRootBasedName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* name */
         4: .line 279
            goto 10
      StackMap locals:
      StackMap stack: freemarker.template.MalformedTemplateNameException
         5: astore 6 /* e */
        start local 6 // freemarker.template.MalformedTemplateNameException e
         6: .line 281
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateNameFormat:Lfreemarker/cache/TemplateNameFormat;
            getstatic freemarker.cache.TemplateNameFormat.DEFAULT_2_3_0:Lfreemarker/cache/TemplateNameFormat;
            if_acmpne 8
         7: .line 282
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.config:Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getIncompatibleImprovements:()Lfreemarker/template/Version;
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_4_0:I
            if_icmplt 9
         8: .line 283
      StackMap locals: freemarker.template.MalformedTemplateNameException
      StackMap stack:
            aload 6 /* e */
            athrow
         9: .line 285
      StackMap locals:
      StackMap stack:
            new freemarker.cache.TemplateCache$MaybeMissingTemplate
            dup
            aconst_null
            aload 6 /* e */
            invokespecial freemarker.cache.TemplateCache$MaybeMissingTemplate.<init>:(Ljava/lang/String;Lfreemarker/template/MalformedTemplateNameException;)V
            areturn
        end local 6 // freemarker.template.MalformedTemplateNameException e
        10: .line 288
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            ifnonnull 12
        11: .line 289
            new freemarker.cache.TemplateCache$MaybeMissingTemplate
            dup
            aload 1 /* name */
            ldc "The TemplateLoader was null."
            invokespecial freemarker.cache.TemplateCache$MaybeMissingTemplate.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        12: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* locale */
            aload 3 /* customLookupCondition */
            aload 4 /* encoding */
            iload 5 /* parseAsFTL */
            invokevirtual freemarker.cache.TemplateCache.getTemplateInternal:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)Lfreemarker/template/Template;
            astore 6 /* template */
        start local 6 // freemarker.template.Template template
        13: .line 293
            aload 6 /* template */
            ifnull 14
            new freemarker.cache.TemplateCache$MaybeMissingTemplate
            dup
            aload 6 /* template */
            invokespecial freemarker.cache.TemplateCache$MaybeMissingTemplate.<init>:(Lfreemarker/template/Template;)V
            goto 15
      StackMap locals: freemarker.template.Template
      StackMap stack:
        14: new freemarker.cache.TemplateCache$MaybeMissingTemplate
            dup
            aload 1 /* name */
            aconst_null
            invokespecial freemarker.cache.TemplateCache$MaybeMissingTemplate.<init>:(Ljava/lang/String;Ljava/lang/String;)V
      StackMap locals:
      StackMap stack: freemarker.cache.TemplateCache$MaybeMissingTemplate
        15: areturn
        end local 6 // freemarker.template.Template template
        end local 5 // boolean parseAsFTL
        end local 4 // java.lang.String encoding
        end local 3 // java.lang.Object customLookupCondition
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String name
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   16     0                   this  Lfreemarker/cache/TemplateCache;
            0   16     1                   name  Ljava/lang/String;
            0   16     2                 locale  Ljava/util/Locale;
            0   16     3  customLookupCondition  Ljava/lang/Object;
            0   16     4               encoding  Ljava/lang/String;
            0   16     5             parseAsFTL  Z
            6   10     6                      e  Lfreemarker/template/MalformedTemplateNameException;
           13   16     6               template  Lfreemarker/template/Template;
      Exception table:
        from    to  target  type
           3     4       5  Class freemarker.template.MalformedTemplateNameException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                       Name  Flags
      name                   
      locale                 
      customLookupCondition  
      encoding               
      parseAsFTL             

  public freemarker.template.Template getTemplate(java.lang.String, java.util.Locale, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Ljava/lang/String;Z)Lfreemarker/template/Template;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String name
        start local 2 // java.util.Locale locale
        start local 3 // java.lang.String encoding
        start local 4 // boolean parseAsFTL
         0: .line 309
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* locale */
            aconst_null
            aload 3 /* encoding */
            iload 4 /* parseAsFTL */
            invokevirtual freemarker.cache.TemplateCache.getTemplate:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)Lfreemarker/cache/TemplateCache$MaybeMissingTemplate;
            invokevirtual freemarker.cache.TemplateCache$MaybeMissingTemplate.getTemplate:()Lfreemarker/template/Template;
            areturn
        end local 4 // boolean parseAsFTL
        end local 3 // java.lang.String encoding
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String name
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lfreemarker/cache/TemplateCache;
            0    1     1        name  Ljava/lang/String;
            0    1     2      locale  Ljava/util/Locale;
            0    1     3    encoding  Ljava/lang/String;
            0    1     4  parseAsFTL  Z
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      name        
      locale      
      encoding    
      parseAsFTL  

  protected static freemarker.cache.TemplateLoader createLegacyDefaultTemplateLoader();
    descriptor: ()Lfreemarker/cache/TemplateLoader;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 319
            getstatic freemarker.template.Configuration.VERSION_2_3_0:Lfreemarker/template/Version;
            invokestatic freemarker.template._TemplateAPI.createDefaultTemplateLoader:(Lfreemarker/template/Version;)Lfreemarker/cache/TemplateLoader;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  private freemarker.template.Template getTemplateInternal(java.lang.String, java.util.Locale, java.lang.Object, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)Lfreemarker/template/Template;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=21, args_size=6
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String name
        start local 2 // java.util.Locale locale
        start local 3 // java.lang.Object customLookupCondition
        start local 4 // java.lang.String encoding
        start local 5 // boolean parseAsFTL
         0: .line 326
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            invokevirtual freemarker.log.Logger.isDebugEnabled:()Z
            istore 6 /* debug */
        start local 6 // boolean debug
         1: .line 327
            iload 6 /* debug */
            ifeq 3
         2: .line 328
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* locale */
            aload 3 /* customLookupCondition */
            aload 4 /* encoding */
            iload 5 /* parseAsFTL */
            invokevirtual freemarker.cache.TemplateCache.buildDebugName:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)Ljava/lang/String;
            goto 4
         3: .line 329
      StackMap locals: int
      StackMap stack:
            aconst_null
         4: .line 327
      StackMap locals:
      StackMap stack: java.lang.String
            astore 7 /* debugName */
        start local 7 // java.lang.String debugName
         5: .line 330
            new freemarker.cache.TemplateCache$TemplateKey
            dup
            aload 1 /* name */
            aload 2 /* locale */
            aload 3 /* customLookupCondition */
            aload 4 /* encoding */
            iload 5 /* parseAsFTL */
            invokespecial freemarker.cache.TemplateCache$TemplateKey.<init>:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)V
            astore 8 /* tk */
        start local 8 // freemarker.cache.TemplateCache$TemplateKey tk
         6: .line 333
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.isStorageConcurrent:Z
            ifeq 9
         7: .line 334
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            aload 8 /* tk */
            invokeinterface freemarker.cache.CacheStorage.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.cache.TemplateCache$CachedTemplate
            astore 9 /* cachedTemplate */
        start local 9 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
         8: .line 335
            goto 15
        end local 9 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
         9: .line 336
      StackMap locals: java.lang.String freemarker.cache.TemplateCache$TemplateKey
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            dup
            astore 10
            monitorenter
        10: .line 337
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            aload 8 /* tk */
            invokeinterface freemarker.cache.CacheStorage.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.cache.TemplateCache$CachedTemplate
            astore 9 /* cachedTemplate */
        start local 9 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
        11: .line 336
            aload 10
            monitorexit
        12: goto 15
        end local 9 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey top freemarker.cache.CacheStorage
      StackMap stack: java.lang.Throwable
        13: aload 10
            monitorexit
        14: athrow
        start local 9 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
        15: .line 341
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 10 /* now */
        start local 10 // long now
        16: .line 343
            ldc -1
            lstore 12 /* lastModified */
        start local 12 // long lastModified
        17: .line 344
            iconst_0
            istore 14 /* rethrown */
        start local 14 // boolean rethrown
        18: .line 345
            aconst_null
            astore 15 /* newLookupResult */
        start local 15 // freemarker.cache.TemplateLookupResult newLookupResult
        19: .line 347
            aload 9 /* cachedTemplate */
            ifnull 75
        20: .line 349
            lload 10 /* now */
            aload 9 /* cachedTemplate */
            getfield freemarker.cache.TemplateCache$CachedTemplate.lastChecked:J
            lsub
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.updateDelay:J
            lcmp
            ifge 36
        21: .line 350
            iload 6 /* debug */
            ifeq 23
        22: .line 351
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            aload 7 /* debugName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " cached copy not yet stale; using cached."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        23: .line 354
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult
      StackMap stack:
            aload 9 /* cachedTemplate */
            getfield freemarker.cache.TemplateCache$CachedTemplate.templateOrException:Ljava/lang/Object;
            astore 16 /* t */
        start local 16 // java.lang.Object t
        24: .line 355
            aload 16 /* t */
            instanceof freemarker.template.Template
            ifne 25
            aload 16 /* t */
            ifnonnull 29
        25: .line 356
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 16 /* t */
            checkcast freemarker.template.Template
            astore 20
        26: .line 458
            aload 15 /* newLookupResult */
            ifnull 28
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.isPositive:()Z
            ifeq 28
        27: .line 459
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.getTemplateSource:()Ljava/lang/Object;
            invokeinterface freemarker.cache.TemplateLoader.closeTemplateSource:(Ljava/lang/Object;)V
        28: .line 356
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult java.lang.Object top top top freemarker.template.Template
      StackMap stack:
            aload 20
            areturn
        29: .line 357
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult java.lang.Object
      StackMap stack:
            aload 16 /* t */
            instanceof java.lang.RuntimeException
            ifeq 32
        30: .line 358
            aload 0 /* this */
            aload 16 /* t */
            checkcast java.lang.RuntimeException
            invokevirtual freemarker.cache.TemplateCache.throwLoadFailedException:(Ljava/lang/Throwable;)V
        31: .line 359
            goto 35
      StackMap locals:
      StackMap stack:
        32: aload 16 /* t */
            instanceof java.io.IOException
            ifeq 35
        33: .line 360
            iconst_1
            istore 14 /* rethrown */
        34: .line 361
            aload 0 /* this */
            aload 16 /* t */
            checkcast java.io.IOException
            invokevirtual freemarker.cache.TemplateCache.throwLoadFailedException:(Ljava/lang/Throwable;)V
        35: .line 363
      StackMap locals:
      StackMap stack:
            new freemarker.core.BugException
            dup
            new java.lang.StringBuilder
            dup
            ldc "t is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* t */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial freemarker.core.BugException.<init>:(Ljava/lang/String;)V
            athrow
        end local 16 // java.lang.Object t
        36: .line 368
      StackMap locals:
      StackMap stack:
            aload 9 /* cachedTemplate */
            invokevirtual freemarker.cache.TemplateCache$CachedTemplate.cloneCachedTemplate:()Lfreemarker/cache/TemplateCache$CachedTemplate;
            astore 9 /* cachedTemplate */
        37: .line 370
            aload 9 /* cachedTemplate */
            lload 10 /* now */
            putfield freemarker.cache.TemplateCache$CachedTemplate.lastChecked:J
        38: .line 373
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* locale */
            aload 3 /* customLookupCondition */
            invokevirtual freemarker.cache.TemplateCache.lookupTemplate:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;)Lfreemarker/cache/TemplateLookupResult;
            astore 15 /* newLookupResult */
        39: .line 376
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.isPositive:()Z
            ifne 46
        40: .line 377
            iload 6 /* debug */
            ifeq 42
        41: .line 378
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            aload 7 /* debugName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " no source found."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        42: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* tk */
            aload 9 /* cachedTemplate */
            aconst_null
            invokevirtual freemarker.cache.TemplateCache.storeNegativeLookup:(Lfreemarker/cache/TemplateCache$TemplateKey;Lfreemarker/cache/TemplateCache$CachedTemplate;Ljava/lang/Exception;)V
        43: .line 458
            aload 15 /* newLookupResult */
            ifnull 45
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.isPositive:()Z
            ifeq 45
        44: .line 459
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.getTemplateSource:()Ljava/lang/Object;
            invokeinterface freemarker.cache.TemplateLoader.closeTemplateSource:(Ljava/lang/Object;)V
        45: .line 381
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        46: .line 386
      StackMap locals:
      StackMap stack:
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.getTemplateSource:()Ljava/lang/Object;
            astore 16 /* newLookupResultSource */
        start local 16 // java.lang.Object newLookupResultSource
        47: .line 387
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 16 /* newLookupResultSource */
            invokeinterface freemarker.cache.TemplateLoader.getLastModified:(Ljava/lang/Object;)J
            lstore 12 /* lastModified */
        48: .line 388
            lload 12 /* lastModified */
            aload 9 /* cachedTemplate */
            getfield freemarker.cache.TemplateCache$CachedTemplate.lastModified:J
            lcmp
            ifne 49
            iconst_1
            goto 50
      StackMap locals: java.lang.Object
      StackMap stack:
        49: iconst_0
      StackMap locals:
      StackMap stack: int
        50: istore 17 /* lastModifiedNotChanged */
        start local 17 // boolean lastModifiedNotChanged
        51: .line 389
            aload 16 /* newLookupResultSource */
            aload 9 /* cachedTemplate */
            getfield freemarker.cache.TemplateCache$CachedTemplate.source:Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            istore 18 /* sourceEquals */
        start local 18 // boolean sourceEquals
        52: .line 390
            iload 17 /* lastModifiedNotChanged */
            ifeq 60
            iload 18 /* sourceEquals */
            ifeq 60
        53: .line 391
            iload 6 /* debug */
            ifeq 55
        54: .line 392
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            aload 7 /* debugName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": using cached since "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 16 /* newLookupResultSource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " hasn't changed."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        55: .line 394
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 8 /* tk */
            aload 9 /* cachedTemplate */
            invokevirtual freemarker.cache.TemplateCache.storeCached:(Lfreemarker/cache/TemplateCache$TemplateKey;Lfreemarker/cache/TemplateCache$CachedTemplate;)V
        56: .line 395
            aload 9 /* cachedTemplate */
            getfield freemarker.cache.TemplateCache$CachedTemplate.templateOrException:Ljava/lang/Object;
            checkcast freemarker.template.Template
            astore 20
        57: .line 458
            aload 15 /* newLookupResult */
            ifnull 59
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.isPositive:()Z
            ifeq 59
        58: .line 459
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.getTemplateSource:()Ljava/lang/Object;
            invokeinterface freemarker.cache.TemplateLoader.closeTemplateSource:(Ljava/lang/Object;)V
        59: .line 395
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult java.lang.Object int int top freemarker.template.Template
      StackMap stack:
            aload 20
            areturn
        60: .line 396
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult java.lang.Object int int
      StackMap stack:
            iload 6 /* debug */
            ifeq 86
        61: .line 397
            iload 18 /* sourceEquals */
            ifne 68
        62: .line 398
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Updating source because: sourceEquals="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        63: .line 399
            iload 18 /* sourceEquals */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        64: .line 400
            ldc ", newlyFoundSource="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 16 /* newLookupResultSource */
            invokestatic freemarker.template.utility.StringUtil.jQuoteNoXSS:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        65: .line 401
            ldc ", cached.source="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* cachedTemplate */
            getfield freemarker.cache.TemplateCache$CachedTemplate.source:Ljava/lang/Object;
            invokestatic freemarker.template.utility.StringUtil.jQuoteNoXSS:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        66: .line 398
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        67: .line 402
            goto 86
      StackMap locals:
      StackMap stack:
        68: iload 17 /* lastModifiedNotChanged */
            ifne 86
        69: .line 403
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Updating source because: lastModifiedNotChanged="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        70: .line 404
            iload 17 /* lastModifiedNotChanged */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        71: .line 405
            ldc ", cached.lastModified="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* cachedTemplate */
            getfield freemarker.cache.TemplateCache$CachedTemplate.lastModified:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        72: .line 406
            ldc " != source.lastModified="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 12 /* lastModified */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        73: .line 403
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        end local 18 // boolean sourceEquals
        end local 17 // boolean lastModifiedNotChanged
        end local 16 // java.lang.Object newLookupResultSource
        74: .line 409
            goto 86
        75: .line 410
      StackMap locals:
      StackMap stack:
            iload 6 /* debug */
            ifeq 77
        76: .line 411
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Couldn't find template in cache for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* debugName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "; will try to load it."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        77: .line 417
      StackMap locals:
      StackMap stack:
            new freemarker.cache.TemplateCache$CachedTemplate
            dup
            invokespecial freemarker.cache.TemplateCache$CachedTemplate.<init>:()V
            astore 9 /* cachedTemplate */
        78: .line 418
            aload 9 /* cachedTemplate */
            lload 10 /* now */
            putfield freemarker.cache.TemplateCache$CachedTemplate.lastChecked:J
        79: .line 420
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* locale */
            aload 3 /* customLookupCondition */
            invokevirtual freemarker.cache.TemplateCache.lookupTemplate:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;)Lfreemarker/cache/TemplateLookupResult;
            astore 15 /* newLookupResult */
        80: .line 422
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.isPositive:()Z
            ifne 85
        81: .line 423
            aload 0 /* this */
            aload 8 /* tk */
            aload 9 /* cachedTemplate */
            aconst_null
            invokevirtual freemarker.cache.TemplateCache.storeNegativeLookup:(Lfreemarker/cache/TemplateCache$TemplateKey;Lfreemarker/cache/TemplateCache$CachedTemplate;Ljava/lang/Exception;)V
        82: .line 458
            aload 15 /* newLookupResult */
            ifnull 84
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.isPositive:()Z
            ifeq 84
        83: .line 459
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.getTemplateSource:()Ljava/lang/Object;
            invokeinterface freemarker.cache.TemplateLoader.closeTemplateSource:(Ljava/lang/Object;)V
        84: .line 424
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        85: .line 427
      StackMap locals:
      StackMap stack:
            aload 9 /* cachedTemplate */
            ldc -9223372036854775808
            dup2
            lstore 12 /* lastModified */
            putfield freemarker.cache.TemplateCache$CachedTemplate.lastModified:J
        86: .line 430
      StackMap locals:
      StackMap stack:
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.getTemplateSource:()Ljava/lang/Object;
            astore 16 /* source */
        start local 16 // java.lang.Object source
        87: .line 431
            aload 9 /* cachedTemplate */
            aload 16 /* source */
            putfield freemarker.cache.TemplateCache$CachedTemplate.source:Ljava/lang/Object;
        88: .line 434
            iload 6 /* debug */
            ifeq 90
        89: .line 435
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Loading template for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* debugName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 16 /* source */
            invokestatic freemarker.template.utility.StringUtil.jQuoteNoXSS:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        90: .line 438
      StackMap locals: java.lang.Object
      StackMap stack:
            lload 12 /* lastModified */
            ldc -9223372036854775808
            lcmp
            ifne 91
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 16 /* source */
            invokeinterface freemarker.cache.TemplateLoader.getLastModified:(Ljava/lang/Object;)J
            goto 92
      StackMap locals:
      StackMap stack:
        91: lload 12 /* lastModified */
      StackMap locals:
      StackMap stack: long
        92: lstore 12 /* lastModified */
        93: .line 439
            aload 0 /* this */
        94: .line 440
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 16 /* source */
        95: .line 441
            aload 1 /* name */
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.getTemplateSourceName:()Ljava/lang/String;
            aload 2 /* locale */
            aload 3 /* customLookupCondition */
        96: .line 442
            aload 4 /* encoding */
            iload 5 /* parseAsFTL */
        97: .line 439
            invokevirtual freemarker.cache.TemplateCache.loadTemplate:(Lfreemarker/cache/TemplateLoader;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)Lfreemarker/template/Template;
            astore 17 /* template */
        start local 17 // freemarker.template.Template template
        98: .line 443
            aload 9 /* cachedTemplate */
            aload 17 /* template */
            putfield freemarker.cache.TemplateCache$CachedTemplate.templateOrException:Ljava/lang/Object;
        99: .line 444
            aload 9 /* cachedTemplate */
            lload 12 /* lastModified */
            putfield freemarker.cache.TemplateCache$CachedTemplate.lastModified:J
       100: .line 445
            aload 0 /* this */
            aload 8 /* tk */
            aload 9 /* cachedTemplate */
            invokevirtual freemarker.cache.TemplateCache.storeCached:(Lfreemarker/cache/TemplateCache$TemplateKey;Lfreemarker/cache/TemplateCache$CachedTemplate;)V
       101: .line 446
            aload 17 /* template */
            astore 20
       102: .line 458
            aload 15 /* newLookupResult */
            ifnull 104
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.isPositive:()Z
            ifeq 104
       103: .line 459
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.getTemplateSource:()Ljava/lang/Object;
            invokeinterface freemarker.cache.TemplateLoader.closeTemplateSource:(Ljava/lang/Object;)V
       104: .line 446
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult java.lang.Object freemarker.template.Template top top freemarker.template.Template
      StackMap stack:
            aload 20
            areturn
        end local 17 // freemarker.template.Template template
        end local 16 // java.lang.Object source
       105: .line 447
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult
      StackMap stack: java.lang.RuntimeException
            astore 16 /* e */
        start local 16 // java.lang.RuntimeException e
       106: .line 448
            aload 9 /* cachedTemplate */
            ifnull 108
       107: .line 449
            aload 0 /* this */
            aload 8 /* tk */
            aload 9 /* cachedTemplate */
            aload 16 /* e */
            invokevirtual freemarker.cache.TemplateCache.storeNegativeLookup:(Lfreemarker/cache/TemplateCache$TemplateKey;Lfreemarker/cache/TemplateCache$CachedTemplate;Ljava/lang/Exception;)V
       108: .line 451
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 16 /* e */
            athrow
        end local 16 // java.lang.RuntimeException e
       109: .line 452
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult
      StackMap stack: java.io.IOException
            astore 16 /* e */
        start local 16 // java.io.IOException e
       110: .line 453
            iload 14 /* rethrown */
            ifne 112
       111: .line 454
            aload 0 /* this */
            aload 8 /* tk */
            aload 9 /* cachedTemplate */
            aload 16 /* e */
            invokevirtual freemarker.cache.TemplateCache.storeNegativeLookup:(Lfreemarker/cache/TemplateCache$TemplateKey;Lfreemarker/cache/TemplateCache$CachedTemplate;Ljava/lang/Exception;)V
       112: .line 456
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 16 /* e */
            athrow
        end local 16 // java.io.IOException e
       113: .line 457
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult
      StackMap stack: java.lang.Throwable
            astore 19
       114: .line 458
            aload 15 /* newLookupResult */
            ifnull 116
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.isPositive:()Z
            ifeq 116
       115: .line 459
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 15 /* newLookupResult */
            invokevirtual freemarker.cache.TemplateLookupResult.getTemplateSource:()Ljava/lang/Object;
            invokeinterface freemarker.cache.TemplateLoader.closeTemplateSource:(Ljava/lang/Object;)V
       116: .line 461
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate long long int freemarker.cache.TemplateLookupResult top top top java.lang.Throwable
      StackMap stack:
            aload 19
            athrow
        end local 15 // freemarker.cache.TemplateLookupResult newLookupResult
        end local 14 // boolean rethrown
        end local 12 // long lastModified
        end local 10 // long now
        end local 9 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
        end local 8 // freemarker.cache.TemplateCache$TemplateKey tk
        end local 7 // java.lang.String debugName
        end local 6 // boolean debug
        end local 5 // boolean parseAsFTL
        end local 4 // java.lang.String encoding
        end local 3 // java.lang.Object customLookupCondition
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String name
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0  117     0                    this  Lfreemarker/cache/TemplateCache;
            0  117     1                    name  Ljava/lang/String;
            0  117     2                  locale  Ljava/util/Locale;
            0  117     3   customLookupCondition  Ljava/lang/Object;
            0  117     4                encoding  Ljava/lang/String;
            0  117     5              parseAsFTL  Z
            1  117     6                   debug  Z
            5  117     7               debugName  Ljava/lang/String;
            6  117     8                      tk  Lfreemarker/cache/TemplateCache$TemplateKey;
            8    9     9          cachedTemplate  Lfreemarker/cache/TemplateCache$CachedTemplate;
           11   13     9          cachedTemplate  Lfreemarker/cache/TemplateCache$CachedTemplate;
           15  117     9          cachedTemplate  Lfreemarker/cache/TemplateCache$CachedTemplate;
           16  117    10                     now  J
           17  117    12            lastModified  J
           18  117    14                rethrown  Z
           19  117    15         newLookupResult  Lfreemarker/cache/TemplateLookupResult;
           24   36    16                       t  Ljava/lang/Object;
           47   74    16   newLookupResultSource  Ljava/lang/Object;
           51   74    17  lastModifiedNotChanged  Z
           52   74    18            sourceEquals  Z
           87  105    16                  source  Ljava/lang/Object;
           98  105    17                template  Lfreemarker/template/Template;
          106  109    16                       e  Ljava/lang/RuntimeException;
          110  113    16                       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          10    12      13  any
          13    14      13  any
          19    26     105  Class java.lang.RuntimeException
          29    43     105  Class java.lang.RuntimeException
          46    57     105  Class java.lang.RuntimeException
          60    82     105  Class java.lang.RuntimeException
          85   102     105  Class java.lang.RuntimeException
          19    26     109  Class java.io.IOException
          29    43     109  Class java.io.IOException
          46    57     109  Class java.io.IOException
          60    82     109  Class java.io.IOException
          85   102     109  Class java.io.IOException
          19    26     113  any
          29    43     113  any
          46    57     113  any
          60    82     113  any
          85   102     113  any
         105   113     113  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                       Name  Flags
      name                   final
      locale                 final
      customLookupCondition  final
      encoding               final
      parseAsFTL             final

  private static final java.lang.reflect.Method getInitCauseMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=6, locals=0, args_size=0
         0: .line 468
            ldc Ljava/lang/Throwable;
            ldc "initCause"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Throwable;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         1: areturn
         2: .line 469
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
         3: .line 470
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NoSuchMethodException

  private java.io.IOException newIOException(java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)Ljava/io/IOException;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String message
        start local 2 // java.lang.Throwable cause
         0: .line 479
            aload 2 /* cause */
            ifnonnull 2
         1: .line 480
            new java.io.IOException
            dup
            aload 1 /* message */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            areturn
         2: .line 484
      StackMap locals:
      StackMap stack:
            getstatic freemarker.cache.TemplateCache.INIT_CAUSE:Ljava/lang/reflect/Method;
            ifnull 10
         3: .line 485
            new java.io.IOException
            dup
            aload 1 /* message */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
         4: .line 487
            getstatic freemarker.cache.TemplateCache.INIT_CAUSE:Ljava/lang/reflect/Method;
            aload 3 /* ioe */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* cause */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 488
            goto 13
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.lang.Throwable java.io.IOException
      StackMap stack: java.lang.RuntimeException
         6: astore 4 /* ex */
        start local 4 // java.lang.RuntimeException ex
         7: .line 489
            aload 4 /* ex */
            athrow
        end local 4 // java.lang.RuntimeException ex
         8: .line 490
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
         9: .line 491
            new freemarker.template.utility.UndeclaredThrowableException
            dup
            aload 4 /* ex */
            invokespecial freemarker.template.utility.UndeclaredThrowableException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception ex
        end local 3 // java.io.IOException ioe
        10: .line 494
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\nCaused by: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* cause */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 495
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* cause */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 494
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        13: .line 497
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 3 /* ioe */
            areturn
        end local 3 // java.io.IOException ioe
        end local 2 // java.lang.Throwable cause
        end local 1 // java.lang.String message
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lfreemarker/cache/TemplateCache;
            0   14     1  message  Ljava/lang/String;
            0   14     2    cause  Ljava/lang/Throwable;
            4   10     3      ioe  Ljava/io/IOException;
           13   14     3      ioe  Ljava/io/IOException;
            7    8     4       ex  Ljava/lang/RuntimeException;
            9   10     4       ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.RuntimeException
           4     5       8  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      message  
      cause    

  private void throwLoadFailedException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.Throwable e
         0: .line 501
            aload 0 /* this */
            ldc "There was an error loading the template on an earlier attempt; see cause exception."
         1: .line 502
            aload 1 /* e */
         2: .line 501
            invokevirtual freemarker.cache.TemplateCache.newIOException:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 1 // java.lang.Throwable e
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/cache/TemplateCache;
            0    3     1     e  Ljava/lang/Throwable;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     

  private void storeNegativeLookup(freemarker.cache.TemplateCache$TemplateKey, freemarker.cache.TemplateCache$CachedTemplate, java.lang.Exception);
    descriptor: (Lfreemarker/cache/TemplateCache$TemplateKey;Lfreemarker/cache/TemplateCache$CachedTemplate;Ljava/lang/Exception;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.cache.TemplateCache$TemplateKey tk
        start local 2 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
        start local 3 // java.lang.Exception e
         0: .line 507
            aload 2 /* cachedTemplate */
            aload 3 /* e */
            putfield freemarker.cache.TemplateCache$CachedTemplate.templateOrException:Ljava/lang/Object;
         1: .line 508
            aload 2 /* cachedTemplate */
            aconst_null
            putfield freemarker.cache.TemplateCache$CachedTemplate.source:Ljava/lang/Object;
         2: .line 509
            aload 2 /* cachedTemplate */
            lconst_0
            putfield freemarker.cache.TemplateCache$CachedTemplate.lastModified:J
         3: .line 510
            aload 0 /* this */
            aload 1 /* tk */
            aload 2 /* cachedTemplate */
            invokevirtual freemarker.cache.TemplateCache.storeCached:(Lfreemarker/cache/TemplateCache$TemplateKey;Lfreemarker/cache/TemplateCache$CachedTemplate;)V
         4: .line 511
            return
        end local 3 // java.lang.Exception e
        end local 2 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
        end local 1 // freemarker.cache.TemplateCache$TemplateKey tk
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lfreemarker/cache/TemplateCache;
            0    5     1              tk  Lfreemarker/cache/TemplateCache$TemplateKey;
            0    5     2  cachedTemplate  Lfreemarker/cache/TemplateCache$CachedTemplate;
            0    5     3               e  Ljava/lang/Exception;
    MethodParameters:
                Name  Flags
      tk              
      cachedTemplate  
      e               

  private void storeCached(freemarker.cache.TemplateCache$TemplateKey, freemarker.cache.TemplateCache$CachedTemplate);
    descriptor: (Lfreemarker/cache/TemplateCache$TemplateKey;Lfreemarker/cache/TemplateCache$CachedTemplate;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.cache.TemplateCache$TemplateKey tk
        start local 2 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
         0: .line 514
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.isStorageConcurrent:Z
            ifeq 3
         1: .line 515
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            aload 1 /* tk */
            aload 2 /* cachedTemplate */
            invokeinterface freemarker.cache.CacheStorage.put:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 516
            goto 9
         3: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            dup
            astore 3
            monitorenter
         4: .line 518
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            aload 1 /* tk */
            aload 2 /* cachedTemplate */
            invokeinterface freemarker.cache.CacheStorage.put:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 517
            aload 3
            monitorexit
         6: goto 9
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateCache$TemplateKey freemarker.cache.TemplateCache$CachedTemplate freemarker.cache.CacheStorage
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 521
      StackMap locals:
      StackMap stack:
            return
        end local 2 // freemarker.cache.TemplateCache$CachedTemplate cachedTemplate
        end local 1 // freemarker.cache.TemplateCache$TemplateKey tk
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lfreemarker/cache/TemplateCache;
            0   10     1              tk  Lfreemarker/cache/TemplateCache$TemplateKey;
            0   10     2  cachedTemplate  Lfreemarker/cache/TemplateCache$CachedTemplate;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
    MethodParameters:
                Name  Flags
      tk              
      cachedTemplate  

  private freemarker.template.Template loadTemplate(freemarker.cache.TemplateLoader, java.lang.Object, java.lang.String, java.lang.String, java.util.Locale, java.lang.Object, java.lang.String, boolean);
    descriptor: (Lfreemarker/cache/TemplateLoader;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)Lfreemarker/template/Template;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=16, args_size=9
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // freemarker.cache.TemplateLoader templateLoader
        start local 2 // java.lang.Object source
        start local 3 // java.lang.String name
        start local 4 // java.lang.String sourceName
        start local 5 // java.util.Locale locale
        start local 6 // java.lang.Object customLookupCondition
        start local 7 // java.lang.String initialEncoding
        start local 8 // boolean parseAsFTL
         0: .line 529
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateConfigurations:Lfreemarker/cache/TemplateConfigurationFactory;
            ifnull 1
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateConfigurations:Lfreemarker/cache/TemplateConfigurationFactory;
            aload 4 /* sourceName */
            aload 2 /* source */
            invokevirtual freemarker.cache.TemplateConfigurationFactory.get:(Ljava/lang/String;Ljava/lang/Object;)Lfreemarker/core/TemplateConfiguration;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: freemarker.core.TemplateConfiguration
         2: astore 9 /* tc */
        start local 9 // freemarker.core.TemplateConfiguration tc
         3: .line 530
            goto 6
        end local 9 // freemarker.core.TemplateConfiguration tc
      StackMap locals:
      StackMap stack: freemarker.cache.TemplateConfigurationFactoryException
         4: astore 10 /* e */
        start local 10 // freemarker.cache.TemplateConfigurationFactoryException e
         5: .line 531
            aload 0 /* this */
            ldc "Error while getting TemplateConfiguration; see cause exception."
            aload 10 /* e */
            invokevirtual freemarker.cache.TemplateCache.newIOException:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 10 // freemarker.cache.TemplateConfigurationFactoryException e
        start local 9 // freemarker.core.TemplateConfiguration tc
         6: .line 533
      StackMap locals: freemarker.core.TemplateConfiguration
      StackMap stack:
            aload 9 /* tc */
            ifnull 11
         7: .line 535
            aload 9 /* tc */
            invokevirtual freemarker.core.TemplateConfiguration.isEncodingSet:()Z
            ifeq 9
         8: .line 536
            aload 9 /* tc */
            invokevirtual freemarker.core.TemplateConfiguration.getEncoding:()Ljava/lang/String;
            astore 7 /* initialEncoding */
         9: .line 538
      StackMap locals:
      StackMap stack:
            aload 9 /* tc */
            invokevirtual freemarker.core.TemplateConfiguration.isLocaleSet:()Z
            ifeq 11
        10: .line 539
            aload 9 /* tc */
            invokevirtual freemarker.core.TemplateConfiguration.getLocale:()Ljava/util/Locale;
            astore 5 /* locale */
        11: .line 545
      StackMap locals:
      StackMap stack:
            iload 8 /* parseAsFTL */
            ifeq 34
        12: .line 547
            aload 1 /* templateLoader */
            aload 2 /* source */
            aload 7 /* initialEncoding */
            invokeinterface freemarker.cache.TemplateLoader.getReader:(Ljava/lang/Object;Ljava/lang/String;)Ljava/io/Reader;
            astore 11 /* reader */
        start local 11 // java.io.Reader reader
        13: .line 549
            new freemarker.template.Template
            dup
            aload 3 /* name */
            aload 4 /* sourceName */
            aload 11 /* reader */
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.config:Lfreemarker/template/Configuration;
            aload 9 /* tc */
            aload 7 /* initialEncoding */
            invokespecial freemarker.template.Template.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/io/Reader;Lfreemarker/template/Configuration;Lfreemarker/core/ParserConfiguration;Ljava/lang/String;)V
            astore 10 /* template */
        start local 10 // freemarker.template.Template template
        14: .line 550
            goto 18
        end local 10 // freemarker.template.Template template
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration top java.io.Reader
      StackMap stack: java.lang.Throwable
        15: astore 12
        16: .line 551
            aload 11 /* reader */
            invokevirtual java.io.Reader.close:()V
        17: .line 552
            aload 12
            athrow
        start local 10 // freemarker.template.Template template
        18: .line 551
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration freemarker.template.Template java.io.Reader
      StackMap stack:
            aload 11 /* reader */
            invokevirtual java.io.Reader.close:()V
        end local 11 // java.io.Reader reader
        19: .line 553
            goto 49
        end local 10 // freemarker.template.Template template
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration
      StackMap stack: freemarker.template.Template$WrongEncodingException
        20: astore 11 /* wee */
        start local 11 // freemarker.template.Template$WrongEncodingException wee
        21: .line 554
            aload 11 /* wee */
            invokevirtual freemarker.template.Template$WrongEncodingException.getTemplateSpecifiedEncoding:()Ljava/lang/String;
            astore 12 /* actualEncoding */
        start local 12 // java.lang.String actualEncoding
        22: .line 555
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            invokevirtual freemarker.log.Logger.isDebugEnabled:()Z
            ifeq 26
        23: .line 556
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Initial encoding \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* initialEncoding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" was incorrect, re-reading with \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 557
            aload 12 /* actualEncoding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\". Template: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* sourceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 556
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        26: .line 560
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration top freemarker.template.Template$WrongEncodingException java.lang.String
      StackMap stack:
            aload 1 /* templateLoader */
            aload 2 /* source */
            aload 12 /* actualEncoding */
            invokeinterface freemarker.cache.TemplateLoader.getReader:(Ljava/lang/Object;Ljava/lang/String;)Ljava/io/Reader;
            astore 13 /* reader */
        start local 13 // java.io.Reader reader
        27: .line 562
            new freemarker.template.Template
            dup
            aload 3 /* name */
            aload 4 /* sourceName */
            aload 13 /* reader */
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.config:Lfreemarker/template/Configuration;
            aload 9 /* tc */
            aload 12 /* actualEncoding */
            invokespecial freemarker.template.Template.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/io/Reader;Lfreemarker/template/Configuration;Lfreemarker/core/ParserConfiguration;Ljava/lang/String;)V
            astore 10 /* template */
        start local 10 // freemarker.template.Template template
        28: .line 563
            goto 32
        end local 10 // freemarker.template.Template template
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration top freemarker.template.Template$WrongEncodingException java.lang.String java.io.Reader
      StackMap stack: java.lang.Throwable
        29: astore 14
        30: .line 564
            aload 13 /* reader */
            invokevirtual java.io.Reader.close:()V
        31: .line 565
            aload 14
            athrow
        start local 10 // freemarker.template.Template template
        32: .line 564
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration freemarker.template.Template freemarker.template.Template$WrongEncodingException java.lang.String java.io.Reader
      StackMap stack:
            aload 13 /* reader */
            invokevirtual java.io.Reader.close:()V
        end local 13 // java.io.Reader reader
        end local 12 // java.lang.String actualEncoding
        end local 11 // freemarker.template.Template$WrongEncodingException wee
        33: .line 567
            goto 49
        end local 10 // freemarker.template.Template template
        34: .line 569
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration
      StackMap stack:
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 11 /* sw */
        start local 11 // java.io.StringWriter sw
        35: .line 570
            sipush 4096
            newarray 5
            astore 12 /* buf */
        start local 12 // char[] buf
        36: .line 571
            aload 1 /* templateLoader */
            aload 2 /* source */
            aload 7 /* initialEncoding */
            invokeinterface freemarker.cache.TemplateLoader.getReader:(Ljava/lang/Object;Ljava/lang/String;)Ljava/io/Reader;
            astore 13 /* reader */
        start local 13 // java.io.Reader reader
        37: .line 574
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration top java.io.StringWriter char[] java.io.Reader
      StackMap stack:
            aload 13 /* reader */
            aload 12 /* buf */
            invokevirtual java.io.Reader.read:([C)I
            istore 14 /* charsRead */
        start local 14 // int charsRead
        38: .line 575
            iload 14 /* charsRead */
            ifle 41
        39: .line 576
            aload 11 /* sw */
            aload 12 /* buf */
            iconst_0
            iload 14 /* charsRead */
            invokevirtual java.io.StringWriter.write:([CII)V
        40: .line 577
            goto 37
      StackMap locals: int
      StackMap stack:
        41: iload 14 /* charsRead */
            ifge 37
        end local 14 // int charsRead
        42: .line 581
            goto 46
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration top java.io.StringWriter char[] java.io.Reader
      StackMap stack: java.lang.Throwable
        43: astore 15
        44: .line 582
            aload 13 /* reader */
            invokevirtual java.io.Reader.close:()V
        45: .line 583
            aload 15
            athrow
        46: .line 582
      StackMap locals:
      StackMap stack:
            aload 13 /* reader */
            invokevirtual java.io.Reader.close:()V
        47: .line 584
            aload 3 /* name */
            aload 4 /* sourceName */
            aload 11 /* sw */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.config:Lfreemarker/template/Configuration;
            invokestatic freemarker.template.Template.getPlainTextTemplate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lfreemarker/template/Configuration;)Lfreemarker/template/Template;
            astore 10 /* template */
        start local 10 // freemarker.template.Template template
        48: .line 585
            aload 10 /* template */
            aload 7 /* initialEncoding */
            invokevirtual freemarker.template.Template.setEncoding:(Ljava/lang/String;)V
        end local 13 // java.io.Reader reader
        end local 12 // char[] buf
        end local 11 // java.io.StringWriter sw
        49: .line 589
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateLoader java.lang.Object java.lang.String java.lang.String java.util.Locale java.lang.Object java.lang.String int freemarker.core.TemplateConfiguration freemarker.template.Template
      StackMap stack:
            aload 9 /* tc */
            ifnull 51
        50: .line 590
            aload 9 /* tc */
            aload 10 /* template */
            invokevirtual freemarker.core.TemplateConfiguration.apply:(Lfreemarker/template/Template;)V
        51: .line 593
      StackMap locals:
      StackMap stack:
            aload 10 /* template */
            aload 5 /* locale */
            invokevirtual freemarker.template.Template.setLocale:(Ljava/util/Locale;)V
        52: .line 594
            aload 10 /* template */
            aload 6 /* customLookupCondition */
            invokevirtual freemarker.template.Template.setCustomLookupCondition:(Ljava/lang/Object;)V
        53: .line 595
            aload 10 /* template */
            areturn
        end local 10 // freemarker.template.Template template
        end local 9 // freemarker.core.TemplateConfiguration tc
        end local 8 // boolean parseAsFTL
        end local 7 // java.lang.String initialEncoding
        end local 6 // java.lang.Object customLookupCondition
        end local 5 // java.util.Locale locale
        end local 4 // java.lang.String sourceName
        end local 3 // java.lang.String name
        end local 2 // java.lang.Object source
        end local 1 // freemarker.cache.TemplateLoader templateLoader
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   54     0                   this  Lfreemarker/cache/TemplateCache;
            0   54     1         templateLoader  Lfreemarker/cache/TemplateLoader;
            0   54     2                 source  Ljava/lang/Object;
            0   54     3                   name  Ljava/lang/String;
            0   54     4             sourceName  Ljava/lang/String;
            0   54     5                 locale  Ljava/util/Locale;
            0   54     6  customLookupCondition  Ljava/lang/Object;
            0   54     7        initialEncoding  Ljava/lang/String;
            0   54     8             parseAsFTL  Z
            3    4     9                     tc  Lfreemarker/core/TemplateConfiguration;
            6   54     9                     tc  Lfreemarker/core/TemplateConfiguration;
            5    6    10                      e  Lfreemarker/cache/TemplateConfigurationFactoryException;
           14   15    10               template  Lfreemarker/template/Template;
           18   20    10               template  Lfreemarker/template/Template;
           28   29    10               template  Lfreemarker/template/Template;
           32   34    10               template  Lfreemarker/template/Template;
           48   54    10               template  Lfreemarker/template/Template;
           13   19    11                 reader  Ljava/io/Reader;
           21   33    11                    wee  Lfreemarker/template/Template$WrongEncodingException;
           22   33    12         actualEncoding  Ljava/lang/String;
           27   33    13                 reader  Ljava/io/Reader;
           35   49    11                     sw  Ljava/io/StringWriter;
           36   49    12                    buf  [C
           37   49    13                 reader  Ljava/io/Reader;
           38   42    14              charsRead  I
      Exception table:
        from    to  target  type
           0     3       4  Class freemarker.cache.TemplateConfigurationFactoryException
          13    15      15  any
          12    19      20  Class freemarker.template.Template$WrongEncodingException
          27    29      29  any
          37    43      43  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                       Name  Flags
      templateLoader         final
      source                 final
      name                   final
      sourceName             final
      locale                 
      customLookupCondition  final
      initialEncoding        
      parseAsFTL             final

  public long getDelay();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // freemarker.cache.TemplateCache this
         0: .line 605
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 606
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.updateDelay:J
            aload 1
            monitorexit
         2: lreturn
         3: .line 605
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateCache
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lfreemarker/cache/TemplateCache;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public void setDelay(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // long delay
         0: .line 617
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 618
            aload 0 /* this */
            lload 1 /* delay */
            putfield freemarker.cache.TemplateCache.updateDelay:J
         2: .line 617
            aload 3
            monitorexit
         3: goto 6
      StackMap locals: freemarker.cache.TemplateCache long freemarker.cache.TemplateCache
      StackMap stack: java.lang.Throwable
         4: aload 3
            monitorexit
         5: athrow
         6: .line 620
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long delay
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lfreemarker/cache/TemplateCache;
            0    7     1  delay  J
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
       Name  Flags
      delay  

  public boolean getLocalizedLookup();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // freemarker.cache.TemplateCache this
         0: .line 627
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 628
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.localizedLookup:Z
            aload 1
            monitorexit
         2: ireturn
         3: .line 627
      StackMap locals: freemarker.cache.TemplateCache freemarker.cache.TemplateCache
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lfreemarker/cache/TemplateCache;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public void setLocalizedLookup(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // boolean localizedLookup
         0: .line 637
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 638
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.localizedLookup:Z
            iload 1 /* localizedLookup */
            if_icmpeq 4
         2: .line 639
            aload 0 /* this */
            iload 1 /* localizedLookup */
            putfield freemarker.cache.TemplateCache.localizedLookup:Z
         3: .line 640
            aload 0 /* this */
            invokevirtual freemarker.cache.TemplateCache.clear:()V
         4: .line 637
      StackMap locals: freemarker.cache.TemplateCache
      StackMap stack:
            aload 2
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 643
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean localizedLookup
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lfreemarker/cache/TemplateCache;
            0    9     1  localizedLookup  Z
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
                 Name  Flags
      localizedLookup  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // freemarker.cache.TemplateCache this
         0: .line 653
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            dup
            astore 1
            monitorenter
         1: .line 654
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            invokeinterface freemarker.cache.CacheStorage.clear:()V
         2: .line 655
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            instanceof freemarker.cache.StatefulTemplateLoader
            ifeq 4
         3: .line 656
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            checkcast freemarker.cache.StatefulTemplateLoader
            invokeinterface freemarker.cache.StatefulTemplateLoader.resetState:()V
         4: .line 653
      StackMap locals: freemarker.cache.CacheStorage
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 659
      StackMap locals:
      StackMap stack:
            return
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lfreemarker/cache/TemplateCache;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any

  public void removeTemplate(java.lang.String, java.util.Locale, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String name
        start local 2 // java.util.Locale locale
        start local 3 // java.lang.String encoding
        start local 4 // boolean parse
         0: .line 667
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* locale */
            aconst_null
            aload 3 /* encoding */
            iload 4 /* parse */
            invokevirtual freemarker.cache.TemplateCache.removeTemplate:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)V
         1: .line 668
            return
        end local 4 // boolean parse
        end local 3 // java.lang.String encoding
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String name
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lfreemarker/cache/TemplateCache;
            0    2     1      name  Ljava/lang/String;
            0    2     2    locale  Ljava/util/Locale;
            0    2     3  encoding  Ljava/lang/String;
            0    2     4     parse  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      name      
      locale    
      encoding  
      parse     

  public void removeTemplate(java.lang.String, java.util.Locale, java.lang.Object, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=6
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String name
        start local 2 // java.util.Locale locale
        start local 3 // java.lang.Object customLookupCondition
        start local 4 // java.lang.String encoding
        start local 5 // boolean parse
         0: .line 681
            aload 1 /* name */
            ifnonnull 2
         1: .line 682
            new java.lang.IllegalArgumentException
            dup
            ldc "Argument \"name\" can't be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 684
      StackMap locals:
      StackMap stack:
            aload 2 /* locale */
            ifnonnull 4
         3: .line 685
            new java.lang.IllegalArgumentException
            dup
            ldc "Argument \"locale\" can't be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 687
      StackMap locals:
      StackMap stack:
            aload 4 /* encoding */
            ifnonnull 6
         5: .line 688
            new java.lang.IllegalArgumentException
            dup
            ldc "Argument \"encoding\" can't be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 690
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateNameFormat:Lfreemarker/cache/TemplateNameFormat;
            aload 1 /* name */
            invokevirtual freemarker.cache.TemplateNameFormat.normalizeRootBasedName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* name */
         7: .line 691
            aload 1 /* name */
            ifnull 25
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            ifnull 25
         8: .line 692
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            invokevirtual freemarker.log.Logger.isDebugEnabled:()Z
            istore 6 /* debug */
        start local 6 // boolean debug
         9: .line 693
            iload 6 /* debug */
            ifeq 11
        10: .line 694
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* locale */
            aload 3 /* customLookupCondition */
            aload 4 /* encoding */
            iload 5 /* parse */
            invokevirtual freemarker.cache.TemplateCache.buildDebugName:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)Ljava/lang/String;
            goto 12
        11: .line 695
      StackMap locals: int
      StackMap stack:
            aconst_null
        12: .line 693
      StackMap locals:
      StackMap stack: java.lang.String
            astore 7 /* debugName */
        start local 7 // java.lang.String debugName
        13: .line 696
            new freemarker.cache.TemplateCache$TemplateKey
            dup
            aload 1 /* name */
            aload 2 /* locale */
            aload 3 /* customLookupCondition */
            aload 4 /* encoding */
            iload 5 /* parse */
            invokespecial freemarker.cache.TemplateCache$TemplateKey.<init>:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)V
            astore 8 /* tk */
        start local 8 // freemarker.cache.TemplateCache$TemplateKey tk
        14: .line 698
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.isStorageConcurrent:Z
            ifeq 17
        15: .line 699
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            aload 8 /* tk */
            invokeinterface freemarker.cache.CacheStorage.remove:(Ljava/lang/Object;)V
        16: .line 700
            goto 23
        17: .line 701
      StackMap locals: java.lang.String freemarker.cache.TemplateCache$TemplateKey
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            dup
            astore 9
            monitorenter
        18: .line 702
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.storage:Lfreemarker/cache/CacheStorage;
            aload 8 /* tk */
            invokeinterface freemarker.cache.CacheStorage.remove:(Ljava/lang/Object;)V
        19: .line 701
            aload 9
            monitorexit
        20: goto 23
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int int java.lang.String freemarker.cache.TemplateCache$TemplateKey freemarker.cache.CacheStorage
      StackMap stack: java.lang.Throwable
        21: aload 9
            monitorexit
        22: athrow
        23: .line 705
      StackMap locals:
      StackMap stack:
            iload 6 /* debug */
            ifeq 25
        24: .line 706
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            aload 7 /* debugName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " was removed from the cache, if it was there"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        end local 8 // freemarker.cache.TemplateCache$TemplateKey tk
        end local 7 // java.lang.String debugName
        end local 6 // boolean debug
        25: .line 709
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean parse
        end local 4 // java.lang.String encoding
        end local 3 // java.lang.Object customLookupCondition
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String name
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   26     0                   this  Lfreemarker/cache/TemplateCache;
            0   26     1                   name  Ljava/lang/String;
            0   26     2                 locale  Ljava/util/Locale;
            0   26     3  customLookupCondition  Ljava/lang/Object;
            0   26     4               encoding  Ljava/lang/String;
            0   26     5                  parse  Z
            9   25     6                  debug  Z
           13   25     7              debugName  Ljava/lang/String;
           14   25     8                     tk  Lfreemarker/cache/TemplateCache$TemplateKey;
      Exception table:
        from    to  target  type
          18    20      21  any
          21    22      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                       Name  Flags
      name                   
      locale                 
      customLookupCondition  
      encoding               
      parse                  

  private java.lang.String buildDebugName(java.lang.String, java.util.Locale, java.lang.Object, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String name
        start local 2 // java.util.Locale locale
        start local 3 // java.lang.Object customLookupCondition
        start local 4 // java.lang.String encoding
        start local 5 // boolean parse
         0: .line 713
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic freemarker.template.utility.StringUtil.jQuoteNoXSS:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 714
            aload 2 /* locale */
            invokestatic freemarker.template.utility.StringUtil.jQuoteNoXSS:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 715
            aload 3 /* customLookupCondition */
            ifnull 3
            new java.lang.StringBuilder
            dup
            ldc ", cond="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* customLookupCondition */
            invokestatic freemarker.template.utility.StringUtil.jQuoteNoXSS:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 4
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         3: ldc ""
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int
      StackMap stack: java.lang.StringBuilder java.lang.String
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 716
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* encoding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 717
            iload 5 /* parse */
            ifeq 7
            ldc ", parsed)"
            goto 8
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         7: ldc ", unparsed]"
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.util.Locale java.lang.Object java.lang.String int
      StackMap stack: java.lang.StringBuilder java.lang.String
         8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 713
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // boolean parse
        end local 4 // java.lang.String encoding
        end local 3 // java.lang.Object customLookupCondition
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String name
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0                   this  Lfreemarker/cache/TemplateCache;
            0   10     1                   name  Ljava/lang/String;
            0   10     2                 locale  Ljava/util/Locale;
            0   10     3  customLookupCondition  Ljava/lang/Object;
            0   10     4               encoding  Ljava/lang/String;
            0   10     5                  parse  Z
    MethodParameters:
                       Name  Flags
      name                   
      locale                 
      customLookupCondition  
      encoding               
      parse                  

  public static java.lang.String getFullTemplatePath(freemarker.core.Environment, java.lang.String, java.lang.String);
    descriptor: (Lfreemarker/core/Environment;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // freemarker.core.Environment env
        start local 1 // java.lang.String baseName
        start local 2 // java.lang.String targetName
         0: .line 731
            aload 0 /* env */
            aload 1 /* baseName */
            aload 2 /* targetName */
            invokevirtual freemarker.core.Environment.toFullTemplateName:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 732
      StackMap locals:
      StackMap stack: freemarker.template.MalformedTemplateNameException
            astore 3 /* e */
        start local 3 // freemarker.template.MalformedTemplateNameException e
         3: .line 733
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* e */
            invokevirtual freemarker.template.MalformedTemplateNameException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // freemarker.template.MalformedTemplateNameException e
        end local 2 // java.lang.String targetName
        end local 1 // java.lang.String baseName
        end local 0 // freemarker.core.Environment env
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0         env  Lfreemarker/core/Environment;
            0    4     1    baseName  Ljava/lang/String;
            0    4     2  targetName  Ljava/lang/String;
            3    4     3           e  Lfreemarker/template/MalformedTemplateNameException;
      Exception table:
        from    to  target  type
           0     1       2  Class freemarker.template.MalformedTemplateNameException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      env         
      baseName    
      targetName  

  private freemarker.cache.TemplateLookupResult lookupTemplate(java.lang.String, java.util.Locale, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;)Lfreemarker/cache/TemplateLookupResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String name
        start local 2 // java.util.Locale locale
        start local 3 // java.lang.Object customLookupCondition
         0: .line 739
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLookupStrategy:Lfreemarker/cache/TemplateLookupStrategy;
         1: .line 740
            new freemarker.cache.TemplateCache$TemplateCacheTemplateLookupContext
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* locale */
            aload 3 /* customLookupCondition */
            invokespecial freemarker.cache.TemplateCache$TemplateCacheTemplateLookupContext.<init>:(Lfreemarker/cache/TemplateCache;Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;)V
         2: .line 739
            invokevirtual freemarker.cache.TemplateLookupStrategy.lookup:(Lfreemarker/cache/TemplateLookupContext;)Lfreemarker/cache/TemplateLookupResult;
            astore 4 /* lookupResult */
        start local 4 // freemarker.cache.TemplateLookupResult lookupResult
         3: .line 741
            aload 4 /* lookupResult */
            ifnonnull 5
         4: .line 742
            new java.lang.NullPointerException
            dup
            ldc "Lookup result shouldn't be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 744
      StackMap locals: freemarker.cache.TemplateLookupResult
      StackMap stack:
            aload 4 /* lookupResult */
            areturn
        end local 4 // freemarker.cache.TemplateLookupResult lookupResult
        end local 3 // java.lang.Object customLookupCondition
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String name
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Lfreemarker/cache/TemplateCache;
            0    6     1                   name  Ljava/lang/String;
            0    6     2                 locale  Ljava/util/Locale;
            0    6     3  customLookupCondition  Ljava/lang/Object;
            3    6     4           lookupResult  Lfreemarker/cache/TemplateLookupResult;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                       Name  Flags
      name                   
      locale                 
      customLookupCondition  

  private freemarker.cache.TemplateLookupResult lookupTemplateWithAcquisitionStrategy(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/cache/TemplateLookupResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String path
         0: .line 748
            aload 1 /* path */
            bipush 42
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* asterisk */
        start local 2 // int asterisk
         1: .line 750
            iload 2 /* asterisk */
            iconst_m1
            if_icmpne 3
         2: .line 751
            aload 1 /* path */
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual freemarker.cache.TemplateCache.findTemplateSource:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic freemarker.cache.TemplateLookupResult.from:(Ljava/lang/String;Ljava/lang/Object;)Lfreemarker/cache/TemplateLookupResult;
            areturn
         3: .line 753
      StackMap locals: int
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* path */
            ldc "/"
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* tok */
        start local 3 // java.util.StringTokenizer tok
         4: .line 754
            iconst_m1
            istore 4 /* lastAsterisk */
        start local 4 // int lastAsterisk
         5: .line 755
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* tokpath */
        start local 5 // java.util.List tokpath
         6: .line 756
            goto 13
         7: .line 757
      StackMap locals: java.util.StringTokenizer int java.util.List
      StackMap stack:
            aload 3 /* tok */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 6 /* pathToken */
        start local 6 // java.lang.String pathToken
         8: .line 758
            aload 6 /* pathToken */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         9: .line 759
            iload 4 /* lastAsterisk */
            iconst_m1
            if_icmpeq 11
        10: .line 760
            aload 5 /* tokpath */
            iload 4 /* lastAsterisk */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        11: .line 762
      StackMap locals: java.lang.String
      StackMap stack:
            aload 5 /* tokpath */
            invokeinterface java.util.List.size:()I
            istore 4 /* lastAsterisk */
        12: .line 764
      StackMap locals:
      StackMap stack:
            aload 5 /* tokpath */
            aload 6 /* pathToken */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String pathToken
        13: .line 756
      StackMap locals:
      StackMap stack:
            aload 3 /* tok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 7
        14: .line 766
            iload 4 /* lastAsterisk */
            iconst_m1
            if_icmpne 16
        15: .line 767
            aload 1 /* path */
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual freemarker.cache.TemplateCache.findTemplateSource:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic freemarker.cache.TemplateLookupResult.from:(Ljava/lang/String;Ljava/lang/Object;)Lfreemarker/cache/TemplateLookupResult;
            areturn
        16: .line 769
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* tokpath */
            iconst_0
            iload 4 /* lastAsterisk */
            invokevirtual freemarker.cache.TemplateCache.concatPath:(Ljava/util/List;II)Ljava/lang/String;
            astore 6 /* basePath */
        start local 6 // java.lang.String basePath
        17: .line 770
            aload 0 /* this */
            aload 5 /* tokpath */
            iload 4 /* lastAsterisk */
            iconst_1
            iadd
            aload 5 /* tokpath */
            invokeinterface java.util.List.size:()I
            invokevirtual freemarker.cache.TemplateCache.concatPath:(Ljava/util/List;II)Ljava/lang/String;
            astore 7 /* resourcePath */
        start local 7 // java.lang.String resourcePath
        18: .line 771
            aload 7 /* resourcePath */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 20
        19: .line 772
            aload 7 /* resourcePath */
            iconst_0
            aload 7 /* resourcePath */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* resourcePath */
        20: .line 774
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuilder.<init>:(I)V
            aload 6 /* basePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            astore 8 /* buf */
        start local 8 // java.lang.StringBuilder buf
        21: .line 775
            aload 6 /* basePath */
            invokevirtual java.lang.String.length:()I
            istore 9 /* l */
        start local 9 // int l
        22: .line 777
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 8 /* buf */
            aload 7 /* resourcePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* fullPath */
        start local 10 // java.lang.String fullPath
        23: .line 778
            aload 0 /* this */
            aload 10 /* fullPath */
            invokevirtual freemarker.cache.TemplateCache.findTemplateSource:(Ljava/lang/String;)Ljava/lang/Object;
            astore 11 /* templateSource */
        start local 11 // java.lang.Object templateSource
        24: .line 779
            aload 11 /* templateSource */
            ifnull 26
        25: .line 780
            aload 10 /* fullPath */
            aload 11 /* templateSource */
            invokestatic freemarker.cache.TemplateLookupResult.from:(Ljava/lang/String;Ljava/lang/Object;)Lfreemarker/cache/TemplateLookupResult;
            areturn
        26: .line 782
      StackMap locals: java.lang.String java.lang.Object
      StackMap stack:
            iload 9 /* l */
            ifne 28
        27: .line 783
            invokestatic freemarker.cache.TemplateLookupResult.createNegativeResult:()Lfreemarker/cache/TemplateLookupResult;
            areturn
        28: .line 785
      StackMap locals:
      StackMap stack:
            aload 6 /* basePath */
            bipush 47
            iload 9 /* l */
            iconst_2
            isub
            invokevirtual java.lang.String.lastIndexOf:(II)I
            iconst_1
            iadd
            istore 9 /* l */
        29: .line 786
            aload 8 /* buf */
            iload 9 /* l */
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        end local 11 // java.lang.Object templateSource
        end local 10 // java.lang.String fullPath
        30: .line 776
            goto 22
        end local 9 // int l
        end local 8 // java.lang.StringBuilder buf
        end local 7 // java.lang.String resourcePath
        end local 6 // java.lang.String basePath
        end local 5 // java.util.List tokpath
        end local 4 // int lastAsterisk
        end local 3 // java.util.StringTokenizer tok
        end local 2 // int asterisk
        end local 1 // java.lang.String path
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   31     0            this  Lfreemarker/cache/TemplateCache;
            0   31     1            path  Ljava/lang/String;
            1   31     2        asterisk  I
            4   31     3             tok  Ljava/util/StringTokenizer;
            5   31     4    lastAsterisk  I
            6   31     5         tokpath  Ljava/util/List;
            8   13     6       pathToken  Ljava/lang/String;
           17   31     6        basePath  Ljava/lang/String;
           18   31     7    resourcePath  Ljava/lang/String;
           21   31     8             buf  Ljava/lang/StringBuilder;
           22   31     9               l  I
           23   30    10        fullPath  Ljava/lang/String;
           24   30    11  templateSource  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      path  

  private java.lang.Object findTemplateSource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.String path
         0: .line 791
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.templateLoader:Lfreemarker/cache/TemplateLoader;
            aload 1 /* path */
            invokeinterface freemarker.cache.TemplateLoader.findTemplateSource:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object result
         1: .line 792
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            invokevirtual freemarker.log.Logger.isDebugEnabled:()Z
            ifeq 7
         2: .line 793
            getstatic freemarker.cache.TemplateCache.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "TemplateLoader.findTemplateSource("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            invokestatic freemarker.template.utility.StringUtil.jQuote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "): "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 794
            aload 2 /* result */
            ifnonnull 4
            ldc "Not found"
            goto 5
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.lang.Object
      StackMap stack: freemarker.log.Logger java.lang.StringBuilder
         4: ldc "Found"
      StackMap locals: freemarker.cache.TemplateCache java.lang.String java.lang.Object
      StackMap stack: freemarker.log.Logger java.lang.StringBuilder java.lang.String
         5: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 793
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
         7: .line 796
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* result */
            invokevirtual freemarker.cache.TemplateCache.modifyForConfIcI:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object result
        end local 1 // java.lang.String path
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lfreemarker/cache/TemplateCache;
            0    8     1    path  Ljava/lang/String;
            1    8     2  result  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      path  

  private java.lang.Object modifyForConfIcI(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.lang.Object templateSource
         0: .line 804
            aload 1 /* templateSource */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 806
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.cache.TemplateCache.config:Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getIncompatibleImprovements:()Lfreemarker/template/Version;
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_21:I
            if_icmpge 3
         2: .line 807
            aload 1 /* templateSource */
            areturn
         3: .line 810
      StackMap locals:
      StackMap stack:
            aload 1 /* templateSource */
            instanceof freemarker.cache.URLTemplateSource
            ifeq 8
         4: .line 811
            aload 1 /* templateSource */
            checkcast freemarker.cache.URLTemplateSource
            astore 2 /* urlTemplateSource */
        start local 2 // freemarker.cache.URLTemplateSource urlTemplateSource
         5: .line 812
            aload 2 /* urlTemplateSource */
            invokevirtual freemarker.cache.URLTemplateSource.getUseCaches:()Ljava/lang/Boolean;
            ifnonnull 10
         6: .line 813
            aload 2 /* urlTemplateSource */
            iconst_0
            invokevirtual freemarker.cache.URLTemplateSource.setUseCaches:(Z)V
        end local 2 // freemarker.cache.URLTemplateSource urlTemplateSource
         7: .line 815
            goto 10
      StackMap locals:
      StackMap stack:
         8: aload 1 /* templateSource */
            instanceof freemarker.cache.MultiTemplateLoader$MultiSource
            ifeq 10
         9: .line 816
            aload 0 /* this */
            aload 1 /* templateSource */
            checkcast freemarker.cache.MultiTemplateLoader$MultiSource
            invokevirtual freemarker.cache.MultiTemplateLoader$MultiSource.getWrappedSource:()Ljava/lang/Object;
            invokevirtual freemarker.cache.TemplateCache.modifyForConfIcI:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 818
      StackMap locals:
      StackMap stack:
            aload 1 /* templateSource */
            areturn
        end local 1 // java.lang.Object templateSource
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lfreemarker/cache/TemplateCache;
            0   11     1     templateSource  Ljava/lang/Object;
            5    7     2  urlTemplateSource  Lfreemarker/cache/URLTemplateSource;
    MethodParameters:
                Name  Flags
      templateSource  

  private java.lang.String concatPath(java.util.List, int, int);
    descriptor: (Ljava/util/List;II)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // freemarker.cache.TemplateCache this
        start local 1 // java.util.List path
        start local 2 // int from
        start local 3 // int to
         0: .line 822
            new java.lang.StringBuilder
            dup
            iload 3 /* to */
            iload 2 /* from */
            isub
            bipush 16
            imul
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
         1: .line 823
            iload 2 /* from */
            istore 5 /* i */
        start local 5 // int i
         2: goto 5
         3: .line 824
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 4 /* buf */
            aload 1 /* path */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 823
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 5 /* i */
            iload 3 /* to */
            if_icmplt 3
        end local 5 // int i
         6: .line 826
            aload 4 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.StringBuilder buf
        end local 3 // int to
        end local 2 // int from
        end local 1 // java.util.List path
        end local 0 // freemarker.cache.TemplateCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lfreemarker/cache/TemplateCache;
            0    7     1  path  Ljava/util/List;
            0    7     2  from  I
            0    7     3    to  I
            1    7     4   buf  Ljava/lang/StringBuilder;
            2    6     5     i  I
    MethodParameters:
      Name  Flags
      path  
      from  
      to    
}
SourceFile: "TemplateCache.java"
NestMembers:
  freemarker.cache.TemplateCache$CachedTemplate  freemarker.cache.TemplateCache$MaybeMissingTemplate  freemarker.cache.TemplateCache$TemplateCacheTemplateLookupContext  freemarker.cache.TemplateCache$TemplateKey
InnerClasses:
  final MultiSource = freemarker.cache.MultiTemplateLoader$MultiSource of freemarker.cache.MultiTemplateLoader
  private final CachedTemplate = freemarker.cache.TemplateCache$CachedTemplate of freemarker.cache.TemplateCache
  public final MaybeMissingTemplate = freemarker.cache.TemplateCache$MaybeMissingTemplate of freemarker.cache.TemplateCache
  private TemplateCacheTemplateLookupContext = freemarker.cache.TemplateCache$TemplateCacheTemplateLookupContext of freemarker.cache.TemplateCache
  private final TemplateKey = freemarker.cache.TemplateCache$TemplateKey of freemarker.cache.TemplateCache
  public WrongEncodingException = freemarker.template.Template$WrongEncodingException of freemarker.template.Template