public final class jdk.jfr.internal.TypeLibrary
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.internal.TypeLibrary
  super_class: java.lang.Object
{
  private static jdk.jfr.internal.TypeLibrary instance;
    descriptor: Ljdk/jfr/internal/TypeLibrary;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.util.Map<java.lang.Long, jdk.jfr.internal.Type> types;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Long;Ljdk/jfr/internal/Type;>;

  static final jdk.jfr.ValueDescriptor DURATION_FIELD;
    descriptor: Ljdk/jfr/ValueDescriptor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final jdk.jfr.ValueDescriptor THREAD_FIELD;
    descriptor: Ljdk/jfr/ValueDescriptor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final jdk.jfr.ValueDescriptor STACK_TRACE_FIELD;
    descriptor: Ljdk/jfr/ValueDescriptor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final jdk.jfr.ValueDescriptor START_TIME_FIELD;
    descriptor: Ljdk/jfr/ValueDescriptor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 63
            new java.util.LinkedHashMap
            dup
            bipush 100
            invokespecial java.util.LinkedHashMap.<init>:(I)V
            putstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
         1: .line 64
            invokestatic jdk.jfr.internal.TypeLibrary.createDurationField:()Ljdk/jfr/ValueDescriptor;
            putstatic jdk.jfr.internal.TypeLibrary.DURATION_FIELD:Ljdk/jfr/ValueDescriptor;
         2: .line 65
            invokestatic jdk.jfr.internal.TypeLibrary.createThreadField:()Ljdk/jfr/ValueDescriptor;
            putstatic jdk.jfr.internal.TypeLibrary.THREAD_FIELD:Ljdk/jfr/ValueDescriptor;
         3: .line 66
            invokestatic jdk.jfr.internal.TypeLibrary.createStackTraceField:()Ljdk/jfr/ValueDescriptor;
            putstatic jdk.jfr.internal.TypeLibrary.STACK_TRACE_FIELD:Ljdk/jfr/ValueDescriptor;
         4: .line 67
            invokestatic jdk.jfr.internal.TypeLibrary.createStartTimeField:()Ljdk/jfr/ValueDescriptor;
            putstatic jdk.jfr.internal.TypeLibrary.START_TIME_FIELD:Ljdk/jfr/ValueDescriptor;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.util.List<jdk.jfr.internal.Type>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.jfr.internal.TypeLibrary this
        start local 1 // java.util.List jvmTypes
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 70
            aload 1 /* jvmTypes */
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  jdk/jfr/internal/TypeLibrary.lambda$0(Ljdk/jfr/internal/Type;)Z (6)
                  (Ljdk/jfr/internal/Type;)Z
            invokedynamic accept()Ljava/util/function/Consumer;
              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;)V
                  jdk/jfr/internal/TypeLibrary.lambda$1(Ljdk/jfr/internal/Type;)V (6)
                  (Ljdk/jfr/internal/Type;)V
            invokestatic jdk.jfr.internal.TypeLibrary.visitReachable:(Ljava/util/Collection;Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V
         2: .line 71
            getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_METADATA:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.INFO:Ljdk/jfr/internal/LogLevel;
            invokestatic jdk.jfr.internal.Logger.shouldLog:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)Z
            ifeq 5
         3: .line 72
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic compare()Ljava/util/Comparator;
              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;)I
                  jdk/jfr/internal/TypeLibrary.lambda$2(Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I (6)
                  (Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
            astore 2 /* s */
        start local 2 // java.util.stream.Stream s
         4: .line 73
            aload 2 /* s */
            invokedynamic accept()Ljava/util/function/Consumer;
              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;)V
                  jdk/jfr/internal/TypeLibrary.lambda$3(Ljdk/jfr/internal/Type;)V (6)
                  (Ljdk/jfr/internal/Type;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 2 // java.util.stream.Stream s
         5: .line 75
      StackMap locals: jdk.jfr.internal.TypeLibrary java.util.List
      StackMap stack:
            return
        end local 1 // java.util.List jvmTypes
        end local 0 // jdk.jfr.internal.TypeLibrary this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljdk/jfr/internal/TypeLibrary;
            0    6     1  jvmTypes  Ljava/util/List<Ljdk/jfr/internal/Type;>;
            4    5     2         s  Ljava/util/stream/Stream<Ljdk/jfr/internal/Type;>;
    Signature: (Ljava/util/List<Ljdk/jfr/internal/Type;>;)V
    MethodParameters:
          Name  Flags
      jvmTypes  

  private static jdk.jfr.ValueDescriptor createStartTimeField();
    descriptor: ()Ljdk/jfr/ValueDescriptor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=0
         0: .line 78
            ldc "Start Time"
            aconst_null
            invokestatic jdk.jfr.internal.TypeLibrary.createStandardAnnotations:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
            astore 0 /* annos */
        start local 0 // java.util.List annos
         1: .line 79
            aload 0 /* annos */
            new jdk.jfr.AnnotationElement
            dup
            ldc Ljdk/jfr/Timestamp;
            ldc "TICKS"
            invokespecial jdk.jfr.AnnotationElement.<init>:(Ljava/lang/Class;Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 80
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            ldc "startTime"
            getstatic jdk.jfr.internal.Type.LONG:Ljdk/jfr/internal/Type;
            aload 0 /* annos */
            iconst_0
            iconst_0
         3: .line 81
            ldc "startTime"
         4: .line 80
            invokevirtual jdk.jfr.internal.PrivateAccess.newValueDescriptor:(Ljava/lang/String;Ljdk/jfr/internal/Type;Ljava/util/List;IZLjava/lang/String;)Ljdk/jfr/ValueDescriptor;
            areturn
        end local 0 // java.util.List annos
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    5     0  annos  Ljava/util/List<Ljdk/jfr/AnnotationElement;>;

  private static jdk.jfr.ValueDescriptor createStackTraceField();
    descriptor: ()Ljdk/jfr/ValueDescriptor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=0
         0: .line 86
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* annos */
        start local 0 // java.util.List annos
         1: .line 87
            ldc "Stack Trace"
            ldc "Stack Trace starting from the method the event was committed in"
            invokestatic jdk.jfr.internal.TypeLibrary.createStandardAnnotations:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
            astore 0 /* annos */
         2: .line 88
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            ldc "stackTrace"
            getstatic jdk.jfr.internal.Type.STACK_TRACE:Ljdk/jfr/internal/Type;
            aload 0 /* annos */
            iconst_0
            iconst_1
         3: .line 89
            ldc "stackTrace"
         4: .line 88
            invokevirtual jdk.jfr.internal.PrivateAccess.newValueDescriptor:(Ljava/lang/String;Ljdk/jfr/internal/Type;Ljava/util/List;IZLjava/lang/String;)Ljdk/jfr/ValueDescriptor;
            areturn
        end local 0 // java.util.List annos
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    5     0  annos  Ljava/util/List<Ljdk/jfr/AnnotationElement;>;

  private static jdk.jfr.ValueDescriptor createThreadField();
    descriptor: ()Ljdk/jfr/ValueDescriptor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=0
         0: .line 93
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* annos */
        start local 0 // java.util.List annos
         1: .line 94
            ldc "Event Thread"
            ldc "Thread in which event was committed in"
            invokestatic jdk.jfr.internal.TypeLibrary.createStandardAnnotations:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
            astore 0 /* annos */
         2: .line 95
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            ldc "eventThread"
            getstatic jdk.jfr.internal.Type.THREAD:Ljdk/jfr/internal/Type;
            aload 0 /* annos */
            iconst_0
            iconst_1
         3: .line 96
            ldc "eventThread"
         4: .line 95
            invokevirtual jdk.jfr.internal.PrivateAccess.newValueDescriptor:(Ljava/lang/String;Ljdk/jfr/internal/Type;Ljava/util/List;IZLjava/lang/String;)Ljdk/jfr/ValueDescriptor;
            areturn
        end local 0 // java.util.List annos
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    5     0  annos  Ljava/util/List<Ljdk/jfr/AnnotationElement;>;

  private static jdk.jfr.ValueDescriptor createDurationField();
    descriptor: ()Ljdk/jfr/ValueDescriptor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=0
         0: .line 100
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* annos */
        start local 0 // java.util.List annos
         1: .line 101
            ldc "Duration"
            aconst_null
            invokestatic jdk.jfr.internal.TypeLibrary.createStandardAnnotations:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
            astore 0 /* annos */
         2: .line 102
            aload 0 /* annos */
            new jdk.jfr.AnnotationElement
            dup
            ldc Ljdk/jfr/Timespan;
            ldc "TICKS"
            invokespecial jdk.jfr.AnnotationElement.<init>:(Ljava/lang/Class;Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 103
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            ldc "duration"
            getstatic jdk.jfr.internal.Type.LONG:Ljdk/jfr/internal/Type;
            aload 0 /* annos */
            iconst_0
            iconst_0
            ldc "duration"
            invokevirtual jdk.jfr.internal.PrivateAccess.newValueDescriptor:(Ljava/lang/String;Ljdk/jfr/internal/Type;Ljava/util/List;IZLjava/lang/String;)Ljdk/jfr/ValueDescriptor;
            areturn
        end local 0 // java.util.List annos
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    4     0  annos  Ljava/util/List<Ljdk/jfr/AnnotationElement;>;

  public static jdk.jfr.internal.TypeLibrary getInstance();
    descriptor: ()Ljdk/jfr/internal/TypeLibrary;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 107
            ldc Ljdk/jfr/internal/TypeLibrary;
            dup
            astore 0
            monitorenter
         1: .line 108
            getstatic jdk.jfr.internal.TypeLibrary.instance:Ljdk/jfr/internal/TypeLibrary;
            ifnonnull 8
         2: .line 111
            invokestatic jdk.jfr.internal.MetadataHandler.createTypes:()Ljava/util/List;
            astore 1 /* jvmTypes */
        start local 1 // java.util.List jvmTypes
         3: .line 112
            aload 1 /* jvmTypes */
            invokedynamic compare()Ljava/util/Comparator;
              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;)I
                  jdk/jfr/internal/TypeLibrary.lambda$4(Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I (6)
                  (Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         4: .line 113
            goto 7
        end local 1 // java.util.List jvmTypes
      StackMap locals: java.lang.Class
      StackMap stack: java.io.IOException
         5: pop
         6: .line 114
            new java.lang.Error
            dup
            ldc "JFR: Could not read metadata"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // java.util.List jvmTypes
         7: .line 116
      StackMap locals: java.util.List
      StackMap stack:
            new jdk.jfr.internal.TypeLibrary
            dup
            aload 1 /* jvmTypes */
            invokespecial jdk.jfr.internal.TypeLibrary.<init>:(Ljava/util/List;)V
            putstatic jdk.jfr.internal.TypeLibrary.instance:Ljdk/jfr/internal/TypeLibrary;
        end local 1 // java.util.List jvmTypes
         8: .line 118
      StackMap locals:
      StackMap stack:
            getstatic jdk.jfr.internal.TypeLibrary.instance:Ljdk/jfr/internal/TypeLibrary;
            aload 0
            monitorexit
         9: areturn
        10: .line 107
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 0
            monitorexit
        11: athrow
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            3    5     1  jvmTypes  Ljava/util/List<Ljdk/jfr/internal/Type;>;
            7    8     1  jvmTypes  Ljava/util/List<Ljdk/jfr/internal/Type;>;
      Exception table:
        from    to  target  type
           2     4       5  Class java.io.IOException
           1     9      10  any
          10    11      10  any

  public java.util.List<jdk.jfr.internal.Type> getTypes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.TypeLibrary this
         0: .line 123
            new java.util.ArrayList
            dup
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            areturn
        end local 0 // jdk.jfr.internal.TypeLibrary this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/TypeLibrary;
    Signature: ()Ljava/util/List<Ljdk/jfr/internal/Type;>;

  public static jdk.jfr.internal.Type createAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/Class;)Ljdk/jfr/internal/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.Class a
         0: .line 127
            aload 0 /* a */
            invokestatic jdk.jfr.internal.TypeLibrary.shouldPersist:(Ljava/lang/Class;)Z
            ifeq 19
         1: .line 128
            aload 0 /* a */
            getstatic jdk.jfr.internal.Type.SUPER_TYPE_ANNOTATION:Ljava/lang/String;
            iconst_0
            invokestatic jdk.jfr.internal.TypeLibrary.defineType:(Ljava/lang/Class;Ljava/lang/String;Z)Ljdk/jfr/internal/Type;
            astore 1 /* type */
        start local 1 // jdk.jfr.internal.Type type
         2: .line 129
            aload 1 /* type */
            ifnull 18
         3: .line 130
            aload 0 /* a */
            invokestatic jdk.jfr.internal.SecuritySupport.makeVisibleToJFR:(Ljava/lang/Class;)V
         4: .line 131
            aload 0 /* a */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: java.lang.Class jdk.jfr.internal.Type top int int java.lang.reflect.Method[]
      StackMap stack:
         5: aload 5
            iload 3
            aaload
            astore 2 /* method */
        start local 2 // java.lang.reflect.Method method
         6: .line 132
            aload 1 /* type */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual jdk.jfr.internal.PrivateAccess.newValueDescriptor:(Ljava/lang/Class;Ljava/lang/String;)Ljdk/jfr/ValueDescriptor;
            invokevirtual jdk.jfr.internal.Type.add:(Ljdk/jfr/ValueDescriptor;)V
        end local 2 // java.lang.reflect.Method method
         7: .line 131
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 5
         9: .line 134
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* aes */
        start local 2 // java.util.ArrayList aes
        10: .line 135
            aload 0 /* a */
            invokevirtual java.lang.Class.getAnnotations:()[Ljava/lang/annotation/Annotation;
            invokestatic jdk.jfr.internal.TypeLibrary.resolveRepeatedAnnotations:([Ljava/lang/annotation/Annotation;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.ArrayList top java.util.Iterator
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation
            astore 3 /* annotation */
        start local 3 // java.lang.annotation.Annotation annotation
        12: .line 136
            aload 3 /* annotation */
            invokestatic jdk.jfr.internal.TypeLibrary.createAnnotation:(Ljava/lang/annotation/Annotation;)Ljdk/jfr/AnnotationElement;
            astore 5 /* ae */
        start local 5 // jdk.jfr.AnnotationElement ae
        13: .line 137
            aload 5 /* ae */
            ifnull 15
        14: .line 138
            aload 2 /* aes */
            aload 5 /* ae */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // jdk.jfr.AnnotationElement ae
        end local 3 // java.lang.annotation.Annotation annotation
        15: .line 135
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 141
            aload 2 /* aes */
            invokevirtual java.util.ArrayList.trimToSize:()V
        17: .line 142
            aload 1 /* type */
            aload 2 /* aes */
            invokevirtual jdk.jfr.internal.Type.setAnnotations:(Ljava/util/List;)V
        end local 2 // java.util.ArrayList aes
        18: .line 144
      StackMap locals: java.lang.Class jdk.jfr.internal.Type
      StackMap stack:
            aload 0 /* a */
            invokestatic jdk.jfr.internal.TypeLibrary.getType:(Ljava/lang/Class;)Ljdk/jfr/internal/Type;
            areturn
        end local 1 // jdk.jfr.internal.Type type
        19: .line 146
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.Class a
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0           a  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
            2   19     1        type  Ljdk/jfr/internal/Type;
            6    7     2      method  Ljava/lang/reflect/Method;
           10   18     2         aes  Ljava/util/ArrayList<Ljdk/jfr/AnnotationElement;>;
           12   15     3  annotation  Ljava/lang/annotation/Annotation;
           13   15     5          ae  Ljdk/jfr/AnnotationElement;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Ljdk/jfr/internal/Type;
    MethodParameters:
      Name  Flags
      a     

  static jdk.jfr.AnnotationElement createAnnotation(java.lang.annotation.Annotation);
    descriptor: (Ljava/lang/annotation/Annotation;)Ljdk/jfr/AnnotationElement;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.annotation.Annotation annotation
         0: .line 150
            aload 0 /* annotation */
            invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
            astore 1 /* annotationType */
        start local 1 // java.lang.Class annotationType
         1: .line 151
            aload 1 /* annotationType */
            invokestatic jdk.jfr.internal.TypeLibrary.createAnnotationType:(Ljava/lang/Class;)Ljdk/jfr/internal/Type;
            astore 2 /* type */
        start local 2 // jdk.jfr.internal.Type type
         2: .line 152
            aload 2 /* type */
            ifnull 11
         3: .line 153
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* values */
        start local 3 // java.util.List values
         4: .line 154
            aload 2 /* type */
            invokevirtual jdk.jfr.internal.Type.getFields:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: java.lang.annotation.Annotation java.lang.Class jdk.jfr.internal.Type java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            astore 4 /* v */
        start local 4 // jdk.jfr.ValueDescriptor v
         6: .line 155
            aload 3 /* values */
            aload 0 /* annotation */
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getName:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.TypeLibrary.invokeAnnotation:(Ljava/lang/annotation/Annotation;Ljava/lang/String;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // jdk.jfr.ValueDescriptor v
         7: .line 154
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 158
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 2 /* type */
            aload 3 /* values */
            aload 0 /* annotation */
            invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ifnonnull 9
            iconst_1
            goto 10
      StackMap locals: java.lang.annotation.Annotation java.lang.Class jdk.jfr.internal.Type java.util.List
      StackMap stack: jdk.jfr.internal.PrivateAccess jdk.jfr.internal.Type java.util.List
         9: iconst_0
      StackMap locals: java.lang.annotation.Annotation java.lang.Class jdk.jfr.internal.Type java.util.List
      StackMap stack: jdk.jfr.internal.PrivateAccess jdk.jfr.internal.Type java.util.List int
        10: invokevirtual jdk.jfr.internal.PrivateAccess.newAnnotation:(Ljdk/jfr/internal/Type;Ljava/util/List;Z)Ljdk/jfr/AnnotationElement;
            areturn
        end local 3 // java.util.List values
        11: .line 160
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // jdk.jfr.internal.Type type
        end local 1 // java.lang.Class annotationType
        end local 0 // java.lang.annotation.Annotation annotation
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0      annotation  Ljava/lang/annotation/Annotation;
            1   12     1  annotationType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
            2   12     2            type  Ljdk/jfr/internal/Type;
            4   11     3          values  Ljava/util/List<Ljava/lang/Object;>;
            6    7     4               v  Ljdk/jfr/ValueDescriptor;
    MethodParameters:
            Name  Flags
      annotation  

  private static java.lang.Object invokeAnnotation(java.lang.annotation.Annotation, java.lang.String);
    descriptor: (Ljava/lang/annotation/Annotation;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.annotation.Annotation annotation
        start local 1 // java.lang.String methodName
         0: .line 166
            aload 0 /* annotation */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* methodName */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 2 /* m */
        start local 2 // java.lang.reflect.Method m
         1: .line 167
            goto 4
        end local 2 // java.lang.reflect.Method m
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
         2: pop
         3: .line 168
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not loacate method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* methodName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in annotation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* annotation */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // java.lang.reflect.Method m
         4: .line 170
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 2 /* m */
            invokestatic jdk.jfr.internal.SecuritySupport.setAccessible:(Ljava/lang/reflect/Method;)V
         5: .line 172
            aload 2 /* m */
            aload 0 /* annotation */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
         6: areturn
         7: .line 173
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         8: .line 174
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not get value for method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* methodName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in annotation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* annotation */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.reflect.Method m
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.annotation.Annotation annotation
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0  annotation  Ljava/lang/annotation/Annotation;
            0    9     1  methodName  Ljava/lang/String;
            1    2     2           m  Ljava/lang/reflect/Method;
            4    9     2           m  Ljava/lang/reflect/Method;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NoSuchMethodException
           5     6       7  Class java.lang.IllegalAccessException
           5     6       7  Class java.lang.IllegalArgumentException
           5     6       7  Class java.lang.reflect.InvocationTargetException
    MethodParameters:
            Name  Flags
      annotation  
      methodName  

  private static boolean shouldPersist(java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class a
         0: .line 179
            aload 0 /* a */
            ldc Ljdk/jfr/MetadataDefinition;
            if_acmpeq 1
            aload 0 /* a */
            ldc Ljdk/jfr/MetadataDefinition;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnonnull 2
         1: .line 180
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 182
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // java.lang.Class a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Z
    MethodParameters:
      Name  Flags
      a     

  private static boolean isDefined(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 186
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            aload 0 /* clazz */
            invokestatic jdk.jfr.internal.Type.getTypeId:(Ljava/lang/Class;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  private static jdk.jfr.internal.Type getType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljdk/jfr/internal/Type;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 190
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            aload 0 /* clazz */
            invokestatic jdk.jfr.internal.Type.getTypeId:(Ljava/lang/Class;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljdk/jfr/internal/Type;
    MethodParameters:
       Name  Flags
      clazz  

  private static jdk.jfr.internal.Type defineType(java.lang.Class<?>, java.lang.String, boolean);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Z)Ljdk/jfr/internal/Type;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // java.lang.Class clazz
        start local 1 // java.lang.String superType
        start local 2 // boolean eventType
         0: .line 194
            aload 0 /* clazz */
            invokestatic jdk.jfr.internal.TypeLibrary.isDefined:(Ljava/lang/Class;)Z
            ifne 14
         1: .line 195
            aload 0 /* clazz */
            ldc Ljdk/jfr/Name;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast jdk.jfr.Name
            astore 3 /* name */
        start local 3 // jdk.jfr.Name name
         2: .line 196
            aload 3 /* name */
            ifnull 3
            aload 3 /* name */
            invokeinterface jdk.jfr.Name.value:()Ljava/lang/String;
            goto 4
      StackMap locals: jdk.jfr.Name
      StackMap stack:
         3: aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 4 /* typeName */
        start local 4 // java.lang.String typeName
         5: .line 197
            aload 0 /* clazz */
            invokestatic jdk.jfr.internal.Type.getTypeId:(Ljava/lang/Class;)J
            lstore 5 /* id */
        start local 5 // long id
         6: .line 199
            iload 2 /* eventType */
            ifeq 11
         7: .line 200
            new jdk.jfr.internal.PlatformEventType
            dup
            aload 4 /* typeName */
            lload 5 /* id */
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ifnonnull 8
            iconst_1
            goto 9
      StackMap locals: java.lang.Class java.lang.String int jdk.jfr.Name java.lang.String long
      StackMap stack: new 7 new 7 java.lang.String long
         8: iconst_0
      StackMap locals: java.lang.Class java.lang.String int jdk.jfr.Name java.lang.String long
      StackMap stack: new 7 new 7 java.lang.String long int
         9: iconst_1
            invokespecial jdk.jfr.internal.PlatformEventType.<init>:(Ljava/lang/String;JZZ)V
            astore 7 /* t */
        start local 7 // jdk.jfr.internal.Type t
        10: .line 201
            goto 12
        end local 7 // jdk.jfr.internal.Type t
        11: .line 202
      StackMap locals:
      StackMap stack:
            new jdk.jfr.internal.Type
            dup
            aload 4 /* typeName */
            aload 1 /* superType */
            lload 5 /* id */
            invokespecial jdk.jfr.internal.Type.<init>:(Ljava/lang/String;Ljava/lang/String;J)V
            astore 7 /* t */
        start local 7 // jdk.jfr.internal.Type t
        12: .line 204
      StackMap locals: jdk.jfr.internal.Type
      StackMap stack:
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            aload 7 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 7 /* t */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 205
            aload 7 /* t */
            areturn
        end local 7 // jdk.jfr.internal.Type t
        end local 5 // long id
        end local 4 // java.lang.String typeName
        end local 3 // jdk.jfr.Name name
        14: .line 207
      StackMap locals: java.lang.Class java.lang.String int
      StackMap stack:
            aconst_null
            areturn
        end local 2 // boolean eventType
        end local 1 // java.lang.String superType
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0      clazz  Ljava/lang/Class<*>;
            0   15     1  superType  Ljava/lang/String;
            0   15     2  eventType  Z
            2   14     3       name  Ljdk/jfr/Name;
            5   14     4   typeName  Ljava/lang/String;
            6   14     5         id  J
           10   11     7          t  Ljdk/jfr/internal/Type;
           12   14     7          t  Ljdk/jfr/internal/Type;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Z)Ljdk/jfr/internal/Type;
    MethodParameters:
           Name  Flags
      clazz      
      superType  
      eventType  

  public static jdk.jfr.internal.Type createType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljdk/jfr/internal/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 210
            aload 0 /* clazz */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic jdk.jfr.internal.TypeLibrary.createType:(Ljava/lang/Class;Ljava/util/List;Ljava/util/List;)Ljdk/jfr/internal/Type;
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljdk/jfr/internal/Type;
    MethodParameters:
       Name  Flags
      clazz  

  public static jdk.jfr.internal.Type createType(java.lang.Class<?>, java.util.List<jdk.jfr.AnnotationElement>, java.util.List<jdk.jfr.ValueDescriptor>);
    descriptor: (Ljava/lang/Class;Ljava/util/List;Ljava/util/List;)Ljdk/jfr/internal/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // java.lang.Class clazz
        start local 1 // java.util.List dynamicAnnotations
        start local 2 // java.util.List dynamicFields
         0: .line 215
            ldc Ljava/lang/Thread;
            aload 0 /* clazz */
            if_acmpne 2
         1: .line 216
            getstatic jdk.jfr.internal.Type.THREAD:Ljdk/jfr/internal/Type;
            areturn
         2: .line 219
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Class;
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 4
         3: .line 220
            getstatic jdk.jfr.internal.Type.CLASS:Ljdk/jfr/internal/Type;
            areturn
         4: .line 223
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/String;
            aload 0 /* clazz */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 224
            getstatic jdk.jfr.internal.Type.STRING:Ljdk/jfr/internal/Type;
            areturn
         6: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            invokestatic jdk.jfr.internal.TypeLibrary.isDefined:(Ljava/lang/Class;)Z
            ifeq 8
         7: .line 228
            aload 0 /* clazz */
            invokestatic jdk.jfr.internal.TypeLibrary.getType:(Ljava/lang/Class;)Ljdk/jfr/internal/Type;
            areturn
         8: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 10
         9: .line 232
            aload 0 /* clazz */
            aconst_null
            iconst_0
            invokestatic jdk.jfr.internal.TypeLibrary.defineType:(Ljava/lang/Class;Ljava/lang/String;Z)Ljdk/jfr/internal/Type;
            areturn
        10: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 12
        11: .line 236
            new java.lang.InternalError
            dup
            ldc "Arrays not supported"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 240
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* superType */
        start local 3 // java.lang.String superType
        13: .line 241
            iconst_0
            istore 4 /* eventType */
        start local 4 // boolean eventType
        14: .line 242
            ldc Ljdk/internal/event/Event;
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 17
        15: .line 243
            getstatic jdk.jfr.internal.Type.SUPER_TYPE_EVENT:Ljava/lang/String;
            astore 3 /* superType */
        16: .line 244
            iconst_1
            istore 4 /* eventType */
        17: .line 246
      StackMap locals: java.lang.String int
      StackMap stack:
            ldc Ljdk/jfr/internal/Control;
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 19
        18: .line 247
            getstatic jdk.jfr.internal.Type.SUPER_TYPE_SETTING:Ljava/lang/String;
            astore 3 /* superType */
        19: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            aload 3 /* superType */
            iload 4 /* eventType */
            invokestatic jdk.jfr.internal.TypeLibrary.defineType:(Ljava/lang/Class;Ljava/lang/String;Z)Ljdk/jfr/internal/Type;
            pop
        20: .line 252
            aload 0 /* clazz */
            invokestatic jdk.jfr.internal.TypeLibrary.getType:(Ljava/lang/Class;)Ljdk/jfr/internal/Type;
            astore 5 /* type */
        start local 5 // jdk.jfr.internal.Type type
        21: .line 254
            iload 4 /* eventType */
            ifeq 25
        22: .line 255
            aload 5 /* type */
            iconst_1
            iconst_1
            iconst_1
            iconst_1
            iconst_0
            invokestatic jdk.jfr.internal.TypeLibrary.addImplicitFields:(Ljdk/jfr/internal/Type;ZZZZZ)V
        23: .line 256
            aload 0 /* clazz */
            aload 5 /* type */
            aload 2 /* dynamicFields */
            invokestatic jdk.jfr.internal.TypeLibrary.addUserFields:(Ljava/lang/Class;Ljdk/jfr/internal/Type;Ljava/util/List;)V
        24: .line 257
            aload 5 /* type */
            invokevirtual jdk.jfr.internal.Type.trimFields:()V
        25: .line 259
      StackMap locals: jdk.jfr.internal.Type
      StackMap stack:
            aload 0 /* clazz */
            aload 5 /* type */
            aload 1 /* dynamicAnnotations */
            invokestatic jdk.jfr.internal.TypeLibrary.addAnnotations:(Ljava/lang/Class;Ljdk/jfr/internal/Type;Ljava/util/List;)V
        26: .line 261
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ifnonnull 29
        27: .line 262
            aload 5 /* type */
            ldc "Added"
            getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_METADATA:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.INFO:Ljdk/jfr/internal/LogLevel;
            invokevirtual jdk.jfr.internal.Type.log:(Ljava/lang/String;Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)V
        28: .line 263
            goto 30
        29: .line 264
      StackMap locals:
      StackMap stack:
            aload 5 /* type */
            ldc "Added"
            getstatic jdk.jfr.internal.LogTag.JFR_METADATA:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.INFO:Ljdk/jfr/internal/LogLevel;
            invokevirtual jdk.jfr.internal.Type.log:(Ljava/lang/String;Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)V
        30: .line 266
      StackMap locals:
      StackMap stack:
            aload 5 /* type */
            areturn
        end local 5 // jdk.jfr.internal.Type type
        end local 4 // boolean eventType
        end local 3 // java.lang.String superType
        end local 2 // java.util.List dynamicFields
        end local 1 // java.util.List dynamicAnnotations
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   31     0               clazz  Ljava/lang/Class<*>;
            0   31     1  dynamicAnnotations  Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
            0   31     2       dynamicFields  Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
           13   31     3           superType  Ljava/lang/String;
           14   31     4           eventType  Z
           21   31     5                type  Ljdk/jfr/internal/Type;
    Signature: (Ljava/lang/Class<*>;Ljava/util/List<Ljdk/jfr/AnnotationElement;>;Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;)Ljdk/jfr/internal/Type;
    MethodParameters:
                    Name  Flags
      clazz               
      dynamicAnnotations  
      dynamicFields       

  private static void addAnnotations(java.lang.Class<?>, jdk.jfr.internal.Type, java.util.List<jdk.jfr.AnnotationElement>);
    descriptor: (Ljava/lang/Class;Ljdk/jfr/internal/Type;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.lang.Class clazz
        start local 1 // jdk.jfr.internal.Type type
        start local 2 // java.util.List dynamicAnnotations
         0: .line 270
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* aes */
        start local 3 // java.util.ArrayList aes
         1: .line 271
            aload 2 /* dynamicAnnotations */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 9
         2: .line 272
            aload 0 /* clazz */
            invokestatic jdk.jfr.internal.Utils.getAnnotations:(Ljava/lang/Class;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.ArrayList top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation
            astore 4 /* a */
        start local 4 // java.lang.annotation.Annotation a
         4: .line 273
            aload 4 /* a */
            invokestatic jdk.jfr.internal.TypeLibrary.createAnnotation:(Ljava/lang/annotation/Annotation;)Ljdk/jfr/AnnotationElement;
            astore 6 /* ae */
        start local 6 // jdk.jfr.AnnotationElement ae
         5: .line 274
            aload 6 /* ae */
            ifnull 7
         6: .line 275
            aload 3 /* aes */
            aload 6 /* ae */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // jdk.jfr.AnnotationElement ae
        end local 4 // java.lang.annotation.Annotation a
         7: .line 272
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 278
            goto 16
         9: .line 279
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.ArrayList
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* newTypes */
        start local 4 // java.util.List newTypes
        10: .line 280
            aload 3 /* aes */
            aload 2 /* dynamicAnnotations */
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        11: .line 281
            aload 2 /* dynamicAnnotations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 14
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.ArrayList java.util.List top java.util.Iterator
      StackMap stack:
        12: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.AnnotationElement
            astore 5 /* ae */
        start local 5 // jdk.jfr.AnnotationElement ae
        13: .line 282
            aload 4 /* newTypes */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 5 /* ae */
            invokevirtual jdk.jfr.internal.PrivateAccess.getType:(Ljava/lang/Object;)Ljdk/jfr/internal/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // jdk.jfr.AnnotationElement ae
        14: .line 281
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        15: .line 284
            aload 4 /* newTypes */
            invokestatic jdk.jfr.internal.TypeLibrary.addTypes:(Ljava/util/List;)V
        end local 4 // java.util.List newTypes
        16: .line 286
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.ArrayList
      StackMap stack:
            aload 1 /* type */
            aload 3 /* aes */
            invokevirtual jdk.jfr.internal.Type.setAnnotations:(Ljava/util/List;)V
        17: .line 287
            aload 3 /* aes */
            invokevirtual java.util.ArrayList.trimToSize:()V
        18: .line 288
            return
        end local 3 // java.util.ArrayList aes
        end local 2 // java.util.List dynamicAnnotations
        end local 1 // jdk.jfr.internal.Type type
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   19     0               clazz  Ljava/lang/Class<*>;
            0   19     1                type  Ljdk/jfr/internal/Type;
            0   19     2  dynamicAnnotations  Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
            1   19     3                 aes  Ljava/util/ArrayList<Ljdk/jfr/AnnotationElement;>;
            4    7     4                   a  Ljava/lang/annotation/Annotation;
            5    7     6                  ae  Ljdk/jfr/AnnotationElement;
           10   16     4            newTypes  Ljava/util/List<Ljdk/jfr/internal/Type;>;
           13   14     5                  ae  Ljdk/jfr/AnnotationElement;
    Signature: (Ljava/lang/Class<*>;Ljdk/jfr/internal/Type;Ljava/util/List<Ljdk/jfr/AnnotationElement;>;)V
    MethodParameters:
                    Name  Flags
      clazz               
      type                
      dynamicAnnotations  

  private static void addUserFields(java.lang.Class<?>, jdk.jfr.internal.Type, java.util.List<jdk.jfr.ValueDescriptor>);
    descriptor: (Ljava/lang/Class;Ljdk/jfr/internal/Type;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.lang.Class clazz
        start local 1 // jdk.jfr.internal.Type type
        start local 2 // java.util.List dynamicFields
         0: .line 291
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* dynamicFieldSet */
        start local 3 // java.util.Map dynamicFieldSet
         1: .line 292
            aload 2 /* dynamicFields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            astore 4 /* dynamicField */
        start local 4 // jdk.jfr.ValueDescriptor dynamicField
         3: .line 293
            aload 3 /* dynamicFieldSet */
            aload 4 /* dynamicField */
            invokevirtual jdk.jfr.ValueDescriptor.getName:()Ljava/lang/String;
            aload 4 /* dynamicField */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // jdk.jfr.ValueDescriptor dynamicField
         4: .line 292
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 295
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* newTypes */
        start local 4 // java.util.List newTypes
         6: .line 296
            aload 0 /* clazz */
            invokestatic jdk.jfr.internal.Utils.getVisibleEventFields:(Ljava/lang/Class;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 21
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Field
            astore 5 /* field */
        start local 5 // java.lang.reflect.Field field
         8: .line 297
            aload 3 /* dynamicFieldSet */
            aload 5 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            astore 7 /* vd */
        start local 7 // jdk.jfr.ValueDescriptor vd
         9: .line 298
            aload 7 /* vd */
            ifnull 18
        10: .line 299
            aload 7 /* vd */
            invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()Ljava/lang/String;
            aload 5 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 300
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Type expected to match for field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* vd */
            invokevirtual jdk.jfr.ValueDescriptor.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " expected "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " but got "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* vd */
            invokevirtual jdk.jfr.ValueDescriptor.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 302
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.Map java.util.List java.lang.reflect.Field java.util.Iterator jdk.jfr.ValueDescriptor
      StackMap stack:
            aload 7 /* vd */
            invokevirtual jdk.jfr.ValueDescriptor.getAnnotationElements:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 15
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.Map java.util.List java.lang.reflect.Field java.util.Iterator jdk.jfr.ValueDescriptor top java.util.Iterator
      StackMap stack:
        13: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.AnnotationElement
            astore 8 /* ae */
        start local 8 // jdk.jfr.AnnotationElement ae
        14: .line 303
            aload 4 /* newTypes */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 8 /* ae */
            invokevirtual jdk.jfr.internal.PrivateAccess.getType:(Ljava/lang/Object;)Ljdk/jfr/internal/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // jdk.jfr.AnnotationElement ae
        15: .line 302
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 305
            aload 4 /* newTypes */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 7 /* vd */
            invokevirtual jdk.jfr.internal.PrivateAccess.getType:(Ljava/lang/Object;)Ljdk/jfr/internal/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 306
            goto 19
        18: .line 307
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.Map java.util.List java.lang.reflect.Field java.util.Iterator jdk.jfr.ValueDescriptor
      StackMap stack:
            aload 5 /* field */
            invokestatic jdk.jfr.internal.TypeLibrary.createField:(Ljava/lang/reflect/Field;)Ljdk/jfr/ValueDescriptor;
            astore 7 /* vd */
        19: .line 309
      StackMap locals:
      StackMap stack:
            aload 7 /* vd */
            ifnull 21
        20: .line 310
            aload 1 /* type */
            aload 7 /* vd */
            invokevirtual jdk.jfr.internal.Type.add:(Ljdk/jfr/ValueDescriptor;)V
        end local 7 // jdk.jfr.ValueDescriptor vd
        end local 5 // java.lang.reflect.Field field
        21: .line 296
      StackMap locals: java.lang.Class jdk.jfr.internal.Type java.util.List java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        22: .line 313
            aload 4 /* newTypes */
            invokestatic jdk.jfr.internal.TypeLibrary.addTypes:(Ljava/util/List;)V
        23: .line 314
            return
        end local 4 // java.util.List newTypes
        end local 3 // java.util.Map dynamicFieldSet
        end local 2 // java.util.List dynamicFields
        end local 1 // jdk.jfr.internal.Type type
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   24     0            clazz  Ljava/lang/Class<*>;
            0   24     1             type  Ljdk/jfr/internal/Type;
            0   24     2    dynamicFields  Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
            1   24     3  dynamicFieldSet  Ljava/util/Map<Ljava/lang/String;Ljdk/jfr/ValueDescriptor;>;
            3    4     4     dynamicField  Ljdk/jfr/ValueDescriptor;
            6   24     4         newTypes  Ljava/util/List<Ljdk/jfr/internal/Type;>;
            8   21     5            field  Ljava/lang/reflect/Field;
            9   21     7               vd  Ljdk/jfr/ValueDescriptor;
           14   15     8               ae  Ljdk/jfr/AnnotationElement;
    Signature: (Ljava/lang/Class<*>;Ljdk/jfr/internal/Type;Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;)V
    MethodParameters:
               Name  Flags
      clazz          
      type           
      dynamicFields  

  static void addImplicitFields(jdk.jfr.internal.Type, boolean, boolean, boolean, boolean, boolean);
    descriptor: (Ljdk/jfr/internal/Type;ZZZZZ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // jdk.jfr.internal.Type type
        start local 1 // boolean requestable
        start local 2 // boolean hasDuration
        start local 3 // boolean hasThread
        start local 4 // boolean hasStackTrace
        start local 5 // boolean hasCutoff
         0: .line 318
            ldc Ljdk/jfr/Timespan;
            invokestatic jdk.jfr.internal.TypeLibrary.createAnnotationType:(Ljava/lang/Class;)Ljdk/jfr/internal/Type;
            pop
         1: .line 319
            ldc Ljdk/jfr/Timestamp;
            invokestatic jdk.jfr.internal.TypeLibrary.createAnnotationType:(Ljava/lang/Class;)Ljdk/jfr/internal/Type;
            pop
         2: .line 320
            ldc Ljdk/jfr/Label;
            invokestatic jdk.jfr.internal.TypeLibrary.createAnnotationType:(Ljava/lang/Class;)Ljdk/jfr/internal/Type;
            pop
         3: .line 321
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aconst_null
            iconst_0
            invokestatic jdk.jfr.internal.TypeLibrary.defineType:(Ljava/lang/Class;Ljava/lang/String;Z)Ljdk/jfr/internal/Type;
            pop
         4: .line 322
            aload 0 /* type */
            iload 1 /* requestable */
            iload 2 /* hasDuration */
            iload 3 /* hasThread */
            iload 4 /* hasStackTrace */
            iload 5 /* hasCutoff */
            invokestatic jdk.jfr.internal.TypeLibrary.addFields:(Ljdk/jfr/internal/Type;ZZZZZ)V
         5: .line 323
            return
        end local 5 // boolean hasCutoff
        end local 4 // boolean hasStackTrace
        end local 3 // boolean hasThread
        end local 2 // boolean hasDuration
        end local 1 // boolean requestable
        end local 0 // jdk.jfr.internal.Type type
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           type  Ljdk/jfr/internal/Type;
            0    6     1    requestable  Z
            0    6     2    hasDuration  Z
            0    6     3      hasThread  Z
            0    6     4  hasStackTrace  Z
            0    6     5      hasCutoff  Z
    MethodParameters:
               Name  Flags
      type           
      requestable    
      hasDuration    
      hasThread      
      hasStackTrace  
      hasCutoff      

  private static void addFields(jdk.jfr.internal.Type, boolean, boolean, boolean, boolean, boolean);
    descriptor: (Ljdk/jfr/internal/Type;ZZZZZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // jdk.jfr.internal.Type type
        start local 1 // boolean requestable
        start local 2 // boolean hasDuration
        start local 3 // boolean hasThread
        start local 4 // boolean hasStackTrace
        start local 5 // boolean hasCutoff
         0: .line 326
            aload 0 /* type */
            getstatic jdk.jfr.internal.TypeLibrary.START_TIME_FIELD:Ljdk/jfr/ValueDescriptor;
            invokevirtual jdk.jfr.internal.Type.add:(Ljdk/jfr/ValueDescriptor;)V
         1: .line 327
            iload 2 /* hasDuration */
            ifne 2
            iload 5 /* hasCutoff */
            ifeq 3
         2: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic jdk.jfr.internal.TypeLibrary.DURATION_FIELD:Ljdk/jfr/ValueDescriptor;
            invokevirtual jdk.jfr.internal.Type.add:(Ljdk/jfr/ValueDescriptor;)V
         3: .line 330
      StackMap locals:
      StackMap stack:
            iload 3 /* hasThread */
            ifeq 5
         4: .line 331
            aload 0 /* type */
            getstatic jdk.jfr.internal.TypeLibrary.THREAD_FIELD:Ljdk/jfr/ValueDescriptor;
            invokevirtual jdk.jfr.internal.Type.add:(Ljdk/jfr/ValueDescriptor;)V
         5: .line 333
      StackMap locals:
      StackMap stack:
            iload 4 /* hasStackTrace */
            ifeq 7
         6: .line 334
            aload 0 /* type */
            getstatic jdk.jfr.internal.TypeLibrary.STACK_TRACE_FIELD:Ljdk/jfr/ValueDescriptor;
            invokevirtual jdk.jfr.internal.Type.add:(Ljdk/jfr/ValueDescriptor;)V
         7: .line 336
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean hasCutoff
        end local 4 // boolean hasStackTrace
        end local 3 // boolean hasThread
        end local 2 // boolean hasDuration
        end local 1 // boolean requestable
        end local 0 // jdk.jfr.internal.Type type
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           type  Ljdk/jfr/internal/Type;
            0    8     1    requestable  Z
            0    8     2    hasDuration  Z
            0    8     3      hasThread  Z
            0    8     4  hasStackTrace  Z
            0    8     5      hasCutoff  Z
    MethodParameters:
               Name  Flags
      type           
      requestable    
      hasDuration    
      hasThread      
      hasStackTrace  
      hasCutoff      

  private static java.util.List<jdk.jfr.AnnotationElement> createStandardAnnotations(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.String description
         0: .line 339
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* annotationElements */
        start local 2 // java.util.List annotationElements
         1: .line 340
            aload 2 /* annotationElements */
            new jdk.jfr.AnnotationElement
            dup
            ldc Ljdk/jfr/Label;
            aload 0 /* name */
            invokespecial jdk.jfr.AnnotationElement.<init>:(Ljava/lang/Class;Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 341
            aload 1 /* description */
            ifnull 4
         3: .line 342
            aload 2 /* annotationElements */
            new jdk.jfr.AnnotationElement
            dup
            ldc Ljdk/jfr/Description;
            aload 1 /* description */
            invokespecial jdk.jfr.AnnotationElement.<init>:(Ljava/lang/Class;Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 344
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* annotationElements */
            areturn
        end local 2 // java.util.List annotationElements
        end local 1 // java.lang.String description
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                name  Ljava/lang/String;
            0    5     1         description  Ljava/lang/String;
            1    5     2  annotationElements  Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
    MethodParameters:
             Name  Flags
      name         
      description  

  private static jdk.jfr.ValueDescriptor createField(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljdk/jfr/ValueDescriptor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=1
        start local 0 // java.lang.reflect.Field field
         0: .line 348
            aload 0 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            istore 1 /* mod */
        start local 1 // int mod
         1: .line 349
            iload 1 /* mod */
            invokestatic java.lang.reflect.Modifier.isTransient:(I)Z
            ifeq 3
         2: .line 350
            aconst_null
            areturn
         3: .line 352
      StackMap locals: int
      StackMap stack:
            iload 1 /* mod */
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 5
         4: .line 353
            aconst_null
            areturn
         5: .line 355
      StackMap locals:
      StackMap stack:
            aload 0 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            astore 2 /* fieldType */
        start local 2 // java.lang.Class fieldType
         6: .line 356
            aload 2 /* fieldType */
            invokestatic jdk.jfr.internal.Type.isKnownType:(Ljava/lang/Class;)Z
            ifne 8
         7: .line 357
            aconst_null
            areturn
         8: .line 359
      StackMap locals: java.lang.Class
      StackMap stack:
            ldc Ljava/lang/Thread;
            aload 2 /* fieldType */
            if_acmpeq 9
            aload 2 /* fieldType */
            ldc Ljava/lang/Class;
            if_acmpeq 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: istore 3 /* constantPool */
        start local 3 // boolean constantPool
        11: .line 360
            aload 2 /* fieldType */
            invokestatic jdk.jfr.internal.TypeLibrary.createType:(Ljava/lang/Class;)Ljdk/jfr/internal/Type;
            astore 4 /* type */
        start local 4 // jdk.jfr.internal.Type type
        12: .line 361
            aload 0 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            astore 5 /* fieldName */
        start local 5 // java.lang.String fieldName
        13: .line 362
            aload 0 /* field */
            ldc Ljdk/jfr/Name;
            invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast jdk.jfr.Name
            astore 6 /* name */
        start local 6 // jdk.jfr.Name name
        14: .line 363
            aload 5 /* fieldName */
            astore 7 /* useName */
        start local 7 // java.lang.String useName
        15: .line 364
            aload 6 /* name */
            ifnull 17
        16: .line 365
            aload 6 /* name */
            invokeinterface jdk.jfr.Name.value:()Ljava/lang/String;
            astore 7 /* useName */
        17: .line 367
      StackMap locals: java.lang.reflect.Field int java.lang.Class int jdk.jfr.internal.Type java.lang.String jdk.jfr.Name java.lang.String
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* ans */
        start local 8 // java.util.List ans
        18: .line 368
            aload 0 /* field */
            invokevirtual java.lang.reflect.Field.getAnnotations:()[Ljava/lang/annotation/Annotation;
            invokestatic jdk.jfr.internal.TypeLibrary.resolveRepeatedAnnotations:([Ljava/lang/annotation/Annotation;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 23
      StackMap locals: java.lang.reflect.Field int java.lang.Class int jdk.jfr.internal.Type java.lang.String jdk.jfr.Name java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
        19: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation
            astore 9 /* a */
        start local 9 // java.lang.annotation.Annotation a
        20: .line 369
            aload 9 /* a */
            invokestatic jdk.jfr.internal.TypeLibrary.createAnnotation:(Ljava/lang/annotation/Annotation;)Ljdk/jfr/AnnotationElement;
            astore 11 /* ae */
        start local 11 // jdk.jfr.AnnotationElement ae
        21: .line 370
            aload 11 /* ae */
            ifnull 23
        22: .line 371
            aload 8 /* ans */
            aload 11 /* ae */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // jdk.jfr.AnnotationElement ae
        end local 9 // java.lang.annotation.Annotation a
        23: .line 368
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        24: .line 374
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 7 /* useName */
            aload 4 /* type */
            aload 8 /* ans */
            iconst_0
            iload 3 /* constantPool */
            aload 5 /* fieldName */
            invokevirtual jdk.jfr.internal.PrivateAccess.newValueDescriptor:(Ljava/lang/String;Ljdk/jfr/internal/Type;Ljava/util/List;IZLjava/lang/String;)Ljdk/jfr/ValueDescriptor;
            areturn
        end local 8 // java.util.List ans
        end local 7 // java.lang.String useName
        end local 6 // jdk.jfr.Name name
        end local 5 // java.lang.String fieldName
        end local 4 // jdk.jfr.internal.Type type
        end local 3 // boolean constantPool
        end local 2 // java.lang.Class fieldType
        end local 1 // int mod
        end local 0 // java.lang.reflect.Field field
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   25     0         field  Ljava/lang/reflect/Field;
            1   25     1           mod  I
            6   25     2     fieldType  Ljava/lang/Class<*>;
           11   25     3  constantPool  Z
           12   25     4          type  Ljdk/jfr/internal/Type;
           13   25     5     fieldName  Ljava/lang/String;
           14   25     6          name  Ljdk/jfr/Name;
           15   25     7       useName  Ljava/lang/String;
           18   25     8           ans  Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
           20   23     9             a  Ljava/lang/annotation/Annotation;
           21   23    11            ae  Ljdk/jfr/AnnotationElement;
    MethodParameters:
       Name  Flags
      field  

  private static java.util.List<java.lang.annotation.Annotation> resolveRepeatedAnnotations(java.lang.annotation.Annotation[]);
    descriptor: ([Ljava/lang/annotation/Annotation;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=15, args_size=1
        start local 0 // java.lang.annotation.Annotation[] annotations
         0: .line 378
            new java.util.ArrayList
            dup
            aload 0 /* annotations */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* annos */
        start local 1 // java.util.List annos
         1: .line 379
            aload 0 /* annotations */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 22
      StackMap locals: java.lang.annotation.Annotation[] java.util.List top int int java.lang.annotation.Annotation[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* a */
        start local 2 // java.lang.annotation.Annotation a
         3: .line 380
            iconst_0
            istore 6 /* repeated */
        start local 6 // boolean repeated
         4: .line 383
            aload 2 /* a */
            invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
            ldc "value"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 7 /* m */
        start local 7 // java.lang.reflect.Method m
         5: .line 384
            aload 7 /* m */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 8 /* returnType */
        start local 8 // java.lang.Class returnType
         6: .line 385
            aload 8 /* returnType */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 19
         7: .line 386
            aload 8 /* returnType */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 9 /* ct */
        start local 9 // java.lang.Class ct
         8: .line 387
            ldc Ljava/lang/annotation/Annotation;
            aload 9 /* ct */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 19
            aload 9 /* ct */
            ldc Ljava/lang/annotation/Repeatable;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 19
         9: .line 388
            aload 7 /* m */
            aload 2 /* a */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* res */
        start local 10 // java.lang.Object res
        10: .line 389
            aload 10 /* res */
            ifnull 19
            ldc [Ljava/lang/annotation/Annotation;
            aload 10 /* res */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 19
        11: .line 390
            aload 7 /* m */
            aload 2 /* a */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation[]
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 15
      StackMap locals: java.lang.annotation.Annotation[] java.util.List java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] int java.lang.reflect.Method java.lang.Class java.lang.Class java.lang.Object top int int java.lang.annotation.Annotation[]
      StackMap stack:
        12: aload 14
            iload 12
            aaload
            astore 11 /* rep */
        start local 11 // java.lang.annotation.Annotation rep
        13: .line 391
            aload 1 /* annos */
            aload 11 /* rep */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.annotation.Annotation rep
        14: .line 390
            iinc 12 1
      StackMap locals:
      StackMap stack:
        15: iload 12
            iload 13
            if_icmplt 12
        16: .line 393
            iconst_1
            istore 6 /* repeated */
        end local 10 // java.lang.Object res
        end local 9 // java.lang.Class ct
        end local 8 // java.lang.Class returnType
        17: .line 397
            goto 19
        end local 7 // java.lang.reflect.Method m
      StackMap locals: java.lang.annotation.Annotation[] java.util.List java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] int
      StackMap stack: java.lang.Exception
        18: pop
        19: .line 400
      StackMap locals:
      StackMap stack:
            iload 6 /* repeated */
            ifne 21
        20: .line 401
            aload 1 /* annos */
            aload 2 /* a */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // boolean repeated
        end local 2 // java.lang.annotation.Annotation a
        21: .line 379
      StackMap locals: java.lang.annotation.Annotation[] java.util.List top int int java.lang.annotation.Annotation[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        22: iload 3
            iload 4
            if_icmplt 2
        23: .line 404
            aload 1 /* annos */
            areturn
        end local 1 // java.util.List annos
        end local 0 // java.lang.annotation.Annotation[] annotations
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0  annotations  [Ljava/lang/annotation/Annotation;
            1   24     1        annos  Ljava/util/List<Ljava/lang/annotation/Annotation;>;
            3   21     2            a  Ljava/lang/annotation/Annotation;
            4   21     6     repeated  Z
            5   18     7            m  Ljava/lang/reflect/Method;
            6   17     8   returnType  Ljava/lang/Class<*>;
            8   17     9           ct  Ljava/lang/Class<*>;
           10   17    10          res  Ljava/lang/Object;
           13   14    11          rep  Ljava/lang/annotation/Annotation;
      Exception table:
        from    to  target  type
           4    17      18  Class java.lang.NoSuchMethodException
           4    17      18  Class java.lang.SecurityException
           4    17      18  Class java.lang.IllegalAccessException
           4    17      18  Class java.lang.IllegalArgumentException
           4    17      18  Class java.lang.reflect.InvocationTargetException
    Signature: ([Ljava/lang/annotation/Annotation;)Ljava/util/List<Ljava/lang/annotation/Annotation;>;
    MethodParameters:
             Name  Flags
      annotations  

  public boolean clearUnregistered();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // jdk.jfr.internal.TypeLibrary this
         0: .line 411
            getstatic jdk.jfr.internal.LogTag.JFR_METADATA:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.TRACE:Ljdk/jfr/internal/LogLevel;
            ldc "Cleaning out obsolete metadata"
            invokestatic jdk.jfr.internal.Logger.log:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;Ljava/lang/String;)V
         1: .line 412
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* registered */
        start local 1 // java.util.List registered
         2: .line 413
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: jdk.jfr.internal.TypeLibrary java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 2 /* type */
        start local 2 // jdk.jfr.internal.Type type
         4: .line 414
            aload 2 /* type */
            instanceof jdk.jfr.internal.PlatformEventType
            ifeq 7
         5: .line 415
            aload 2 /* type */
            checkcast jdk.jfr.internal.PlatformEventType
            invokevirtual jdk.jfr.internal.PlatformEventType.isRegistered:()Z
            ifeq 7
         6: .line 416
            aload 1 /* registered */
            aload 2 /* type */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // jdk.jfr.internal.Type type
         7: .line 413
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 420
            aload 1 /* registered */
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  jdk/jfr/internal/TypeLibrary.lambda$5(Ljdk/jfr/internal/Type;)Z (6)
                  (Ljdk/jfr/internal/Type;)Z
            invokedynamic accept()Ljava/util/function/Consumer;
              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;)V
                  jdk/jfr/internal/TypeLibrary.lambda$6(Ljdk/jfr/internal/Type;)V (6)
                  (Ljdk/jfr/internal/Type;)V
            invokestatic jdk.jfr.internal.TypeLibrary.visitReachable:(Ljava/util/Collection;Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V
         9: .line 421
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* removeIds */
        start local 2 // java.util.List removeIds
        10: .line 422
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 17
      StackMap locals: jdk.jfr.internal.TypeLibrary java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 3 /* type */
        start local 3 // jdk.jfr.internal.Type type
        12: .line 423
            aload 3 /* type */
            invokevirtual jdk.jfr.internal.Type.getRemove:()Z
            ifeq 16
            aload 3 /* type */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic jdk.jfr.internal.Type.isDefinedByJVM:(J)Z
            ifne 16
        13: .line 424
            aload 2 /* removeIds */
            aload 3 /* type */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 425
            getstatic jdk.jfr.internal.LogTag.JFR_METADATA:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.TRACE:Ljdk/jfr/internal/LogLevel;
            invokestatic jdk.jfr.internal.Logger.shouldLog:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)Z
            ifeq 16
        15: .line 426
            getstatic jdk.jfr.internal.LogTag.JFR_METADATA:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.TRACE:Ljdk/jfr/internal/LogLevel;
            new java.lang.StringBuilder
            dup
            ldc "Removed obsolete metadata "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* type */
            invokevirtual jdk.jfr.internal.Type.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.Logger.log:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;Ljava/lang/String;)V
        16: .line 431
      StackMap locals: jdk.jfr.internal.TypeLibrary java.util.List java.util.List jdk.jfr.internal.Type java.util.Iterator
      StackMap stack:
            aload 3 /* type */
            iconst_1
            invokevirtual jdk.jfr.internal.Type.setRemove:(Z)V
        end local 3 // jdk.jfr.internal.Type type
        17: .line 422
      StackMap locals: jdk.jfr.internal.TypeLibrary java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        18: .line 433
            aload 2 /* removeIds */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 21
      StackMap locals:
      StackMap stack:
        19: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Long
            astore 3 /* id */
        start local 3 // java.lang.Long id
        20: .line 434
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            aload 3 /* id */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.lang.Long id
        21: .line 433
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        22: .line 436
            aload 2 /* removeIds */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 23
            iconst_0
            goto 24
      StackMap locals: jdk.jfr.internal.TypeLibrary java.util.List java.util.List
      StackMap stack:
        23: iconst_1
      StackMap locals:
      StackMap stack: int
        24: ireturn
        end local 2 // java.util.List removeIds
        end local 1 // java.util.List registered
        end local 0 // jdk.jfr.internal.TypeLibrary this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0        this  Ljdk/jfr/internal/TypeLibrary;
            2   25     1  registered  Ljava/util/List<Ljdk/jfr/internal/Type;>;
            4    7     2        type  Ljdk/jfr/internal/Type;
           10   25     2   removeIds  Ljava/util/List<Ljava/lang/Long;>;
           12   17     3        type  Ljdk/jfr/internal/Type;
           20   21     3          id  Ljava/lang/Long;

  public void addType(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.jfr.internal.TypeLibrary this
        start local 1 // jdk.jfr.internal.Type type
         0: .line 440
            aload 1 /* type */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokestatic jdk.jfr.internal.TypeLibrary.addTypes:(Ljava/util/List;)V
         1: .line 441
            return
        end local 1 // jdk.jfr.internal.Type type
        end local 0 // jdk.jfr.internal.TypeLibrary this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/jfr/internal/TypeLibrary;
            0    2     1  type  Ljdk/jfr/internal/Type;
    MethodParameters:
      Name  Flags
      type  

  public static void addTypes(java.util.List<jdk.jfr.internal.Type>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.List ts
         0: .line 444
            aload 0 /* ts */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 2
         1: .line 445
            aload 0 /* ts */
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  jdk/jfr/internal/TypeLibrary.lambda$7(Ljdk/jfr/internal/Type;)Z (6)
                  (Ljdk/jfr/internal/Type;)Z
            invokedynamic accept()Ljava/util/function/Consumer;
              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;)V
                  jdk/jfr/internal/TypeLibrary.lambda$8(Ljdk/jfr/internal/Type;)V (6)
                  (Ljdk/jfr/internal/Type;)V
            invokestatic jdk.jfr.internal.TypeLibrary.visitReachable:(Ljava/util/Collection;Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V
         2: .line 447
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.util.List ts
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    ts  Ljava/util/List<Ljdk/jfr/internal/Type;>;
    Signature: (Ljava/util/List<Ljdk/jfr/internal/Type;>;)V
    MethodParameters:
      Name  Flags
      ts    

  private static void visitReachable(java.util.Collection<jdk.jfr.internal.Type>, java.util.function.Predicate<jdk.jfr.internal.Type>, java.util.function.Consumer<jdk.jfr.internal.Type>);
    descriptor: (Ljava/util/Collection;Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // java.util.Collection rootSet
        start local 1 // java.util.function.Predicate p
        start local 2 // java.util.function.Consumer c
         0: .line 457
            new java.util.ArrayDeque
            dup
            aload 0 /* rootSet */
            invokespecial java.util.ArrayDeque.<init>:(Ljava/util/Collection;)V
            astore 3 /* typeQ */
        start local 3 // java.util.Queue typeQ
         1: .line 458
            goto 18
         2: .line 459
      StackMap locals: java.util.Queue
      StackMap stack:
            aload 3 /* typeQ */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 4 /* type */
        start local 4 // jdk.jfr.internal.Type type
         3: .line 460
            aload 1 /* p */
            aload 4 /* type */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            ifeq 18
         4: .line 461
            aload 2 /* c */
            aload 4 /* type */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         5: .line 462
            aload 3 /* typeQ */
            aload 4 /* type */
            invokevirtual jdk.jfr.internal.Type.getAnnotationElements:()Ljava/util/List;
            invokestatic jdk.jfr.internal.TypeLibrary.visitAnnotations:(Ljava/util/Queue;Ljava/util/List;)V
         6: .line 463
            aload 4 /* type */
            invokevirtual jdk.jfr.internal.Type.getFields:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: java.util.Collection java.util.function.Predicate java.util.function.Consumer java.util.Queue jdk.jfr.internal.Type top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            astore 5 /* v */
        start local 5 // jdk.jfr.ValueDescriptor v
         8: .line 464
            aload 3 /* typeQ */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 5 /* v */
            invokevirtual jdk.jfr.internal.PrivateAccess.getType:(Ljava/lang/Object;)Ljdk/jfr/internal/Type;
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         9: .line 465
            aload 3 /* typeQ */
            aload 5 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getAnnotationElements:()Ljava/util/List;
            invokestatic jdk.jfr.internal.TypeLibrary.visitAnnotations:(Ljava/util/Queue;Ljava/util/List;)V
        end local 5 // jdk.jfr.ValueDescriptor v
        10: .line 463
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 467
            aload 4 /* type */
            instanceof jdk.jfr.internal.PlatformEventType
            ifeq 18
        12: .line 468
            aload 4 /* type */
            checkcast jdk.jfr.internal.PlatformEventType
            astore 5 /* pe */
        start local 5 // jdk.jfr.internal.PlatformEventType pe
        13: .line 469
            aload 5 /* pe */
            invokevirtual jdk.jfr.internal.PlatformEventType.getAllSettings:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 17
      StackMap locals: java.util.Collection java.util.function.Predicate java.util.function.Consumer java.util.Queue jdk.jfr.internal.Type jdk.jfr.internal.PlatformEventType top java.util.Iterator
      StackMap stack:
        14: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.SettingDescriptor
            astore 6 /* s */
        start local 6 // jdk.jfr.SettingDescriptor s
        15: .line 470
            aload 3 /* typeQ */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 6 /* s */
            invokevirtual jdk.jfr.internal.PrivateAccess.getType:(Ljava/lang/Object;)Ljdk/jfr/internal/Type;
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
        16: .line 471
            aload 3 /* typeQ */
            aload 6 /* s */
            invokevirtual jdk.jfr.SettingDescriptor.getAnnotationElements:()Ljava/util/List;
            invokestatic jdk.jfr.internal.TypeLibrary.visitAnnotations:(Ljava/util/Queue;Ljava/util/List;)V
        end local 6 // jdk.jfr.SettingDescriptor s
        17: .line 469
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 5 // jdk.jfr.internal.PlatformEventType pe
        end local 4 // jdk.jfr.internal.Type type
        18: .line 458
      StackMap locals: java.util.Collection java.util.function.Predicate java.util.function.Consumer java.util.Queue
      StackMap stack:
            aload 3 /* typeQ */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 2
        19: .line 476
            return
        end local 3 // java.util.Queue typeQ
        end local 2 // java.util.function.Consumer c
        end local 1 // java.util.function.Predicate p
        end local 0 // java.util.Collection rootSet
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0  rootSet  Ljava/util/Collection<Ljdk/jfr/internal/Type;>;
            0   20     1        p  Ljava/util/function/Predicate<Ljdk/jfr/internal/Type;>;
            0   20     2        c  Ljava/util/function/Consumer<Ljdk/jfr/internal/Type;>;
            1   20     3    typeQ  Ljava/util/Queue<Ljdk/jfr/internal/Type;>;
            3   18     4     type  Ljdk/jfr/internal/Type;
            8   10     5        v  Ljdk/jfr/ValueDescriptor;
           13   18     5       pe  Ljdk/jfr/internal/PlatformEventType;
           15   17     6        s  Ljdk/jfr/SettingDescriptor;
    Signature: (Ljava/util/Collection<Ljdk/jfr/internal/Type;>;Ljava/util/function/Predicate<Ljdk/jfr/internal/Type;>;Ljava/util/function/Consumer<Ljdk/jfr/internal/Type;>;)V
    MethodParameters:
         Name  Flags
      rootSet  
      p        
      c        

  private static void visitAnnotations(java.util.Queue<jdk.jfr.internal.Type>, java.util.List<jdk.jfr.AnnotationElement>);
    descriptor: (Ljava/util/Queue;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // java.util.Queue typeQ
        start local 1 // java.util.List aes
         0: .line 479
            new java.util.ArrayDeque
            dup
            aload 1 /* aes */
            invokespecial java.util.ArrayDeque.<init>:(Ljava/util/Collection;)V
            astore 2 /* aQ */
        start local 2 // java.util.Queue aQ
         1: .line 480
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* visited */
        start local 3 // java.util.Set visited
         2: .line 481
            goto 9
         3: .line 482
      StackMap locals: java.util.Queue java.util.Set
      StackMap stack:
            aload 2 /* aQ */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            checkcast jdk.jfr.AnnotationElement
            astore 4 /* ae */
        start local 4 // jdk.jfr.AnnotationElement ae
         4: .line 483
            aload 3 /* visited */
            aload 4 /* ae */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 8
         5: .line 484
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 4 /* ae */
            invokevirtual jdk.jfr.internal.PrivateAccess.getType:(Ljava/lang/Object;)Ljdk/jfr/internal/Type;
            astore 5 /* ty */
        start local 5 // jdk.jfr.internal.Type ty
         6: .line 485
            aload 0 /* typeQ */
            aload 5 /* ty */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         7: .line 486
            aload 3 /* visited */
            aload 4 /* ae */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // jdk.jfr.internal.Type ty
         8: .line 488
      StackMap locals: jdk.jfr.AnnotationElement
      StackMap stack:
            aload 2 /* aQ */
            aload 4 /* ae */
            invokevirtual jdk.jfr.AnnotationElement.getAnnotationElements:()Ljava/util/List;
            invokeinterface java.util.Queue.addAll:(Ljava/util/Collection;)Z
            pop
        end local 4 // jdk.jfr.AnnotationElement ae
         9: .line 481
      StackMap locals:
      StackMap stack:
            aload 2 /* aQ */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 3
        10: .line 490
            return
        end local 3 // java.util.Set visited
        end local 2 // java.util.Queue aQ
        end local 1 // java.util.List aes
        end local 0 // java.util.Queue typeQ
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0    typeQ  Ljava/util/Queue<Ljdk/jfr/internal/Type;>;
            0   11     1      aes  Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
            1   11     2       aQ  Ljava/util/Queue<Ljdk/jfr/AnnotationElement;>;
            2   11     3  visited  Ljava/util/Set<Ljdk/jfr/AnnotationElement;>;
            4    9     4       ae  Ljdk/jfr/AnnotationElement;
            6    8     5       ty  Ljdk/jfr/internal/Type;
    Signature: (Ljava/util/Queue<Ljdk/jfr/internal/Type;>;Ljava/util/List<Ljdk/jfr/AnnotationElement;>;)V
    MethodParameters:
       Name  Flags
      typeQ  
      aes    

  public void removeType(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.jfr.internal.TypeLibrary this
        start local 1 // long id
         0: .line 493
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            lload 1 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 494
            return
        end local 1 // long id
        end local 0 // jdk.jfr.internal.TypeLibrary this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/jfr/internal/TypeLibrary;
            0    2     1    id  J
    MethodParameters:
      Name  Flags
      id    

  private static boolean lambda$0(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.Type t
         0: .line 70
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            aload 0 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.jfr.internal.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Ljdk/jfr/internal/Type;

  private static void lambda$1(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.Type t
         0: .line 70
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            aload 0 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 0 /* t */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 0 // jdk.jfr.internal.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljdk/jfr/internal/Type;

  private static int lambda$2(jdk.jfr.internal.Type, jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.jfr.internal.Type x
        start local 1 // jdk.jfr.internal.Type y
         0: .line 72
            aload 0 /* x */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            aload 1 /* y */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.compare:(JJ)I
            ireturn
        end local 1 // jdk.jfr.internal.Type y
        end local 0 // jdk.jfr.internal.Type x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  Ljdk/jfr/internal/Type;
            0    1     1     y  Ljdk/jfr/internal/Type;

  private static void lambda$3(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.Type t
         0: .line 73
            aload 0 /* t */
            ldc "Added"
            getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_METADATA:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.INFO:Ljdk/jfr/internal/LogLevel;
            invokevirtual jdk.jfr.internal.Type.log:(Ljava/lang/String;Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)V
            return
        end local 0 // jdk.jfr.internal.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljdk/jfr/internal/Type;

  private static int lambda$4(jdk.jfr.internal.Type, jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.jfr.internal.Type a
        start local 1 // jdk.jfr.internal.Type b
         0: .line 112
            aload 0 /* a */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            aload 1 /* b */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.compare:(JJ)I
            ireturn
        end local 1 // jdk.jfr.internal.Type b
        end local 0 // jdk.jfr.internal.Type a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Ljdk/jfr/internal/Type;
            0    1     1     b  Ljdk/jfr/internal/Type;

  private static boolean lambda$5(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.Type t
         0: .line 420
            aload 0 /* t */
            invokevirtual jdk.jfr.internal.Type.getRemove:()Z
            ireturn
        end local 0 // jdk.jfr.internal.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljdk/jfr/internal/Type;

  private static void lambda$6(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.Type t
         0: .line 420
            aload 0 /* t */
            iconst_0
            invokevirtual jdk.jfr.internal.Type.setRemove:(Z)V
            return
        end local 0 // jdk.jfr.internal.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljdk/jfr/internal/Type;

  private static boolean lambda$7(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.Type t
         0: .line 445
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            aload 0 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.jfr.internal.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Ljdk/jfr/internal/Type;

  private static void lambda$8(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.Type t
         0: .line 445
            getstatic jdk.jfr.internal.TypeLibrary.types:Ljava/util/Map;
            aload 0 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 0 /* t */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 0 // jdk.jfr.internal.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljdk/jfr/internal/Type;
}
SourceFile: "TypeLibrary.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles