public class freemarker.cache.FileTemplateLoader implements freemarker.cache.TemplateLoader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: freemarker.cache.FileTemplateLoader
  super_class: java.lang.Object
{
  public static java.lang.String SYSTEM_PROPERTY_NAME_EMULATE_CASE_SENSITIVE_FILE_SYSTEM;
    descriptor: Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private static final boolean EMULATE_CASE_SENSITIVE_FILE_SYSTEM_DEFAULT;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int CASE_CHECH_CACHE_HARD_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 50

  private static final int CASE_CHECK_CACHE__SOFT_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  private static final boolean SEP_IS_SLASH;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  public final java.io.File baseDir;
    descriptor: Ljava/io/File;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private final java.lang.String canonicalBasePath;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private freemarker.cache.MruCacheStorage correctCasePaths;
    descriptor: Lfreemarker/cache/MruCacheStorage;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 52
            ldc "org.freemarker.emulateCaseSensitiveFileSystem"
         1: .line 51
            putstatic freemarker.cache.FileTemplateLoader.SYSTEM_PROPERTY_NAME_EMULATE_CASE_SENSITIVE_FILE_SYSTEM:Ljava/lang/String;
         2: .line 55
            getstatic freemarker.cache.FileTemplateLoader.SYSTEM_PROPERTY_NAME_EMULATE_CASE_SENSITIVE_FILE_SYSTEM:Ljava/lang/String;
         3: .line 56
            ldc "false"
         4: .line 55
            invokestatic freemarker.template.utility.SecurityUtilities.getSystemProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* s */
        start local 0 // java.lang.String s
         5: .line 59
            aload 0 /* s */
            invokestatic freemarker.template.utility.StringUtil.getYesNo:(Ljava/lang/String;)Z
            istore 1 /* emuCaseSensFS */
        start local 1 // boolean emuCaseSensFS
         6: .line 60
            goto 9
        end local 1 // boolean emuCaseSensFS
      StackMap locals: java.lang.String
      StackMap stack: java.lang.Exception
         7: pop
         8: .line 61
            iconst_0
            istore 1 /* emuCaseSensFS */
        start local 1 // boolean emuCaseSensFS
         9: .line 63
      StackMap locals: int
      StackMap stack:
            iload 1 /* emuCaseSensFS */
            putstatic freemarker.cache.FileTemplateLoader.EMULATE_CASE_SENSITIVE_FILE_SYSTEM_DEFAULT:Z
        end local 1 // boolean emuCaseSensFS
        end local 0 // java.lang.String s
        10: .line 68
            getstatic java.io.File.separatorChar:C
            bipush 47
            if_icmpne 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: putstatic freemarker.cache.FileTemplateLoader.SEP_IS_SLASH:Z
        13: .line 70
            ldc "freemarker.cache"
            invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
            putstatic freemarker.cache.FileTemplateLoader.LOG:Lfreemarker/log/Logger;
            return
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            5   10     0              s  Ljava/lang/String;
            6    7     1  emuCaseSensFS  Z
            9   10     1  emuCaseSensFS  Z
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // freemarker.cache.FileTemplateLoader this
         0: .line 87
            aload 0 /* this */
            new java.io.File
            dup
            ldc "user.dir"
            invokestatic freemarker.template.utility.SecurityUtilities.getSystemProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokespecial freemarker.cache.FileTemplateLoader.<init>:(Ljava/io/File;)V
         1: .line 88
            return
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/cache/FileTemplateLoader;
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void <init>(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.cache.FileTemplateLoader this
        start local 1 // java.io.File baseDir
         0: .line 98
            aload 0 /* this */
            aload 1 /* baseDir */
            iconst_0
            invokespecial freemarker.cache.FileTemplateLoader.<init>:(Ljava/io/File;Z)V
         1: .line 99
            return
        end local 1 // java.io.File baseDir
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lfreemarker/cache/FileTemplateLoader;
            0    2     1  baseDir  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      baseDir  final

  public void <init>(java.io.File, boolean);
    descriptor: (Ljava/io/File;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // freemarker.cache.FileTemplateLoader this
        start local 1 // java.io.File baseDir
        start local 2 // boolean disableCanonicalPathCheck
         0: .line 117
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 119
            new freemarker.cache.FileTemplateLoader$1
            dup
            aload 0 /* this */
            aload 1 /* baseDir */
            iload 2 /* disableCanonicalPathCheck */
            invokespecial freemarker.cache.FileTemplateLoader$1.<init>:(Lfreemarker/cache/FileTemplateLoader;Ljava/io/File;Z)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 3 /* retval */
        start local 3 // java.lang.Object[] retval
         2: .line 144
            aload 0 /* this */
            aload 3 /* retval */
            iconst_0
            aaload
            checkcast java.io.File
            putfield freemarker.cache.FileTemplateLoader.baseDir:Ljava/io/File;
         3: .line 145
            aload 0 /* this */
            aload 3 /* retval */
            iconst_1
            aaload
            checkcast java.lang.String
            putfield freemarker.cache.FileTemplateLoader.canonicalBasePath:Ljava/lang/String;
         4: .line 147
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual freemarker.cache.FileTemplateLoader.getEmulateCaseSensitiveFileSystemDefault:()Z
            invokevirtual freemarker.cache.FileTemplateLoader.setEmulateCaseSensitiveFileSystem:(Z)V
        end local 3 // java.lang.Object[] retval
         5: .line 148
            goto 8
      StackMap locals: freemarker.cache.FileTemplateLoader java.io.File int
      StackMap stack: java.security.PrivilegedActionException
         6: astore 3 /* e */
        start local 3 // java.security.PrivilegedActionException e
         7: .line 149
            aload 3 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 3 // java.security.PrivilegedActionException e
         8: .line 151
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean disableCanonicalPathCheck
        end local 1 // java.io.File baseDir
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    9     0                       this  Lfreemarker/cache/FileTemplateLoader;
            0    9     1                    baseDir  Ljava/io/File;
            0    9     2  disableCanonicalPathCheck  Z
            2    5     3                     retval  [Ljava/lang/Object;
            7    8     3                          e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           1     5       6  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                           Name  Flags
      baseDir                    final
      disableCanonicalPathCheck  final

  public java.lang.Object findTemplateSource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // freemarker.cache.FileTemplateLoader this
        start local 1 // java.lang.String name
         0: .line 155
            new freemarker.cache.FileTemplateLoader$2
            dup
            aload 0 /* this */
            aload 1 /* name */
            invokespecial freemarker.cache.FileTemplateLoader$2.<init>:(Lfreemarker/cache/FileTemplateLoader;Ljava/lang/String;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
         1: areturn
         2: .line 181
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
            astore 2 /* e */
        start local 2 // java.security.PrivilegedActionException e
         3: .line 182
            aload 2 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 2 // java.security.PrivilegedActionException e
        end local 1 // java.lang.String name
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lfreemarker/cache/FileTemplateLoader;
            0    4     1  name  Ljava/lang/String;
            3    4     2     e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final

  public long getLastModified(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // freemarker.cache.FileTemplateLoader this
        start local 1 // java.lang.Object templateSource
         0: .line 187
            new freemarker.cache.FileTemplateLoader$3
            dup
            aload 0 /* this */
            aload 1 /* templateSource */
            invokespecial freemarker.cache.FileTemplateLoader$3.<init>:(Lfreemarker/cache/FileTemplateLoader;Ljava/lang/Object;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Long
         1: .line 191
            invokevirtual java.lang.Long.longValue:()J
         2: .line 187
            lreturn
        end local 1 // java.lang.Object templateSource
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lfreemarker/cache/FileTemplateLoader;
            0    3     1  templateSource  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      templateSource  final

  public java.io.Reader getReader(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/io/Reader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // freemarker.cache.FileTemplateLoader this
        start local 1 // java.lang.Object templateSource
        start local 2 // java.lang.String encoding
         0: .line 196
            new freemarker.cache.FileTemplateLoader$4
            dup
            aload 0 /* this */
            aload 1 /* templateSource */
            aload 2 /* encoding */
            invokespecial freemarker.cache.FileTemplateLoader$4.<init>:(Lfreemarker/cache/FileTemplateLoader;Ljava/lang/Object;Ljava/lang/String;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.io.Reader
         1: areturn
         2: .line 206
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
            astore 3 /* e */
        start local 3 // java.security.PrivilegedActionException e
         3: .line 207
            aload 3 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 3 // java.security.PrivilegedActionException e
        end local 2 // java.lang.String encoding
        end local 1 // java.lang.Object templateSource
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lfreemarker/cache/FileTemplateLoader;
            0    4     1  templateSource  Ljava/lang/Object;
            0    4     2        encoding  Ljava/lang/String;
            3    4     3               e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      templateSource  final
      encoding        final

  private boolean isNameCaseCorrect(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // freemarker.cache.FileTemplateLoader this
        start local 1 // java.io.File source
         0: .line 215
            aload 1 /* source */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            astore 2 /* sourcePath */
        start local 2 // java.lang.String sourcePath
         1: .line 216
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.correctCasePaths:Lfreemarker/cache/MruCacheStorage;
            dup
            astore 3
            monitorenter
         2: .line 217
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.correctCasePaths:Lfreemarker/cache/MruCacheStorage;
            aload 2 /* sourcePath */
            invokevirtual freemarker.cache.MruCacheStorage.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 5
         3: .line 218
            aload 3
            monitorexit
         4: iconst_1
            ireturn
         5: .line 216
      StackMap locals: java.lang.String freemarker.cache.MruCacheStorage
      StackMap stack:
            aload 3
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 222
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 3 /* parentDir */
        start local 3 // java.io.File parentDir
        10: .line 223
            aload 3 /* parentDir */
            ifnull 35
        11: .line 224
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.baseDir:Ljava/io/File;
            aload 3 /* parentDir */
            invokevirtual java.io.File.equals:(Ljava/lang/Object;)Z
            ifne 13
            aload 0 /* this */
            aload 3 /* parentDir */
            invokevirtual freemarker.cache.FileTemplateLoader.isNameCaseCorrect:(Ljava/io/File;)Z
            ifne 13
        12: .line 225
            iconst_0
            ireturn
        13: .line 228
      StackMap locals: java.io.File
      StackMap stack:
            aload 3 /* parentDir */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            astore 4 /* listing */
        start local 4 // java.lang.String[] listing
        14: .line 229
            aload 4 /* listing */
            ifnull 35
        15: .line 230
            aload 1 /* source */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            astore 5 /* fileName */
        start local 5 // java.lang.String fileName
        16: .line 232
            iconst_0
            istore 6 /* identicalNameFound */
        start local 6 // boolean identicalNameFound
        17: .line 233
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        18: goto 22
        19: .line 234
      StackMap locals: freemarker.cache.FileTemplateLoader java.io.File java.lang.String java.io.File java.lang.String[] java.lang.String int int
      StackMap stack:
            aload 5 /* fileName */
            aload 4 /* listing */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 235
            iconst_1
            istore 6 /* identicalNameFound */
        21: .line 233
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 6 /* identicalNameFound */
            ifne 23
            iload 7 /* i */
            aload 4 /* listing */
            arraylength
            if_icmplt 19
        end local 7 // int i
        23: .line 239
      StackMap locals:
      StackMap stack:
            iload 6 /* identicalNameFound */
            ifne 35
        24: .line 241
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        25: goto 34
        26: .line 242
      StackMap locals: int
      StackMap stack:
            aload 4 /* listing */
            iload 7 /* i */
            aaload
            astore 8 /* listingEntry */
        start local 8 // java.lang.String listingEntry
        27: .line 243
            aload 5 /* fileName */
            aload 8 /* listingEntry */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 33
        28: .line 244
            getstatic freemarker.cache.FileTemplateLoader.LOG:Lfreemarker/log/Logger;
            invokevirtual freemarker.log.Logger.isDebugEnabled:()Z
            ifeq 32
        29: .line 245
            getstatic freemarker.cache.FileTemplateLoader.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Emulating file-not-found because of letter case differences to the real file, for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        30: .line 246
            aload 2 /* sourcePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 245
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;)V
        32: .line 248
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // java.lang.String listingEntry
        33: .line 241
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 7 /* i */
            aload 4 /* listing */
            arraylength
            if_icmplt 26
        end local 7 // int i
        end local 6 // boolean identicalNameFound
        end local 5 // java.lang.String fileName
        end local 4 // java.lang.String[] listing
        35: .line 255
      StackMap locals: freemarker.cache.FileTemplateLoader java.io.File java.lang.String java.io.File
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.correctCasePaths:Lfreemarker/cache/MruCacheStorage;
            dup
            astore 4
            monitorenter
        36: .line 256
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.correctCasePaths:Lfreemarker/cache/MruCacheStorage;
            aload 2 /* sourcePath */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual freemarker.cache.MruCacheStorage.put:(Ljava/lang/Object;Ljava/lang/Object;)V
        37: .line 255
            aload 4
            monitorexit
        38: goto 41
      StackMap locals: freemarker.cache.FileTemplateLoader java.io.File java.lang.String java.io.File freemarker.cache.MruCacheStorage
      StackMap stack: java.lang.Throwable
        39: aload 4
            monitorexit
        40: athrow
        41: .line 258
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.io.File parentDir
        end local 2 // java.lang.String sourcePath
        end local 1 // java.io.File source
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   42     0                this  Lfreemarker/cache/FileTemplateLoader;
            0   42     1              source  Ljava/io/File;
            1   42     2          sourcePath  Ljava/lang/String;
           10   42     3           parentDir  Ljava/io/File;
           14   35     4             listing  [Ljava/lang/String;
           16   35     5            fileName  Ljava/lang/String;
           17   35     6  identicalNameFound  Z
           18   23     7                   i  I
           25   35     7                   i  I
           27   33     8        listingEntry  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2     4       7  any
           5     6       7  any
           7     8       7  any
          36    38      39  any
          39    40      39  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      source  

  public void closeTemplateSource(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // freemarker.cache.FileTemplateLoader this
        start local 1 // java.lang.Object templateSource
         0: .line 263
            return
        end local 1 // java.lang.Object templateSource
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lfreemarker/cache/FileTemplateLoader;
            0    1     1  templateSource  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      templateSource  

  public java.io.File getBaseDirectory();
    descriptor: ()Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.cache.FileTemplateLoader this
         0: .line 272
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.baseDir:Ljava/io/File;
            areturn
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/cache/FileTemplateLoader;

  public void setEmulateCaseSensitiveFileSystem(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // freemarker.cache.FileTemplateLoader this
        start local 1 // boolean nameCaseChecked
         0: .line 290
            iload 1 /* nameCaseChecked */
            ifeq 4
         1: .line 291
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.correctCasePaths:Lfreemarker/cache/MruCacheStorage;
            ifnonnull 5
         2: .line 292
            aload 0 /* this */
            new freemarker.cache.MruCacheStorage
            dup
            bipush 50
            sipush 1000
            invokespecial freemarker.cache.MruCacheStorage.<init>:(II)V
            putfield freemarker.cache.FileTemplateLoader.correctCasePaths:Lfreemarker/cache/MruCacheStorage;
         3: .line 294
            goto 5
         4: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield freemarker.cache.FileTemplateLoader.correctCasePaths:Lfreemarker/cache/MruCacheStorage;
         5: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* nameCaseChecked */
            putfield freemarker.cache.FileTemplateLoader.emulateCaseSensitiveFileSystem:Z
         6: .line 299
            return
        end local 1 // boolean nameCaseChecked
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lfreemarker/cache/FileTemplateLoader;
            0    7     1  nameCaseChecked  Z
    MethodParameters:
                 Name  Flags
      nameCaseChecked  

  public boolean getEmulateCaseSensitiveFileSystem();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.cache.FileTemplateLoader this
         0: .line 307
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.emulateCaseSensitiveFileSystem:Z
            ireturn
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/cache/FileTemplateLoader;

  protected boolean getEmulateCaseSensitiveFileSystemDefault();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.cache.FileTemplateLoader this
         0: .line 319
            getstatic freemarker.cache.FileTemplateLoader.EMULATE_CASE_SENSITIVE_FILE_SYSTEM_DEFAULT:Z
            ireturn
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/cache/FileTemplateLoader;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // freemarker.cache.FileTemplateLoader this
         0: .line 331
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokestatic freemarker.cache.TemplateLoaderUtils.getClassNameForToString:(Lfreemarker/cache/TemplateLoader;)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 332
            ldc "baseDir=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.baseDir:Ljava/io/File;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 333
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.canonicalBasePath:Ljava/lang/String;
            ifnull 3
            new java.lang.StringBuilder
            dup
            ldc ", canonicalBasePath=\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.canonicalBasePath: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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 4
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         3: ldc ""
      StackMap locals: freemarker.cache.FileTemplateLoader
      StackMap stack: java.lang.StringBuilder java.lang.String
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 334
            aload 0 /* this */
            getfield freemarker.cache.FileTemplateLoader.emulateCaseSensitiveFileSystem:Z
            ifeq 6
            ldc ", emulateCaseSensitiveFileSystem=true"
            goto 7
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         6: ldc ""
      StackMap locals: freemarker.cache.FileTemplateLoader
      StackMap stack: java.lang.StringBuilder java.lang.String
         7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 335
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 331
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // freemarker.cache.FileTemplateLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lfreemarker/cache/FileTemplateLoader;
}
SourceFile: "FileTemplateLoader.java"
NestMembers:
  freemarker.cache.FileTemplateLoader$1  freemarker.cache.FileTemplateLoader$2  freemarker.cache.FileTemplateLoader$3  freemarker.cache.FileTemplateLoader$4
InnerClasses:
  freemarker.cache.FileTemplateLoader$1
  freemarker.cache.FileTemplateLoader$2
  freemarker.cache.FileTemplateLoader$3
  freemarker.cache.FileTemplateLoader$4