public final class com.oracle.svm.agent.NativeImageAgent extends com.oracle.svm.jvmtiagentbase.JvmtiAgentBase<com.oracle.svm.agent.NativeImageAgentJNIHandleSet>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.agent.NativeImageAgent
  super_class: com.oracle.svm.jvmtiagentbase.JvmtiAgentBase
{
  private static final java.lang.String AGENT_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "native-image-agent"

  public static final java.lang.String MESSAGE_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "native-image-agent: "

  private static final java.util.TimeZone UTC_TIMEZONE;
    descriptor: Ljava/util/TimeZone;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.util.concurrent.ScheduledThreadPoolExecutor periodicConfigWriterExecutor;
    descriptor: Ljava/util/concurrent/ScheduledThreadPoolExecutor;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.agent.TraceWriter traceWriter;
    descriptor: Lcom/oracle/svm/agent/TraceWriter;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.file.Path configOutputDirPath;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.configure.trace.AccessAdvisor accessAdvisor;
    descriptor: Lcom/oracle/svm/configure/trace/AccessAdvisor;
    flags: (0x0002) ACC_PRIVATE

  private static final java.util.regex.Pattern propertyBlacklist;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern propertyWhitelist;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static int currentFailuresWritingConfigs;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  private static int currentFailuresAtomicMove;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 76
            ldc "UTC"
            invokestatic java.util.TimeZone.getTimeZone:(Ljava/lang/String;)Ljava/util/TimeZone;
            putstatic com.oracle.svm.agent.NativeImageAgent.UTC_TIMEZONE:Ljava/util/TimeZone;
         1: .line 326
            ldc "(java\\..*)|(sun\\..*)|(jvmci\\..*)"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic com.oracle.svm.agent.NativeImageAgent.propertyBlacklist:Ljava/util/regex/Pattern;
         2: .line 327
            ldc "(java\\.library\\.path)|(java\\.io\\.tmpdir)"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic com.oracle.svm.agent.NativeImageAgent.propertyWhitelist:Ljava/util/regex/Pattern;
         3: .line 411
            iconst_0
            putstatic com.oracle.svm.agent.NativeImageAgent.currentFailuresWritingConfigs:I
         4: .line 468
            iconst_0
            putstatic com.oracle.svm.agent.NativeImageAgent.currentFailuresAtomicMove:I
            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 // com.oracle.svm.agent.NativeImageAgent this
         0: .line 73
            aload 0 /* this */
            invokespecial com.oracle.svm.jvmtiagentbase.JvmtiAgentBase.<init>:()V
         1: .line 78
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.agent.NativeImageAgent.periodicConfigWriterExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
         2: .line 73
            return
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/agent/NativeImageAgent;

  private static java.lang.String getTokenValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String token
         0: .line 87
            aload 0 /* token */
            aload 0 /* token */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String token
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  token  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      token  

  protected int getRequiredJvmtiVersion();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.agent.NativeImageAgent this
         0: .line 92
            ldc 805372416
            ireturn
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/agent/NativeImageAgent;

  protected com.oracle.svm.jvmtiagentbase.JNIHandleSet constructJavaHandles(com.oracle.svm.jni.nativeapi.JNIEnvironment);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;)Lcom/oracle/svm/jvmtiagentbase/JNIHandleSet;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.agent.NativeImageAgent this
        start local 1 // com.oracle.svm.jni.nativeapi.JNIEnvironment env
         0: .line 97
            new com.oracle.svm.agent.NativeImageAgentJNIHandleSet
            dup
            aload 1 /* env */
            invokespecial com.oracle.svm.agent.NativeImageAgentJNIHandleSet.<init>:(Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;)V
            areturn
        end local 1 // com.oracle.svm.jni.nativeapi.JNIEnvironment env
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/agent/NativeImageAgent;
            0    1     1   env  Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
    MethodParameters:
      Name  Flags
      env   

  protected int onLoadCallback(com.oracle.svm.jni.nativeapi.JNIJavaVM, com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv, com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEventCallbacks, java.lang.String);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEventCallbacks;Ljava/lang/String;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=22, args_size=5
        start local 0 // com.oracle.svm.agent.NativeImageAgent this
        start local 1 // com.oracle.svm.jni.nativeapi.JNIJavaVM vm
        start local 2 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
        start local 3 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEventCallbacks callbacks
        start local 4 // java.lang.String options
         0: .line 102
            aconst_null
            astore 5 /* traceOutputFile */
        start local 5 // java.lang.String traceOutputFile
         1: .line 103
            aconst_null
            astore 6 /* configOutputDir */
        start local 6 // java.lang.String configOutputDir
         2: .line 104
            new com.oracle.svm.configure.config.ConfigurationSet
            dup
            invokespecial com.oracle.svm.configure.config.ConfigurationSet.<init>:()V
            astore 7 /* mergeConfigs */
        start local 7 // com.oracle.svm.configure.config.ConfigurationSet mergeConfigs
         3: .line 105
            iconst_1
            istore 8 /* builtinCallerFilter */
        start local 8 // boolean builtinCallerFilter
         4: .line 106
            iconst_1
            istore 9 /* builtinHeuristicFilter */
        start local 9 // boolean builtinHeuristicFilter
         5: .line 107
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* callerFilterFiles */
        start local 10 // java.util.List callerFilterFiles
         6: .line 108
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* accessFilterFiles */
        start local 11 // java.util.List accessFilterFiles
         7: .line 109
            iconst_1
            istore 12 /* experimentalClassLoaderSupport */
        start local 12 // boolean experimentalClassLoaderSupport
         8: .line 110
            iconst_0
            istore 13 /* build */
        start local 13 // boolean build
         9: .line 111
            iconst_m1
            istore 14 /* configWritePeriod */
        start local 14 // int configWritePeriod
        10: .line 112
            iconst_1
            istore 15 /* configWritePeriodInitialDelay */
        start local 15 // int configWritePeriodInitialDelay
        11: .line 113
            iconst_0
            istore 16 /* writeSerializationChecksums */
        start local 16 // boolean writeSerializationChecksums
        12: .line 115
            aload 4 /* options */
            invokevirtual java.lang.String.length:()I
            ifne 15
        13: .line 116
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "native-image-agent: invalid option string. Please read BuildConfiguration.md."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 117
            iconst_1
            ireturn
        15: .line 119
      StackMap locals: com.oracle.svm.agent.NativeImageAgent com.oracle.svm.jni.nativeapi.JNIJavaVM com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEventCallbacks java.lang.String java.lang.String java.lang.String com.oracle.svm.configure.config.ConfigurationSet int int java.util.List java.util.List int int int int int
      StackMap stack:
            aload 4 /* options */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 20
            arraylength
            istore 19
            iconst_0
            istore 18
            goto 90
      StackMap locals: com.oracle.svm.agent.NativeImageAgent com.oracle.svm.jni.nativeapi.JNIJavaVM com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEventCallbacks java.lang.String java.lang.String java.lang.String com.oracle.svm.configure.config.ConfigurationSet int int java.util.List java.util.List int int int int int top int int java.lang.String[]
      StackMap stack:
        16: aload 20
            iload 18
            aaload
            astore 17 /* token */
        start local 17 // java.lang.String token
        17: .line 120
            aload 17 /* token */
            ldc "trace-output="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 23
        18: .line 121
            aload 5 /* traceOutputFile */
            ifnull 21
        19: .line 122
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "native-image-agent: cannot specify trace-output= more than once."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 123
            iconst_1
            ireturn
        21: .line 125
      StackMap locals: com.oracle.svm.agent.NativeImageAgent com.oracle.svm.jni.nativeapi.JNIJavaVM com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEventCallbacks java.lang.String java.lang.String java.lang.String com.oracle.svm.configure.config.ConfigurationSet int int java.util.List java.util.List int int int int int java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* traceOutputFile */
        22: .line 126
            goto 89
      StackMap locals:
      StackMap stack:
        23: aload 17 /* token */
            ldc "config-output-dir="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 24
            aload 17 /* token */
            ldc "config-merge-dir="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 31
        24: .line 127
      StackMap locals:
      StackMap stack:
            aload 6 /* configOutputDir */
            ifnull 27
        25: .line 128
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "native-image-agent: cannot specify more than one of config-output-dir= or config-merge-dir=."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        26: .line 129
            iconst_1
            ireturn
        27: .line 131
      StackMap locals:
      StackMap stack:
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic com.oracle.svm.agent.NativeImageAgent.transformPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* configOutputDir */
        28: .line 132
            aload 17 /* token */
            ldc "config-merge-dir="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 89
        29: .line 133
            aload 7 /* mergeConfigs */
            aload 6 /* configOutputDir */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            invokevirtual com.oracle.svm.configure.config.ConfigurationSet.addDirectory:(Ljava/nio/file/Path;)V
        30: .line 135
            goto 89
      StackMap locals:
      StackMap stack:
        31: aload 17 /* token */
            ldc "restrict-all-dir"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 32
            aload 17 /* token */
            ldc "restrict"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 32
            aload 17 /* token */
            ldc "restrict="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 34
        32: .line 136
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "native-image-agent: restrict mode is no longer supported."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 137
            goto 89
      StackMap locals:
      StackMap stack:
        34: aload 17 /* token */
            ldc "no-builtin-caller-filter"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 37
        35: .line 138
            iconst_0
            istore 8 /* builtinCallerFilter */
        36: .line 139
            goto 89
      StackMap locals:
      StackMap stack:
        37: aload 17 /* token */
            ldc "builtin-caller-filter="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 40
        38: .line 140
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            istore 8 /* builtinCallerFilter */
        39: .line 141
            goto 89
      StackMap locals:
      StackMap stack:
        40: aload 17 /* token */
            ldc "no-builtin-heuristic-filter"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 43
        41: .line 142
            iconst_0
            istore 9 /* builtinHeuristicFilter */
        42: .line 143
            goto 89
      StackMap locals:
      StackMap stack:
        43: aload 17 /* token */
            ldc "builtin-heuristic-filter="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 46
        44: .line 144
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            istore 9 /* builtinHeuristicFilter */
        45: .line 145
            goto 89
      StackMap locals:
      StackMap stack:
        46: aload 17 /* token */
            ldc "no-filter"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 50
        47: .line 146
            iconst_0
            istore 8 /* builtinCallerFilter */
        48: .line 147
            iconst_0
            istore 9 /* builtinHeuristicFilter */
        49: .line 148
            goto 89
      StackMap locals:
      StackMap stack:
        50: aload 17 /* token */
            ldc "no-filter="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 56
        51: .line 149
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            ifeq 52
            iconst_0
            goto 53
      StackMap locals:
      StackMap stack:
        52: iconst_1
      StackMap locals:
      StackMap stack: int
        53: istore 8 /* builtinCallerFilter */
        54: .line 150
            iload 8 /* builtinCallerFilter */
            istore 9 /* builtinHeuristicFilter */
        55: .line 151
            goto 89
      StackMap locals:
      StackMap stack:
        56: aload 17 /* token */
            ldc "caller-filter-file="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 59
        57: .line 152
            aload 10 /* callerFilterFiles */
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        58: .line 153
            goto 89
      StackMap locals:
      StackMap stack:
        59: aload 17 /* token */
            ldc "access-filter-file="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 62
        60: .line 154
            aload 11 /* accessFilterFiles */
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        61: .line 155
            goto 89
      StackMap locals:
      StackMap stack:
        62: aload 17 /* token */
            ldc "experimental-class-loader-support"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 65
        63: .line 156
            iconst_1
            istore 12 /* experimentalClassLoaderSupport */
        64: .line 157
            goto 89
      StackMap locals:
      StackMap stack:
        65: aload 17 /* token */
            ldc "experimental-class-loader-support="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 68
        66: .line 158
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            istore 12 /* experimentalClassLoaderSupport */
        67: .line 159
            goto 89
      StackMap locals:
      StackMap stack:
        68: aload 17 /* token */
            ldc "config-write-period-secs="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 73
        69: .line 160
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic com.oracle.svm.agent.NativeImageAgent.parseIntegerOrNegative:(Ljava/lang/String;)I
            istore 14 /* configWritePeriod */
        70: .line 161
            iload 14 /* configWritePeriod */
            ifgt 89
        71: .line 162
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "native-image-agent: config-write-period-secs can only be an integer greater than 0"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        72: .line 163
            iconst_1
            ireturn
        73: .line 165
      StackMap locals:
      StackMap stack:
            aload 17 /* token */
            ldc "config-write-initial-delay-secs="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 78
        74: .line 166
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic com.oracle.svm.agent.NativeImageAgent.parseIntegerOrNegative:(Ljava/lang/String;)I
            istore 15 /* configWritePeriodInitialDelay */
        75: .line 167
            iload 15 /* configWritePeriodInitialDelay */
            ifge 89
        76: .line 168
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "native-image-agent: config-write-initial-delay-secs can only be an integer greater or equal to 0"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        77: .line 169
            iconst_1
            ireturn
        78: .line 171
      StackMap locals:
      StackMap stack:
            aload 17 /* token */
            ldc "write-serialization-checksums="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 81
        79: .line 172
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            istore 16 /* writeSerializationChecksums */
        80: .line 173
            goto 89
      StackMap locals:
      StackMap stack:
        81: aload 17 /* token */
            ldc "build"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 84
        82: .line 174
            iconst_1
            istore 13 /* build */
        83: .line 175
            goto 89
      StackMap locals:
      StackMap stack:
        84: aload 17 /* token */
            ldc "build="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 87
        85: .line 176
            aload 17 /* token */
            invokestatic com.oracle.svm.agent.NativeImageAgent.getTokenValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            istore 13 /* build */
        86: .line 177
            goto 89
        87: .line 178
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "native-image-agent: unsupported option: '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 17 /* token */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'. Please read BuildConfiguration.md."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        88: .line 179
            iconst_1
            ireturn
        end local 17 // java.lang.String token
        89: .line 119
      StackMap locals: com.oracle.svm.agent.NativeImageAgent com.oracle.svm.jni.nativeapi.JNIJavaVM com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEventCallbacks java.lang.String java.lang.String java.lang.String com.oracle.svm.configure.config.ConfigurationSet int int java.util.List java.util.List int int int int int top int int java.lang.String[]
      StackMap stack:
            iinc 18 1
      StackMap locals:
      StackMap stack:
        90: iload 18
            iload 19
            if_icmplt 16
        91: .line 183
            aload 5 /* traceOutputFile */
            ifnonnull 94
            aload 6 /* configOutputDir */
            ifnonnull 94
            iload 13 /* build */
            ifne 94
        92: .line 184
            ldc "native-image-agent_config-pid{pid}-{datetime}/"
            invokestatic com.oracle.svm.agent.NativeImageAgent.transformPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* configOutputDir */
        93: .line 185
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "native-image-agent: no output/build options provided, tracking dynamic accesses and writing configuration to directory: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* configOutputDir */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        94: .line 188
      StackMap locals: com.oracle.svm.agent.NativeImageAgent com.oracle.svm.jni.nativeapi.JNIJavaVM com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEventCallbacks java.lang.String java.lang.String java.lang.String com.oracle.svm.configure.config.ConfigurationSet int int java.util.List java.util.List int int int int int
      StackMap stack:
            aconst_null
            astore 17 /* callerFilter */
        start local 17 // com.oracle.svm.configure.filters.RuleNode callerFilter
        95: .line 189
            iload 8 /* builtinCallerFilter */
            ifne 98
        96: .line 190
            invokestatic com.oracle.svm.configure.filters.RuleNode.createRoot:()Lcom/oracle/svm/configure/filters/RuleNode;
            astore 17 /* callerFilter */
        97: .line 191
            aload 17 /* callerFilter */
            ldc "**"
            getstatic com.oracle.svm.configure.filters.RuleNode$Inclusion.Include:Lcom/oracle/svm/configure/filters/RuleNode$Inclusion;
            invokevirtual com.oracle.svm.configure.filters.RuleNode.addOrGetChildren:(Ljava/lang/String;Lcom/oracle/svm/configure/filters/RuleNode$Inclusion;)V
        98: .line 193
      StackMap locals: com.oracle.svm.configure.filters.RuleNode
      StackMap stack:
            aload 10 /* callerFilterFiles */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 103
        99: .line 194
            aload 17 /* callerFilter */
            ifnonnull 101
       100: .line 195
            invokestatic com.oracle.svm.configure.trace.AccessAdvisor.copyBuiltinCallerFilterTree:()Lcom/oracle/svm/configure/filters/RuleNode;
            astore 17 /* callerFilter */
       101: .line 197
      StackMap locals:
      StackMap stack:
            aload 17 /* callerFilter */
            aload 10 /* callerFilterFiles */
            invokestatic com.oracle.svm.agent.NativeImageAgent.parseFilterFiles:(Lcom/oracle/svm/configure/filters/RuleNode;Ljava/util/List;)Z
            ifne 103
       102: .line 198
            iconst_1
            ireturn
       103: .line 202
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 18 /* accessFilter */
        start local 18 // com.oracle.svm.configure.filters.RuleNode accessFilter
       104: .line 203
            aload 11 /* accessFilterFiles */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 108
       105: .line 204
            invokestatic com.oracle.svm.configure.trace.AccessAdvisor.copyBuiltinAccessFilterTree:()Lcom/oracle/svm/configure/filters/RuleNode;
            astore 18 /* accessFilter */
       106: .line 205
            aload 18 /* accessFilter */
            aload 11 /* accessFilterFiles */
            invokestatic com.oracle.svm.agent.NativeImageAgent.parseFilterFiles:(Lcom/oracle/svm/configure/filters/RuleNode;Ljava/util/List;)Z
            ifne 108
       107: .line 206
            iconst_1
            ireturn
       108: .line 210
      StackMap locals: com.oracle.svm.configure.filters.RuleNode
      StackMap stack:
            aload 6 /* configOutputDir */
            ifnull 125
       109: .line 211
            aload 5 /* traceOutputFile */
            ifnull 112
       110: .line 212
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "native-image-agent: can only once specify exactly one of trace-output=, config-output-dir= or config-merge-dir=."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       111: .line 213
            iconst_1
            ireturn
       112: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* configOutputDir */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            putfield com.oracle.svm.agent.NativeImageAgent.configOutputDirPath:Ljava/nio/file/Path;
       113: .line 217
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.configOutputDirPath:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 115
       114: .line 218
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.configOutputDirPath:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
       115: .line 220
      StackMap locals:
      StackMap stack:
            invokedynamic apply()Ljava/util/function/Function;
              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/Object;)Ljava/lang/Object;
                  com/oracle/svm/agent/NativeImageAgent.lambda$0(Ljava/io/IOException;)Ljava/lang/Exception; (6)
                  (Ljava/io/IOException;)Ljava/lang/Exception;
            astore 19 /* handler */
        start local 19 // java.util.function.Function handler
       116: .line 230
            iload 9 /* builtinHeuristicFilter */
            aload 17 /* callerFilter */
            aload 18 /* accessFilter */
            invokestatic com.oracle.svm.agent.NativeImageAgent.createAccessAdvisor:(ZLcom/oracle/svm/configure/filters/RuleNode;Lcom/oracle/svm/configure/filters/RuleNode;)Lcom/oracle/svm/configure/trace/AccessAdvisor;
            astore 20 /* advisor */
        start local 20 // com.oracle.svm.configure.trace.AccessAdvisor advisor
       117: .line 231
            new com.oracle.svm.configure.trace.TraceProcessor
            dup
            aload 20 /* advisor */
            aload 7 /* mergeConfigs */
            aload 19 /* handler */
            invokevirtual com.oracle.svm.configure.config.ConfigurationSet.loadJniConfig:(Ljava/util/function/Function;)Lcom/oracle/svm/configure/config/TypeConfiguration;
            aload 7 /* mergeConfigs */
            aload 19 /* handler */
            invokevirtual com.oracle.svm.configure.config.ConfigurationSet.loadReflectConfig:(Ljava/util/function/Function;)Lcom/oracle/svm/configure/config/TypeConfiguration;
       118: .line 232
            aload 7 /* mergeConfigs */
            aload 19 /* handler */
            invokevirtual com.oracle.svm.configure.config.ConfigurationSet.loadProxyConfig:(Ljava/util/function/Function;)Lcom/oracle/svm/configure/config/ProxyConfiguration;
            aload 7 /* mergeConfigs */
            aload 19 /* handler */
            invokevirtual com.oracle.svm.configure.config.ConfigurationSet.loadResourceConfig:(Ljava/util/function/Function;)Lcom/oracle/svm/configure/config/ResourceConfiguration;
            aload 7 /* mergeConfigs */
            aload 19 /* handler */
            invokevirtual com.oracle.svm.configure.config.ConfigurationSet.loadSerializationConfig:(Ljava/util/function/Function;)Lcom/oracle/svm/configure/config/SerializationConfiguration;
       119: .line 231
            invokespecial com.oracle.svm.configure.trace.TraceProcessor.<init>:(Lcom/oracle/svm/configure/trace/AccessAdvisor;Lcom/oracle/svm/configure/config/TypeConfiguration;Lcom/oracle/svm/configure/config/TypeConfiguration;Lcom/oracle/svm/configure/config/ProxyConfiguration;Lcom/oracle/svm/configure/config/ResourceConfiguration;Lcom/oracle/svm/configure/config/SerializationConfiguration;)V
            astore 21 /* processor */
        start local 21 // com.oracle.svm.configure.trace.TraceProcessor processor
       120: .line 233
            aload 0 /* this */
            new com.oracle.svm.agent.TraceProcessorWriterAdapter
            dup
            aload 21 /* processor */
            invokespecial com.oracle.svm.agent.TraceProcessorWriterAdapter.<init>:(Lcom/oracle/svm/configure/trace/TraceProcessor;)V
            putfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
        end local 21 // com.oracle.svm.configure.trace.TraceProcessor processor
        end local 20 // com.oracle.svm.configure.trace.AccessAdvisor advisor
        end local 19 // java.util.function.Function handler
       121: .line 234
            goto 132
      StackMap locals:
      StackMap stack: java.lang.Throwable
       122: astore 19 /* t */
        start local 19 // java.lang.Throwable t
       123: .line 235
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "native-image-agent: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 19 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       124: .line 236
            iconst_2
            ireturn
        end local 19 // java.lang.Throwable t
       125: .line 238
      StackMap locals:
      StackMap stack:
            aload 5 /* traceOutputFile */
            ifnull 132
       126: .line 240
            aload 5 /* traceOutputFile */
            invokestatic com.oracle.svm.agent.NativeImageAgent.transformPath:(Ljava/lang/String;)Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 19 /* path */
        start local 19 // java.nio.file.Path path
       127: .line 241
            aload 0 /* this */
            new com.oracle.svm.agent.TraceFileWriter
            dup
            aload 19 /* path */
            invokespecial com.oracle.svm.agent.TraceFileWriter.<init>:(Ljava/nio/file/Path;)V
            putfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
        end local 19 // java.nio.file.Path path
       128: .line 242
            goto 132
      StackMap locals:
      StackMap stack: java.lang.Throwable
       129: astore 19 /* t */
        start local 19 // java.lang.Throwable t
       130: .line 243
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "native-image-agent: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 19 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       131: .line 244
            iconst_2
            ireturn
        end local 19 // java.lang.Throwable t
       132: .line 248
      StackMap locals:
      StackMap stack:
            iload 13 /* build */
            ifeq 135
       133: .line 249
            aload 2 /* jvmti */
            invokestatic com.oracle.svm.agent.NativeImageAgent.buildImage:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;)I
            istore 19 /* status */
        start local 19 // int status
       134: .line 250
            iload 19 /* status */
            invokestatic java.lang.System.exit:(I)V
        end local 19 // int status
       135: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 9 /* builtinHeuristicFilter */
            aload 17 /* callerFilter */
            aload 18 /* accessFilter */
            invokestatic com.oracle.svm.agent.NativeImageAgent.createAccessAdvisor:(ZLcom/oracle/svm/configure/filters/RuleNode;Lcom/oracle/svm/configure/filters/RuleNode;)Lcom/oracle/svm/configure/trace/AccessAdvisor;
            putfield com.oracle.svm.agent.NativeImageAgent.accessAdvisor:Lcom/oracle/svm/configure/trace/AccessAdvisor;
       136: .line 255
            aload 2 /* jvmti */
            aload 3 /* callbacks */
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            aload 0 /* this */
            iload 12 /* experimentalClassLoaderSupport */
            iload 16 /* writeSerializationChecksums */
            invokestatic com.oracle.svm.agent.BreakpointInterceptor.onLoad:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEventCallbacks;Lcom/oracle/svm/agent/TraceWriter;Lcom/oracle/svm/agent/NativeImageAgent;ZZ)V
       137: .line 256
            goto 141
      StackMap locals:
      StackMap stack: java.lang.Throwable
       138: astore 19 /* t */
        start local 19 // java.lang.Throwable t
       139: .line 257
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "native-image-agent: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 19 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       140: .line 258
            iconst_3
            ireturn
        end local 19 // java.lang.Throwable t
       141: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            aload 0 /* this */
            invokestatic com.oracle.svm.agent.JniCallInterceptor.onLoad:(Lcom/oracle/svm/agent/TraceWriter;Lcom/oracle/svm/agent/NativeImageAgent;)V
       142: .line 262
            goto 146
      StackMap locals:
      StackMap stack: java.lang.Throwable
       143: astore 19 /* t */
        start local 19 // java.lang.Throwable t
       144: .line 263
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "native-image-agent: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 19 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       145: .line 264
            iconst_4
            ireturn
        end local 19 // java.lang.Throwable t
       146: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 14 /* configWritePeriod */
            iload 15 /* configWritePeriodInitialDelay */
            invokevirtual com.oracle.svm.agent.NativeImageAgent.setupExecutorServiceForPeriodicConfigurationCapture:(II)V
       147: .line 268
            iconst_0
            ireturn
        end local 18 // com.oracle.svm.configure.filters.RuleNode accessFilter
        end local 17 // com.oracle.svm.configure.filters.RuleNode callerFilter
        end local 16 // boolean writeSerializationChecksums
        end local 15 // int configWritePeriodInitialDelay
        end local 14 // int configWritePeriod
        end local 13 // boolean build
        end local 12 // boolean experimentalClassLoaderSupport
        end local 11 // java.util.List accessFilterFiles
        end local 10 // java.util.List callerFilterFiles
        end local 9 // boolean builtinHeuristicFilter
        end local 8 // boolean builtinCallerFilter
        end local 7 // com.oracle.svm.configure.config.ConfigurationSet mergeConfigs
        end local 6 // java.lang.String configOutputDir
        end local 5 // java.lang.String traceOutputFile
        end local 4 // java.lang.String options
        end local 3 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEventCallbacks callbacks
        end local 2 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
        end local 1 // com.oracle.svm.jni.nativeapi.JNIJavaVM vm
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0  148     0                            this  Lcom/oracle/svm/agent/NativeImageAgent;
            0  148     1                              vm  Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;
            0  148     2                           jvmti  Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
            0  148     3                       callbacks  Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEventCallbacks;
            0  148     4                         options  Ljava/lang/String;
            1  148     5                 traceOutputFile  Ljava/lang/String;
            2  148     6                 configOutputDir  Ljava/lang/String;
            3  148     7                    mergeConfigs  Lcom/oracle/svm/configure/config/ConfigurationSet;
            4  148     8             builtinCallerFilter  Z
            5  148     9          builtinHeuristicFilter  Z
            6  148    10               callerFilterFiles  Ljava/util/List<Ljava/lang/String;>;
            7  148    11               accessFilterFiles  Ljava/util/List<Ljava/lang/String;>;
            8  148    12  experimentalClassLoaderSupport  Z
            9  148    13                           build  Z
           10  148    14               configWritePeriod  I
           11  148    15   configWritePeriodInitialDelay  I
           12  148    16     writeSerializationChecksums  Z
           17   89    17                           token  Ljava/lang/String;
           95  148    17                    callerFilter  Lcom/oracle/svm/configure/filters/RuleNode;
          104  148    18                    accessFilter  Lcom/oracle/svm/configure/filters/RuleNode;
          116  121    19                         handler  Ljava/util/function/Function<Ljava/io/IOException;Ljava/lang/Exception;>;
          117  121    20                         advisor  Lcom/oracle/svm/configure/trace/AccessAdvisor;
          120  121    21                       processor  Lcom/oracle/svm/configure/trace/TraceProcessor;
          123  125    19                               t  Ljava/lang/Throwable;
          127  128    19                            path  Ljava/nio/file/Path;
          130  132    19                               t  Ljava/lang/Throwable;
          134  135    19                          status  I
          139  141    19                               t  Ljava/lang/Throwable;
          144  146    19                               t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
         112   121     122  Class java.lang.Throwable
         126   128     129  Class java.lang.Throwable
         136   137     138  Class java.lang.Throwable
         141   142     143  Class java.lang.Throwable
    MethodParameters:
           Name  Flags
      vm         
      jvmti      
      callbacks  
      options    

  private static com.oracle.svm.configure.trace.AccessAdvisor createAccessAdvisor(boolean, com.oracle.svm.configure.filters.RuleNode, com.oracle.svm.configure.filters.RuleNode);
    descriptor: (ZLcom/oracle/svm/configure/filters/RuleNode;Lcom/oracle/svm/configure/filters/RuleNode;)Lcom/oracle/svm/configure/trace/AccessAdvisor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // boolean builtinHeuristicFilter
        start local 1 // com.oracle.svm.configure.filters.RuleNode callerFilter
        start local 2 // com.oracle.svm.configure.filters.RuleNode accessFilter
         0: .line 272
            new com.oracle.svm.configure.trace.AccessAdvisor
            dup
            invokespecial com.oracle.svm.configure.trace.AccessAdvisor.<init>:()V
            astore 3 /* advisor */
        start local 3 // com.oracle.svm.configure.trace.AccessAdvisor advisor
         1: .line 273
            aload 3 /* advisor */
            iload 0 /* builtinHeuristicFilter */
            invokevirtual com.oracle.svm.configure.trace.AccessAdvisor.setHeuristicsEnabled:(Z)V
         2: .line 274
            aload 1 /* callerFilter */
            ifnull 4
         3: .line 275
            aload 3 /* advisor */
            aload 1 /* callerFilter */
            invokevirtual com.oracle.svm.configure.trace.AccessAdvisor.setCallerFilterTree:(Lcom/oracle/svm/configure/filters/RuleNode;)V
         4: .line 277
      StackMap locals: com.oracle.svm.configure.trace.AccessAdvisor
      StackMap stack:
            aload 2 /* accessFilter */
            ifnull 6
         5: .line 278
            aload 3 /* advisor */
            aload 2 /* accessFilter */
            invokevirtual com.oracle.svm.configure.trace.AccessAdvisor.setAccessFilterTree:(Lcom/oracle/svm/configure/filters/RuleNode;)V
         6: .line 280
      StackMap locals:
      StackMap stack:
            aload 3 /* advisor */
            areturn
        end local 3 // com.oracle.svm.configure.trace.AccessAdvisor advisor
        end local 2 // com.oracle.svm.configure.filters.RuleNode accessFilter
        end local 1 // com.oracle.svm.configure.filters.RuleNode callerFilter
        end local 0 // boolean builtinHeuristicFilter
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0  builtinHeuristicFilter  Z
            0    7     1            callerFilter  Lcom/oracle/svm/configure/filters/RuleNode;
            0    7     2            accessFilter  Lcom/oracle/svm/configure/filters/RuleNode;
            1    7     3                 advisor  Lcom/oracle/svm/configure/trace/AccessAdvisor;
    MethodParameters:
                        Name  Flags
      builtinHeuristicFilter  
      callerFilter            
      accessFilter            

  private static int parseIntegerOrNegative(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String number
         0: .line 285
            aload 0 /* number */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
         1: ireturn
         2: .line 286
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
         3: .line 287
            iconst_m1
            ireturn
        end local 0 // java.lang.String number
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  number  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NumberFormatException
    MethodParameters:
        Name  Flags
      number  

  private static boolean parseFilterFiles(com.oracle.svm.configure.filters.RuleNode, java.util.List<java.lang.String>);
    descriptor: (Lcom/oracle/svm/configure/filters/RuleNode;Ljava/util/List;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.oracle.svm.configure.filters.RuleNode filter
        start local 1 // java.util.List filterFiles
         0: .line 292
            aload 1 /* filterFiles */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 14
      StackMap locals: com.oracle.svm.configure.filters.RuleNode java.util.List top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* path */
        start local 2 // java.lang.String path
         2: .line 293
            aconst_null
            astore 4
            aconst_null
            astore 5
         3: new java.io.FileReader
            dup
            aload 2 /* path */
            invokespecial java.io.FileReader.<init>:(Ljava/lang/String;)V
            astore 6 /* reader */
        start local 6 // java.io.Reader reader
         4: .line 294
            new com.oracle.svm.configure.filters.FilterConfigurationParser
            dup
            aload 0 /* filter */
            invokespecial com.oracle.svm.configure.filters.FilterConfigurationParser.<init>:(Lcom/oracle/svm/configure/filters/RuleNode;)V
            aload 6 /* reader */
            invokevirtual com.oracle.svm.configure.filters.FilterConfigurationParser.parseAndRegister:(Ljava/io/Reader;)V
         5: .line 295
            aload 6 /* reader */
            ifnull 14
            aload 6 /* reader */
            invokevirtual java.io.Reader.close:()V
            goto 14
      StackMap locals: com.oracle.svm.configure.filters.RuleNode java.util.List java.lang.String java.util.Iterator java.lang.Throwable java.lang.Throwable java.io.Reader
      StackMap stack: java.lang.Throwable
         6: astore 4
            aload 6 /* reader */
            ifnull 7
            aload 6 /* reader */
            invokevirtual java.io.Reader.close:()V
        end local 6 // java.io.Reader reader
      StackMap locals:
      StackMap stack:
         7: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 5
            aload 4
            ifnonnull 9
            aload 5
            astore 4
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 4
            aload 5
            if_acmpeq 10
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 4
            athrow
      StackMap locals: com.oracle.svm.configure.filters.RuleNode java.util.List java.lang.String java.util.Iterator
      StackMap stack: java.lang.Exception
        11: astore 4 /* e */
        start local 4 // java.lang.Exception e
        12: .line 296
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "native-image-agent: cannot parse filter file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        13: .line 297
            iconst_0
            ireturn
        end local 4 // java.lang.Exception e
        end local 2 // java.lang.String path
        14: .line 292
      StackMap locals: com.oracle.svm.configure.filters.RuleNode java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        15: .line 300
            aload 0 /* filter */
            invokevirtual com.oracle.svm.configure.filters.RuleNode.removeRedundantNodes:()V
        16: .line 301
            iconst_1
            ireturn
        end local 1 // java.util.List filterFiles
        end local 0 // com.oracle.svm.configure.filters.RuleNode filter
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0       filter  Lcom/oracle/svm/configure/filters/RuleNode;
            0   17     1  filterFiles  Ljava/util/List<Ljava/lang/String;>;
            2   14     2         path  Ljava/lang/String;
            4    7     6       reader  Ljava/io/Reader;
           12   14     4            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  any
           3     8       8  any
           2    11      11  Class java.lang.Exception
    Signature: (Lcom/oracle/svm/configure/filters/RuleNode;Ljava/util/List<Ljava/lang/String;>;)Z
    MethodParameters:
             Name  Flags
      filter       
      filterFiles  

  private void setupExecutorServiceForPeriodicConfigurationCapture(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.oracle.svm.agent.NativeImageAgent this
        start local 1 // int writePeriod
        start local 2 // int initialDelay
         0: .line 305
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.configOutputDirPath:Ljava/nio/file/Path;
            ifnonnull 2
         1: .line 306
      StackMap locals:
      StackMap stack:
            return
         2: .line 310
      StackMap locals:
      StackMap stack:
            iload 1 /* writePeriod */
            iconst_m1
            if_icmpne 4
         3: .line 311
            return
         4: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.concurrent.ScheduledThreadPoolExecutor
            dup
            iconst_1
            invokedynamic newThread()Ljava/util/concurrent/ThreadFactory;
              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/Runnable;)Ljava/lang/Thread;
                  com/oracle/svm/agent/NativeImageAgent.lambda$1(Ljava/lang/Runnable;)Ljava/lang/Thread; (6)
                  (Ljava/lang/Runnable;)Ljava/lang/Thread;
            invokespecial java.util.concurrent.ScheduledThreadPoolExecutor.<init>:(ILjava/util/concurrent/ThreadFactory;)V
            putfield com.oracle.svm.agent.NativeImageAgent.periodicConfigWriterExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
         5: .line 320
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.periodicConfigWriterExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
            iconst_1
            invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.setRemoveOnCancelPolicy:(Z)V
         6: .line 321
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.periodicConfigWriterExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
            iconst_0
            invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy:(Z)V
         7: .line 322
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.periodicConfigWriterExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
            aload 0 /* this */
            invokedynamic run(Lcom/oracle/svm/agent/NativeImageAgent;)Ljava/lang/Runnable;
              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:
                  ()V
                  com/oracle/svm/agent/NativeImageAgent.writeConfigurationFiles()V (7)
                  ()V
         8: .line 323
            iload 2 /* initialDelay */
            i2l
            iload 1 /* writePeriod */
            i2l
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
         9: .line 322
            invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            pop
        10: .line 324
            return
        end local 2 // int initialDelay
        end local 1 // int writePeriod
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lcom/oracle/svm/agent/NativeImageAgent;
            0   11     1   writePeriod  I
            0   11     2  initialDelay  I
    MethodParameters:
              Name  Flags
      writePeriod   
      initialDelay  

  private static int buildImage(com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv);
    descriptor: (Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=1
        start local 0 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
         0: .line 330
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Building native image ..."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 331
            aload 0 /* jvmti */
            ldc "java.class.path"
            invokestatic com.oracle.svm.jvmtiagentbase.Support.getSystemProperty:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* classpath */
        start local 1 // java.lang.String classpath
         2: .line 332
            aload 1 /* classpath */
            ifnonnull 5
         3: .line 333
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "native-image-agent: build mode could not determine classpath"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 334
            iconst_1
            ireturn
         5: .line 336
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* jvmti */
            ldc "sun.java.command"
            invokestatic com.oracle.svm.jvmtiagentbase.Support.getSystemProperty:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* javaCommand */
        start local 2 // java.lang.String javaCommand
         6: .line 337
            ldc "native-image-agent: build mode could not determine main class"
            astore 3 /* mainClassMissing */
        start local 3 // java.lang.String mainClassMissing
         7: .line 338
            aload 2 /* javaCommand */
            ifnonnull 10
         8: .line 339
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 3 /* mainClassMissing */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 340
            iconst_1
            ireturn
        10: .line 342
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* javaCommand */
            ldc " "
            invokestatic com.oracle.svm.core.SubstrateUtil.split:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            astore 4 /* mainClass */
        start local 4 // java.lang.String mainClass
        11: .line 343
            aload 4 /* mainClass */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 14
        12: .line 344
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 3 /* mainClassMissing */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        13: .line 345
            iconst_1
            ireturn
        14: .line 347
      StackMap locals: java.lang.String
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* buildArgs */
        start local 5 // java.util.List buildArgs
        15: .line 349
            aload 0 /* jvmti */
            invokestatic com.oracle.svm.jvmtiagentbase.Support.getSystemProperties:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;)[Ljava/lang/String;
            astore 6 /* keys */
        start local 6 // java.lang.String[] keys
        16: .line 350
            aload 6 /* keys */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 26
      StackMap locals: com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        17: aload 10
            iload 8
            aaload
            astore 7 /* key */
        start local 7 // java.lang.String key
        18: .line 351
            getstatic com.oracle.svm.agent.NativeImageAgent.propertyWhitelist:Ljava/util/regex/Pattern;
            aload 7 /* key */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            istore 11 /* whitelisted */
        start local 11 // boolean whitelisted
        19: .line 352
            iload 11 /* whitelisted */
            ifne 20
            getstatic com.oracle.svm.agent.NativeImageAgent.propertyBlacklist:Ljava/util/regex/Pattern;
            aload 7 /* key */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 20
            iconst_1
            goto 21
      StackMap locals: com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.lang.String[] java.lang.String int int java.lang.String[] int
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: istore 12 /* blacklisted */
        start local 12 // boolean blacklisted
        22: .line 353
            iload 12 /* blacklisted */
            ifeq 24
        23: .line 354
            goto 25
        24: .line 356
      StackMap locals: int
      StackMap stack:
            aload 5 /* buildArgs */
            new java.lang.StringBuilder
            dup
            ldc "-D"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* jvmti */
            aload 7 /* key */
            invokestatic com.oracle.svm.jvmtiagentbase.Support.getSystemProperty:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // boolean blacklisted
        end local 11 // boolean whitelisted
        end local 7 // java.lang.String key
        25: .line 350
      StackMap locals: com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        26: iload 8
            iload 9
            if_icmplt 17
        27: .line 358
            aload 4 /* mainClass */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 30
        28: .line 359
            aload 5 /* buildArgs */
            ldc "-jar"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 360
            goto 31
        30: .line 361
      StackMap locals: com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.lang.String[]
      StackMap stack:
            aload 5 /* buildArgs */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "-cp"
            aastore
            dup
            iconst_1
            aload 1 /* classpath */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        31: .line 363
      StackMap locals:
      StackMap stack:
            aload 5 /* buildArgs */
            aload 4 /* mainClass */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        32: .line 364
            aload 5 /* buildArgs */
            ldc "native-image-agent.build"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        33: .line 366
            aload 0 /* jvmti */
            ldc "java.home"
            invokestatic com.oracle.svm.jvmtiagentbase.Support.getSystemProperty:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Ljava/lang/String;)Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 7 /* javaHome */
        start local 7 // java.nio.file.Path javaHome
        34: .line 367
            aload 0 /* jvmti */
            ldc "user.dir"
            invokestatic com.oracle.svm.jvmtiagentbase.Support.getSystemProperty:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* userDirStr */
        start local 8 // java.lang.String userDirStr
        35: .line 368
            aload 7 /* javaHome */
            aload 8 /* userDirStr */
            ifnonnull 36
            aconst_null
            goto 37
      StackMap locals: com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.lang.String[] java.nio.file.Path java.lang.String
      StackMap stack: java.nio.file.Path
        36: aload 8 /* userDirStr */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
      StackMap locals: com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.lang.String[] java.nio.file.Path java.lang.String
      StackMap stack: java.nio.file.Path java.nio.file.Path
        37: aload 5 /* buildArgs */
            invokestatic com.oracle.svm.driver.NativeImage.agentBuild:(Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/util/List;)V
        38: .line 369
            iconst_0
            ireturn
        end local 8 // java.lang.String userDirStr
        end local 7 // java.nio.file.Path javaHome
        end local 6 // java.lang.String[] keys
        end local 5 // java.util.List buildArgs
        end local 4 // java.lang.String mainClass
        end local 3 // java.lang.String mainClassMissing
        end local 2 // java.lang.String javaCommand
        end local 1 // java.lang.String classpath
        end local 0 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   39     0             jvmti  Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
            2   39     1         classpath  Ljava/lang/String;
            6   39     2       javaCommand  Ljava/lang/String;
            7   39     3  mainClassMissing  Ljava/lang/String;
           11   39     4         mainClass  Ljava/lang/String;
           15   39     5         buildArgs  Ljava/util/List<Ljava/lang/String;>;
           16   39     6              keys  [Ljava/lang/String;
           18   25     7               key  Ljava/lang/String;
           19   25    11       whitelisted  Z
           22   25    12       blacklisted  Z
           34   39     7          javaHome  Ljava/nio/file/Path;
           35   39     8        userDirStr  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      jvmti  

  private static java.lang.String transformPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String path
         0: .line 373
            aload 0 /* path */
            astore 1 /* result */
        start local 1 // java.lang.String result
         1: .line 374
            aload 1 /* result */
            ldc "{pid}"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 3
         2: .line 375
            aload 1 /* result */
            ldc "{pid}"
            invokestatic org.graalvm.nativeimage.ProcessProperties.getProcessID:()J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 1 /* result */
         3: .line 377
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* result */
            ldc "{datetime}"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 7
         4: .line 378
            new java.text.SimpleDateFormat
            dup
            ldc "yyyyMMdd'T'HHmmss'Z'"
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;)V
            astore 2 /* fmt */
        start local 2 // java.text.DateFormat fmt
         5: .line 379
            aload 2 /* fmt */
            getstatic com.oracle.svm.agent.NativeImageAgent.UTC_TIMEZONE:Ljava/util/TimeZone;
            invokevirtual java.text.DateFormat.setTimeZone:(Ljava/util/TimeZone;)V
         6: .line 380
            aload 1 /* result */
            ldc "{datetime}"
            aload 2 /* fmt */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.text.DateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 1 /* result */
        end local 2 // java.text.DateFormat fmt
         7: .line 382
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // java.lang.String result
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    path  Ljava/lang/String;
            1    8     1  result  Ljava/lang/String;
            5    7     2     fmt  Ljava/text/DateFormat;
    MethodParameters:
      Name  Flags
      path  

  protected void onVMInitCallback(com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv, com.oracle.svm.jni.nativeapi.JNIEnvironment, com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.svm.agent.NativeImageAgent this
        start local 1 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
        start local 2 // com.oracle.svm.jni.nativeapi.JNIEnvironment jni
        start local 3 // com.oracle.svm.jni.nativeapi.JNIObjectHandle thread
         0: .line 387
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.accessAdvisor:Lcom/oracle/svm/configure/trace/AccessAdvisor;
            iconst_1
            invokevirtual com.oracle.svm.configure.trace.AccessAdvisor.setInLivePhase:(Z)V
         1: .line 388
            aload 1 /* jvmti */
            aload 2 /* jni */
            invokestatic com.oracle.svm.agent.BreakpointInterceptor.onVMInit:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;)V
         2: .line 389
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            ifnull 4
         3: .line 390
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            ldc "live"
            invokevirtual com.oracle.svm.agent.TraceWriter.tracePhaseChange:(Ljava/lang/String;)V
         4: .line 392
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.svm.jni.nativeapi.JNIObjectHandle thread
        end local 2 // com.oracle.svm.jni.nativeapi.JNIEnvironment jni
        end local 1 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/svm/agent/NativeImageAgent;
            0    5     1   jvmti  Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
            0    5     2     jni  Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
            0    5     3  thread  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    MethodParameters:
        Name  Flags
      jvmti   
      jni     
      thread  

  protected void onVMStartCallback(com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv, com.oracle.svm.jni.nativeapi.JNIEnvironment);
    descriptor: (Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.svm.agent.NativeImageAgent this
        start local 1 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
        start local 2 // com.oracle.svm.jni.nativeapi.JNIEnvironment jni
         0: .line 396
            aload 1 /* jvmti */
            invokestatic com.oracle.svm.agent.JniCallInterceptor.onVMStart:(Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;)V
         1: .line 397
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            ifnull 3
         2: .line 398
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            ldc "start"
            invokevirtual com.oracle.svm.agent.TraceWriter.tracePhaseChange:(Ljava/lang/String;)V
         3: .line 400
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.svm.jni.nativeapi.JNIEnvironment jni
        end local 1 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/svm/agent/NativeImageAgent;
            0    4     1  jvmti  Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
            0    4     2    jni  Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
    MethodParameters:
       Name  Flags
      jvmti  
      jni    

  protected void onVMDeathCallback(com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv, com.oracle.svm.jni.nativeapi.JNIEnvironment);
    descriptor: (Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.svm.agent.NativeImageAgent this
        start local 1 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
        start local 2 // com.oracle.svm.jni.nativeapi.JNIEnvironment jni
         0: .line 404
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.accessAdvisor:Lcom/oracle/svm/configure/trace/AccessAdvisor;
            iconst_0
            invokevirtual com.oracle.svm.configure.trace.AccessAdvisor.setInLivePhase:(Z)V
         1: .line 405
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            ifnull 3
         2: .line 406
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            ldc "dead"
            invokevirtual com.oracle.svm.agent.TraceWriter.tracePhaseChange:(Ljava/lang/String;)V
         3: .line 408
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.svm.jni.nativeapi.JNIEnvironment jni
        end local 1 // com.oracle.svm.jvmtiagentbase.jvmti.JvmtiEnv jvmti
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/svm/agent/NativeImageAgent;
            0    4     1  jvmti  Lcom/oracle/svm/jvmtiagentbase/jvmti/JvmtiEnv;
            0    4     2    jni  Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
    MethodParameters:
       Name  Flags
      jvmti  
      jni    

  private void writeConfigurationFiles();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // com.oracle.svm.agent.NativeImageAgent this
         0: .line 415
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.configOutputDirPath:Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            invokevirtual java.io.File.exists:()Z
            ifeq 2
         1: .line 416
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.configOutputDirPath:Ljava/nio/file/Path;
            ldc "tempConfig-"
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createTempDirectory:(Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            goto 3
         2: .line 417
      StackMap locals:
      StackMap stack:
            ldc "tempConfig-"
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createTempDirectory:(Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
         3: .line 415
      StackMap locals:
      StackMap stack: java.nio.file.Path
            astore 1 /* tempDirectory */
        start local 1 // java.nio.file.Path tempDirectory
         4: .line 418
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            checkcast com.oracle.svm.agent.TraceProcessorWriterAdapter
            invokevirtual com.oracle.svm.agent.TraceProcessorWriterAdapter.getProcessor:()Lcom/oracle/svm/configure/trace/TraceProcessor;
            astore 2 /* p */
        start local 2 // com.oracle.svm.configure.trace.TraceProcessor p
         5: .line 420
            new java.util.HashMap
            dup
            iconst_4
            invokespecial java.util.HashMap.<init>:(I)V
            astore 3 /* allConfigFiles */
        start local 3 // java.util.Map allConfigFiles
         6: .line 421
            aload 3 /* allConfigFiles */
            ldc "reflect-config.json"
            aload 2 /* p */
            invokevirtual com.oracle.svm.configure.trace.TraceProcessor.getReflectionConfiguration:()Lcom/oracle/svm/configure/config/TypeConfiguration;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 422
            aload 3 /* allConfigFiles */
            ldc "jni-config.json"
            aload 2 /* p */
            invokevirtual com.oracle.svm.configure.trace.TraceProcessor.getJniConfiguration:()Lcom/oracle/svm/configure/config/TypeConfiguration;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 423
            aload 3 /* allConfigFiles */
            ldc "proxy-config.json"
            aload 2 /* p */
            invokevirtual com.oracle.svm.configure.trace.TraceProcessor.getProxyConfiguration:()Lcom/oracle/svm/configure/config/ProxyConfiguration;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 424
            aload 3 /* allConfigFiles */
            ldc "resource-config.json"
            aload 2 /* p */
            invokevirtual com.oracle.svm.configure.trace.TraceProcessor.getResourceConfiguration:()Lcom/oracle/svm/configure/config/ResourceConfiguration;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 425
            aload 3 /* allConfigFiles */
            ldc "serialization-config.json"
            aload 2 /* p */
            invokevirtual com.oracle.svm.configure.trace.TraceProcessor.getSerializationConfiguration:()Lcom/oracle/svm/configure/config/SerializationConfiguration;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 427
            aload 3 /* allConfigFiles */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 23
      StackMap locals: com.oracle.svm.agent.NativeImageAgent java.nio.file.Path com.oracle.svm.configure.trace.TraceProcessor java.util.Map top java.util.Iterator
      StackMap stack:
        12: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* configFile */
        start local 4 // java.util.Map$Entry configFile
        13: .line 428
            aload 1 /* tempDirectory */
            aload 4 /* configFile */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 6 /* tempPath */
        start local 6 // java.nio.file.Path tempPath
        14: .line 429
            aconst_null
            astore 7
            aconst_null
            astore 8
        15: new com.oracle.svm.configure.json.JsonWriter
            dup
            aload 6 /* tempPath */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokespecial com.oracle.svm.configure.json.JsonWriter.<init>:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)V
            astore 9 /* writer */
        start local 9 // com.oracle.svm.configure.json.JsonWriter writer
        16: .line 430
            aload 4 /* configFile */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.oracle.svm.configure.json.JsonPrintable
            aload 9 /* writer */
            invokeinterface com.oracle.svm.configure.json.JsonPrintable.printJson:(Lcom/oracle/svm/configure/json/JsonWriter;)V
        17: .line 431
            aload 9 /* writer */
            ifnull 23
            aload 9 /* writer */
            invokevirtual com.oracle.svm.configure.json.JsonWriter.close:()V
            goto 23
      StackMap locals: com.oracle.svm.agent.NativeImageAgent java.nio.file.Path com.oracle.svm.configure.trace.TraceProcessor java.util.Map java.util.Map$Entry java.util.Iterator java.nio.file.Path java.lang.Throwable java.lang.Throwable com.oracle.svm.configure.json.JsonWriter
      StackMap stack: java.lang.Throwable
        18: astore 7
            aload 9 /* writer */
            ifnull 19
            aload 9 /* writer */
            invokevirtual com.oracle.svm.configure.json.JsonWriter.close:()V
        end local 9 // com.oracle.svm.configure.json.JsonWriter writer
      StackMap locals:
      StackMap stack:
        19: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 8
            aload 7
            ifnonnull 21
            aload 8
            astore 7
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 7
            aload 8
            if_acmpeq 22
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 7
            athrow
        end local 6 // java.nio.file.Path tempPath
        end local 4 // java.util.Map$Entry configFile
        23: .line 427
      StackMap locals: com.oracle.svm.agent.NativeImageAgent java.nio.file.Path com.oracle.svm.configure.trace.TraceProcessor java.util.Map top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        24: .line 434
            aload 3 /* allConfigFiles */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 29
      StackMap locals:
      StackMap stack:
        25: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* configFile */
        start local 4 // java.util.Map$Entry configFile
        26: .line 435
            aload 1 /* tempDirectory */
            aload 4 /* configFile */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 6 /* source */
        start local 6 // java.nio.file.Path source
        27: .line 436
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.configOutputDirPath:Ljava/nio/file/Path;
            aload 4 /* configFile */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 7 /* target */
        start local 7 // java.nio.file.Path target
        28: .line 437
            aload 6 /* source */
            aload 7 /* target */
            invokestatic com.oracle.svm.agent.NativeImageAgent.tryAtomicMove:(Ljava/nio/file/Path;Ljava/nio/file/Path;)V
        end local 7 // java.nio.file.Path target
        end local 6 // java.nio.file.Path source
        end local 4 // java.util.Map$Entry configFile
        29: .line 434
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        30: .line 440
            aload 1 /* tempDirectory */
            invokestatic com.oracle.svm.agent.NativeImageAgent.compulsoryDelete:(Ljava/nio/file/Path;)V
        end local 3 // java.util.Map allConfigFiles
        end local 2 // com.oracle.svm.configure.trace.TraceProcessor p
        end local 1 // java.nio.file.Path tempDirectory
        31: .line 441
            goto 36
      StackMap locals: com.oracle.svm.agent.NativeImageAgent
      StackMap stack: java.io.IOException
        32: astore 1 /* e */
        start local 1 // java.io.IOException e
        33: .line 442
            getstatic com.oracle.svm.agent.NativeImageAgent.currentFailuresWritingConfigs:I
            dup
            iconst_1
            iadd
            putstatic com.oracle.svm.agent.NativeImageAgent.currentFailuresWritingConfigs:I
            iconst_5
        34: .line 443
            new java.lang.StringBuilder
            dup
            ldc "native-image-agent: error when writing configuration files: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.io.IOException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        35: .line 442
            invokestatic com.oracle.svm.agent.NativeImageAgent.printUpToLimit:(IILjava/lang/String;)V
        end local 1 // java.io.IOException e
        36: .line 445
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   37     0            this  Lcom/oracle/svm/agent/NativeImageAgent;
            4   31     1   tempDirectory  Ljava/nio/file/Path;
            5   31     2               p  Lcom/oracle/svm/configure/trace/TraceProcessor;
            6   31     3  allConfigFiles  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/svm/configure/json/JsonPrintable;>;
           13   23     4      configFile  Ljava/util/Map$Entry<Ljava/lang/String;Lcom/oracle/svm/configure/json/JsonPrintable;>;
           14   23     6        tempPath  Ljava/nio/file/Path;
           16   19     9          writer  Lcom/oracle/svm/configure/json/JsonWriter;
           26   29     4      configFile  Ljava/util/Map$Entry<Ljava/lang/String;Lcom/oracle/svm/configure/json/JsonPrintable;>;
           27   29     6          source  Ljava/nio/file/Path;
           28   29     7          target  Ljava/nio/file/Path;
           33   36     1               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          16    17      18  any
          15    20      20  any
           0    31      32  Class java.io.IOException

  private static void compulsoryDelete(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.nio.file.Path pathToDelete
         0: .line 449
            iconst_0
            istore 1 /* retries */
        start local 1 // int retries
         1: .line 450
            goto 3
         2: .line 451
      StackMap locals: int
      StackMap stack:
            iinc 1 /* retries */ 1
         3: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* pathToDelete */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            invokevirtual java.io.File.exists:()Z
            ifeq 4
            aload 0 /* pathToDelete */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            invokevirtual java.io.File.delete:()Z
            ifne 4
            iload 1 /* retries */
            iconst_3
            if_icmplt 2
         4: .line 453
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int retries
        end local 0 // java.nio.file.Path pathToDelete
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0  pathToDelete  Ljava/nio/file/Path;
            1    5     1       retries  I
    MethodParameters:
              Name  Flags
      pathToDelete  

  private static void printUpToLimit(int, int, java.lang.String);
    descriptor: (IILjava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // int currentCount
        start local 1 // int limit
        start local 2 // java.lang.String message
         0: .line 456
            iload 0 /* currentCount */
            iload 1 /* limit */
            if_icmpge 3
         1: .line 457
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 2 /* message */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 458
            return
         3: .line 461
      StackMap locals:
      StackMap stack:
            iload 0 /* currentCount */
            iload 1 /* limit */
            if_icmpne 6
         4: .line 462
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 2 /* message */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 463
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "native-image-agent: WARNING: The above failure will be silenced, and will no longer be reported"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 465
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String message
        end local 1 // int limit
        end local 0 // int currentCount
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0  currentCount  I
            0    7     1         limit  I
            0    7     2       message  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      currentCount  
      limit         
      message       

  private static void tryAtomicMove(java.nio.file.Path, java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.nio.file.Path source
        start local 1 // java.nio.file.Path target
         0: .line 472
            aload 0 /* source */
            aload 1 /* target */
            iconst_2
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardCopyOption.ATOMIC_MOVE:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
         1: .line 473
            goto 9
      StackMap locals:
      StackMap stack: java.nio.file.AtomicMoveNotSupportedException
         2: pop
         3: .line 474
            getstatic com.oracle.svm.agent.NativeImageAgent.currentFailuresAtomicMove:I
            dup
            iconst_1
            iadd
            putstatic com.oracle.svm.agent.NativeImageAgent.currentFailuresAtomicMove:I
            bipush 20
         4: .line 475
            ldc "native-image-agent: : Could not move temporary configuration profile from (%s) to (%s) atomically. This might result in inconsistencies."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 476
            aload 0 /* source */
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            aastore
            dup
            iconst_1
            aload 1 /* target */
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            aastore
         6: .line 475
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         7: .line 474
            invokestatic com.oracle.svm.agent.NativeImageAgent.printUpToLimit:(IILjava/lang/String;)V
         8: .line 477
            aload 0 /* source */
            aload 1 /* target */
            iconst_1
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
         9: .line 479
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.file.Path target
        end local 0 // java.nio.file.Path source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  source  Ljava/nio/file/Path;
            0   10     1  target  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           0     1       2  Class java.nio.file.AtomicMoveNotSupportedException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      source  final
      target  final

  protected int onUnloadCallback(com.oracle.svm.jni.nativeapi.JNIJavaVM);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.agent.NativeImageAgent this
        start local 1 // com.oracle.svm.jni.nativeapi.JNIJavaVM vm
         0: .line 483
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.periodicConfigWriterExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
            ifnull 6
         1: .line 484
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.periodicConfigWriterExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
            invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.shutdown:()V
         2: .line 486
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.periodicConfigWriterExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
            ldc 300
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
         3: .line 487
            goto 6
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         4: pop
         5: .line 488
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.periodicConfigWriterExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
            invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.shutdownNow:()Ljava/util/List;
            pop
         6: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            ifnull 13
         7: .line 493
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            ldc "unload"
            invokevirtual com.oracle.svm.agent.TraceWriter.tracePhaseChange:(Ljava/lang/String;)V
         8: .line 494
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
            invokevirtual com.oracle.svm.agent.TraceWriter.close:()V
         9: .line 495
            aload 0 /* this */
            getfield com.oracle.svm.agent.NativeImageAgent.configOutputDirPath:Ljava/nio/file/Path;
            ifnull 12
        10: .line 496
            aload 0 /* this */
            invokevirtual com.oracle.svm.agent.NativeImageAgent.writeConfigurationFiles:()V
        11: .line 497
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.agent.NativeImageAgent.configOutputDirPath:Ljava/nio/file/Path;
        12: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.agent.NativeImageAgent.traceWriter:Lcom/oracle/svm/agent/TraceWriter;
        13: .line 516
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // com.oracle.svm.jni.nativeapi.JNIJavaVM vm
        end local 0 // com.oracle.svm.agent.NativeImageAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/oracle/svm/agent/NativeImageAgent;
            0   14     1    vm  Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.InterruptedException
    MethodParameters:
      Name  Flags
      vm    

  private static void cleanupOnUnload(com.oracle.svm.jni.nativeapi.JNIJavaVM);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIJavaVM vm
         0: .line 521
            invokestatic com.oracle.svm.agent.JniCallInterceptor.onUnload:()V
         1: .line 522
            invokestatic com.oracle.svm.agent.BreakpointInterceptor.onUnload:()V
         2: .line 523
            return
        end local 0 // com.oracle.svm.jni.nativeapi.JNIJavaVM vm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    vm  Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;
    MethodParameters:
      Name  Flags
      vm    

  static void access$0(com.oracle.svm.jvmtiagentbase.JvmtiAgentBase);
    descriptor: (Lcom/oracle/svm/jvmtiagentbase/JvmtiAgentBase;)V
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokestatic com.oracle.svm.agent.NativeImageAgent.registerAgent:(Lcom/oracle/svm/jvmtiagentbase/JvmtiAgentBase;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.Exception lambda$0(java.io.IOException);
    descriptor: (Ljava/io/IOException;)Ljava/lang/Exception;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.io.IOException e
         0: .line 221
            aload 0 /* e */
            instanceof java.nio.file.NoSuchFileException
            ifeq 3
         1: .line 222
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "native-image-agent: warning: file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* e */
            checkcast java.nio.file.NoSuchFileException
            invokevirtual java.nio.file.NoSuchFileException.getFile:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " for merging could not be found, skipping"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 223
            aconst_null
            areturn
         3: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* e */
            areturn
        end local 0 // java.io.IOException e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     e  Ljava/io/IOException;

  private static java.lang.Thread lambda$1(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Ljava/lang/Thread;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Runnable r
         0: .line 315
            new java.lang.Thread
            dup
            aload 0 /* r */
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
            astore 1 /* workerThread */
        start local 1 // java.lang.Thread workerThread
         1: .line 316
            aload 1 /* workerThread */
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
         2: .line 317
            aload 1 /* workerThread */
            ldc "AgentConfigurationsPeriodicWriter"
            invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
         3: .line 318
            aload 1 /* workerThread */
            areturn
        end local 1 // java.lang.Thread workerThread
        end local 0 // java.lang.Runnable r
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0             r  Ljava/lang/Runnable;
            1    4     1  workerThread  Ljava/lang/Thread;
}
Signature: Lcom/oracle/svm/jvmtiagentbase/JvmtiAgentBase<Lcom/oracle/svm/agent/NativeImageAgentJNIHandleSet;>;
SourceFile: "NativeImageAgent.java"
NestMembers:
  com.oracle.svm.agent.NativeImageAgent$RegistrationFeature
InnerClasses:
  public RegistrationFeature = com.oracle.svm.agent.NativeImageAgent$RegistrationFeature of com.oracle.svm.agent.NativeImageAgent
  public final Inclusion = com.oracle.svm.configure.filters.RuleNode$Inclusion of com.oracle.svm.configure.filters.RuleNode
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map