public class freemarker.ext.beans.BeansWrapper implements freemarker.template.utility.RichObjectWrapper, freemarker.template.utility.WriteProtectable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: freemarker.ext.beans.BeansWrapper
  super_class: java.lang.Object
{
  private static final freemarker.log.Logger LOG;
    descriptor: Lfreemarker/log/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.lang.Object CAN_NOT_UNWRAP;
    descriptor: Ljava/lang/Object;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int EXPOSE_ALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int EXPOSE_SAFE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int EXPOSE_PROPERTIES_ONLY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int EXPOSE_NOTHING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

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

  private freemarker.ext.beans.ClassIntrospector classIntrospector;
    descriptor: Lfreemarker/ext/beans/ClassIntrospector;
    flags: (0x0002) ACC_PRIVATE

  private final freemarker.ext.beans.StaticModels staticModels;
    descriptor: Lfreemarker/ext/beans/StaticModels;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.ext.beans.ClassBasedModelFactory enumModels;
    descriptor: Lfreemarker/ext/beans/ClassBasedModelFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.ext.util.ModelCache modelCache;
    descriptor: Lfreemarker/ext/util/ModelCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.ext.beans.BooleanModel falseModel;
    descriptor: Lfreemarker/ext/beans/BooleanModel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.ext.beans.BooleanModel trueModel;
    descriptor: Lfreemarker/ext/beans/BooleanModel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile boolean writeProtected;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private freemarker.template.TemplateModel nullModel;
    descriptor: Lfreemarker/template/TemplateModel;
    flags: (0x0002) ACC_PRIVATE

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

  private freemarker.template.ObjectWrapper outerIdentity;
    descriptor: Lfreemarker/template/ObjectWrapper;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

  private final freemarker.template.Version incompatibleImprovements;
    descriptor: Lfreemarker/template/Version;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static volatile boolean ftmaDeprecationWarnLogged;
    descriptor: Z
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private final freemarker.ext.util.ModelFactory BOOLEAN_FACTORY;
    descriptor: Lfreemarker/ext/util/ModelFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final freemarker.ext.util.ModelFactory ITERATOR_FACTORY;
    descriptor: Lfreemarker/ext/util/ModelFactory;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final freemarker.ext.util.ModelFactory ENUMERATION_FACTORY;
    descriptor: Lfreemarker/ext/util/ModelFactory;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 88
            ldc "freemarker.beans"
            invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
            putstatic freemarker.ext.beans.BeansWrapper.LOG:Lfreemarker/log/Logger;
         1: .line 95
            getstatic freemarker.template.ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS:Ljava/lang/Object;
            putstatic freemarker.ext.beans.BeansWrapper.CAN_NOT_UNWRAP:Ljava/lang/Object;
         2: .line 958
            new freemarker.ext.beans.BeansWrapper$2
            dup
            invokespecial freemarker.ext.beans.BeansWrapper$2.<init>:()V
            putstatic freemarker.ext.beans.BeansWrapper.ITERATOR_FACTORY:Lfreemarker/ext/util/ModelFactory;
         3: .line 964
            new freemarker.ext.beans.BeansWrapper$3
            dup
            invokespecial freemarker.ext.beans.BeansWrapper$3.<init>:()V
            putstatic freemarker.ext.beans.BeansWrapper.ENUMERATION_FACTORY:Lfreemarker/ext/util/ModelFactory;
         4: .line 968
            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.ext.beans.BeansWrapper this
         0: .line 199
            aload 0 /* this */
            getstatic freemarker.template.Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS:Lfreemarker/template/Version;
            invokespecial freemarker.ext.beans.BeansWrapper.<init>:(Lfreemarker/template/Version;)V
         1: .line 201
            return
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/ext/beans/BeansWrapper;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void <init>(freemarker.template.Version);
    descriptor: (Lfreemarker/template/Version;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.template.Version incompatibleImprovements
         0: .line 266
            aload 0 /* this */
            new freemarker.ext.beans.BeansWrapper$4
            dup
            aload 1 /* incompatibleImprovements */
            invokespecial freemarker.ext.beans.BeansWrapper$4.<init>:(Lfreemarker/template/Version;)V
            iconst_0
            invokespecial freemarker.ext.beans.BeansWrapper.<init>:(Lfreemarker/ext/beans/BeansWrapperConfiguration;Z)V
         1: .line 269
            return
        end local 1 // freemarker.template.Version incompatibleImprovements
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lfreemarker/ext/beans/BeansWrapper;
            0    2     1  incompatibleImprovements  Lfreemarker/template/Version;
    MethodParameters:
                          Name  Flags
      incompatibleImprovements  

  protected void <init>(freemarker.ext.beans.BeansWrapperConfiguration, boolean);
    descriptor: (Lfreemarker/ext/beans/BeansWrapperConfiguration;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.ext.beans.BeansWrapperConfiguration bwConf
        start local 2 // boolean writeProtected
         0: .line 280
            aload 0 /* this */
            aload 1 /* bwConf */
            iload 2 /* writeProtected */
            iconst_1
            invokespecial freemarker.ext.beans.BeansWrapper.<init>:(Lfreemarker/ext/beans/BeansWrapperConfiguration;ZZ)V
         1: .line 281
            return
        end local 2 // boolean writeProtected
        end local 1 // freemarker.ext.beans.BeansWrapperConfiguration bwConf
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lfreemarker/ext/beans/BeansWrapper;
            0    2     1          bwConf  Lfreemarker/ext/beans/BeansWrapperConfiguration;
            0    2     2  writeProtected  Z
    MethodParameters:
                Name  Flags
      bwConf          
      writeProtected  

  protected void <init>(freemarker.ext.beans.BeansWrapperConfiguration, boolean, boolean);
    descriptor: (Lfreemarker/ext/beans/BeansWrapperConfiguration;ZZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.ext.beans.BeansWrapperConfiguration bwConf
        start local 2 // boolean writeProtected
        start local 3 // boolean finalizeConstruction
         0: .line 294
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 181
            aload 0 /* this */
            aconst_null
            putfield freemarker.ext.beans.BeansWrapper.nullModel:Lfreemarker/template/TemplateModel;
         2: .line 183
            aload 0 /* this */
            aload 0 /* this */
            putfield freemarker.ext.beans.BeansWrapper.outerIdentity:Lfreemarker/template/ObjectWrapper;
         3: .line 184
            aload 0 /* this */
            iconst_1
            putfield freemarker.ext.beans.BeansWrapper.methodsShadowItems:Z
         4: .line 952
            aload 0 /* this */
            new freemarker.ext.beans.BeansWrapper$1
            dup
            aload 0 /* this */
            invokespecial freemarker.ext.beans.BeansWrapper$1.<init>:(Lfreemarker/ext/beans/BeansWrapper;)V
            putfield freemarker.ext.beans.BeansWrapper.BOOLEAN_FACTORY:Lfreemarker/ext/util/ModelFactory;
         5: .line 296
            aload 1 /* bwConf */
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.getMethodAppearanceFineTuner:()Lfreemarker/ext/beans/MethodAppearanceFineTuner;
            ifnonnull 38
         6: .line 297
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 4 /* thisClass */
        start local 4 // java.lang.Class thisClass
         7: .line 298
            iconst_0
            istore 5 /* overridden */
        start local 5 // boolean overridden
         8: .line 299
            iconst_0
            istore 6 /* testFailed */
        start local 6 // boolean testFailed
         9: .line 301
            goto 17
        10: .line 306
      StackMap locals: freemarker.ext.beans.BeansWrapper freemarker.ext.beans.BeansWrapperConfiguration int int java.lang.Class int int
      StackMap stack:
            aload 4 /* thisClass */
            ldc "finetuneMethodAppearance"
        11: .line 307
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/reflect/Method;
            aastore
            dup
            iconst_2
            ldc Lfreemarker/ext/beans/BeansWrapper$MethodAppearanceDecision;
            aastore
        12: .line 306
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        13: .line 308
            iconst_1
            istore 5 /* overridden */
        14: .line 309
            goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        15: pop
        16: .line 310
            aload 4 /* thisClass */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 4 /* thisClass */
        17: .line 301
      StackMap locals:
      StackMap stack:
            iload 5 /* overridden */
            ifne 30
        18: .line 302
            aload 4 /* thisClass */
            ldc Lfreemarker/template/DefaultObjectWrapper;
            if_acmpeq 30
        19: .line 303
            aload 4 /* thisClass */
            ldc Lfreemarker/ext/beans/BeansWrapper;
            if_acmpeq 30
        20: .line 304
            aload 4 /* thisClass */
            ldc Lfreemarker/template/SimpleObjectWrapper;
            if_acmpne 10
        21: .line 313
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 7 /* e */
        start local 7 // java.lang.Throwable e
        23: .line 315
            getstatic freemarker.ext.beans.BeansWrapper.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Failed to check if finetuneMethodAppearance is overidden in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* thisClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 316
            ldc "; acting like if it was, but this way it won't utilize the shared class introspection "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 317
            ldc "cache."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 318
            aload 7 /* e */
        27: .line 315
            invokevirtual freemarker.log.Logger.info:(Ljava/lang/String;Ljava/lang/Throwable;)V
        28: .line 319
            iconst_1
            istore 5 /* overridden */
        29: .line 320
            iconst_1
            istore 6 /* testFailed */
        end local 7 // java.lang.Throwable e
        30: .line 322
      StackMap locals:
      StackMap stack:
            iload 5 /* overridden */
            ifeq 38
        31: .line 323
            iload 6 /* testFailed */
            ifne 36
            getstatic freemarker.ext.beans.BeansWrapper.ftmaDeprecationWarnLogged:Z
            ifne 36
        32: .line 324
            getstatic freemarker.ext.beans.BeansWrapper.LOG:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Overriding "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc Lfreemarker/ext/beans/BeansWrapper;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".finetuneMethodAppearance is deprecated "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 325
            ldc "and will be banned sometimes in the future. Use setMethodAppearanceFineTuner instead."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 324
            invokevirtual freemarker.log.Logger.warn:(Ljava/lang/String;)V
        35: .line 326
            iconst_1
            putstatic freemarker.ext.beans.BeansWrapper.ftmaDeprecationWarnLogged:Z
        36: .line 328
      StackMap locals:
      StackMap stack:
            aload 1 /* bwConf */
            iconst_0
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.clone:(Z)Ljava/lang/Object;
            checkcast freemarker.ext.beans.BeansWrapperConfiguration
            astore 1 /* bwConf */
        37: .line 329
            aload 1 /* bwConf */
            new freemarker.ext.beans.BeansWrapper$5
            dup
            aload 0 /* this */
            invokespecial freemarker.ext.beans.BeansWrapper$5.<init>:(Lfreemarker/ext/beans/BeansWrapper;)V
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.setMethodAppearanceFineTuner:(Lfreemarker/ext/beans/MethodAppearanceFineTuner;)V
        end local 6 // boolean testFailed
        end local 5 // boolean overridden
        end local 4 // java.lang.Class thisClass
        38: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bwConf */
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.getIncompatibleImprovements:()Lfreemarker/template/Version;
            putfield freemarker.ext.beans.BeansWrapper.incompatibleImprovements:Lfreemarker/template/Version;
        39: .line 342
            aload 0 /* this */
            aload 1 /* bwConf */
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.isSimpleMapWrapper:()Z
            putfield freemarker.ext.beans.BeansWrapper.simpleMapWrapper:Z
        40: .line 343
            aload 0 /* this */
            aload 1 /* bwConf */
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.getPreferIndexedReadMethod:()Z
            putfield freemarker.ext.beans.BeansWrapper.preferIndexedReadMethod:Z
        41: .line 344
            aload 0 /* this */
            aload 1 /* bwConf */
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.getDefaultDateType:()I
            putfield freemarker.ext.beans.BeansWrapper.defaultDateType:I
        42: .line 345
            aload 0 /* this */
            aload 1 /* bwConf */
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.getOuterIdentity:()Lfreemarker/template/ObjectWrapper;
            ifnull 43
            aload 1 /* bwConf */
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.getOuterIdentity:()Lfreemarker/template/ObjectWrapper;
            goto 44
      StackMap locals:
      StackMap stack: freemarker.ext.beans.BeansWrapper
        43: aload 0 /* this */
      StackMap locals: freemarker.ext.beans.BeansWrapper freemarker.ext.beans.BeansWrapperConfiguration int int
      StackMap stack: freemarker.ext.beans.BeansWrapper freemarker.template.ObjectWrapper
        44: putfield freemarker.ext.beans.BeansWrapper.outerIdentity:Lfreemarker/template/ObjectWrapper;
        45: .line 346
            aload 0 /* this */
            aload 1 /* bwConf */
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.isStrict:()Z
            putfield freemarker.ext.beans.BeansWrapper.strict:Z
        46: .line 348
            iload 2 /* writeProtected */
            ifne 52
        47: .line 352
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield freemarker.ext.beans.BeansWrapper.sharedIntrospectionLock:Ljava/lang/Object;
        48: .line 353
            aload 0 /* this */
            new freemarker.ext.beans.ClassIntrospector
            dup
        49: .line 354
            aload 1 /* bwConf */
            invokestatic freemarker.ext.beans._BeansAPI.getClassIntrospectorBuilder:(Lfreemarker/ext/beans/BeansWrapperConfiguration;)Lfreemarker/ext/beans/ClassIntrospectorBuilder;
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.sharedIntrospectionLock:Ljava/lang/Object;
            invokespecial freemarker.ext.beans.ClassIntrospector.<init>:(Lfreemarker/ext/beans/ClassIntrospectorBuilder;Ljava/lang/Object;)V
        50: .line 353
            putfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
        51: .line 355
            goto 54
        52: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bwConf */
            invokestatic freemarker.ext.beans._BeansAPI.getClassIntrospectorBuilder:(Lfreemarker/ext/beans/BeansWrapperConfiguration;)Lfreemarker/ext/beans/ClassIntrospectorBuilder;
            invokevirtual freemarker.ext.beans.ClassIntrospectorBuilder.build:()Lfreemarker/ext/beans/ClassIntrospector;
            putfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
        53: .line 359
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getSharedLock:()Ljava/lang/Object;
            putfield freemarker.ext.beans.BeansWrapper.sharedIntrospectionLock:Ljava/lang/Object;
        54: .line 362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new freemarker.ext.beans.BooleanModel
            dup
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aload 0 /* this */
            invokespecial freemarker.ext.beans.BooleanModel.<init>:(Ljava/lang/Boolean;Lfreemarker/ext/beans/BeansWrapper;)V
            putfield freemarker.ext.beans.BeansWrapper.falseModel:Lfreemarker/ext/beans/BooleanModel;
        55: .line 363
            aload 0 /* this */
            new freemarker.ext.beans.BooleanModel
            dup
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 0 /* this */
            invokespecial freemarker.ext.beans.BooleanModel.<init>:(Ljava/lang/Boolean;Lfreemarker/ext/beans/BeansWrapper;)V
            putfield freemarker.ext.beans.BeansWrapper.trueModel:Lfreemarker/ext/beans/BooleanModel;
        56: .line 365
            aload 0 /* this */
            new freemarker.ext.beans.StaticModels
            dup
            aload 0 /* this */
            invokespecial freemarker.ext.beans.StaticModels.<init>:(Lfreemarker/ext/beans/BeansWrapper;)V
            putfield freemarker.ext.beans.BeansWrapper.staticModels:Lfreemarker/ext/beans/StaticModels;
        57: .line 366
            aload 0 /* this */
            new freemarker.ext.beans._EnumModels
            dup
            aload 0 /* this */
            invokespecial freemarker.ext.beans._EnumModels.<init>:(Lfreemarker/ext/beans/BeansWrapper;)V
            putfield freemarker.ext.beans.BeansWrapper.enumModels:Lfreemarker/ext/beans/ClassBasedModelFactory;
        58: .line 367
            aload 0 /* this */
            new freemarker.ext.beans.BeansModelCache
            dup
            aload 0 /* this */
            invokespecial freemarker.ext.beans.BeansModelCache.<init>:(Lfreemarker/ext/beans/BeansWrapper;)V
            putfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
        59: .line 368
            aload 0 /* this */
            aload 1 /* bwConf */
            invokevirtual freemarker.ext.beans.BeansWrapperConfiguration.getUseModelCache:()Z
            invokevirtual freemarker.ext.beans.BeansWrapper.setUseCache:(Z)V
        60: .line 370
            aload 0 /* this */
            iload 2 /* writeProtected */
            invokevirtual freemarker.ext.beans.BeansWrapper.finalizeConstruction:(Z)V
        61: .line 371
            return
        end local 3 // boolean finalizeConstruction
        end local 2 // boolean writeProtected
        end local 1 // freemarker.ext.beans.BeansWrapperConfiguration bwConf
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   62     0                  this  Lfreemarker/ext/beans/BeansWrapper;
            0   62     1                bwConf  Lfreemarker/ext/beans/BeansWrapperConfiguration;
            0   62     2        writeProtected  Z
            0   62     3  finalizeConstruction  Z
            7   38     4             thisClass  Ljava/lang/Class<*>;
            8   38     5            overridden  Z
            9   38     6            testFailed  Z
           23   30     7                     e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          10    14      15  Class java.lang.NoSuchMethodException
           9    21      22  Class java.lang.Throwable
    MethodParameters:
                      Name  Flags
      bwConf                
      writeProtected        
      finalizeConstruction  

  protected void finalizeConstruction(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // boolean writeProtected
         0: .line 382
            iload 1 /* writeProtected */
            ifeq 2
         1: .line 383
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.writeProtect:()V
         2: .line 391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.registerModelFactories:()V
         3: .line 392
            return
        end local 1 // boolean writeProtected
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lfreemarker/ext/beans/BeansWrapper;
            0    4     1  writeProtected  Z
    MethodParameters:
                Name  Flags
      writeProtected  

  public void writeProtect();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 405
            aload 0 /* this */
            iconst_1
            putfield freemarker.ext.beans.BeansWrapper.writeProtected:Z
         1: .line 406
            return
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public boolean isWriteProtected();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 412
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.writeProtected:Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  java.lang.Object getSharedIntrospectionLock();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 416
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.sharedIntrospectionLock:Ljava/lang/Object;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  protected void checkModifiable();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 426
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.writeProtected:Z
            ifeq 2
            new java.lang.IllegalStateException
            dup
         1: .line 427
            new java.lang.StringBuilder
            dup
            ldc "Can't modify the "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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;
            ldc " object, as it was write protected."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 428
      StackMap locals:
      StackMap stack:
            return
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public boolean isStrict();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 434
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.strict:Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public void setStrict(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // boolean strict
         0: .line 459
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 460
            aload 0 /* this */
            iload 1 /* strict */
            putfield freemarker.ext.beans.BeansWrapper.strict:Z
         2: .line 461
            return
        end local 1 // boolean strict
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lfreemarker/ext/beans/BeansWrapper;
            0    3     1  strict  Z
    MethodParameters:
        Name  Flags
      strict  

  public void setOuterIdentity(freemarker.template.ObjectWrapper);
    descriptor: (Lfreemarker/template/ObjectWrapper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.template.ObjectWrapper outerIdentity
         0: .line 473
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 474
            aload 0 /* this */
            aload 1 /* outerIdentity */
            putfield freemarker.ext.beans.BeansWrapper.outerIdentity:Lfreemarker/template/ObjectWrapper;
         2: .line 475
            return
        end local 1 // freemarker.template.ObjectWrapper outerIdentity
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lfreemarker/ext/beans/BeansWrapper;
            0    3     1  outerIdentity  Lfreemarker/template/ObjectWrapper;
    MethodParameters:
               Name  Flags
      outerIdentity  

  public freemarker.template.ObjectWrapper getOuterIdentity();
    descriptor: ()Lfreemarker/template/ObjectWrapper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 482
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.outerIdentity:Lfreemarker/template/ObjectWrapper;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public void setSimpleMapWrapper(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // boolean simpleMapWrapper
         0: .line 509
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 510
            aload 0 /* this */
            iload 1 /* simpleMapWrapper */
            putfield freemarker.ext.beans.BeansWrapper.simpleMapWrapper:Z
         2: .line 511
            return
        end local 1 // boolean simpleMapWrapper
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lfreemarker/ext/beans/BeansWrapper;
            0    3     1  simpleMapWrapper  Z
    MethodParameters:
                  Name  Flags
      simpleMapWrapper  

  public boolean isSimpleMapWrapper();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 520
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.simpleMapWrapper:Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public boolean getPreferIndexedReadMethod();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 529
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.preferIndexedReadMethod:Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public void setPreferIndexedReadMethod(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // boolean preferIndexedReadMethod
         0: .line 553
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 554
            aload 0 /* this */
            iload 1 /* preferIndexedReadMethod */
            putfield freemarker.ext.beans.BeansWrapper.preferIndexedReadMethod:Z
         2: .line 555
            return
        end local 1 // boolean preferIndexedReadMethod
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    3     0                     this  Lfreemarker/ext/beans/BeansWrapper;
            0    3     1  preferIndexedReadMethod  Z
    MethodParameters:
                         Name  Flags
      preferIndexedReadMethod  

  public void setExposureLevel(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // int exposureLevel
         0: .line 563
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 565
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getExposureLevel:()I
            iload 1 /* exposureLevel */
            if_icmpeq 5
         2: .line 566
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.createBuilder:()Lfreemarker/ext/beans/ClassIntrospectorBuilder;
            astore 2 /* builder */
        start local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         3: .line 567
            aload 2 /* builder */
            iload 1 /* exposureLevel */
            invokevirtual freemarker.ext.beans.ClassIntrospectorBuilder.setExposureLevel:(I)V
         4: .line 568
            aload 0 /* this */
            aload 2 /* builder */
            invokevirtual freemarker.ext.beans.BeansWrapper.replaceClassIntrospector:(Lfreemarker/ext/beans/ClassIntrospectorBuilder;)V
        end local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         5: .line 570
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int exposureLevel
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lfreemarker/ext/beans/BeansWrapper;
            0    6     1  exposureLevel  I
            3    5     2        builder  Lfreemarker/ext/beans/ClassIntrospectorBuilder;
    MethodParameters:
               Name  Flags
      exposureLevel  

  public int getExposureLevel();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 576
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getExposureLevel:()I
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public void setExposeFields(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // boolean exposeFields
         0: .line 590
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 592
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getExposeFields:()Z
            iload 1 /* exposeFields */
            if_icmpeq 5
         2: .line 593
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.createBuilder:()Lfreemarker/ext/beans/ClassIntrospectorBuilder;
            astore 2 /* builder */
        start local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         3: .line 594
            aload 2 /* builder */
            iload 1 /* exposeFields */
            invokevirtual freemarker.ext.beans.ClassIntrospectorBuilder.setExposeFields:(Z)V
         4: .line 595
            aload 0 /* this */
            aload 2 /* builder */
            invokevirtual freemarker.ext.beans.BeansWrapper.replaceClassIntrospector:(Lfreemarker/ext/beans/ClassIntrospectorBuilder;)V
        end local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         5: .line 597
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean exposeFields
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lfreemarker/ext/beans/BeansWrapper;
            0    6     1  exposeFields  Z
            3    5     2       builder  Lfreemarker/ext/beans/ClassIntrospectorBuilder;
    MethodParameters:
              Name  Flags
      exposeFields  

  public void setTreatDefaultMethodsAsBeanMembers(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // boolean treatDefaultMethodsAsBeanMembers
         0: .line 615
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 617
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getTreatDefaultMethodsAsBeanMembers:()Z
            iload 1 /* treatDefaultMethodsAsBeanMembers */
            if_icmpeq 5
         2: .line 618
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.createBuilder:()Lfreemarker/ext/beans/ClassIntrospectorBuilder;
            astore 2 /* builder */
        start local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         3: .line 619
            aload 2 /* builder */
            iload 1 /* treatDefaultMethodsAsBeanMembers */
            invokevirtual freemarker.ext.beans.ClassIntrospectorBuilder.setTreatDefaultMethodsAsBeanMembers:(Z)V
         4: .line 620
            aload 0 /* this */
            aload 2 /* builder */
            invokevirtual freemarker.ext.beans.BeansWrapper.replaceClassIntrospector:(Lfreemarker/ext/beans/ClassIntrospectorBuilder;)V
        end local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         5: .line 622
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean treatDefaultMethodsAsBeanMembers
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot                              Name  Signature
            0    6     0                              this  Lfreemarker/ext/beans/BeansWrapper;
            0    6     1  treatDefaultMethodsAsBeanMembers  Z
            3    5     2                           builder  Lfreemarker/ext/beans/ClassIntrospectorBuilder;
    MethodParameters:
                                  Name  Flags
      treatDefaultMethodsAsBeanMembers  

  public boolean isExposeFields();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 632
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getExposeFields:()Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public boolean getTreatDefaultMethodsAsBeanMembers();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 639
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getTreatDefaultMethodsAsBeanMembers:()Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public freemarker.ext.beans.MethodAppearanceFineTuner getMethodAppearanceFineTuner();
    descriptor: ()Lfreemarker/ext/beans/MethodAppearanceFineTuner;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 643
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getMethodAppearanceFineTuner:()Lfreemarker/ext/beans/MethodAppearanceFineTuner;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public void setMethodAppearanceFineTuner(freemarker.ext.beans.MethodAppearanceFineTuner);
    descriptor: (Lfreemarker/ext/beans/MethodAppearanceFineTuner;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.ext.beans.MethodAppearanceFineTuner methodAppearanceFineTuner
         0: .line 651
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 653
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getMethodAppearanceFineTuner:()Lfreemarker/ext/beans/MethodAppearanceFineTuner;
            aload 1 /* methodAppearanceFineTuner */
            if_acmpeq 5
         2: .line 654
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.createBuilder:()Lfreemarker/ext/beans/ClassIntrospectorBuilder;
            astore 2 /* builder */
        start local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         3: .line 655
            aload 2 /* builder */
            aload 1 /* methodAppearanceFineTuner */
            invokevirtual freemarker.ext.beans.ClassIntrospectorBuilder.setMethodAppearanceFineTuner:(Lfreemarker/ext/beans/MethodAppearanceFineTuner;)V
         4: .line 656
            aload 0 /* this */
            aload 2 /* builder */
            invokevirtual freemarker.ext.beans.BeansWrapper.replaceClassIntrospector:(Lfreemarker/ext/beans/ClassIntrospectorBuilder;)V
        end local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         5: .line 658
      StackMap locals:
      StackMap stack:
            return
        end local 1 // freemarker.ext.beans.MethodAppearanceFineTuner methodAppearanceFineTuner
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    6     0                       this  Lfreemarker/ext/beans/BeansWrapper;
            0    6     1  methodAppearanceFineTuner  Lfreemarker/ext/beans/MethodAppearanceFineTuner;
            3    5     2                    builder  Lfreemarker/ext/beans/ClassIntrospectorBuilder;
    MethodParameters:
                           Name  Flags
      methodAppearanceFineTuner  

  freemarker.ext.beans.MethodSorter getMethodSorter();
    descriptor: ()Lfreemarker/ext/beans/MethodSorter;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 661
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getMethodSorter:()Lfreemarker/ext/beans/MethodSorter;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  void setMethodSorter(freemarker.ext.beans.MethodSorter);
    descriptor: (Lfreemarker/ext/beans/MethodSorter;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.ext.beans.MethodSorter methodSorter
         0: .line 665
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 667
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getMethodSorter:()Lfreemarker/ext/beans/MethodSorter;
            aload 1 /* methodSorter */
            if_acmpeq 5
         2: .line 668
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.createBuilder:()Lfreemarker/ext/beans/ClassIntrospectorBuilder;
            astore 2 /* builder */
        start local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         3: .line 669
            aload 2 /* builder */
            aload 1 /* methodSorter */
            invokevirtual freemarker.ext.beans.ClassIntrospectorBuilder.setMethodSorter:(Lfreemarker/ext/beans/MethodSorter;)V
         4: .line 670
            aload 0 /* this */
            aload 2 /* builder */
            invokevirtual freemarker.ext.beans.BeansWrapper.replaceClassIntrospector:(Lfreemarker/ext/beans/ClassIntrospectorBuilder;)V
        end local 2 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         5: .line 672
      StackMap locals:
      StackMap stack:
            return
        end local 1 // freemarker.ext.beans.MethodSorter methodSorter
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lfreemarker/ext/beans/BeansWrapper;
            0    6     1  methodSorter  Lfreemarker/ext/beans/MethodSorter;
            3    5     2       builder  Lfreemarker/ext/beans/ClassIntrospectorBuilder;
    MethodParameters:
              Name  Flags
      methodSorter  

  public boolean isClassIntrospectionCacheRestricted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 685
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getHasSharedInstanceRestrictons:()Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  private void replaceClassIntrospector(freemarker.ext.beans.ClassIntrospectorBuilder);
    descriptor: (Lfreemarker/ext/beans/ClassIntrospectorBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.ext.beans.ClassIntrospectorBuilder builder
         0: .line 693
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 695
            new freemarker.ext.beans.ClassIntrospector
            dup
            aload 1 /* builder */
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.sharedIntrospectionLock:Ljava/lang/Object;
            invokespecial freemarker.ext.beans.ClassIntrospector.<init>:(Lfreemarker/ext/beans/ClassIntrospectorBuilder;Ljava/lang/Object;)V
            astore 2 /* newCI */
        start local 2 // freemarker.ext.beans.ClassIntrospector newCI
         2: .line 703
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.sharedIntrospectionLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         3: .line 704
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            astore 3 /* oldCI */
        start local 3 // freemarker.ext.beans.ClassIntrospector oldCI
         4: .line 705
            aload 3 /* oldCI */
            ifnull 18
         5: .line 708
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.staticModels:Lfreemarker/ext/beans/StaticModels;
            ifnull 8
         6: .line 709
            aload 3 /* oldCI */
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.staticModels:Lfreemarker/ext/beans/StaticModels;
            invokevirtual freemarker.ext.beans.ClassIntrospector.unregisterModelFactory:(Lfreemarker/ext/beans/ClassBasedModelFactory;)V
         7: .line 710
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.staticModels:Lfreemarker/ext/beans/StaticModels;
            invokevirtual freemarker.ext.beans.StaticModels.clearCache:()V
         8: .line 712
      StackMap locals: freemarker.ext.beans.ClassIntrospector freemarker.ext.beans.ClassIntrospector java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.enumModels:Lfreemarker/ext/beans/ClassBasedModelFactory;
            ifnull 11
         9: .line 713
            aload 3 /* oldCI */
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.enumModels:Lfreemarker/ext/beans/ClassBasedModelFactory;
            invokevirtual freemarker.ext.beans.ClassIntrospector.unregisterModelFactory:(Lfreemarker/ext/beans/ClassBasedModelFactory;)V
        10: .line 714
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.enumModels:Lfreemarker/ext/beans/ClassBasedModelFactory;
            invokevirtual freemarker.ext.beans.ClassBasedModelFactory.clearCache:()V
        11: .line 716
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
            ifnull 14
        12: .line 717
            aload 3 /* oldCI */
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
            invokevirtual freemarker.ext.beans.ClassIntrospector.unregisterModelFactory:(Lfreemarker/ext/util/ModelCache;)V
        13: .line 718
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
            invokevirtual freemarker.ext.util.ModelCache.clearCache:()V
        14: .line 720
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.trueModel:Lfreemarker/ext/beans/BooleanModel;
            ifnull 16
        15: .line 721
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.trueModel:Lfreemarker/ext/beans/BooleanModel;
            invokevirtual freemarker.ext.beans.BooleanModel.clearMemberCache:()V
        16: .line 723
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.falseModel:Lfreemarker/ext/beans/BooleanModel;
            ifnull 18
        17: .line 724
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.falseModel:Lfreemarker/ext/beans/BooleanModel;
            invokevirtual freemarker.ext.beans.BooleanModel.clearMemberCache:()V
        18: .line 728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* newCI */
            putfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
        19: .line 730
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.registerModelFactories:()V
        20: .line 703
            aload 4
            monitorexit
        21: goto 24
        end local 3 // freemarker.ext.beans.ClassIntrospector oldCI
      StackMap locals: freemarker.ext.beans.BeansWrapper freemarker.ext.beans.ClassIntrospectorBuilder freemarker.ext.beans.ClassIntrospector top java.lang.Object
      StackMap stack: java.lang.Throwable
        22: aload 4
            monitorexit
        23: athrow
        start local 3 // freemarker.ext.beans.ClassIntrospector oldCI
        24: .line 732
      StackMap locals: freemarker.ext.beans.BeansWrapper freemarker.ext.beans.ClassIntrospectorBuilder freemarker.ext.beans.ClassIntrospector freemarker.ext.beans.ClassIntrospector
      StackMap stack:
            return
        end local 3 // freemarker.ext.beans.ClassIntrospector oldCI
        end local 2 // freemarker.ext.beans.ClassIntrospector newCI
        end local 1 // freemarker.ext.beans.ClassIntrospectorBuilder builder
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Lfreemarker/ext/beans/BeansWrapper;
            0   25     1  builder  Lfreemarker/ext/beans/ClassIntrospectorBuilder;
            2   25     2    newCI  Lfreemarker/ext/beans/ClassIntrospector;
            4   22     3    oldCI  Lfreemarker/ext/beans/ClassIntrospector;
           24   25     3    oldCI  Lfreemarker/ext/beans/ClassIntrospector;
      Exception table:
        from    to  target  type
           3    21      22  any
          22    23      22  any
    MethodParameters:
         Name  Flags
      builder  

  private void registerModelFactories();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 735
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.staticModels:Lfreemarker/ext/beans/StaticModels;
            ifnull 2
         1: .line 736
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.staticModels:Lfreemarker/ext/beans/StaticModels;
            invokevirtual freemarker.ext.beans.ClassIntrospector.registerModelFactory:(Lfreemarker/ext/beans/ClassBasedModelFactory;)V
         2: .line 738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.enumModels:Lfreemarker/ext/beans/ClassBasedModelFactory;
            ifnull 4
         3: .line 739
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.enumModels:Lfreemarker/ext/beans/ClassBasedModelFactory;
            invokevirtual freemarker.ext.beans.ClassIntrospector.registerModelFactory:(Lfreemarker/ext/beans/ClassBasedModelFactory;)V
         4: .line 741
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
            ifnull 6
         5: .line 742
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
            invokevirtual freemarker.ext.beans.ClassIntrospector.registerModelFactory:(Lfreemarker/ext/util/ModelCache;)V
         6: .line 744
      StackMap locals:
      StackMap stack:
            return
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public void setMethodsShadowItems(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // boolean methodsShadowItems
         0: .line 759
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 760
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         2: .line 761
            aload 0 /* this */
            iload 1 /* methodsShadowItems */
            putfield freemarker.ext.beans.BeansWrapper.methodsShadowItems:Z
         3: .line 759
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: freemarker.ext.beans.BeansWrapper int freemarker.ext.beans.BeansWrapper
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 763
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean methodsShadowItems
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lfreemarker/ext/beans/BeansWrapper;
            0    8     1  methodsShadowItems  Z
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
                    Name  Flags
      methodsShadowItems  

  boolean isMethodsShadowItems();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 766
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.methodsShadowItems:Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public void setDefaultDateType(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // int defaultDateType
         0: .line 779
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 780
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         2: .line 782
            aload 0 /* this */
            iload 1 /* defaultDateType */
            putfield freemarker.ext.beans.BeansWrapper.defaultDateType:I
         3: .line 779
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: freemarker.ext.beans.BeansWrapper int freemarker.ext.beans.BeansWrapper
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 784
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int defaultDateType
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lfreemarker/ext/beans/BeansWrapper;
            0    8     1  defaultDateType  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
                 Name  Flags
      defaultDateType  

  public int getDefaultDateType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 792
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.defaultDateType:I
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public void setUseCache(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // boolean useCache
         0: .line 803
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 804
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
            iload 1 /* useCache */
            invokevirtual freemarker.ext.util.ModelCache.setUseCache:(Z)V
         2: .line 805
            return
        end local 1 // boolean useCache
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lfreemarker/ext/beans/BeansWrapper;
            0    3     1  useCache  Z
    MethodParameters:
          Name  Flags
      useCache  

  public boolean getUseCache();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 811
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
            invokevirtual freemarker.ext.util.ModelCache.getUseCache:()Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public void setNullModel(freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/template/TemplateModel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.template.TemplateModel nullModel
         0: .line 825
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.checkModifiable:()V
         1: .line 826
            aload 0 /* this */
            aload 1 /* nullModel */
            putfield freemarker.ext.beans.BeansWrapper.nullModel:Lfreemarker/template/TemplateModel;
         2: .line 827
            return
        end local 1 // freemarker.template.TemplateModel nullModel
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lfreemarker/ext/beans/BeansWrapper;
            0    3     1  nullModel  Lfreemarker/template/TemplateModel;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      nullModel  

  public freemarker.template.Version getIncompatibleImprovements();
    descriptor: ()Lfreemarker/template/Version;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 836
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.incompatibleImprovements:Lfreemarker/template/Version;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  boolean is2321Bugfixed();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 840
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.getIncompatibleImprovements:()Lfreemarker/template/Version;
            invokestatic freemarker.ext.beans.BeansWrapper.is2321Bugfixed:(Lfreemarker/template/Version;)Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  static boolean is2321Bugfixed(freemarker.template.Version);
    descriptor: (Lfreemarker/template/Version;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.template.Version version
         0: .line 844
            aload 0 /* version */
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_21:I
            if_icmplt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // freemarker.template.Version version
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  version  Lfreemarker/template/Version;
    MethodParameters:
         Name  Flags
      version  

  boolean is2324Bugfixed();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 848
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.getIncompatibleImprovements:()Lfreemarker/template/Version;
            invokestatic freemarker.ext.beans.BeansWrapper.is2324Bugfixed:(Lfreemarker/template/Version;)Z
            ireturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  static boolean is2324Bugfixed(freemarker.template.Version);
    descriptor: (Lfreemarker/template/Version;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.template.Version version
         0: .line 852
            aload 0 /* version */
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_24:I
            if_icmplt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // freemarker.template.Version version
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  version  Lfreemarker/template/Version;
    MethodParameters:
         Name  Flags
      version  

  protected static freemarker.template.Version normalizeIncompatibleImprovementsVersion(freemarker.template.Version);
    descriptor: (Lfreemarker/template/Version;)Lfreemarker/template/Version;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.template.Version incompatibleImprovements
         0: .line 860
            aload 0 /* incompatibleImprovements */
            invokestatic freemarker.template._TemplateAPI.checkVersionNotNullAndSupported:(Lfreemarker/template/Version;)V
         1: .line 861
            aload 0 /* incompatibleImprovements */
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_0:I
            if_icmpge 3
         2: .line 862
            new java.lang.IllegalArgumentException
            dup
            ldc "Version must be at least 2.3.0."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 864
      StackMap locals:
      StackMap stack:
            aload 0 /* incompatibleImprovements */
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_27:I
            if_icmplt 4
            getstatic freemarker.template.Configuration.VERSION_2_3_27:Lfreemarker/template/Version;
            goto 8
         4: .line 865
      StackMap locals:
      StackMap stack:
            aload 0 /* incompatibleImprovements */
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_26:I
            if_icmpne 5
            getstatic freemarker.template.Configuration.VERSION_2_3_26:Lfreemarker/template/Version;
            goto 8
         5: .line 866
      StackMap locals:
      StackMap stack:
            aload 0 /* incompatibleImprovements */
            invokestatic freemarker.ext.beans.BeansWrapper.is2324Bugfixed:(Lfreemarker/template/Version;)Z
            ifeq 6
            getstatic freemarker.template.Configuration.VERSION_2_3_24:Lfreemarker/template/Version;
            goto 8
         6: .line 867
      StackMap locals:
      StackMap stack:
            aload 0 /* incompatibleImprovements */
            invokestatic freemarker.ext.beans.BeansWrapper.is2321Bugfixed:(Lfreemarker/template/Version;)Z
            ifeq 7
            getstatic freemarker.template.Configuration.VERSION_2_3_21:Lfreemarker/template/Version;
            goto 8
         7: .line 868
      StackMap locals:
      StackMap stack:
            getstatic freemarker.template.Configuration.VERSION_2_3_0:Lfreemarker/template/Version;
         8: .line 864
      StackMap locals:
      StackMap stack: freemarker.template.Version
            areturn
        end local 0 // freemarker.template.Version incompatibleImprovements
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    9     0  incompatibleImprovements  Lfreemarker/template/Version;
    MethodParameters:
                          Name  Flags
      incompatibleImprovements  

  public static final freemarker.ext.beans.BeansWrapper getDefaultInstance();
    descriptor: ()Lfreemarker/ext/beans/BeansWrapper;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=1, locals=0, args_size=0
         0: .line 887
            getstatic freemarker.ext.beans.BeansWrapperSingletonHolder.INSTANCE:Lfreemarker/ext/beans/BeansWrapper;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public freemarker.template.TemplateModel wrap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lfreemarker/template/TemplateModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Object object
         0: .line 911
            aload 1 /* object */
            ifnonnull 1
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.nullModel:Lfreemarker/template/TemplateModel;
            areturn
         1: .line 912
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
            aload 1 /* object */
            invokevirtual freemarker.ext.util.ModelCache.getInstance:(Ljava/lang/Object;)Lfreemarker/template/TemplateModel;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lfreemarker/ext/beans/BeansWrapper;
            0    2     1  object  Ljava/lang/Object;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
        Name  Flags
      object  

  public freemarker.template.TemplateMethodModelEx wrap(java.lang.Object, java.lang.reflect.Method);
    descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Method;)Lfreemarker/template/TemplateMethodModelEx;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.reflect.Method method
         0: .line 930
            new freemarker.ext.beans.SimpleMethodModel
            dup
            aload 1 /* object */
            aload 2 /* method */
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            aload 0 /* this */
            invokespecial freemarker.ext.beans.SimpleMethodModel.<init>:(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Class;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Object object
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lfreemarker/ext/beans/BeansWrapper;
            0    1     1  object  Ljava/lang/Object;
            0    1     2  method  Ljava/lang/reflect/Method;
    MethodParameters:
        Name  Flags
      object  
      method  

  public freemarker.template.TemplateHashModel wrapAsAPI(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lfreemarker/template/TemplateHashModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Object obj
         0: .line 937
            new freemarker.ext.beans.APIModel
            dup
            aload 1 /* obj */
            aload 0 /* this */
            invokespecial freemarker.ext.beans.APIModel.<init>:(Ljava/lang/Object;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;
            0    1     1   obj  Ljava/lang/Object;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      obj   

  protected freemarker.template.TemplateModel getInstance(java.lang.Object, freemarker.ext.util.ModelFactory);
    descriptor: (Ljava/lang/Object;Lfreemarker/ext/util/ModelFactory;)Lfreemarker/template/TemplateModel;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Object object
        start local 2 // freemarker.ext.util.ModelFactory factory
         0: .line 949
            aload 2 /* factory */
            aload 1 /* object */
            aload 0 /* this */
            invokeinterface freemarker.ext.util.ModelFactory.create:(Ljava/lang/Object;Lfreemarker/template/ObjectWrapper;)Lfreemarker/template/TemplateModel;
            areturn
        end local 2 // freemarker.ext.util.ModelFactory factory
        end local 1 // java.lang.Object object
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lfreemarker/ext/beans/BeansWrapper;
            0    1     1   object  Ljava/lang/Object;
            0    1     2  factory  Lfreemarker/ext/util/ModelFactory;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      object   
      factory  

  protected freemarker.ext.util.ModelFactory getModelFactory(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Lfreemarker/ext/util/ModelFactory;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Class clazz
         0: .line 971
            ldc Ljava/util/Map;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 4
         1: .line 972
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.simpleMapWrapper:Z
            ifeq 2
            getstatic freemarker.ext.beans.SimpleMapModel.FACTORY:Lfreemarker/ext/util/ModelFactory;
            goto 3
      StackMap locals:
      StackMap stack:
         2: getstatic freemarker.ext.beans.MapModel.FACTORY:Lfreemarker/ext/util/ModelFactory;
      StackMap locals:
      StackMap stack: freemarker.ext.util.ModelFactory
         3: areturn
         4: .line 974
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Collection;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 6
         5: .line 975
            getstatic freemarker.ext.beans.CollectionModel.FACTORY:Lfreemarker/ext/util/ModelFactory;
            areturn
         6: .line 977
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Number;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 8
         7: .line 978
            getstatic freemarker.ext.beans.NumberModel.FACTORY:Lfreemarker/ext/util/ModelFactory;
            areturn
         8: .line 980
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Date;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 10
         9: .line 981
            getstatic freemarker.ext.beans.DateModel.FACTORY:Lfreemarker/ext/util/ModelFactory;
            areturn
        10: .line 983
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Boolean;
            aload 1 /* clazz */
            if_acmpne 12
        11: .line 984
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.BOOLEAN_FACTORY:Lfreemarker/ext/util/ModelFactory;
            areturn
        12: .line 986
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/ResourceBundle;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 14
        13: .line 987
            getstatic freemarker.ext.beans.ResourceBundleModel.FACTORY:Lfreemarker/ext/util/ModelFactory;
            areturn
        14: .line 989
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Iterator;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 16
        15: .line 990
            getstatic freemarker.ext.beans.BeansWrapper.ITERATOR_FACTORY:Lfreemarker/ext/util/ModelFactory;
            areturn
        16: .line 992
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Enumeration;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 18
        17: .line 993
            getstatic freemarker.ext.beans.BeansWrapper.ENUMERATION_FACTORY:Lfreemarker/ext/util/ModelFactory;
            areturn
        18: .line 995
      StackMap locals:
      StackMap stack:
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 20
        19: .line 996
            getstatic freemarker.ext.beans.ArrayModel.FACTORY:Lfreemarker/ext/util/ModelFactory;
            areturn
        20: .line 998
      StackMap locals:
      StackMap stack:
            getstatic freemarker.ext.beans.StringModel.FACTORY:Lfreemarker/ext/util/ModelFactory;
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   21     0   this  Lfreemarker/ext/beans/BeansWrapper;
            0   21     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Lfreemarker/ext/util/ModelFactory;
    MethodParameters:
       Name  Flags
      clazz  

  public java.lang.Object unwrap(freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/template/TemplateModel;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.template.TemplateModel model
         0: .line 1015
            aload 0 /* this */
            aload 1 /* model */
            ldc Ljava/lang/Object;
            invokevirtual freemarker.ext.beans.BeansWrapper.unwrap:(Lfreemarker/template/TemplateModel;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 1 // freemarker.template.TemplateModel model
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lfreemarker/ext/beans/BeansWrapper;
            0    1     1  model  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
       Name  Flags
      model  

  public  unwrap(freemarker.template.TemplateModel, java.lang.Class<?>);
    descriptor: (Lfreemarker/template/TemplateModel;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.template.TemplateModel model
        start local 2 // java.lang.Class targetClass
         0: .line 1033
            aload 0 /* this */
            aload 1 /* model */
            aload 2 /* targetClass */
            invokevirtual freemarker.ext.beans.BeansWrapper.tryUnwrapTo:(Lfreemarker/template/TemplateModel;Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         1: .line 1034
            aload 3 /* obj */
            getstatic freemarker.template.ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS:Ljava/lang/Object;
            if_acmpne 5
         2: .line 1035
            new freemarker.template.TemplateModelException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Can not unwrap model of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 1036
            aload 1 /* model */
            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;
            ldc " to type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* targetClass */
            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;
         4: .line 1035
            invokespecial freemarker.template.TemplateModelException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1038
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* obj */
            areturn
        end local 3 // java.lang.Object obj
        end local 2 // java.lang.Class targetClass
        end local 1 // freemarker.template.TemplateModel model
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lfreemarker/ext/beans/BeansWrapper;
            0    6     1        model  Lfreemarker/template/TemplateModel;
            0    6     2  targetClass  Ljava/lang/Class<*>;
            1    6     3          obj  Ljava/lang/Object;
    Exceptions:
      throws freemarker.template.TemplateModelException
    Signature: (Lfreemarker/template/TemplateModel;Ljava/lang/Class<*>;)Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      model        
      targetClass  

  public  tryUnwrapTo(freemarker.template.TemplateModel, java.lang.Class<?>);
    descriptor: (Lfreemarker/template/TemplateModel;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.template.TemplateModel model
        start local 2 // java.lang.Class targetClass
         0: .line 1045
            aload 0 /* this */
            aload 1 /* model */
            aload 2 /* targetClass */
            iconst_0
            invokevirtual freemarker.ext.beans.BeansWrapper.tryUnwrapTo:(Lfreemarker/template/TemplateModel;Ljava/lang/Class;I)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class targetClass
        end local 1 // freemarker.template.TemplateModel model
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lfreemarker/ext/beans/BeansWrapper;
            0    1     1        model  Lfreemarker/template/TemplateModel;
            0    1     2  targetClass  Ljava/lang/Class<*>;
    Exceptions:
      throws freemarker.template.TemplateModelException
    Signature: (Lfreemarker/template/TemplateModel;Ljava/lang/Class<*>;)Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      model        
      targetClass  

   tryUnwrapTo(freemarker.template.TemplateModel, java.lang.Class<?>, int);
    descriptor: (Lfreemarker/template/TemplateModel;Ljava/lang/Class;I)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.template.TemplateModel model
        start local 2 // java.lang.Class targetClass
        start local 3 // int typeFlags
         0: .line 1057
            aload 0 /* this */
            aload 1 /* model */
            aload 2 /* targetClass */
            iload 3 /* typeFlags */
            aconst_null
            invokevirtual freemarker.ext.beans.BeansWrapper.tryUnwrapTo:(Lfreemarker/template/TemplateModel;Ljava/lang/Class;ILjava/util/Map;)Ljava/lang/Object;
            astore 4 /* res */
        start local 4 // java.lang.Object res
         1: .line 1058
            iload 3 /* typeFlags */
            iconst_1
            iand
            ifeq 4
         2: .line 1059
            aload 4 /* res */
            instanceof java.lang.Number
            ifeq 4
         3: .line 1060
            aload 4 /* res */
            checkcast java.lang.Number
            iload 3 /* typeFlags */
            invokestatic freemarker.ext.beans.OverloadedNumberUtil.addFallbackType:(Ljava/lang/Number;I)Ljava/lang/Number;
            areturn
         4: .line 1062
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* res */
            areturn
        end local 4 // java.lang.Object res
        end local 3 // int typeFlags
        end local 2 // java.lang.Class targetClass
        end local 1 // freemarker.template.TemplateModel model
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lfreemarker/ext/beans/BeansWrapper;
            0    5     1        model  Lfreemarker/template/TemplateModel;
            0    5     2  targetClass  Ljava/lang/Class<*>;
            0    5     3    typeFlags  I
            1    5     4          res  Ljava/lang/Object;
    Exceptions:
      throws freemarker.template.TemplateModelException
    Signature: (Lfreemarker/template/TemplateModel;Ljava/lang/Class<*>;I)Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      model        
      targetClass  
      typeFlags    

  private  tryUnwrapTo(freemarker.template.TemplateModel, java.lang.Class<?>, int, java.util.Map<java.lang.Object, java.lang.Object>);
    descriptor: (Lfreemarker/template/TemplateModel;Ljava/lang/Class;ILjava/util/Map;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.template.TemplateModel model
        start local 2 // java.lang.Class targetClass
        start local 3 // int typeFlags
        start local 4 // java.util.Map recursionStops
         0: .line 1072
            aload 1 /* model */
            ifnull 1
            aload 1 /* model */
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.nullModel:Lfreemarker/template/TemplateModel;
            if_acmpne 2
         1: .line 1073
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 1076
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.is2321Bugfixed:()Z
            istore 5 /* is2321Bugfixed */
        start local 5 // boolean is2321Bugfixed
         3: .line 1078
            iload 5 /* is2321Bugfixed */
            ifeq 5
            aload 2 /* targetClass */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 5
         4: .line 1079
            aload 2 /* targetClass */
            invokestatic freemarker.template.utility.ClassUtil.primitiveClassToBoxingClass:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 2 /* targetClass */
         5: .line 1086
      StackMap locals: int
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.AdapterTemplateModel
            ifeq 14
         6: .line 1087
            aload 1 /* model */
            checkcast freemarker.template.AdapterTemplateModel
         7: .line 1088
            aload 2 /* targetClass */
         8: .line 1087
            invokeinterface freemarker.template.AdapterTemplateModel.getAdaptedObject:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 6 /* wrapped */
        start local 6 // java.lang.Object wrapped
         9: .line 1089
            aload 2 /* targetClass */
            ldc Ljava/lang/Object;
            if_acmpeq 10
            aload 2 /* targetClass */
            aload 6 /* wrapped */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 1090
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 6 /* wrapped */
            areturn
        11: .line 1094
      StackMap locals:
      StackMap stack:
            aload 2 /* targetClass */
            ldc Ljava/lang/Object;
            if_acmpeq 14
            aload 6 /* wrapped */
            instanceof java.lang.Number
            ifeq 14
            aload 2 /* targetClass */
            invokestatic freemarker.template.utility.ClassUtil.isNumerical:(Ljava/lang/Class;)Z
            ifeq 14
        12: .line 1095
            aload 6 /* wrapped */
            checkcast java.lang.Number
            aload 2 /* targetClass */
            iload 5 /* is2321Bugfixed */
            invokestatic freemarker.ext.beans.BeansWrapper.forceUnwrappedNumberToType:(Ljava/lang/Number;Ljava/lang/Class;Z)Ljava/lang/Number;
            astore 7 /* number */
        start local 7 // java.lang.Number number
        13: .line 1096
            aload 7 /* number */
            ifnull 14
            aload 7 /* number */
            areturn
        end local 7 // java.lang.Number number
        end local 6 // java.lang.Object wrapped
        14: .line 1100
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.ext.util.WrapperTemplateModel
            ifeq 22
        15: .line 1101
            aload 1 /* model */
            checkcast freemarker.ext.util.WrapperTemplateModel
            invokeinterface freemarker.ext.util.WrapperTemplateModel.getWrappedObject:()Ljava/lang/Object;
            astore 6 /* wrapped */
        start local 6 // java.lang.Object wrapped
        16: .line 1102
            aload 2 /* targetClass */
            ldc Ljava/lang/Object;
            if_acmpeq 17
            aload 2 /* targetClass */
            aload 6 /* wrapped */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 1103
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 6 /* wrapped */
            areturn
        18: .line 1107
      StackMap locals:
      StackMap stack:
            aload 2 /* targetClass */
            ldc Ljava/lang/Object;
            if_acmpeq 22
            aload 6 /* wrapped */
            instanceof java.lang.Number
            ifeq 22
            aload 2 /* targetClass */
            invokestatic freemarker.template.utility.ClassUtil.isNumerical:(Ljava/lang/Class;)Z
            ifeq 22
        19: .line 1108
            aload 6 /* wrapped */
            checkcast java.lang.Number
            aload 2 /* targetClass */
            iload 5 /* is2321Bugfixed */
            invokestatic freemarker.ext.beans.BeansWrapper.forceUnwrappedNumberToType:(Ljava/lang/Number;Ljava/lang/Class;Z)Ljava/lang/Number;
            astore 7 /* number */
        start local 7 // java.lang.Number number
        20: .line 1109
            aload 7 /* number */
            ifnull 22
        21: .line 1110
            aload 7 /* number */
            areturn
        end local 7 // java.lang.Number number
        end local 6 // java.lang.Object wrapped
        22: .line 1119
      StackMap locals:
      StackMap stack:
            aload 2 /* targetClass */
            ldc Ljava/lang/Object;
            if_acmpeq 67
        23: .line 1122
            ldc Ljava/lang/String;
            aload 2 /* targetClass */
            if_acmpne 27
        24: .line 1123
            aload 1 /* model */
            instanceof freemarker.template.TemplateScalarModel
            ifeq 26
        25: .line 1124
            aload 1 /* model */
            checkcast freemarker.template.TemplateScalarModel
            invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
            areturn
        26: .line 1127
      StackMap locals:
      StackMap stack:
            getstatic freemarker.template.ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS:Ljava/lang/Object;
            areturn
        27: .line 1131
      StackMap locals:
      StackMap stack:
            aload 2 /* targetClass */
            invokestatic freemarker.template.utility.ClassUtil.isNumerical:(Ljava/lang/Class;)Z
            ifeq 33
        28: .line 1132
            aload 1 /* model */
            instanceof freemarker.template.TemplateNumberModel
            ifeq 33
        29: .line 1134
            aload 1 /* model */
            checkcast freemarker.template.TemplateNumberModel
            invokeinterface freemarker.template.TemplateNumberModel.getAsNumber:()Ljava/lang/Number;
            aload 2 /* targetClass */
            iload 5 /* is2321Bugfixed */
        30: .line 1133
            invokestatic freemarker.ext.beans.BeansWrapper.forceUnwrappedNumberToType:(Ljava/lang/Number;Ljava/lang/Class;Z)Ljava/lang/Number;
            astore 6 /* number */
        start local 6 // java.lang.Number number
        31: .line 1135
            aload 6 /* number */
            ifnull 33
        32: .line 1136
            aload 6 /* number */
            areturn
        end local 6 // java.lang.Number number
        33: .line 1141
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aload 2 /* targetClass */
            if_acmpeq 34
            ldc Ljava/lang/Boolean;
            aload 2 /* targetClass */
            if_acmpne 37
        34: .line 1142
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateBooleanModel
            ifeq 36
        35: .line 1143
            aload 1 /* model */
            checkcast freemarker.template.TemplateBooleanModel
            invokeinterface freemarker.template.TemplateBooleanModel.getAsBoolean:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        36: .line 1146
      StackMap locals:
      StackMap stack:
            getstatic freemarker.template.ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS:Ljava/lang/Object;
            areturn
        37: .line 1149
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Map;
            aload 2 /* targetClass */
            if_acmpne 40
        38: .line 1150
            aload 1 /* model */
            instanceof freemarker.template.TemplateHashModel
            ifeq 40
        39: .line 1151
            new freemarker.ext.beans.HashAdapter
            dup
            aload 1 /* model */
            checkcast freemarker.template.TemplateHashModel
            aload 0 /* this */
            invokespecial freemarker.ext.beans.HashAdapter.<init>:(Lfreemarker/template/TemplateHashModel;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
        40: .line 1155
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/List;
            aload 2 /* targetClass */
            if_acmpne 43
        41: .line 1156
            aload 1 /* model */
            instanceof freemarker.template.TemplateSequenceModel
            ifeq 43
        42: .line 1157
            new freemarker.ext.beans.SequenceAdapter
            dup
            aload 1 /* model */
            checkcast freemarker.template.TemplateSequenceModel
            aload 0 /* this */
            invokespecial freemarker.ext.beans.SequenceAdapter.<init>:(Lfreemarker/template/TemplateSequenceModel;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
        43: .line 1161
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Set;
            aload 2 /* targetClass */
            if_acmpne 46
        44: .line 1162
            aload 1 /* model */
            instanceof freemarker.template.TemplateCollectionModel
            ifeq 46
        45: .line 1163
            new freemarker.ext.beans.SetAdapter
            dup
            aload 1 /* model */
            checkcast freemarker.template.TemplateCollectionModel
            aload 0 /* this */
            invokespecial freemarker.ext.beans.SetAdapter.<init>:(Lfreemarker/template/TemplateCollectionModel;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
        46: .line 1167
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Collection;
            aload 2 /* targetClass */
            if_acmpeq 47
            ldc Ljava/lang/Iterable;
            aload 2 /* targetClass */
            if_acmpne 53
        47: .line 1168
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateCollectionModel
            ifeq 51
        48: .line 1169
            new freemarker.ext.beans.CollectionAdapter
            dup
            aload 1 /* model */
            checkcast freemarker.template.TemplateCollectionModel
        49: .line 1170
            aload 0 /* this */
        50: .line 1169
            invokespecial freemarker.ext.beans.CollectionAdapter.<init>:(Lfreemarker/template/TemplateCollectionModel;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
        51: .line 1172
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateSequenceModel
            ifeq 53
        52: .line 1173
            new freemarker.ext.beans.SequenceAdapter
            dup
            aload 1 /* model */
            checkcast freemarker.template.TemplateSequenceModel
            aload 0 /* this */
            invokespecial freemarker.ext.beans.SequenceAdapter.<init>:(Lfreemarker/template/TemplateSequenceModel;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
        53: .line 1178
      StackMap locals:
      StackMap stack:
            aload 2 /* targetClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 57
        54: .line 1179
            aload 1 /* model */
            instanceof freemarker.template.TemplateSequenceModel
            ifeq 56
        55: .line 1180
            aload 0 /* this */
            aload 1 /* model */
            checkcast freemarker.template.TemplateSequenceModel
            aload 2 /* targetClass */
            iconst_1
            aload 4 /* recursionStops */
            invokevirtual freemarker.ext.beans.BeansWrapper.unwrapSequenceToArray:(Lfreemarker/template/TemplateSequenceModel;Ljava/lang/Class;ZLjava/util/Map;)Ljava/lang/Object;
            areturn
        56: .line 1183
      StackMap locals:
      StackMap stack:
            getstatic freemarker.template.ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS:Ljava/lang/Object;
            areturn
        57: .line 1187
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            aload 2 /* targetClass */
            if_acmpeq 58
            aload 2 /* targetClass */
            ldc Ljava/lang/Character;
            if_acmpne 63
        58: .line 1188
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateScalarModel
            ifeq 62
        59: .line 1189
            aload 1 /* model */
            checkcast freemarker.template.TemplateScalarModel
            invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
            astore 6 /* s */
        start local 6 // java.lang.String s
        60: .line 1190
            aload 6 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 62
        61: .line 1191
            aload 6 /* s */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            areturn
        end local 6 // java.lang.String s
        62: .line 1195
      StackMap locals:
      StackMap stack:
            getstatic freemarker.template.ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS:Ljava/lang/Object;
            areturn
        63: .line 1198
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Date;
            aload 2 /* targetClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 67
            aload 1 /* model */
            instanceof freemarker.template.TemplateDateModel
            ifeq 67
        64: .line 1199
            aload 1 /* model */
            checkcast freemarker.template.TemplateDateModel
            invokeinterface freemarker.template.TemplateDateModel.getAsDate:()Ljava/util/Date;
            astore 6 /* date */
        start local 6 // java.util.Date date
        65: .line 1200
            aload 2 /* targetClass */
            aload 6 /* date */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 67
        66: .line 1201
            aload 6 /* date */
            areturn
        end local 6 // java.util.Date date
        67: .line 1210
      StackMap locals:
      StackMap stack:
            iload 3 /* typeFlags */
            istore 6 /* itf */
        start local 6 // int itf
        68: .line 1214
      StackMap locals: int
      StackMap stack:
            iload 6 /* itf */
            ifeq 69
            iload 6 /* itf */
            sipush 2048
            iand
            ifeq 73
        69: .line 1215
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateNumberModel
            ifeq 73
        70: .line 1216
            aload 1 /* model */
            checkcast freemarker.template.TemplateNumberModel
            invokeinterface freemarker.template.TemplateNumberModel.getAsNumber:()Ljava/lang/Number;
            astore 7 /* number */
        start local 7 // java.lang.Number number
        71: .line 1217
            iload 6 /* itf */
            ifne 72
            aload 2 /* targetClass */
            aload 7 /* number */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 73
        72: .line 1218
      StackMap locals: java.lang.Number
      StackMap stack:
            aload 7 /* number */
            areturn
        end local 7 // java.lang.Number number
        73: .line 1221
      StackMap locals:
      StackMap stack:
            iload 6 /* itf */
            ifeq 74
            iload 6 /* itf */
            sipush 4096
            iand
            ifeq 78
        74: .line 1222
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateDateModel
            ifeq 78
        75: .line 1223
            aload 1 /* model */
            checkcast freemarker.template.TemplateDateModel
            invokeinterface freemarker.template.TemplateDateModel.getAsDate:()Ljava/util/Date;
            astore 7 /* date */
        start local 7 // java.util.Date date
        76: .line 1224
            iload 6 /* itf */
            ifne 77
            aload 2 /* targetClass */
            aload 7 /* date */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 78
        77: .line 1225
      StackMap locals: java.util.Date
      StackMap stack:
            aload 7 /* date */
            areturn
        end local 7 // java.util.Date date
        78: .line 1228
      StackMap locals:
      StackMap stack:
            iload 6 /* itf */
            ifeq 79
            iload 6 /* itf */
            ldc 532480
            iand
            ifeq 90
        79: .line 1229
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateScalarModel
            ifeq 90
        80: .line 1230
            iload 6 /* itf */
            ifne 81
            aload 2 /* targetClass */
            ldc Ljava/lang/String;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 90
        81: .line 1231
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            checkcast freemarker.template.TemplateScalarModel
            invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
            astore 7 /* strVal */
        start local 7 // java.lang.String strVal
        82: .line 1232
            iload 6 /* itf */
            ifeq 83
            iload 6 /* itf */
            ldc 524288
            iand
            ifne 84
        83: .line 1233
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* strVal */
            areturn
        84: .line 1235
      StackMap locals:
      StackMap stack:
            aload 7 /* strVal */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 88
        85: .line 1236
            iload 6 /* itf */
            sipush 8192
            iand
            ifeq 87
        86: .line 1237
            new freemarker.ext.beans.CharacterOrString
            dup
            aload 7 /* strVal */
            invokespecial freemarker.ext.beans.CharacterOrString.<init>:(Ljava/lang/String;)V
            areturn
        87: .line 1239
      StackMap locals:
      StackMap stack:
            aload 7 /* strVal */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            areturn
        88: .line 1241
      StackMap locals:
      StackMap stack:
            iload 6 /* itf */
            sipush 8192
            iand
            ifeq 90
        89: .line 1242
            aload 7 /* strVal */
            areturn
        end local 7 // java.lang.String strVal
        90: .line 1248
      StackMap locals:
      StackMap stack:
            iload 6 /* itf */
            ifeq 91
            iload 6 /* itf */
            sipush 16384
            iand
            ifeq 94
        91: .line 1249
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateBooleanModel
            ifeq 94
        92: .line 1250
            iload 6 /* itf */
            ifne 93
            aload 2 /* targetClass */
            ldc Ljava/lang/Boolean;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 94
        93: .line 1251
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            checkcast freemarker.template.TemplateBooleanModel
            invokeinterface freemarker.template.TemplateBooleanModel.getAsBoolean:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        94: .line 1253
      StackMap locals:
      StackMap stack:
            iload 6 /* itf */
            ifeq 95
            iload 6 /* itf */
            ldc 32768
            iand
            ifeq 98
        95: .line 1254
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateHashModel
            ifeq 98
        96: .line 1255
            iload 6 /* itf */
            ifne 97
            aload 2 /* targetClass */
            ldc Lfreemarker/ext/beans/HashAdapter;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 98
        97: .line 1256
      StackMap locals:
      StackMap stack:
            new freemarker.ext.beans.HashAdapter
            dup
            aload 1 /* model */
            checkcast freemarker.template.TemplateHashModel
            aload 0 /* this */
            invokespecial freemarker.ext.beans.HashAdapter.<init>:(Lfreemarker/template/TemplateHashModel;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
        98: .line 1258
      StackMap locals:
      StackMap stack:
            iload 6 /* itf */
            ifeq 99
            iload 6 /* itf */
            ldc 65536
            iand
            ifeq 102
        99: .line 1259
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateSequenceModel
            ifeq 102
       100: .line 1260
            iload 6 /* itf */
            ifne 101
            aload 2 /* targetClass */
            ldc Lfreemarker/ext/beans/SequenceAdapter;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 102
       101: .line 1261
      StackMap locals:
      StackMap stack:
            new freemarker.ext.beans.SequenceAdapter
            dup
            aload 1 /* model */
            checkcast freemarker.template.TemplateSequenceModel
            aload 0 /* this */
            invokespecial freemarker.ext.beans.SequenceAdapter.<init>:(Lfreemarker/template/TemplateSequenceModel;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
       102: .line 1263
      StackMap locals:
      StackMap stack:
            iload 6 /* itf */
            ifeq 103
            iload 6 /* itf */
            ldc 131072
            iand
            ifeq 106
       103: .line 1264
      StackMap locals:
      StackMap stack:
            aload 1 /* model */
            instanceof freemarker.template.TemplateCollectionModel
            ifeq 106
       104: .line 1265
            iload 6 /* itf */
            ifne 105
            aload 2 /* targetClass */
            ldc Lfreemarker/ext/beans/SetAdapter;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 106
       105: .line 1266
      StackMap locals:
      StackMap stack:
            new freemarker.ext.beans.SetAdapter
            dup
            aload 1 /* model */
            checkcast freemarker.template.TemplateCollectionModel
            aload 0 /* this */
            invokespecial freemarker.ext.beans.SetAdapter.<init>:(Lfreemarker/template/TemplateCollectionModel;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
       106: .line 1272
      StackMap locals:
      StackMap stack:
            iload 6 /* itf */
            ldc 262144
            iand
            ifeq 109
       107: .line 1273
            aload 1 /* model */
            instanceof freemarker.template.TemplateSequenceModel
            ifeq 109
       108: .line 1274
            new freemarker.ext.beans.SequenceAdapter
            dup
            aload 1 /* model */
            checkcast freemarker.template.TemplateSequenceModel
            aload 0 /* this */
            invokespecial freemarker.ext.beans.SequenceAdapter.<init>:(Lfreemarker/template/TemplateSequenceModel;Lfreemarker/ext/beans/BeansWrapper;)V
            areturn
       109: .line 1277
      StackMap locals:
      StackMap stack:
            iload 6 /* itf */
            ifne 111
       110: .line 1278
            goto 113
       111: .line 1280
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* itf */
       112: .line 1281
            goto 68
       113: .line 1285
      StackMap locals:
      StackMap stack:
            aload 2 /* targetClass */
            aload 1 /* model */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 115
       114: .line 1286
            aload 1 /* model */
            areturn
       115: .line 1289
      StackMap locals:
      StackMap stack:
            getstatic freemarker.template.ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS:Ljava/lang/Object;
            areturn
        end local 6 // int itf
        end local 5 // boolean is2321Bugfixed
        end local 4 // java.util.Map recursionStops
        end local 3 // int typeFlags
        end local 2 // java.lang.Class targetClass
        end local 1 // freemarker.template.TemplateModel model
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0  116     0            this  Lfreemarker/ext/beans/BeansWrapper;
            0  116     1           model  Lfreemarker/template/TemplateModel;
            0  116     2     targetClass  Ljava/lang/Class<*>;
            0  116     3       typeFlags  I
            0  116     4  recursionStops  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            3  116     5  is2321Bugfixed  Z
            9   14     6         wrapped  Ljava/lang/Object;
           13   14     7          number  Ljava/lang/Number;
           16   22     6         wrapped  Ljava/lang/Object;
           20   22     7          number  Ljava/lang/Number;
           31   33     6          number  Ljava/lang/Number;
           60   62     6               s  Ljava/lang/String;
           65   67     6            date  Ljava/util/Date;
           68  116     6             itf  I
           71   73     7          number  Ljava/lang/Number;
           76   78     7            date  Ljava/util/Date;
           82   90     7          strVal  Ljava/lang/String;
    Exceptions:
      throws freemarker.template.TemplateModelException
    Signature: (Lfreemarker/template/TemplateModel;Ljava/lang/Class<*>;ILjava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;)Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      model           final
      targetClass     
      typeFlags       final
      recursionStops  final

   unwrapSequenceToArray(freemarker.template.TemplateSequenceModel, java.lang.Class<?>, boolean, java.util.Map<java.lang.Object, java.lang.Object>);
    descriptor: (Lfreemarker/template/TemplateSequenceModel;Ljava/lang/Class;ZLjava/util/Map;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=8, locals=13, args_size=5
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // freemarker.template.TemplateSequenceModel seq
        start local 2 // java.lang.Class arrayClass
        start local 3 // boolean tryOnly
        start local 4 // java.util.Map recursionStops
         0: .line 1301
            aload 4 /* recursionStops */
            ifnull 4
         1: .line 1302
            aload 4 /* recursionStops */
            aload 1 /* seq */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* retval */
        start local 5 // java.lang.Object retval
         2: .line 1303
            aload 5 /* retval */
            ifnull 5
         3: .line 1304
            aload 5 /* retval */
            areturn
        end local 5 // java.lang.Object retval
         4: .line 1307
      StackMap locals:
      StackMap stack:
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            astore 4 /* recursionStops */
         5: .line 1309
      StackMap locals:
      StackMap stack:
            aload 2 /* arrayClass */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 5 /* componentType */
        start local 5 // java.lang.Class componentType
         6: .line 1310
            aload 1 /* seq */
            invokeinterface freemarker.template.TemplateSequenceModel.size:()I
            istore 6 /* size */
        start local 6 // int size
         7: .line 1311
            aload 5 /* componentType */
            iload 6 /* size */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            astore 7 /* array */
        start local 7 // java.lang.Object array
         8: .line 1312
            aload 4 /* recursionStops */
            aload 1 /* seq */
            aload 7 /* array */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 1314
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        10: goto 26
        11: .line 1315
      StackMap locals: freemarker.ext.beans.BeansWrapper freemarker.template.TemplateSequenceModel java.lang.Class int java.util.Map java.lang.Class int java.lang.Object int
      StackMap stack:
            aload 1 /* seq */
            iload 8 /* i */
            invokeinterface freemarker.template.TemplateSequenceModel.get:(I)Lfreemarker/template/TemplateModel;
            astore 9 /* seqItem */
        start local 9 // freemarker.template.TemplateModel seqItem
        12: .line 1316
            aload 0 /* this */
            aload 9 /* seqItem */
            aload 5 /* componentType */
            iconst_0
            aload 4 /* recursionStops */
            invokevirtual freemarker.ext.beans.BeansWrapper.tryUnwrapTo:(Lfreemarker/template/TemplateModel;Ljava/lang/Class;ILjava/util/Map;)Ljava/lang/Object;
            astore 10 /* val */
        start local 10 // java.lang.Object val
        13: .line 1317
            aload 10 /* val */
            getstatic freemarker.template.ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS:Ljava/lang/Object;
            if_acmpne 24
        14: .line 1318
            iload 3 /* tryOnly */
            ifeq 18
        15: .line 1319
            getstatic freemarker.template.ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS:Ljava/lang/Object;
            astore 12
        16: .line 1332
            aload 4 /* recursionStops */
            aload 1 /* seq */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 1319
            aload 12
            areturn
        18: .line 1321
      StackMap locals: freemarker.template.TemplateModel java.lang.Object
      StackMap stack:
            new freemarker.core._TemplateModelException
            dup
            bipush 8
            anewarray java.lang.Object
            dup
            iconst_0
        19: .line 1322
            ldc "Failed to convert "
            aastore
            dup
            iconst_1
            new freemarker.core._DelayedFTLTypeDescription
            dup
            aload 1 /* seq */
            invokespecial freemarker.core._DelayedFTLTypeDescription.<init>:(Lfreemarker/template/TemplateModel;)V
            aastore
            dup
            iconst_2
        20: .line 1323
            ldc " object to "
            aastore
            dup
            iconst_3
            new freemarker.core._DelayedShortClassName
            dup
            aload 7 /* array */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokespecial freemarker.core._DelayedShortClassName.<init>:(Ljava/lang/Class;)V
            aastore
            dup
            iconst_4
        21: .line 1324
            ldc ": Problematic sequence item at index "
            aastore
            dup
            iconst_5
            iload 8 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 6
            ldc " with value type: "
            aastore
            dup
            bipush 7
        22: .line 1325
            new freemarker.core._DelayedFTLTypeDescription
            dup
            aload 9 /* seqItem */
            invokespecial freemarker.core._DelayedFTLTypeDescription.<init>:(Lfreemarker/template/TemplateModel;)V
        23: .line 1321
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:([Ljava/lang/Object;)V
            athrow
        24: .line 1329
      StackMap locals:
      StackMap stack:
            aload 7 /* array */
            iload 8 /* i */
            aload 10 /* val */
            invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
        end local 10 // java.lang.Object val
        end local 9 // freemarker.template.TemplateModel seqItem
        25: .line 1314
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 8 /* i */
            iload 6 /* size */
            if_icmplt 11
        end local 8 // int i
        27: .line 1331
            goto 31
      StackMap locals: freemarker.ext.beans.BeansWrapper freemarker.template.TemplateSequenceModel java.lang.Class int java.util.Map java.lang.Class int java.lang.Object
      StackMap stack: java.lang.Throwable
        28: astore 11
        29: .line 1332
            aload 4 /* recursionStops */
            aload 1 /* seq */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 1333
            aload 11
            athrow
        31: .line 1332
      StackMap locals:
      StackMap stack:
            aload 4 /* recursionStops */
            aload 1 /* seq */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        32: .line 1334
            aload 7 /* array */
            areturn
        end local 7 // java.lang.Object array
        end local 6 // int size
        end local 5 // java.lang.Class componentType
        end local 4 // java.util.Map recursionStops
        end local 3 // boolean tryOnly
        end local 2 // java.lang.Class arrayClass
        end local 1 // freemarker.template.TemplateSequenceModel seq
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   33     0            this  Lfreemarker/ext/beans/BeansWrapper;
            0   33     1             seq  Lfreemarker/template/TemplateSequenceModel;
            0   33     2      arrayClass  Ljava/lang/Class<*>;
            0   33     3         tryOnly  Z
            0   33     4  recursionStops  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            2    4     5          retval  Ljava/lang/Object;
            6   33     5   componentType  Ljava/lang/Class<*>;
            7   33     6            size  I
            8   33     7           array  Ljava/lang/Object;
           10   27     8               i  I
           12   25     9         seqItem  Lfreemarker/template/TemplateModel;
           13   25    10             val  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           9    16      28  any
          18    28      28  any
    Exceptions:
      throws freemarker.template.TemplateModelException
    Signature: (Lfreemarker/template/TemplateSequenceModel;Ljava/lang/Class<*>;ZLjava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;)Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      seq             
      arrayClass      
      tryOnly         
      recursionStops  

   listToArray(java.util.List<?>, java.lang.Class<?>, java.util.Map<java.lang.Object, java.lang.Object>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;Ljava/util/Map;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=5, locals=14, args_size=4
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.util.List list
        start local 2 // java.lang.Class arrayClass
        start local 3 // java.util.Map recursionStops
         0: .line 1339
            aload 1 /* list */
            instanceof freemarker.ext.beans.SequenceAdapter
            ifeq 6
         1: .line 1340
            aload 0 /* this */
         2: .line 1341
            aload 1 /* list */
            checkcast freemarker.ext.beans.SequenceAdapter
            invokevirtual freemarker.ext.beans.SequenceAdapter.getTemplateSequenceModel:()Lfreemarker/template/TemplateSequenceModel;
         3: .line 1342
            aload 2 /* arrayClass */
            iconst_0
         4: .line 1343
            aload 3 /* recursionStops */
         5: .line 1340
            invokevirtual freemarker.ext.beans.BeansWrapper.unwrapSequenceToArray:(Lfreemarker/template/TemplateSequenceModel;Ljava/lang/Class;ZLjava/util/Map;)Ljava/lang/Object;
            areturn
         6: .line 1346
      StackMap locals:
      StackMap stack:
            aload 3 /* recursionStops */
            ifnull 10
         7: .line 1347
            aload 3 /* recursionStops */
            aload 1 /* list */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* retval */
        start local 4 // java.lang.Object retval
         8: .line 1348
            aload 4 /* retval */
            ifnull 11
         9: .line 1349
            aload 4 /* retval */
            areturn
        end local 4 // java.lang.Object retval
        10: .line 1352
      StackMap locals:
      StackMap stack:
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            astore 3 /* recursionStops */
        11: .line 1354
      StackMap locals:
      StackMap stack:
            aload 2 /* arrayClass */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 4 /* componentType */
        start local 4 // java.lang.Class componentType
        12: .line 1355
            aload 4 /* componentType */
            aload 1 /* list */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            astore 5 /* array */
        start local 5 // java.lang.Object array
        13: .line 1356
            aload 3 /* recursionStops */
            aload 1 /* list */
            aload 5 /* array */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 1358
            iconst_0
            istore 6 /* isComponentTypeExamined */
        start local 6 // boolean isComponentTypeExamined
        15: .line 1359
            iconst_0
            istore 7 /* isComponentTypeNumerical */
        start local 7 // boolean isComponentTypeNumerical
        16: .line 1360
            iconst_0
            istore 8 /* isComponentTypeList */
        start local 8 // boolean isComponentTypeList
        17: .line 1361
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        18: .line 1362
            aload 1 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10 /* it */
        start local 10 // java.util.Iterator it
        19: goto 59
        20: .line 1363
      StackMap locals: freemarker.ext.beans.BeansWrapper java.util.List java.lang.Class java.util.Map java.lang.Class java.lang.Object int int int int java.util.Iterator
      StackMap stack:
            aload 10 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 11 /* listItem */
        start local 11 // java.lang.Object listItem
        21: .line 1364
            aload 11 /* listItem */
            ifnull 47
            aload 4 /* componentType */
            aload 11 /* listItem */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 47
        22: .line 1366
            iload 6 /* isComponentTypeExamined */
            ifne 26
        23: .line 1367
            aload 4 /* componentType */
            invokestatic freemarker.template.utility.ClassUtil.isNumerical:(Ljava/lang/Class;)Z
            istore 7 /* isComponentTypeNumerical */
        24: .line 1368
            ldc Ljava/util/List;
            aload 4 /* componentType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            istore 8 /* isComponentTypeList */
        25: .line 1369
            iconst_1
            istore 6 /* isComponentTypeExamined */
        26: .line 1371
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 7 /* isComponentTypeNumerical */
            ifeq 29
            aload 11 /* listItem */
            instanceof java.lang.Number
            ifeq 29
        27: .line 1372
            aload 11 /* listItem */
            checkcast java.lang.Number
            aload 4 /* componentType */
            iconst_1
            invokestatic freemarker.ext.beans.BeansWrapper.forceUnwrappedNumberToType:(Ljava/lang/Number;Ljava/lang/Class;Z)Ljava/lang/Number;
            astore 11 /* listItem */
        28: .line 1373
            goto 47
      StackMap locals:
      StackMap stack:
        29: aload 4 /* componentType */
            ldc Ljava/lang/String;
            if_acmpne 32
            aload 11 /* listItem */
            instanceof java.lang.Character
            ifeq 32
        30: .line 1374
            aload 11 /* listItem */
            checkcast java.lang.Character
            invokevirtual java.lang.Character.charValue:()C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            astore 11 /* listItem */
        31: .line 1375
            goto 47
      StackMap locals:
      StackMap stack:
        32: aload 4 /* componentType */
            ldc Ljava/lang/Character;
            if_acmpeq 33
            aload 4 /* componentType */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 38
        33: .line 1376
      StackMap locals:
      StackMap stack:
            aload 11 /* listItem */
            instanceof java.lang.String
            ifeq 38
        34: .line 1377
            aload 11 /* listItem */
            checkcast java.lang.String
            astore 12 /* listItemStr */
        start local 12 // java.lang.String listItemStr
        35: .line 1378
            aload 12 /* listItemStr */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 47
        36: .line 1379
            aload 12 /* listItemStr */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            astore 11 /* listItem */
        end local 12 // java.lang.String listItemStr
        37: .line 1381
            goto 47
      StackMap locals:
      StackMap stack:
        38: aload 4 /* componentType */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 45
        39: .line 1382
            aload 11 /* listItem */
            instanceof java.util.List
            ifeq 42
        40: .line 1383
            aload 0 /* this */
            aload 11 /* listItem */
            checkcast java.util.List
            aload 4 /* componentType */
            aload 3 /* recursionStops */
            invokevirtual freemarker.ext.beans.BeansWrapper.listToArray:(Ljava/util/List;Ljava/lang/Class;Ljava/util/Map;)Ljava/lang/Object;
            astore 11 /* listItem */
        41: .line 1384
            goto 47
      StackMap locals:
      StackMap stack:
        42: aload 11 /* listItem */
            instanceof freemarker.template.TemplateSequenceModel
            ifeq 47
        43: .line 1385
            aload 0 /* this */
            aload 11 /* listItem */
            checkcast freemarker.template.TemplateSequenceModel
            aload 4 /* componentType */
            iconst_0
            aload 3 /* recursionStops */
            invokevirtual freemarker.ext.beans.BeansWrapper.unwrapSequenceToArray:(Lfreemarker/template/TemplateSequenceModel;Ljava/lang/Class;ZLjava/util/Map;)Ljava/lang/Object;
            astore 11 /* listItem */
        44: .line 1387
            goto 47
      StackMap locals:
      StackMap stack:
        45: iload 8 /* isComponentTypeList */
            ifeq 47
            aload 11 /* listItem */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 47
        46: .line 1388
            aload 0 /* this */
            aload 11 /* listItem */
            invokevirtual freemarker.ext.beans.BeansWrapper.arrayToList:(Ljava/lang/Object;)Ljava/util/List;
            astore 11 /* listItem */
        47: .line 1392
      StackMap locals:
      StackMap stack:
            aload 5 /* array */
            iload 9 /* i */
            aload 11 /* listItem */
            invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
        48: .line 1393
            goto 58
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        49: astore 12 /* e */
        start local 12 // java.lang.IllegalArgumentException e
        50: .line 1394
            new freemarker.template.TemplateModelException
            dup
        51: .line 1395
            new java.lang.StringBuilder
            dup
            ldc "Failed to convert "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* list */
            invokestatic freemarker.template.utility.ClassUtil.getShortClassNameOfObject:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        52: .line 1396
            ldc " object to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* array */
            invokestatic freemarker.template.utility.ClassUtil.getShortClassNameOfObject:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        53: .line 1397
            ldc ": Problematic List item at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " with value type: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        54: .line 1398
            aload 11 /* listItem */
            invokestatic freemarker.template.utility.ClassUtil.getShortClassNameOfObject:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        55: .line 1395
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        56: .line 1398
            aload 12 /* e */
        57: .line 1394
            invokespecial freemarker.template.TemplateModelException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 12 // java.lang.IllegalArgumentException e
        58: .line 1400
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
        end local 11 // java.lang.Object listItem
        59: .line 1362
      StackMap locals:
      StackMap stack:
            aload 10 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        end local 10 // java.util.Iterator it
        end local 9 // int i
        end local 8 // boolean isComponentTypeList
        end local 7 // boolean isComponentTypeNumerical
        end local 6 // boolean isComponentTypeExamined
        60: .line 1402
            goto 64
      StackMap locals: freemarker.ext.beans.BeansWrapper java.util.List java.lang.Class java.util.Map java.lang.Class java.lang.Object
      StackMap stack: java.lang.Throwable
        61: astore 13
        62: .line 1403
            aload 3 /* recursionStops */
            aload 1 /* list */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        63: .line 1404
            aload 13
            athrow
        64: .line 1403
      StackMap locals:
      StackMap stack:
            aload 3 /* recursionStops */
            aload 1 /* list */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        65: .line 1405
            aload 5 /* array */
            areturn
        end local 5 // java.lang.Object array
        end local 4 // java.lang.Class componentType
        end local 3 // java.util.Map recursionStops
        end local 2 // java.lang.Class arrayClass
        end local 1 // java.util.List list
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   66     0                      this  Lfreemarker/ext/beans/BeansWrapper;
            0   66     1                      list  Ljava/util/List<*>;
            0   66     2                arrayClass  Ljava/lang/Class<*>;
            0   66     3            recursionStops  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            8   10     4                    retval  Ljava/lang/Object;
           12   66     4             componentType  Ljava/lang/Class<*>;
           13   66     5                     array  Ljava/lang/Object;
           15   60     6   isComponentTypeExamined  Z
           16   60     7  isComponentTypeNumerical  Z
           17   60     8       isComponentTypeList  Z
           18   60     9                         i  I
           19   60    10                        it  Ljava/util/Iterator<*>;
           21   59    11                  listItem  Ljava/lang/Object;
           35   37    12               listItemStr  Ljava/lang/String;
           50   58    12                         e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          47    48      49  Class java.lang.IllegalArgumentException
          14    61      61  any
    Exceptions:
      throws freemarker.template.TemplateModelException
    Signature: (Ljava/util/List<*>;Ljava/lang/Class<*>;Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;)Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      list            
      arrayClass      
      recursionStops  

  java.util.List<?> arrayToList();
    descriptor: (Ljava/lang/Object;)Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Object array
         0: .line 1412
            aload 1 /* array */
            instanceof java.lang.Object[]
            ifeq 5
         1: .line 1415
            aload 1 /* array */
            checkcast java.lang.Object[]
            astore 2 /* objArray */
        start local 2 // java.lang.Object[] objArray
         2: .line 1416
            aload 2 /* objArray */
            arraylength
            ifne 3
            getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
            goto 4
      StackMap locals: java.lang.Object[]
      StackMap stack:
         3: new freemarker.ext.beans.NonPrimitiveArrayBackedReadOnlyList
            dup
            aload 2 /* objArray */
            invokespecial freemarker.ext.beans.NonPrimitiveArrayBackedReadOnlyList.<init>:([Ljava/lang/Object;)V
      StackMap locals:
      StackMap stack: java.util.List
         4: areturn
        end local 2 // java.lang.Object[] objArray
         5: .line 1419
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            ifne 6
            getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
            goto 7
      StackMap locals:
      StackMap stack:
         6: new freemarker.ext.beans.PrimtiveArrayBackedReadOnlyList
            dup
            aload 1 /* array */
            invokespecial freemarker.ext.beans.PrimtiveArrayBackedReadOnlyList.<init>:(Ljava/lang/Object;)V
      StackMap locals:
      StackMap stack: java.util.List
         7: areturn
        end local 1 // java.lang.Object array
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lfreemarker/ext/beans/BeansWrapper;
            0    8     1     array  Ljava/lang/Object;
            2    5     2  objArray  [Ljava/lang/Object;
    Exceptions:
      throws freemarker.template.TemplateModelException
    Signature: (Ljava/lang/Object;)Ljava/util/List<*>;
    MethodParameters:
       Name  Flags
      array  

  static java.lang.Number forceUnwrappedNumberToType(java.lang.Number, java.lang.Class<?>, boolean);
    descriptor: (Ljava/lang/Number;Ljava/lang/Class;Z)Ljava/lang/Number;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.Number n
        start local 1 // java.lang.Class targetType
        start local 2 // boolean bugfixed
         0: .line 1430
            aload 1 /* targetType */
            aload 0 /* n */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpne 2
         1: .line 1431
            aload 0 /* n */
            areturn
         2: .line 1432
      StackMap locals:
      StackMap stack:
            aload 1 /* targetType */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 3
            aload 1 /* targetType */
            ldc Ljava/lang/Integer;
            if_acmpne 6
         3: .line 1433
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof java.lang.Integer
            ifeq 4
            aload 0 /* n */
            checkcast java.lang.Integer
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 0 /* n */
            invokevirtual java.lang.Number.intValue:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
      StackMap locals:
      StackMap stack: java.lang.Integer
         5: areturn
         6: .line 1434
      StackMap locals:
      StackMap stack:
            aload 1 /* targetType */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpeq 7
            aload 1 /* targetType */
            ldc Ljava/lang/Long;
            if_acmpne 10
         7: .line 1435
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof java.lang.Long
            ifeq 8
            aload 0 /* n */
            checkcast java.lang.Long
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 0 /* n */
            invokevirtual java.lang.Number.longValue:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
      StackMap locals:
      StackMap stack: java.lang.Long
         9: areturn
        10: .line 1436
      StackMap locals:
      StackMap stack:
            aload 1 /* targetType */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpeq 11
            aload 1 /* targetType */
            ldc Ljava/lang/Double;
            if_acmpne 14
        11: .line 1437
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof java.lang.Double
            ifeq 12
            aload 0 /* n */
            checkcast java.lang.Double
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 0 /* n */
            invokevirtual java.lang.Number.doubleValue:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
      StackMap locals:
      StackMap stack: java.lang.Double
        13: areturn
        14: .line 1438
      StackMap locals:
      StackMap stack:
            aload 1 /* targetType */
            ldc Ljava/math/BigDecimal;
            if_acmpne 22
        15: .line 1439
            aload 0 /* n */
            instanceof java.math.BigDecimal
            ifeq 17
        16: .line 1440
            aload 0 /* n */
            areturn
        17: .line 1441
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof java.math.BigInteger
            ifeq 19
        18: .line 1442
            new java.math.BigDecimal
            dup
            aload 0 /* n */
            checkcast java.math.BigInteger
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;)V
            areturn
        19: .line 1443
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof java.lang.Long
            ifeq 21
        20: .line 1445
            aload 0 /* n */
            invokevirtual java.lang.Number.longValue:()J
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            areturn
        21: .line 1447
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 0 /* n */
            invokevirtual java.lang.Number.doubleValue:()D
            invokespecial java.math.BigDecimal.<init>:(D)V
            areturn
        22: .line 1449
      StackMap locals:
      StackMap stack:
            aload 1 /* targetType */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpeq 23
            aload 1 /* targetType */
            ldc Ljava/lang/Float;
            if_acmpne 26
        23: .line 1450
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof java.lang.Float
            ifeq 24
            aload 0 /* n */
            checkcast java.lang.Float
            goto 25
      StackMap locals:
      StackMap stack:
        24: aload 0 /* n */
            invokevirtual java.lang.Number.floatValue:()F
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
      StackMap locals:
      StackMap stack: java.lang.Float
        25: areturn
        26: .line 1451
      StackMap locals:
      StackMap stack:
            aload 1 /* targetType */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpeq 27
            aload 1 /* targetType */
            ldc Ljava/lang/Byte;
            if_acmpne 30
        27: .line 1452
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof java.lang.Byte
            ifeq 28
            aload 0 /* n */
            checkcast java.lang.Byte
            goto 29
      StackMap locals:
      StackMap stack:
        28: aload 0 /* n */
            invokevirtual java.lang.Number.byteValue:()B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
      StackMap locals:
      StackMap stack: java.lang.Byte
        29: areturn
        30: .line 1453
      StackMap locals:
      StackMap stack:
            aload 1 /* targetType */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpeq 31
            aload 1 /* targetType */
            ldc Ljava/lang/Short;
            if_acmpne 34
        31: .line 1454
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof java.lang.Short
            ifeq 32
            aload 0 /* n */
            checkcast java.lang.Short
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 0 /* n */
            invokevirtual java.lang.Number.shortValue:()S
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
      StackMap locals:
      StackMap stack: java.lang.Short
        33: areturn
        34: .line 1455
      StackMap locals:
      StackMap stack:
            aload 1 /* targetType */
            ldc Ljava/math/BigInteger;
            if_acmpne 44
        35: .line 1456
            aload 0 /* n */
            instanceof java.math.BigInteger
            ifeq 37
        36: .line 1457
            aload 0 /* n */
            areturn
        37: .line 1458
      StackMap locals:
      StackMap stack:
            iload 2 /* bugfixed */
            ifeq 43
        38: .line 1459
            aload 0 /* n */
            instanceof freemarker.ext.beans.OverloadedNumberUtil$IntegerBigDecimal
            ifeq 40
        39: .line 1460
            aload 0 /* n */
            checkcast freemarker.ext.beans.OverloadedNumberUtil$IntegerBigDecimal
            invokevirtual freemarker.ext.beans.OverloadedNumberUtil$IntegerBigDecimal.bigIntegerValue:()Ljava/math/BigInteger;
            areturn
        40: .line 1461
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof java.math.BigDecimal
            ifeq 42
        41: .line 1462
            aload 0 /* n */
            checkcast java.math.BigDecimal
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            areturn
        42: .line 1464
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            invokevirtual java.lang.Number.longValue:()J
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
        43: .line 1468
      StackMap locals:
      StackMap stack:
            new java.math.BigInteger
            dup
            aload 0 /* n */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
            areturn
        44: .line 1471
      StackMap locals:
      StackMap stack:
            aload 0 /* n */
            instanceof freemarker.ext.beans.OverloadedNumberUtil$NumberWithFallbackType
            ifeq 46
        45: .line 1472
            aload 0 /* n */
            checkcast freemarker.ext.beans.OverloadedNumberUtil$NumberWithFallbackType
            invokevirtual freemarker.ext.beans.OverloadedNumberUtil$NumberWithFallbackType.getSourceNumber:()Ljava/lang/Number;
            goto 47
      StackMap locals:
      StackMap stack:
        46: aload 0 /* n */
        47: .line 1471
      StackMap locals:
      StackMap stack: java.lang.Number
            astore 3 /* oriN */
        start local 3 // java.lang.Number oriN
        48: .line 1473
            aload 1 /* targetType */
            aload 3 /* oriN */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 50
        49: .line 1475
            aload 3 /* oriN */
            areturn
        50: .line 1478
      StackMap locals: java.lang.Number
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.Number oriN
        end local 2 // boolean bugfixed
        end local 1 // java.lang.Class targetType
        end local 0 // java.lang.Number n
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   51     0           n  Ljava/lang/Number;
            0   51     1  targetType  Ljava/lang/Class<*>;
            0   51     2    bugfixed  Z
           48   51     3        oriN  Ljava/lang/Number;
    Signature: (Ljava/lang/Number;Ljava/lang/Class<*>;Z)Ljava/lang/Number;
    MethodParameters:
            Name  Flags
      n           final
      targetType  final
      bugfixed    final

  freemarker.template.TemplateModel invokeMethod(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Lfreemarker/template/TemplateModel;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.Object[] args
         0: .line 1505
            aload 2 /* method */
            aload 1 /* object */
            aload 3 /* args */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* retval */
        start local 4 // java.lang.Object retval
         1: .line 1507
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 3
         2: .line 1508
            getstatic freemarker.template.TemplateModel.NOTHING:Lfreemarker/template/TemplateModel;
            goto 4
         3: .line 1509
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.getOuterIdentity:()Lfreemarker/template/ObjectWrapper;
            aload 4 /* retval */
            invokeinterface freemarker.template.ObjectWrapper.wrap:(Ljava/lang/Object;)Lfreemarker/template/TemplateModel;
         4: .line 1506
      StackMap locals:
      StackMap stack: freemarker.template.TemplateModel
            areturn
        end local 4 // java.lang.Object retval
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Object object
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lfreemarker/ext/beans/BeansWrapper;
            0    5     1  object  Ljava/lang/Object;
            0    5     2  method  Ljava/lang/reflect/Method;
            0    5     3    args  [Ljava/lang/Object;
            1    5     4  retval  Ljava/lang/Object;
    Exceptions:
      throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException, freemarker.template.TemplateModelException
    MethodParameters:
        Name  Flags
      object  
      method  
      args    

  public freemarker.template.TemplateHashModel getStaticModels();
    descriptor: ()Lfreemarker/template/TemplateHashModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 1526
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.staticModels:Lfreemarker/ext/beans/StaticModels;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public freemarker.template.TemplateHashModel getEnumModels();
    descriptor: ()Lfreemarker/template/TemplateHashModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 1546
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.enumModels:Lfreemarker/ext/beans/ClassBasedModelFactory;
            ifnonnull 4
         1: .line 1547
            new java.lang.UnsupportedOperationException
            dup
         2: .line 1548
            ldc "Enums not supported before J2SE 5."
         3: .line 1547
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.enumModels:Lfreemarker/ext/beans/ClassBasedModelFactory;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lfreemarker/ext/beans/BeansWrapper;

  freemarker.ext.util.ModelCache getModelCache();
    descriptor: ()Lfreemarker/ext/util/ModelCache;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 1555
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.modelCache:Lfreemarker/ext/util/ModelCache;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  public  newInstance(java.lang.Class<?>, java.util.List);
    descriptor: (Ljava/lang/Class;Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Class clazz
        start local 2 // java.util.List arguments
         0: .line 1569
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            aload 1 /* clazz */
            invokevirtual freemarker.ext.beans.ClassIntrospector.get:(Ljava/lang/Class;)Ljava/util/Map;
            getstatic freemarker.ext.beans.ClassIntrospector.CONSTRUCTORS_KEY:Ljava/lang/Object;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* ctors */
        start local 3 // java.lang.Object ctors
         1: .line 1570
            aload 3 /* ctors */
            ifnonnull 5
         2: .line 1571
            new freemarker.template.TemplateModelException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1572
            ldc " has no public constructors."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1571
            invokespecial freemarker.template.TemplateModelException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1574
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            astore 4 /* ctor */
        start local 4 // java.lang.reflect.Constructor ctor
         6: .line 1576
            aload 3 /* ctors */
            instanceof freemarker.ext.beans.SimpleMethod
            ifeq 15
         7: .line 1577
            aload 3 /* ctors */
            checkcast freemarker.ext.beans.SimpleMethod
            astore 6 /* sm */
        start local 6 // freemarker.ext.beans.SimpleMethod sm
         8: .line 1578
            aload 6 /* sm */
            invokevirtual freemarker.ext.beans.SimpleMethod.getMember:()Ljava/lang/reflect/Member;
            checkcast java.lang.reflect.Constructor
            astore 4 /* ctor */
         9: .line 1579
            aload 6 /* sm */
            aload 2 /* arguments */
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.SimpleMethod.unwrapArguments:(Ljava/util/List;Lfreemarker/ext/beans/BeansWrapper;)[Ljava/lang/Object;
            astore 5 /* objargs */
        start local 5 // java.lang.Object[] objargs
        10: .line 1581
            aload 4 /* ctor */
            aload 5 /* objargs */
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
        11: areturn
        12: .line 1582
      StackMap locals: freemarker.ext.beans.BeansWrapper java.lang.Class java.util.List java.lang.Object java.lang.reflect.Constructor java.lang.Object[] freemarker.ext.beans.SimpleMethod
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        13: .line 1583
            aload 7 /* e */
            instanceof freemarker.template.TemplateModelException
            ifeq 14
            aload 7 /* e */
            checkcast freemarker.template.TemplateModelException
            athrow
        14: .line 1584
      StackMap locals: java.lang.Exception
      StackMap stack:
            aconst_null
            aload 4 /* ctor */
            aload 7 /* e */
            invokestatic freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException:(Ljava/lang/Object;Ljava/lang/reflect/Member;Ljava/lang/Throwable;)Lfreemarker/template/TemplateModelException;
            athrow
        end local 7 // java.lang.Exception e
        end local 6 // freemarker.ext.beans.SimpleMethod sm
        end local 5 // java.lang.Object[] objargs
        15: .line 1586
      StackMap locals:
      StackMap stack:
            aload 3 /* ctors */
            instanceof freemarker.ext.beans.OverloadedMethods
            ifeq 22
        16: .line 1587
            aload 3 /* ctors */
            checkcast freemarker.ext.beans.OverloadedMethods
            aload 2 /* arguments */
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.OverloadedMethods.getMemberAndArguments:(Ljava/util/List;Lfreemarker/ext/beans/BeansWrapper;)Lfreemarker/ext/beans/MemberAndArguments;
            astore 6 /* mma */
        start local 6 // freemarker.ext.beans.MemberAndArguments mma
        17: .line 1589
            aload 6 /* mma */
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.MemberAndArguments.invokeConstructor:(Lfreemarker/ext/beans/BeansWrapper;)Ljava/lang/Object;
        18: areturn
        19: .line 1590
      StackMap locals: freemarker.ext.beans.BeansWrapper java.lang.Class java.util.List java.lang.Object java.lang.reflect.Constructor top freemarker.ext.beans.MemberAndArguments
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        20: .line 1591
            aload 7 /* e */
            instanceof freemarker.template.TemplateModelException
            ifeq 21
            aload 7 /* e */
            checkcast freemarker.template.TemplateModelException
            athrow
        21: .line 1593
      StackMap locals: java.lang.Exception
      StackMap stack:
            aconst_null
            aload 6 /* mma */
            invokevirtual freemarker.ext.beans.MemberAndArguments.getCallableMemberDescriptor:()Lfreemarker/ext/beans/CallableMemberDescriptor;
            aload 7 /* e */
            invokestatic freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException:(Ljava/lang/Object;Lfreemarker/ext/beans/CallableMemberDescriptor;Ljava/lang/Throwable;)Lfreemarker/template/TemplateModelException;
            athrow
        end local 7 // java.lang.Exception e
        end local 6 // freemarker.ext.beans.MemberAndArguments mma
        22: .line 1597
      StackMap locals: freemarker.ext.beans.BeansWrapper java.lang.Class java.util.List java.lang.Object java.lang.reflect.Constructor
      StackMap stack:
            new freemarker.core.BugException
            dup
            invokespecial freemarker.core.BugException.<init>:()V
            athrow
        end local 4 // java.lang.reflect.Constructor ctor
        end local 3 // java.lang.Object ctors
        23: .line 1599
      StackMap locals: freemarker.ext.beans.BeansWrapper java.lang.Class java.util.List
      StackMap stack: freemarker.template.TemplateModelException
            astore 3 /* e */
        start local 3 // freemarker.template.TemplateModelException e
        24: .line 1600
            aload 3 /* e */
            athrow
        end local 3 // freemarker.template.TemplateModelException e
        25: .line 1601
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        26: .line 1602
            new freemarker.template.TemplateModelException
            dup
        27: .line 1603
            new java.lang.StringBuilder
            dup
            ldc "Error while creating new instance of class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "; see cause exception"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
        28: .line 1602
            invokespecial freemarker.template.TemplateModelException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.Exception e
        end local 2 // java.util.List arguments
        end local 1 // java.lang.Class clazz
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   29     0       this  Lfreemarker/ext/beans/BeansWrapper;
            0   29     1      clazz  Ljava/lang/Class<*>;
            0   29     2  arguments  Ljava/util/List;
            1   23     3      ctors  Ljava/lang/Object;
            6   23     4       ctor  Ljava/lang/reflect/Constructor<*>;
           10   15     5    objargs  [Ljava/lang/Object;
            8   15     6         sm  Lfreemarker/ext/beans/SimpleMethod;
           13   15     7          e  Ljava/lang/Exception;
           17   22     6        mma  Lfreemarker/ext/beans/MemberAndArguments;
           20   22     7          e  Ljava/lang/Exception;
           24   25     3          e  Lfreemarker/template/TemplateModelException;
           26   29     3          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.Exception
          17    18      19  Class java.lang.Exception
           0    11      23  Class freemarker.template.TemplateModelException
          12    18      23  Class freemarker.template.TemplateModelException
          19    23      23  Class freemarker.template.TemplateModelException
           0    11      25  Class java.lang.Exception
          12    18      25  Class java.lang.Exception
          19    23      25  Class java.lang.Exception
    Exceptions:
      throws freemarker.template.TemplateModelException
    Signature: (Ljava/lang/Class<*>;Ljava/util/List;)Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      clazz      
      arguments  

  public void removeFromClassIntrospectionCache(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Class clazz
         0: .line 1616
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            aload 1 /* clazz */
            invokevirtual freemarker.ext.beans.ClassIntrospector.remove:(Ljava/lang/Class;)V
         1: .line 1617
            return
        end local 1 // java.lang.Class clazz
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lfreemarker/ext/beans/BeansWrapper;
            0    2     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      clazz  

  public void clearClassIntrospecitonCache();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 1630
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.clearCache:()V
         1: .line 1631
            return
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/ext/beans/BeansWrapper;

  freemarker.ext.beans.ClassIntrospector getClassIntrospector();
    descriptor: ()Lfreemarker/ext/beans/ClassIntrospector;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 1634
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/beans/BeansWrapper;

  protected void finetuneMethodAppearance(java.lang.Class<?>, java.lang.reflect.Method, freemarker.ext.beans.BeansWrapper$MethodAppearanceDecision);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;Lfreemarker/ext/beans/BeansWrapper$MethodAppearanceDecision;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=4, args_size=4
        start local 0 // freemarker.ext.beans.BeansWrapper this
        start local 1 // java.lang.Class clazz
        start local 2 // java.lang.reflect.Method m
        start local 3 // freemarker.ext.beans.BeansWrapper$MethodAppearanceDecision decision
         0: .line 1648
            return
        end local 3 // freemarker.ext.beans.BeansWrapper$MethodAppearanceDecision decision
        end local 2 // java.lang.reflect.Method m
        end local 1 // java.lang.Class clazz
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lfreemarker/ext/beans/BeansWrapper;
            0    1     1     clazz  Ljava/lang/Class<*>;
            0    1     2         m  Ljava/lang/reflect/Method;
            0    1     3  decision  Lfreemarker/ext/beans/BeansWrapper$MethodAppearanceDecision;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Method;Lfreemarker/ext/beans/BeansWrapper$MethodAppearanceDecision;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      clazz     
      m         
      decision  

  public static void coerceBigDecimals(java.lang.reflect.AccessibleObject, java.lang.Object[]);
    descriptor: (Ljava/lang/reflect/AccessibleObject;[Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.reflect.AccessibleObject callable
        start local 1 // java.lang.Object[] args
         0: .line 1656
            aconst_null
            astore 2 /* formalTypes */
        start local 2 // java.lang.Class[] formalTypes
         1: .line 1657
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 17
         3: .line 1658
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 1 /* args */
            iload 3 /* i */
            aaload
            astore 4 /* arg */
        start local 4 // java.lang.Object arg
         4: .line 1659
            aload 4 /* arg */
            instanceof java.math.BigDecimal
            ifeq 16
         5: .line 1660
            aload 2 /* formalTypes */
            ifnonnull 15
         6: .line 1661
            aload 0 /* callable */
            instanceof java.lang.reflect.Method
            ifeq 9
         7: .line 1662
            aload 0 /* callable */
            checkcast java.lang.reflect.Method
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 2 /* formalTypes */
         8: .line 1663
            goto 15
      StackMap locals: java.lang.Object
      StackMap stack:
         9: aload 0 /* callable */
            instanceof java.lang.reflect.Constructor
            ifeq 12
        10: .line 1664
            aload 0 /* callable */
            checkcast java.lang.reflect.Constructor
            invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
            astore 2 /* formalTypes */
        11: .line 1665
            goto 15
        12: .line 1666
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected method or  constructor; callable is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 1668
            aload 0 /* callable */
            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;
        14: .line 1666
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1671
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iload 3 /* i */
            aload 4 /* arg */
            checkcast java.math.BigDecimal
            aload 2 /* formalTypes */
            iload 3 /* i */
            aaload
            invokestatic freemarker.ext.beans.BeansWrapper.coerceBigDecimal:(Ljava/math/BigDecimal;Ljava/lang/Class;)Ljava/lang/Object;
            aastore
        end local 4 // java.lang.Object arg
        16: .line 1657
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 3 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 3
        end local 3 // int i
        18: .line 1674
            return
        end local 2 // java.lang.Class[] formalTypes
        end local 1 // java.lang.Object[] args
        end local 0 // java.lang.reflect.AccessibleObject callable
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0     callable  Ljava/lang/reflect/AccessibleObject;
            0   19     1         args  [Ljava/lang/Object;
            1   19     2  formalTypes  [Ljava/lang/Class;
            2   18     3            i  I
            4   16     4          arg  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      callable  
      args      

  public static void coerceBigDecimals(java.lang.Class<?>[], []);
    descriptor: ([Ljava/lang/Class;[Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // java.lang.Class[] formalTypes
        start local 1 // java.lang.Object[] args
         0: .line 1681
            aload 0 /* formalTypes */
            arraylength
            istore 2 /* typeLen */
        start local 2 // int typeLen
         1: .line 1682
            aload 1 /* args */
            arraylength
            istore 3 /* argsLen */
        start local 3 // int argsLen
         2: .line 1683
            iload 2 /* typeLen */
            iload 3 /* argsLen */
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* min */
        start local 4 // int min
         3: .line 1684
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 9
         5: .line 1685
      StackMap locals: java.lang.Class[] java.lang.Object[] int int int int
      StackMap stack:
            aload 1 /* args */
            iload 5 /* i */
            aaload
            astore 6 /* arg */
        start local 6 // java.lang.Object arg
         6: .line 1686
            aload 6 /* arg */
            instanceof java.math.BigDecimal
            ifeq 8
         7: .line 1687
            aload 1 /* args */
            iload 5 /* i */
            aload 6 /* arg */
            checkcast java.math.BigDecimal
            aload 0 /* formalTypes */
            iload 5 /* i */
            aaload
            invokestatic freemarker.ext.beans.BeansWrapper.coerceBigDecimal:(Ljava/math/BigDecimal;Ljava/lang/Class;)Ljava/lang/Object;
            aastore
        end local 6 // java.lang.Object arg
         8: .line 1684
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            iload 4 /* min */
            if_icmplt 5
        end local 5 // int i
        10: .line 1690
            iload 3 /* argsLen */
            iload 2 /* typeLen */
            if_icmple 19
        11: .line 1691
            aload 0 /* formalTypes */
            iload 2 /* typeLen */
            iconst_1
            isub
            aaload
            astore 5 /* varArgType */
        start local 5 // java.lang.Class varArgType
        12: .line 1692
            iload 2 /* typeLen */
            istore 6 /* i */
        start local 6 // int i
        13: goto 18
        14: .line 1693
      StackMap locals: java.lang.Class[] java.lang.Object[] int int int java.lang.Class int
      StackMap stack:
            aload 1 /* args */
            iload 6 /* i */
            aaload
            astore 7 /* arg */
        start local 7 // java.lang.Object arg
        15: .line 1694
            aload 7 /* arg */
            instanceof java.math.BigDecimal
            ifeq 17
        16: .line 1695
            aload 1 /* args */
            iload 6 /* i */
            aload 7 /* arg */
            checkcast java.math.BigDecimal
            aload 5 /* varArgType */
            invokestatic freemarker.ext.beans.BeansWrapper.coerceBigDecimal:(Ljava/math/BigDecimal;Ljava/lang/Class;)Ljava/lang/Object;
            aastore
        end local 7 // java.lang.Object arg
        17: .line 1692
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            iload 3 /* argsLen */
            if_icmplt 14
        end local 6 // int i
        end local 5 // java.lang.Class varArgType
        19: .line 1699
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int min
        end local 3 // int argsLen
        end local 2 // int typeLen
        end local 1 // java.lang.Object[] args
        end local 0 // java.lang.Class[] formalTypes
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0  formalTypes  [Ljava/lang/Class;
            0   20     1         args  [Ljava/lang/Object;
            1   20     2      typeLen  I
            2   20     3      argsLen  I
            3   20     4          min  I
            4   10     5            i  I
            6    8     6          arg  Ljava/lang/Object;
           12   19     5   varArgType  Ljava/lang/Class<*>;
           13   19     6            i  I
           15   17     7          arg  Ljava/lang/Object;
    Signature: ([Ljava/lang/Class<*>;[Ljava/lang/Object;)V
    MethodParameters:
             Name  Flags
      formalTypes  
      args         

  public static  coerceBigDecimal(java.math.BigDecimal, java.lang.Class<?>);
    descriptor: (Ljava/math/BigDecimal;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal bd
        start local 1 // java.lang.Class formalType
         0: .line 1708
            aload 1 /* formalType */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 1
            aload 1 /* formalType */
            ldc Ljava/lang/Integer;
            if_acmpne 2
         1: .line 1709
      StackMap locals:
      StackMap stack:
            aload 0 /* bd */
            invokevirtual java.math.BigDecimal.intValue:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         2: .line 1710
      StackMap locals:
      StackMap stack:
            aload 1 /* formalType */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpeq 3
            aload 1 /* formalType */
            ldc Ljava/lang/Double;
            if_acmpne 4
         3: .line 1711
      StackMap locals:
      StackMap stack:
            aload 0 /* bd */
            invokevirtual java.math.BigDecimal.doubleValue:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
         4: .line 1712
      StackMap locals:
      StackMap stack:
            aload 1 /* formalType */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpeq 5
            aload 1 /* formalType */
            ldc Ljava/lang/Long;
            if_acmpne 6
         5: .line 1713
      StackMap locals:
      StackMap stack:
            aload 0 /* bd */
            invokevirtual java.math.BigDecimal.longValue:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
         6: .line 1714
      StackMap locals:
      StackMap stack:
            aload 1 /* formalType */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpeq 7
            aload 1 /* formalType */
            ldc Ljava/lang/Float;
            if_acmpne 8
         7: .line 1715
      StackMap locals:
      StackMap stack:
            aload 0 /* bd */
            invokevirtual java.math.BigDecimal.floatValue:()F
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            areturn
         8: .line 1716
      StackMap locals:
      StackMap stack:
            aload 1 /* formalType */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpeq 9
            aload 1 /* formalType */
            ldc Ljava/lang/Short;
            if_acmpne 10
         9: .line 1717
      StackMap locals:
      StackMap stack:
            aload 0 /* bd */
            invokevirtual java.math.BigDecimal.shortValue:()S
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            areturn
        10: .line 1718
      StackMap locals:
      StackMap stack:
            aload 1 /* formalType */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpeq 11
            aload 1 /* formalType */
            ldc Ljava/lang/Byte;
            if_acmpne 12
        11: .line 1719
      StackMap locals:
      StackMap stack:
            aload 0 /* bd */
            invokevirtual java.math.BigDecimal.byteValue:()B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            areturn
        12: .line 1720
      StackMap locals:
      StackMap stack:
            ldc Ljava/math/BigInteger;
            aload 1 /* formalType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 14
        13: .line 1721
            aload 0 /* bd */
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            areturn
        14: .line 1723
      StackMap locals:
      StackMap stack:
            aload 0 /* bd */
            areturn
        end local 1 // java.lang.Class formalType
        end local 0 // java.math.BigDecimal bd
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0          bd  Ljava/math/BigDecimal;
            0   15     1  formalType  Ljava/lang/Class<*>;
    Signature: (Ljava/math/BigDecimal;Ljava/lang/Class<*>;)Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      bd          
      formalType  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 1735
            aload 0 /* this */
            invokevirtual freemarker.ext.beans.BeansWrapper.toPropertiesString:()Ljava/lang/String;
            astore 1 /* propsStr */
        start local 1 // java.lang.String propsStr
         1: .line 1736
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokestatic freemarker.template.utility.ClassUtil.getShortClassNameOfObject:(Ljava/lang/Object;)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;
            aload 0 /* this */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         2: .line 1737
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.incompatibleImprovements:Lfreemarker/template/Version;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1738
            aload 1 /* propsStr */
            invokevirtual java.lang.String.length:()I
            ifeq 4
            new java.lang.StringBuilder
            dup
            aload 1 /* propsStr */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 5
      StackMap locals: freemarker.ext.beans.BeansWrapper java.lang.String
      StackMap stack: java.lang.StringBuilder
         4: ldc ""
      StackMap locals: freemarker.ext.beans.BeansWrapper java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
         5: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1739
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 1736
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String propsStr
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lfreemarker/ext/beans/BeansWrapper;
            1    8     1  propsStr  Ljava/lang/String;

  protected java.lang.String toPropertiesString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // freemarker.ext.beans.BeansWrapper this
         0: .line 1752
            new java.lang.StringBuilder
            dup
            ldc "simpleMapWrapper="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.simpleMapWrapper:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1753
            ldc "exposureLevel="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getExposureLevel:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1754
            ldc "exposeFields="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getExposeFields:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1755
            ldc "preferIndexedReadMethod="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.preferIndexedReadMethod:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 1756
            ldc "treatDefaultMethodsAsBeanMembers="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1757
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.getTreatDefaultMethodsAsBeanMembers:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1758
            ldc "sharedClassIntrospCache="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 1759
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokevirtual freemarker.ext.beans.ClassIntrospector.isShared:()Z
            ifeq 8
            new java.lang.StringBuilder
            dup
            ldc "@"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield freemarker.ext.beans.BeansWrapper.classIntrospector:Lfreemarker/ext/beans/ClassIntrospector;
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 9
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         8: ldc "none"
      StackMap locals: freemarker.ext.beans.BeansWrapper
      StackMap stack: java.lang.StringBuilder java.lang.String
         9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 1752
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // freemarker.ext.beans.BeansWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lfreemarker/ext/beans/BeansWrapper;
}
SourceFile: "BeansWrapper.java"
NestMembers:
  freemarker.ext.beans.BeansWrapper$1  freemarker.ext.beans.BeansWrapper$2  freemarker.ext.beans.BeansWrapper$3  freemarker.ext.beans.BeansWrapper$4  freemarker.ext.beans.BeansWrapper$5  freemarker.ext.beans.BeansWrapper$MethodAppearanceDecision  freemarker.ext.beans.BeansWrapper$MethodAppearanceDecisionInput
InnerClasses:
  freemarker.ext.beans.BeansWrapper$1
  freemarker.ext.beans.BeansWrapper$2
  freemarker.ext.beans.BeansWrapper$3
  freemarker.ext.beans.BeansWrapper$4
  freemarker.ext.beans.BeansWrapper$5
  public final MethodAppearanceDecision = freemarker.ext.beans.BeansWrapper$MethodAppearanceDecision of freemarker.ext.beans.BeansWrapper
  public final MethodAppearanceDecisionInput = freemarker.ext.beans.BeansWrapper$MethodAppearanceDecisionInput of freemarker.ext.beans.BeansWrapper
  final IntegerBigDecimal = freemarker.ext.beans.OverloadedNumberUtil$IntegerBigDecimal of freemarker.ext.beans.OverloadedNumberUtil
  abstract NumberWithFallbackType = freemarker.ext.beans.OverloadedNumberUtil$NumberWithFallbackType of freemarker.ext.beans.OverloadedNumberUtil