public class io.vertx.kafka.client.common.tracing.ConsumerTracer<S>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.kafka.client.common.tracing.ConsumerTracer
  super_class: java.lang.Object
{
  private final io.vertx.core.spi.tracing.VertxTracer<S, java.lang.Void> tracer;
    descriptor: Lio/vertx/core/spi/tracing/VertxTracer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/vertx/core/spi/tracing/VertxTracer<TS;Ljava/lang/Void;>;

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

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

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

  private final io.vertx.core.tracing.TracingPolicy policy;
    descriptor: Lio/vertx/core/tracing/TracingPolicy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static <S> io.vertx.kafka.client.common.tracing.ConsumerTracer create(io.vertx.core.spi.tracing.VertxTracer, io.vertx.kafka.client.common.KafkaClientOptions);
    descriptor: (Lio/vertx/core/spi/tracing/VertxTracer;Lio/vertx/kafka/client/common/KafkaClientOptions;)Lio/vertx/kafka/client/common/tracing/ConsumerTracer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // io.vertx.core.spi.tracing.VertxTracer tracer
        start local 1 // io.vertx.kafka.client.common.KafkaClientOptions opts
         0: .line 54
            aload 1 /* opts */
            invokevirtual io.vertx.kafka.client.common.KafkaClientOptions.getTracingPolicy:()Lio/vertx/core/tracing/TracingPolicy;
            ifnull 1
            aload 1 /* opts */
            invokevirtual io.vertx.kafka.client.common.KafkaClientOptions.getTracingPolicy:()Lio/vertx/core/tracing/TracingPolicy;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic io.vertx.core.tracing.TracingPolicy.ALWAYS:Lio/vertx/core/tracing/TracingPolicy;
      StackMap locals:
      StackMap stack: io.vertx.core.tracing.TracingPolicy
         2: astore 2 /* policy */
        start local 2 // io.vertx.core.tracing.TracingPolicy policy
         3: .line 55
            aload 2 /* policy */
            getstatic io.vertx.core.tracing.TracingPolicy.IGNORE:Lio/vertx/core/tracing/TracingPolicy;
            if_acmpeq 4
            aload 0 /* tracer */
            ifnonnull 5
         4: .line 57
      StackMap locals: io.vertx.core.tracing.TracingPolicy
      StackMap stack:
            aconst_null
            areturn
         5: .line 59
      StackMap locals:
      StackMap stack:
            aload 1 /* opts */
            invokevirtual io.vertx.kafka.client.common.KafkaClientOptions.getTracePeerAddress:()Ljava/lang/String;
            astore 3 /* address */
        start local 3 // java.lang.String address
         6: .line 61
            aload 3 /* address */
            ifnonnull 11
         7: .line 62
            aload 1 /* opts */
            invokevirtual io.vertx.kafka.client.common.KafkaClientOptions.getConfig:()Ljava/util/Map;
            ifnull 10
         8: .line 63
            aload 1 /* opts */
            invokevirtual io.vertx.kafka.client.common.KafkaClientOptions.getConfig:()Ljava/util/Map;
            ldc "bootstrap.servers"
            ldc ""
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* address */
         9: .line 64
            goto 11
        10: .line 65
      StackMap locals: java.lang.String
      StackMap stack:
            ldc ""
            astore 3 /* address */
        11: .line 68
      StackMap locals:
      StackMap stack:
            new io.vertx.kafka.client.common.tracing.ConsumerTracer
            dup
            aload 0 /* tracer */
            aload 2 /* policy */
            aload 3 /* address */
            invokespecial io.vertx.kafka.client.common.tracing.ConsumerTracer.<init>:(Lio/vertx/core/spi/tracing/VertxTracer;Lio/vertx/core/tracing/TracingPolicy;Ljava/lang/String;)V
            areturn
        end local 3 // java.lang.String address
        end local 2 // io.vertx.core.tracing.TracingPolicy policy
        end local 1 // io.vertx.kafka.client.common.KafkaClientOptions opts
        end local 0 // io.vertx.core.spi.tracing.VertxTracer tracer
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0   tracer  Lio/vertx/core/spi/tracing/VertxTracer;
            0   12     1     opts  Lio/vertx/kafka/client/common/KafkaClientOptions;
            3   12     2   policy  Lio/vertx/core/tracing/TracingPolicy;
            6   12     3  address  Ljava/lang/String;
    Signature: <S:Ljava/lang/Object;>(Lio/vertx/core/spi/tracing/VertxTracer;Lio/vertx/kafka/client/common/KafkaClientOptions;)Lio/vertx/kafka/client/common/tracing/ConsumerTracer;
    MethodParameters:
        Name  Flags
      tracer  
      opts    

  private void <init>(io.vertx.core.spi.tracing.VertxTracer<S, java.lang.Void>, io.vertx.core.tracing.TracingPolicy, java.lang.String);
    descriptor: (Lio/vertx/core/spi/tracing/VertxTracer;Lio/vertx/core/tracing/TracingPolicy;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // io.vertx.kafka.client.common.tracing.ConsumerTracer this
        start local 1 // io.vertx.core.spi.tracing.VertxTracer tracer
        start local 2 // io.vertx.core.tracing.TracingPolicy policy
        start local 3 // java.lang.String bootstrapServer
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 72
            aload 0 /* this */
            aload 1 /* tracer */
            putfield io.vertx.kafka.client.common.tracing.ConsumerTracer.tracer:Lio/vertx/core/spi/tracing/VertxTracer;
         2: .line 73
            aload 0 /* this */
            aload 3 /* bootstrapServer */
            putfield io.vertx.kafka.client.common.tracing.ConsumerTracer.address:Ljava/lang/String;
         3: .line 74
            aload 0 /* this */
            aload 3 /* bootstrapServer */
            invokestatic org.apache.kafka.common.utils.Utils.getHost:(Ljava/lang/String;)Ljava/lang/String;
            putfield io.vertx.kafka.client.common.tracing.ConsumerTracer.hostname:Ljava/lang/String;
         4: .line 75
            aload 3 /* bootstrapServer */
            invokestatic org.apache.kafka.common.utils.Utils.getPort:(Ljava/lang/String;)Ljava/lang/Integer;
            astore 4 /* port */
        start local 4 // java.lang.Integer port
         5: .line 76
            aload 0 /* this */
            aload 4 /* port */
            ifnonnull 6
            aconst_null
            goto 7
      StackMap locals: io.vertx.kafka.client.common.tracing.ConsumerTracer io.vertx.core.spi.tracing.VertxTracer io.vertx.core.tracing.TracingPolicy java.lang.String java.lang.Integer
      StackMap stack: io.vertx.kafka.client.common.tracing.ConsumerTracer
         6: aload 4 /* port */
            invokevirtual java.lang.Integer.toString:()Ljava/lang/String;
      StackMap locals: io.vertx.kafka.client.common.tracing.ConsumerTracer io.vertx.core.spi.tracing.VertxTracer io.vertx.core.tracing.TracingPolicy java.lang.String java.lang.Integer
      StackMap stack: io.vertx.kafka.client.common.tracing.ConsumerTracer java.lang.String
         7: putfield io.vertx.kafka.client.common.tracing.ConsumerTracer.port:Ljava/lang/String;
         8: .line 77
            aload 0 /* this */
            aload 2 /* policy */
            putfield io.vertx.kafka.client.common.tracing.ConsumerTracer.policy:Lio/vertx/core/tracing/TracingPolicy;
         9: .line 78
            return
        end local 4 // java.lang.Integer port
        end local 3 // java.lang.String bootstrapServer
        end local 2 // io.vertx.core.tracing.TracingPolicy policy
        end local 1 // io.vertx.core.spi.tracing.VertxTracer tracer
        end local 0 // io.vertx.kafka.client.common.tracing.ConsumerTracer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lio/vertx/kafka/client/common/tracing/ConsumerTracer<TS;>;
            0   10     1           tracer  Lio/vertx/core/spi/tracing/VertxTracer<TS;Ljava/lang/Void;>;
            0   10     2           policy  Lio/vertx/core/tracing/TracingPolicy;
            0   10     3  bootstrapServer  Ljava/lang/String;
            5   10     4             port  Ljava/lang/Integer;
    Signature: (Lio/vertx/core/spi/tracing/VertxTracer<TS;Ljava/lang/Void;>;Lio/vertx/core/tracing/TracingPolicy;Ljava/lang/String;)V
    MethodParameters:
                 Name  Flags
      tracer           
      policy           
      bootstrapServer  

  private static java.lang.Iterable<java.util.Map$Entry<java.lang.String, java.lang.String>> convertHeaders(org.apache.kafka.common.header.Headers);
    descriptor: (Lorg/apache/kafka/common/header/Headers;)Ljava/lang/Iterable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.kafka.common.header.Headers headers
         0: .line 81
            aload 0 /* headers */
            ifnonnull 2
         1: .line 82
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         2: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* headers */
            invokedynamic iterator(Lorg/apache/kafka/common/header/Headers;)Ljava/lang/Iterable;
              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/util/Iterator;
                  io/vertx/kafka/client/common/tracing/ConsumerTracer.lambda$0(Lorg/apache/kafka/common/header/Headers;)Ljava/util/Iterator; (6)
                  ()Ljava/util/Iterator;
            areturn
        end local 0 // org.apache.kafka.common.header.Headers headers
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  headers  Lorg/apache/kafka/common/header/Headers;
    Signature: (Lorg/apache/kafka/common/header/Headers;)Ljava/lang/Iterable<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;>;
    MethodParameters:
         Name  Flags
      headers  

  public io.vertx.kafka.client.common.tracing.ConsumerTracer<S>.StartedSpan prepareMessageReceived(io.vertx.core.Context, org.apache.kafka.clients.consumer.ConsumerRecord);
    descriptor: (Lio/vertx/core/Context;Lorg/apache/kafka/clients/consumer/ConsumerRecord;)Lio/vertx/kafka/client/common/tracing/ConsumerTracer$StartedSpan;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // io.vertx.kafka.client.common.tracing.ConsumerTracer this
        start local 1 // io.vertx.core.Context context
        start local 2 // org.apache.kafka.clients.consumer.ConsumerRecord rec
         0: .line 89
            new io.vertx.kafka.client.common.tracing.TraceContext
            dup
            ldc "consumer"
            aload 0 /* this */
            getfield io.vertx.kafka.client.common.tracing.ConsumerTracer.address:Ljava/lang/String;
            aload 0 /* this */
            getfield io.vertx.kafka.client.common.tracing.ConsumerTracer.hostname:Ljava/lang/String;
            aload 0 /* this */
            getfield io.vertx.kafka.client.common.tracing.ConsumerTracer.port:Ljava/lang/String;
            aload 2 /* rec */
            invokevirtual org.apache.kafka.clients.consumer.ConsumerRecord.topic:()Ljava/lang/String;
            invokespecial io.vertx.kafka.client.common.tracing.TraceContext.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* tc */
        start local 3 // io.vertx.kafka.client.common.tracing.TraceContext tc
         1: .line 90
            aload 0 /* this */
            getfield io.vertx.kafka.client.common.tracing.ConsumerTracer.tracer:Lio/vertx/core/spi/tracing/VertxTracer;
            aload 1 /* context */
            getstatic io.vertx.core.spi.tracing.SpanKind.MESSAGING:Lio/vertx/core/spi/tracing/SpanKind;
            aload 0 /* this */
            getfield io.vertx.kafka.client.common.tracing.ConsumerTracer.policy:Lio/vertx/core/tracing/TracingPolicy;
            aload 3 /* tc */
            ldc "kafka_receive"
            aload 2 /* rec */
            invokevirtual org.apache.kafka.clients.consumer.ConsumerRecord.headers:()Lorg/apache/kafka/common/header/Headers;
            invokestatic io.vertx.kafka.client.common.tracing.ConsumerTracer.convertHeaders:(Lorg/apache/kafka/common/header/Headers;)Ljava/lang/Iterable;
            getstatic io.vertx.kafka.client.common.tracing.TraceTags.TAG_EXTRACTOR:Lio/vertx/core/spi/tracing/TagExtractor;
            invokeinterface io.vertx.core.spi.tracing.VertxTracer.receiveRequest:(Lio/vertx/core/Context;Lio/vertx/core/spi/tracing/SpanKind;Lio/vertx/core/tracing/TracingPolicy;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Iterable;Lio/vertx/core/spi/tracing/TagExtractor;)Ljava/lang/Object;
            astore 4 /* span */
        start local 4 // java.lang.Object span
         2: .line 91
            new io.vertx.kafka.client.common.tracing.ConsumerTracer$StartedSpan
            dup
            aload 0 /* this */
            aload 4 /* span */
            invokespecial io.vertx.kafka.client.common.tracing.ConsumerTracer$StartedSpan.<init>:(Lio/vertx/kafka/client/common/tracing/ConsumerTracer;Ljava/lang/Object;)V
            areturn
        end local 4 // java.lang.Object span
        end local 3 // io.vertx.kafka.client.common.tracing.TraceContext tc
        end local 2 // org.apache.kafka.clients.consumer.ConsumerRecord rec
        end local 1 // io.vertx.core.Context context
        end local 0 // io.vertx.kafka.client.common.tracing.ConsumerTracer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/kafka/client/common/tracing/ConsumerTracer<TS;>;
            0    3     1  context  Lio/vertx/core/Context;
            0    3     2      rec  Lorg/apache/kafka/clients/consumer/ConsumerRecord;
            1    3     3       tc  Lio/vertx/kafka/client/common/tracing/TraceContext;
            2    3     4     span  TS;
    Signature: (Lio/vertx/core/Context;Lorg/apache/kafka/clients/consumer/ConsumerRecord;)Lio/vertx/kafka/client/common/tracing/ConsumerTracer<TS;>.StartedSpan;
    MethodParameters:
         Name  Flags
      context  
      rec      

  private static java.util.Iterator lambda$0(org.apache.kafka.common.header.Headers);
    descriptor: (Lorg/apache/kafka/common/header/Headers;)Ljava/util/Iterator;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 84
            aload 0
            invokeinterface org.apache.kafka.common.header.Headers.spliterator:()Ljava/util/Spliterator;
            iconst_0
            invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
         1: .line 85
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/kafka/client/common/tracing/ConsumerTracer.lambda$1(Lorg/apache/kafka/common/header/Header;)Ljava/util/Map$Entry; (6)
                  (Lorg/apache/kafka/common/header/Header;)Ljava/util/Map$Entry;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.iterator:()Ljava/util/Iterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.util.Map$Entry lambda$1(org.apache.kafka.common.header.Header);
    descriptor: (Lorg/apache/kafka/common/header/Header;)Ljava/util/Map$Entry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.apache.kafka.common.header.Header h
         0: .line 85
            new java.util.AbstractMap$SimpleEntry
            dup
            aload 0 /* h */
            invokeinterface org.apache.kafka.common.header.Header.key:()Ljava/lang/String;
            new java.lang.String
            dup
            aload 0 /* h */
            invokeinterface org.apache.kafka.common.header.Header.value:()[B
            invokespecial java.lang.String.<init>:([B)V
            invokespecial java.util.AbstractMap$SimpleEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            areturn
        end local 0 // org.apache.kafka.common.header.Header h
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     h  Lorg/apache/kafka/common/header/Header;
}
Signature: <S:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ConsumerTracer.java"
NestMembers:
  io.vertx.kafka.client.common.tracing.ConsumerTracer$StartedSpan
InnerClasses:
  public StartedSpan = io.vertx.kafka.client.common.tracing.ConsumerTracer$StartedSpan of io.vertx.kafka.client.common.tracing.ConsumerTracer
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public SimpleEntry = java.util.AbstractMap$SimpleEntry of java.util.AbstractMap
  public abstract Entry = java.util.Map$Entry of java.util.Map