public class org.apache.commons.configuration2.interpol.ConfigurationInterpolator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.configuration2.interpol.ConfigurationInterpolator
  super_class: java.lang.Object
{
  private static final char PREFIX_SEPARATOR;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 58

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

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

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

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

  private static final java.util.Map<java.lang.String, org.apache.commons.configuration2.interpol.Lookup> DEFAULT_PREFIX_LOOKUPS;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/commons/configuration2/interpol/Lookup;>;

  private final java.util.Map<java.lang.String, org.apache.commons.configuration2.interpol.Lookup> prefixLookups;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/commons/configuration2/interpol/Lookup;>;

  private final java.util.List<org.apache.commons.configuration2.interpol.Lookup> defaultLookups;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/commons/configuration2/interpol/Lookup;>;

  private final org.apache.commons.text.StringSubstitutor substitutor;
    descriptor: Lorg/apache/commons/text/StringSubstitutor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile org.apache.commons.configuration2.interpol.ConfigurationInterpolator parentInterpolator;
    descriptor: Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=0
         0: .line 95
            ldc "${"
            invokevirtual java.lang.String.length:()I
            putstatic org.apache.commons.configuration2.interpol.ConfigurationInterpolator.VAR_START_LENGTH:I
         1: .line 101
            ldc "}"
            invokevirtual java.lang.String.length:()I
            putstatic org.apache.commons.configuration2.interpol.ConfigurationInterpolator.VAR_END_LENGTH:I
         2: .line 110
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* lookups */
        start local 0 // java.util.Map lookups
         3: .line 111
            invokestatic org.apache.commons.configuration2.interpol.DefaultLookups.values:()[Lorg/apache/commons/configuration2/interpol/DefaultLookups;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 7
      StackMap locals: java.util.Map top int int org.apache.commons.configuration2.interpol.DefaultLookups[]
      StackMap stack:
         4: aload 4
            iload 2
            aaload
            astore 1 /* lookup */
        start local 1 // org.apache.commons.configuration2.interpol.DefaultLookups lookup
         5: .line 113
            aload 0 /* lookups */
            aload 1 /* lookup */
            invokevirtual org.apache.commons.configuration2.interpol.DefaultLookups.getPrefix:()Ljava/lang/String;
            aload 1 /* lookup */
            invokevirtual org.apache.commons.configuration2.interpol.DefaultLookups.getLookup:()Lorg/apache/commons/configuration2/interpol/Lookup;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 1 // org.apache.commons.configuration2.interpol.DefaultLookups lookup
         6: .line 111
            iinc 2 1
      StackMap locals:
      StackMap stack:
         7: iload 2
            iload 3
            if_icmplt 4
         8: .line 116
            invokestatic org.apache.commons.text.lookup.DefaultStringLookup.values:()[Lorg/apache/commons/text/lookup/DefaultStringLookup;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 12
      StackMap locals: java.util.Map top int int org.apache.commons.text.lookup.DefaultStringLookup[]
      StackMap stack:
         9: aload 4
            iload 2
            aaload
            astore 1 /* lookup */
        start local 1 // org.apache.commons.text.lookup.DefaultStringLookup lookup
        10: .line 118
            aload 0 /* lookups */
            aload 1 /* lookup */
            invokevirtual org.apache.commons.text.lookup.DefaultStringLookup.getKey:()Ljava/lang/String;
            new org.apache.commons.configuration2.interpol.StringLookupAdapter
            dup
            aload 1 /* lookup */
            invokevirtual org.apache.commons.text.lookup.DefaultStringLookup.getStringLookup:()Lorg/apache/commons/text/lookup/StringLookup;
            invokespecial org.apache.commons.configuration2.interpol.StringLookupAdapter.<init>:(Lorg/apache/commons/text/lookup/StringLookup;)V
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 1 // org.apache.commons.text.lookup.DefaultStringLookup lookup
        11: .line 116
            iinc 2 1
      StackMap locals:
      StackMap stack:
        12: iload 2
            iload 3
            if_icmplt 9
        13: .line 120
            aload 0 /* lookups */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putstatic org.apache.commons.configuration2.interpol.ConfigurationInterpolator.DEFAULT_PREFIX_LOOKUPS:Ljava/util/Map;
        end local 0 // java.util.Map lookups
        14: .line 121
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            3   14     0  lookups  Ljava/util/Map<Ljava/lang/String;Lorg/apache/commons/configuration2/interpol/Lookup;>;
            5    6     1   lookup  Lorg/apache/commons/configuration2/interpol/DefaultLookups;
           10   11     1   lookup  Lorg/apache/commons/text/lookup/DefaultStringLookup;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
         0: .line 138
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 140
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.prefixLookups:Ljava/util/Map;
         2: .line 141
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.defaultLookups:Ljava/util/List;
         3: .line 142
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.initSubstitutor:()Lorg/apache/commons/text/StringSubstitutor;
            putfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.substitutor:Lorg/apache/commons/text/StringSubstitutor;
         4: .line 143
            return
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;

  private static org.apache.commons.configuration2.interpol.ConfigurationInterpolator createInterpolator(org.apache.commons.configuration2.interpol.InterpolatorSpecification);
    descriptor: (Lorg/apache/commons/configuration2/interpol/InterpolatorSpecification;)Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.InterpolatorSpecification spec
         0: .line 155
            new org.apache.commons.configuration2.interpol.ConfigurationInterpolator
            dup
            invokespecial org.apache.commons.configuration2.interpol.ConfigurationInterpolator.<init>:()V
            astore 1 /* ci */
        start local 1 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator ci
         1: .line 156
            aload 1 /* ci */
            aload 0 /* spec */
            invokevirtual org.apache.commons.configuration2.interpol.InterpolatorSpecification.getDefaultLookups:()Ljava/util/Collection;
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.addDefaultLookups:(Ljava/util/Collection;)V
         2: .line 157
            aload 1 /* ci */
            aload 0 /* spec */
            invokevirtual org.apache.commons.configuration2.interpol.InterpolatorSpecification.getPrefixLookups:()Ljava/util/Map;
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.registerLookups:(Ljava/util/Map;)V
         3: .line 158
            aload 1 /* ci */
            aload 0 /* spec */
            invokevirtual org.apache.commons.configuration2.interpol.InterpolatorSpecification.getParentInterpolator:()Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.setParentInterpolator:(Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;)V
         4: .line 159
            aload 1 /* ci */
            areturn
        end local 1 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator ci
        end local 0 // org.apache.commons.configuration2.interpol.InterpolatorSpecification spec
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  spec  Lorg/apache/commons/configuration2/interpol/InterpolatorSpecification;
            1    5     1    ci  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    MethodParameters:
      Name  Flags
      spec  final

  private static java.lang.String extractVariableName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String strValue
         0: .line 171
            aload 0 /* strValue */
            getstatic org.apache.commons.configuration2.interpol.ConfigurationInterpolator.VAR_START_LENGTH:I
         1: .line 172
            aload 0 /* strValue */
            invokevirtual java.lang.String.length:()I
            getstatic org.apache.commons.configuration2.interpol.ConfigurationInterpolator.VAR_END_LENGTH:I
            isub
         2: .line 171
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String strValue
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  strValue  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      strValue  final

  public static org.apache.commons.configuration2.interpol.ConfigurationInterpolator fromSpecification(org.apache.commons.configuration2.interpol.InterpolatorSpecification);
    descriptor: (Lorg/apache/commons/configuration2/interpol/InterpolatorSpecification;)Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.InterpolatorSpecification spec
         0: .line 192
            aload 0 /* spec */
            ifnonnull 4
         1: .line 194
            new java.lang.IllegalArgumentException
            dup
         2: .line 195
            ldc "InterpolatorSpecification must not be null!"
         3: .line 194
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* spec */
            invokevirtual org.apache.commons.configuration2.interpol.InterpolatorSpecification.getInterpolator:()Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            ifnull 5
            aload 0 /* spec */
            invokevirtual org.apache.commons.configuration2.interpol.InterpolatorSpecification.getInterpolator:()Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            goto 6
         5: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* spec */
            invokestatic org.apache.commons.configuration2.interpol.ConfigurationInterpolator.createInterpolator:(Lorg/apache/commons/configuration2/interpol/InterpolatorSpecification;)Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
         6: .line 197
      StackMap locals:
      StackMap stack: org.apache.commons.configuration2.interpol.ConfigurationInterpolator
            areturn
        end local 0 // org.apache.commons.configuration2.interpol.InterpolatorSpecification spec
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  spec  Lorg/apache/commons/configuration2/interpol/InterpolatorSpecification;
    MethodParameters:
      Name  Flags
      spec  final

  public static java.util.Map<java.lang.String, org.apache.commons.configuration2.interpol.Lookup> getDefaultPrefixLookups();
    descriptor: ()Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 213
            getstatic org.apache.commons.configuration2.interpol.ConfigurationInterpolator.DEFAULT_PREFIX_LOOKUPS:Ljava/util/Map;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/apache/commons/configuration2/interpol/Lookup;>;

  public static org.apache.commons.configuration2.interpol.Lookup nullSafeLookup(org.apache.commons.configuration2.interpol.Lookup);
    descriptor: (Lorg/apache/commons/configuration2/interpol/Lookup;)Lorg/apache/commons/configuration2/interpol/Lookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.Lookup lookup
         0: .line 229
            aload 0 /* lookup */
            ifnonnull 2
         1: .line 231
            getstatic org.apache.commons.configuration2.interpol.DummyLookup.INSTANCE:Lorg/apache/commons/configuration2/interpol/DummyLookup;
            astore 0 /* lookup */
         2: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* lookup */
            areturn
        end local 0 // org.apache.commons.configuration2.interpol.Lookup lookup
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  lookup  Lorg/apache/commons/configuration2/interpol/Lookup;
    MethodParameters:
        Name  Flags
      lookup  

  public void addDefaultLookup(org.apache.commons.configuration2.interpol.Lookup);
    descriptor: (Lorg/apache/commons/configuration2/interpol/Lookup;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // org.apache.commons.configuration2.interpol.Lookup defaultLookup
         0: .line 249
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.defaultLookups:Ljava/util/List;
            aload 1 /* defaultLookup */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 250
            return
        end local 1 // org.apache.commons.configuration2.interpol.Lookup defaultLookup
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    2     1  defaultLookup  Lorg/apache/commons/configuration2/interpol/Lookup;
    MethodParameters:
               Name  Flags
      defaultLookup  final

  public void addDefaultLookups(java.util.Collection<? extends org.apache.commons.configuration2.interpol.Lookup>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.util.Collection lookups
         0: .line 263
            aload 1 /* lookups */
            ifnull 2
         1: .line 265
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.defaultLookups:Ljava/util/List;
            aload 1 /* lookups */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 267
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Collection lookups
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    3     1  lookups  Ljava/util/Collection<+Lorg/apache/commons/configuration2/interpol/Lookup;>;
    Signature: (Ljava/util/Collection<+Lorg/apache/commons/configuration2/interpol/Lookup;>;)V
    MethodParameters:
         Name  Flags
      lookups  final

  public boolean deregisterLookup(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.lang.String prefix
         0: .line 279
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.prefixLookups:Ljava/util/Map;
            aload 1 /* prefix */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String prefix
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    2     1  prefix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      prefix  final

  protected org.apache.commons.configuration2.interpol.Lookup fetchLookupForPrefix(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/commons/configuration2/interpol/Lookup;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.lang.String prefix
         0: .line 293
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.prefixLookups:Ljava/util/Map;
            aload 1 /* prefix */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.configuration2.interpol.Lookup
            invokestatic org.apache.commons.configuration2.interpol.ConfigurationInterpolator.nullSafeLookup:(Lorg/apache/commons/configuration2/interpol/Lookup;)Lorg/apache/commons/configuration2/interpol/Lookup;
            areturn
        end local 1 // java.lang.String prefix
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    1     1  prefix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      prefix  final

  public java.util.List<org.apache.commons.configuration2.interpol.Lookup> getDefaultLookups();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
         0: .line 307
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.defaultLookups:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            areturn
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    Signature: ()Ljava/util/List<Lorg/apache/commons/configuration2/interpol/Lookup;>;

  public java.util.Map<java.lang.String, org.apache.commons.configuration2.interpol.Lookup> getLookups();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
         0: .line 320
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.prefixLookups:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            areturn
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/apache/commons/configuration2/interpol/Lookup;>;

  public org.apache.commons.configuration2.interpol.ConfigurationInterpolator getParentInterpolator();
    descriptor: ()Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
         0: .line 330
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.parentInterpolator:Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            areturn
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;

  private org.apache.commons.text.StringSubstitutor initSubstitutor();
    descriptor: ()Lorg/apache/commons/text/StringSubstitutor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
         0: .line 343
            new org.apache.commons.text.StringSubstitutor
            dup
            aload 0 /* this */
            invokedynamic lookup(Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;)Lorg/apache/commons/text/lookup/StringLookup;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/String;)Ljava/lang/String;
                  org/apache/commons/configuration2/interpol/ConfigurationInterpolator.lambda$0(Ljava/lang/String;)Ljava/lang/String; (7)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokespecial org.apache.commons.text.StringSubstitutor.<init>:(Lorg/apache/commons/text/lookup/StringLookup;)V
            areturn
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;

  public java.lang.Object interpolate(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.lang.Object value
         0: .line 357
            aload 1 /* value */
            instanceof java.lang.String
            ifeq 7
         1: .line 359
            aload 1 /* value */
            checkcast java.lang.String
            astore 2 /* strValue */
        start local 2 // java.lang.String strValue
         2: .line 360
            aload 0 /* this */
            aload 2 /* strValue */
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.looksLikeSingleVariable:(Ljava/lang/String;)Z
            ifeq 6
         3: .line 362
            aload 0 /* this */
            aload 2 /* strValue */
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.resolveSingleVariable:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* resolvedValue */
        start local 3 // java.lang.Object resolvedValue
         4: .line 363
            aload 3 /* resolvedValue */
            ifnull 6
            aload 3 /* resolvedValue */
            instanceof java.lang.String
            ifne 6
         5: .line 369
            aload 3 /* resolvedValue */
            areturn
        end local 3 // java.lang.Object resolvedValue
         6: .line 372
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.substitutor:Lorg/apache/commons/text/StringSubstitutor;
            aload 2 /* strValue */
            invokevirtual org.apache.commons.text.StringSubstitutor.replace:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String strValue
         7: .line 374
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 1 // java.lang.Object value
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    8     1          value  Ljava/lang/Object;
            2    7     2       strValue  Ljava/lang/String;
            4    6     3  resolvedValue  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  final

  public boolean isEnableSubstitutionInVariables();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
         0: .line 385
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.substitutor:Lorg/apache/commons/text/StringSubstitutor;
            invokevirtual org.apache.commons.text.StringSubstitutor.isEnableSubstitutionInVariables:()Z
            ireturn
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;

  private boolean looksLikeSingleVariable(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.lang.String strValue
         0: .line 400
            aload 1 /* strValue */
            ldc "${"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 1
            aload 1 /* strValue */
            ldc "}"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String strValue
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    2     1  strValue  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      strValue  final

  public java.util.Set<java.lang.String> prefixSet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
         0: .line 412
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.prefixLookups:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            areturn
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public void registerLookup(java.lang.String, org.apache.commons.configuration2.interpol.Lookup);
    descriptor: (Ljava/lang/String;Lorg/apache/commons/configuration2/interpol/Lookup;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.lang.String prefix
        start local 2 // org.apache.commons.configuration2.interpol.Lookup lookup
         0: .line 428
            aload 1 /* prefix */
            ifnonnull 4
         1: .line 430
            new java.lang.IllegalArgumentException
            dup
         2: .line 431
            ldc "Prefix for lookup object must not be null!"
         3: .line 430
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 433
      StackMap locals:
      StackMap stack:
            aload 2 /* lookup */
            ifnonnull 8
         5: .line 435
            new java.lang.IllegalArgumentException
            dup
         6: .line 436
            ldc "Lookup object must not be null!"
         7: .line 435
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.prefixLookups:Ljava/util/Map;
            aload 1 /* prefix */
            aload 2 /* lookup */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 439
            return
        end local 2 // org.apache.commons.configuration2.interpol.Lookup lookup
        end local 1 // java.lang.String prefix
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0   10     1  prefix  Ljava/lang/String;
            0   10     2  lookup  Lorg/apache/commons/configuration2/interpol/Lookup;
    MethodParameters:
        Name  Flags
      prefix  final
      lookup  final

  public void registerLookups(java.util.Map<java.lang.String, ? extends org.apache.commons.configuration2.interpol.Lookup>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.util.Map lookups
         0: .line 452
            aload 1 /* lookups */
            ifnull 2
         1: .line 454
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.prefixLookups:Ljava/util/Map;
            aload 1 /* lookups */
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         2: .line 456
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Map lookups
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    3     1  lookups  Ljava/util/Map<Ljava/lang/String;+Lorg/apache/commons/configuration2/interpol/Lookup;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;+Lorg/apache/commons/configuration2/interpol/Lookup;>;)V
    MethodParameters:
         Name  Flags
      lookups  final

  public boolean removeDefaultLookup(org.apache.commons.configuration2.interpol.Lookup);
    descriptor: (Lorg/apache/commons/configuration2/interpol/Lookup;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // org.apache.commons.configuration2.interpol.Lookup lookup
         0: .line 468
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.defaultLookups:Ljava/util/List;
            aload 1 /* lookup */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.apache.commons.configuration2.interpol.Lookup lookup
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    1     1  lookup  Lorg/apache/commons/configuration2/interpol/Lookup;
    MethodParameters:
        Name  Flags
      lookup  final

  public java.lang.Object resolve(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.lang.String var
         0: .line 487
            aload 1 /* var */
            ifnonnull 2
         1: .line 489
            aconst_null
            areturn
         2: .line 492
      StackMap locals:
      StackMap stack:
            aload 1 /* var */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* prefixPos */
        start local 2 // int prefixPos
         3: .line 493
            iload 2 /* prefixPos */
            iflt 9
         4: .line 495
            aload 1 /* var */
            iconst_0
            iload 2 /* prefixPos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* prefix */
        start local 3 // java.lang.String prefix
         5: .line 496
            aload 1 /* var */
            iload 2 /* prefixPos */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         6: .line 497
            aload 0 /* this */
            aload 3 /* prefix */
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.fetchLookupForPrefix:(Ljava/lang/String;)Lorg/apache/commons/configuration2/interpol/Lookup;
            aload 4 /* name */
            invokeinterface org.apache.commons.configuration2.interpol.Lookup.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
         7: .line 498
            aload 5 /* value */
            ifnull 9
         8: .line 500
            aload 5 /* value */
            areturn
        end local 5 // java.lang.Object value
        end local 4 // java.lang.String name
        end local 3 // java.lang.String prefix
         9: .line 504
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.defaultLookups:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: org.apache.commons.configuration2.interpol.ConfigurationInterpolator java.lang.String int top java.util.Iterator
      StackMap stack:
        10: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.configuration2.interpol.Lookup
            astore 3 /* lookup */
        start local 3 // org.apache.commons.configuration2.interpol.Lookup lookup
        11: .line 506
            aload 3 /* lookup */
            aload 1 /* var */
            invokeinterface org.apache.commons.configuration2.interpol.Lookup.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
        12: .line 507
            aload 5 /* value */
            ifnull 14
        13: .line 509
            aload 5 /* value */
            areturn
        end local 5 // java.lang.Object value
        end local 3 // org.apache.commons.configuration2.interpol.Lookup lookup
        14: .line 504
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        15: .line 513
            aload 0 /* this */
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.getParentInterpolator:()Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            astore 3 /* parent */
        start local 3 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator parent
        16: .line 514
            aload 3 /* parent */
            ifnull 18
        17: .line 516
            aload 0 /* this */
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.getParentInterpolator:()Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            aload 1 /* var */
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.resolve:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        18: .line 518
      StackMap locals: org.apache.commons.configuration2.interpol.ConfigurationInterpolator java.lang.String int org.apache.commons.configuration2.interpol.ConfigurationInterpolator
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator parent
        end local 2 // int prefixPos
        end local 1 // java.lang.String var
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0   19     1        var  Ljava/lang/String;
            3   19     2  prefixPos  I
            5    9     3     prefix  Ljava/lang/String;
            6    9     4       name  Ljava/lang/String;
            7    9     5      value  Ljava/lang/Object;
           11   14     3     lookup  Lorg/apache/commons/configuration2/interpol/Lookup;
           12   14     5      value  Ljava/lang/Object;
           16   19     3     parent  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    MethodParameters:
      Name  Flags
      var   final

  private java.lang.Object resolveSingleVariable(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.lang.String strValue
         0: .line 529
            aload 0 /* this */
            aload 1 /* strValue */
            invokestatic org.apache.commons.configuration2.interpol.ConfigurationInterpolator.extractVariableName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.resolve:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String strValue
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    1     1  strValue  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      strValue  final

  public void setEnableSubstitutionInVariables(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // boolean f
         0: .line 541
            aload 0 /* this */
            getfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.substitutor:Lorg/apache/commons/text/StringSubstitutor;
            iload 1 /* f */
            invokevirtual org.apache.commons.text.StringSubstitutor.setEnableSubstitutionInVariables:(Z)Lorg/apache/commons/text/StringSubstitutor;
            pop
         1: .line 542
            return
        end local 1 // boolean f
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    2     1     f  Z
    MethodParameters:
      Name  Flags
      f     final

  public void setParentInterpolator(org.apache.commons.configuration2.interpol.ConfigurationInterpolator);
    descriptor: (Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator parentInterpolator
         0: .line 555
            aload 0 /* this */
            aload 1 /* parentInterpolator */
            putfield org.apache.commons.configuration2.interpol.ConfigurationInterpolator.parentInterpolator:Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
         1: .line 556
            return
        end local 1 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator parentInterpolator
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    2     1  parentInterpolator  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
    MethodParameters:
                    Name  Flags
      parentInterpolator  final

  private java.lang.String lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
        start local 1 // java.lang.String key
         0: .line 343
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.apache.commons.configuration2.interpol.ConfigurationInterpolator.resolve:(Ljava/lang/String;)Ljava/lang/Object;
            aconst_null
            invokestatic java.util.Objects.toString:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String key
        end local 0 // org.apache.commons.configuration2.interpol.ConfigurationInterpolator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration2/interpol/ConfigurationInterpolator;
            0    1     1   key  Ljava/lang/String;
}
SourceFile: "ConfigurationInterpolator.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles