public final class io.vertx.core.http.impl.HttpUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.vertx.core.http.impl.HttpUtils
  super_class: java.lang.Object
{
  static final int SC_SWITCHING_PROTOCOLS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 101

  static final int SC_BAD_GATEWAY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 502

  static final io.vertx.core.spi.tracing.TagExtractor<io.vertx.core.http.HttpServerRequest> SERVER_REQUEST_TAG_EXTRACTOR;
    descriptor: Lio/vertx/core/spi/tracing/TagExtractor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Lio/vertx/core/spi/tracing/TagExtractor<Lio/vertx/core/http/HttpServerRequest;>;

  static final io.vertx.core.spi.tracing.TagExtractor<io.vertx.core.http.HttpServerResponse> SERVER_RESPONSE_TAG_EXTRACTOR;
    descriptor: Lio/vertx/core/spi/tracing/TagExtractor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Lio/vertx/core/spi/tracing/TagExtractor<Lio/vertx/core/http/HttpServerResponse;>;

  static final io.vertx.core.spi.tracing.TagExtractor<io.vertx.core.http.impl.HttpRequestHead> CLIENT_HTTP_REQUEST_TAG_EXTRACTOR;
    descriptor: Lio/vertx/core/spi/tracing/TagExtractor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Lio/vertx/core/spi/tracing/TagExtractor<Lio/vertx/core/http/impl/HttpRequestHead;>;

  static final io.vertx.core.spi.tracing.TagExtractor<io.vertx.core.http.impl.HttpResponseHead> CLIENT_RESPONSE_TAG_EXTRACTOR;
    descriptor: Lio/vertx/core/spi/tracing/TagExtractor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Lio/vertx/core/spi/tracing/TagExtractor<Lio/vertx/core/http/impl/HttpResponseHead;>;

  static final io.vertx.core.http.StreamPriority DEFAULT_STREAM_PRIORITY;
    descriptor: Lio/vertx/core/http/StreamPriority;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final io.vertx.core.http.impl.HttpUtils$CustomCompressor compressor;
    descriptor: Lio/vertx/core/http/impl/HttpUtils$CustomCompressor;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.netty.util.AsciiString TIMEOUT_EQ;
    descriptor: Lio/netty/util/AsciiString;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.function.Consumer<java.lang.CharSequence> HEADER_VALUE_VALIDATOR;
    descriptor: Ljava/util/function/Consumer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Consumer<Ljava/lang/CharSequence;>;

  private static final int HIGHEST_INVALID_VALUE_CHAR_MASK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -16

  private static volatile int[] $SWITCH_TABLE$io$netty$handler$codec$compression$ZlibWrapper;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$io$vertx$core$http$HttpVersion;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 70
            new io.vertx.core.http.impl.HttpUtils$1
            dup
            invokespecial io.vertx.core.http.impl.HttpUtils$1.<init>:()V
            putstatic io.vertx.core.http.impl.HttpUtils.SERVER_REQUEST_TAG_EXTRACTOR:Lio/vertx/core/spi/tracing/TagExtractor;
         1: .line 97
            new io.vertx.core.http.impl.HttpUtils$2
            dup
            invokespecial io.vertx.core.http.impl.HttpUtils$2.<init>:()V
            putstatic io.vertx.core.http.impl.HttpUtils.SERVER_RESPONSE_TAG_EXTRACTOR:Lio/vertx/core/spi/tracing/TagExtractor;
         2: .line 118
            new io.vertx.core.http.impl.HttpUtils$3
            dup
            invokespecial io.vertx.core.http.impl.HttpUtils$3.<init>:()V
            putstatic io.vertx.core.http.impl.HttpUtils.CLIENT_HTTP_REQUEST_TAG_EXTRACTOR:Lio/vertx/core/spi/tracing/TagExtractor;
         3: .line 145
            new io.vertx.core.http.impl.HttpUtils$4
            dup
            invokespecial io.vertx.core.http.impl.HttpUtils$4.<init>:()V
            putstatic io.vertx.core.http.impl.HttpUtils.CLIENT_RESPONSE_TAG_EXTRACTOR:Lio/vertx/core/spi/tracing/TagExtractor;
         4: .line 166
            new io.vertx.core.http.impl.HttpUtils$5
            dup
            invokespecial io.vertx.core.http.impl.HttpUtils$5.<init>:()V
            putstatic io.vertx.core.http.impl.HttpUtils.DEFAULT_STREAM_PRIORITY:Lio/vertx/core/http/StreamPriority;
         5: .line 691
            new io.vertx.core.http.impl.HttpUtils$CustomCompressor
            dup
            invokespecial io.vertx.core.http.impl.HttpUtils$CustomCompressor.<init>:()V
            putstatic io.vertx.core.http.impl.HttpUtils.compressor:Lio/vertx/core/http/impl/HttpUtils$CustomCompressor;
         6: .line 726
            ldc "timeout="
            invokestatic io.netty.util.AsciiString.of:(Ljava/lang/CharSequence;)Lio/netty/util/AsciiString;
            putstatic io.vertx.core.http.impl.HttpUtils.TIMEOUT_EQ:Lio/netty/util/AsciiString;
         7: .line 769
            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
                  io/vertx/core/http/impl/HttpUtils.validateHeaderValue(Ljava/lang/CharSequence;)V (6)
                  (Ljava/lang/CharSequence;)V
            putstatic io.vertx.core.http.impl.HttpUtils.HEADER_VALUE_VALIDATOR:Ljava/util/function/Consumer;
         8: .line 800
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpUtils this
         0: .line 184
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 185
            return
        end local 0 // io.vertx.core.http.impl.HttpUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/HttpUtils;

  private static int indexOfSlash(java.lang.CharSequence, int);
    descriptor: (Ljava/lang/CharSequence;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.CharSequence str
        start local 1 // int start
         0: .line 188
            iload 1 /* start */
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 189
      StackMap locals: int
      StackMap stack:
            aload 0 /* str */
            iload 2 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 47
            if_icmpne 4
         3: .line 190
            iload 2 /* i */
            ireturn
         4: .line 188
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* str */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmplt 2
        end local 2 // int i
         6: .line 194
            iconst_m1
            ireturn
        end local 1 // int start
        end local 0 // java.lang.CharSequence str
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0    str  Ljava/lang/CharSequence;
            0    7     1  start  I
            1    6     2      i  I
    MethodParameters:
       Name  Flags
      str    
      start  

  private static boolean matches(java.lang.CharSequence, int, java.lang.String);
    descriptor: (Ljava/lang/CharSequence;ILjava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.CharSequence path
        start local 1 // int start
        start local 2 // java.lang.String what
         0: .line 198
            aload 0 /* path */
            iload 1 /* start */
            aload 2 /* what */
            iconst_0
            invokestatic io.vertx.core.http.impl.HttpUtils.matches:(Ljava/lang/CharSequence;ILjava/lang/String;Z)Z
            ireturn
        end local 2 // java.lang.String what
        end local 1 // int start
        end local 0 // java.lang.CharSequence path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   path  Ljava/lang/CharSequence;
            0    1     1  start  I
            0    1     2   what  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      path   
      start  
      what   

  private static boolean matches(java.lang.CharSequence, int, java.lang.String, boolean);
    descriptor: (Ljava/lang/CharSequence;ILjava/lang/String;Z)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.lang.CharSequence path
        start local 1 // int start
        start local 2 // java.lang.String what
        start local 3 // boolean exact
         0: .line 202
            iload 3 /* exact */
            ifeq 3
         1: .line 203
            aload 0 /* path */
            invokeinterface java.lang.CharSequence.length:()I
            iload 1 /* start */
            isub
            aload 2 /* what */
            invokevirtual java.lang.String.length:()I
            if_icmpeq 3
         2: .line 204
            iconst_0
            ireturn
         3: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* path */
            invokeinterface java.lang.CharSequence.length:()I
            iload 1 /* start */
            isub
            aload 2 /* what */
            invokevirtual java.lang.String.length:()I
            if_icmplt 11
         4: .line 209
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 9
         6: .line 210
      StackMap locals: int
      StackMap stack:
            aload 0 /* path */
            iload 1 /* start */
            iload 4 /* i */
            iadd
            invokeinterface java.lang.CharSequence.charAt:(I)C
            aload 2 /* what */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 8
         7: .line 211
            iconst_0
            ireturn
         8: .line 209
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 2 /* what */
            invokevirtual java.lang.String.length:()I
            if_icmplt 6
        end local 4 // int i
        10: .line 214
            iconst_1
            ireturn
        11: .line 217
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // boolean exact
        end local 2 // java.lang.String what
        end local 1 // int start
        end local 0 // java.lang.CharSequence path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   path  Ljava/lang/CharSequence;
            0   12     1  start  I
            0   12     2   what  Ljava/lang/String;
            0   12     3  exact  Z
            5   10     4      i  I
    MethodParameters:
       Name  Flags
      path   
      start  
      what   
      exact  

  public static java.lang.String normalizePath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String pathname
         0: .line 233
            aload 0 /* pathname */
            ifnonnull 2
         1: .line 234
            aconst_null
            areturn
         2: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* pathname */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 239
            ldc "/"
            areturn
         4: .line 242
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* pathname */
            invokevirtual java.lang.String.length:()I
            iconst_1
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* ibuf */
        start local 1 // java.lang.StringBuilder ibuf
         5: .line 245
            aload 0 /* pathname */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 7
         6: .line 246
            aload 1 /* ibuf */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 249
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* ibuf */
            aload 0 /* pathname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 250
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         9: .line 252
            goto 13
        10: .line 255
      StackMap locals: int
      StackMap stack:
            aload 1 /* ibuf */
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            bipush 37
            if_icmpne 12
        11: .line 256
            aload 1 /* ibuf */
            iload 2 /* i */
            invokestatic io.vertx.core.http.impl.HttpUtils.decodeUnreserved:(Ljava/lang/StringBuilder;I)V
        12: .line 259
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
        13: .line 252
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            aload 1 /* ibuf */
            invokevirtual java.lang.StringBuilder.length:()I
            if_icmplt 10
        14: .line 264
            aload 1 /* ibuf */
            invokestatic io.vertx.core.http.impl.HttpUtils.removeDots:(Ljava/lang/CharSequence;)Ljava/lang/String;
            areturn
        end local 2 // int i
        end local 1 // java.lang.StringBuilder ibuf
        end local 0 // java.lang.String pathname
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0  pathname  Ljava/lang/String;
            5   15     1      ibuf  Ljava/lang/StringBuilder;
            9   15     2         i  I
    MethodParameters:
          Name  Flags
      pathname  

  private static void decodeUnreserved(java.lang.StringBuilder, int);
    descriptor: (Ljava/lang/StringBuilder;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.lang.StringBuilder path
        start local 1 // int start
         0: .line 268
            iload 1 /* start */
            iconst_3
            iadd
            aload 0 /* path */
            invokevirtual java.lang.StringBuilder.length:()I
            if_icmpgt 17
         1: .line 271
            aload 0 /* path */
            iload 1 /* start */
            iconst_1
            iadd
            iload 1 /* start */
            iconst_3
            iadd
            invokevirtual java.lang.StringBuilder.substring:(II)Ljava/lang/String;
            astore 2 /* escapeSequence */
        start local 2 // java.lang.String escapeSequence
         2: .line 274
            aload 2 /* escapeSequence */
            bipush 16
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
            istore 3 /* unescaped */
        start local 3 // int unescaped
         3: .line 275
            iload 3 /* unescaped */
            ifge 7
         4: .line 276
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid escape sequence: %"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* escapeSequence */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int unescaped
         5: .line 278
      StackMap locals: java.lang.StringBuilder int java.lang.String
      StackMap stack: java.lang.NumberFormatException
            pop
         6: .line 279
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid escape sequence: %"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* escapeSequence */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // int unescaped
         7: .line 284
      StackMap locals: int
      StackMap stack:
            iload 3 /* unescaped */
            bipush 65
            if_icmplt 8
            iload 3 /* unescaped */
            bipush 90
            if_icmple 14
         8: .line 285
      StackMap locals:
      StackMap stack:
            iload 3 /* unescaped */
            bipush 97
            if_icmplt 9
            iload 3 /* unescaped */
            bipush 122
            if_icmple 14
         9: .line 287
      StackMap locals:
      StackMap stack:
            iload 3 /* unescaped */
            bipush 48
            if_icmplt 10
            iload 3 /* unescaped */
            bipush 57
            if_icmple 14
        10: .line 289
      StackMap locals:
      StackMap stack:
            iload 3 /* unescaped */
            bipush 45
            if_icmpeq 14
        11: .line 291
            iload 3 /* unescaped */
            bipush 46
            if_icmpeq 14
        12: .line 293
            iload 3 /* unescaped */
            bipush 95
            if_icmpeq 14
        13: .line 295
            iload 3 /* unescaped */
            bipush 126
            if_icmpne 18
        14: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* path */
            iload 1 /* start */
            iload 3 /* unescaped */
            i2c
            invokevirtual java.lang.StringBuilder.setCharAt:(IC)V
        15: .line 298
            aload 0 /* path */
            iload 1 /* start */
            iconst_1
            iadd
            iload 1 /* start */
            iconst_3
            iadd
            invokevirtual java.lang.StringBuilder.delete:(II)Ljava/lang/StringBuilder;
            pop
        end local 3 // int unescaped
        end local 2 // java.lang.String escapeSequence
        16: .line 300
            goto 18
        17: .line 301
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid position for escape character: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* start */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 303
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int start
        end local 0 // java.lang.StringBuilder path
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            path  Ljava/lang/StringBuilder;
            0   19     1           start  I
            2   16     2  escapeSequence  Ljava/lang/String;
            3    5     3       unescaped  I
            7   16     3       unescaped  I
      Exception table:
        from    to  target  type
           2     5       5  Class java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      path   
      start  

  public static java.lang.String removeDots(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.CharSequence path
         0: .line 317
            aload 0 /* path */
            ifnonnull 2
         1: .line 318
            aconst_null
            areturn
         2: .line 321
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* path */
            invokeinterface java.lang.CharSequence.length:()I
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* obuf */
        start local 1 // java.lang.StringBuilder obuf
         3: .line 323
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: .line 324
            goto 44
         5: .line 327
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* path */
            iload 2 /* i */
            ldc "./"
            invokestatic io.vertx.core.http.impl.HttpUtils.matches:(Ljava/lang/CharSequence;ILjava/lang/String;)Z
            ifeq 8
         6: .line 328
            iinc 2 /* i */ 2
         7: .line 329
            goto 44
      StackMap locals:
      StackMap stack:
         8: aload 0 /* path */
            iload 2 /* i */
            ldc "../"
            invokestatic io.vertx.core.http.impl.HttpUtils.matches:(Ljava/lang/CharSequence;ILjava/lang/String;)Z
            ifeq 11
         9: .line 330
            iinc 2 /* i */ 3
        10: .line 331
            goto 44
      StackMap locals:
      StackMap stack:
        11: aload 0 /* path */
            iload 2 /* i */
            ldc "/./"
            invokestatic io.vertx.core.http.impl.HttpUtils.matches:(Ljava/lang/CharSequence;ILjava/lang/String;)Z
            ifeq 14
        12: .line 333
            iinc 2 /* i */ 2
        13: .line 334
            goto 44
      StackMap locals:
      StackMap stack:
        14: aload 0 /* path */
            iload 2 /* i */
            ldc "/."
            iconst_1
            invokestatic io.vertx.core.http.impl.HttpUtils.matches:(Ljava/lang/CharSequence;ILjava/lang/String;Z)Z
            ifeq 18
        15: .line 335
            ldc "/"
            astore 0 /* path */
        16: .line 336
            iconst_0
            istore 2 /* i */
        17: .line 337
            goto 44
      StackMap locals:
      StackMap stack:
        18: aload 0 /* path */
            iload 2 /* i */
            ldc "/../"
            invokestatic io.vertx.core.http.impl.HttpUtils.matches:(Ljava/lang/CharSequence;ILjava/lang/String;)Z
            ifeq 24
        19: .line 339
            iinc 2 /* i */ 3
        20: .line 340
            aload 1 /* obuf */
            ldc "/"
            invokevirtual java.lang.StringBuilder.lastIndexOf:(Ljava/lang/String;)I
            istore 3 /* pos */
        start local 3 // int pos
        21: .line 341
            iload 3 /* pos */
            iconst_m1
            if_icmpeq 44
        22: .line 342
            aload 1 /* obuf */
            iload 3 /* pos */
            aload 1 /* obuf */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual java.lang.StringBuilder.delete:(II)Ljava/lang/StringBuilder;
            pop
        end local 3 // int pos
        23: .line 344
            goto 44
      StackMap locals:
      StackMap stack:
        24: aload 0 /* path */
            iload 2 /* i */
            ldc "/.."
            iconst_1
            invokestatic io.vertx.core.http.impl.HttpUtils.matches:(Ljava/lang/CharSequence;ILjava/lang/String;Z)Z
            ifeq 31
        25: .line 345
            ldc "/"
            astore 0 /* path */
        26: .line 346
            iconst_0
            istore 2 /* i */
        27: .line 347
            aload 1 /* obuf */
            ldc "/"
            invokevirtual java.lang.StringBuilder.lastIndexOf:(Ljava/lang/String;)I
            istore 3 /* pos */
        start local 3 // int pos
        28: .line 348
            iload 3 /* pos */
            iconst_m1
            if_icmpeq 44
        29: .line 349
            aload 1 /* obuf */
            iload 3 /* pos */
            aload 1 /* obuf */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual java.lang.StringBuilder.delete:(II)Ljava/lang/StringBuilder;
            pop
        end local 3 // int pos
        30: .line 351
            goto 44
      StackMap locals:
      StackMap stack:
        31: aload 0 /* path */
            iload 2 /* i */
            ldc "."
            iconst_1
            invokestatic io.vertx.core.http.impl.HttpUtils.matches:(Ljava/lang/CharSequence;ILjava/lang/String;Z)Z
            ifne 45
            aload 0 /* path */
            iload 2 /* i */
            ldc ".."
            iconst_1
            invokestatic io.vertx.core.http.impl.HttpUtils.matches:(Ljava/lang/CharSequence;ILjava/lang/String;Z)Z
            ifeq 33
        32: .line 352
            goto 45
        33: .line 354
      StackMap locals:
      StackMap stack:
            aload 0 /* path */
            iload 2 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 47
            if_icmpne 37
        34: .line 355
            iinc 2 /* i */ 1
        35: .line 358
            aload 1 /* obuf */
            invokevirtual java.lang.StringBuilder.length:()I
            ifeq 36
            aload 1 /* obuf */
            aload 1 /* obuf */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            bipush 47
            if_icmpeq 37
        36: .line 359
      StackMap locals:
      StackMap stack:
            aload 1 /* obuf */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        37: .line 362
      StackMap locals:
      StackMap stack:
            aload 0 /* path */
            iload 2 /* i */
            invokestatic io.vertx.core.http.impl.HttpUtils.indexOfSlash:(Ljava/lang/CharSequence;I)I
            istore 3 /* pos */
        start local 3 // int pos
        38: .line 363
            iload 3 /* pos */
            iconst_m1
            if_icmpeq 42
        39: .line 364
            aload 1 /* obuf */
            aload 0 /* path */
            iload 2 /* i */
            iload 3 /* pos */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            pop
        40: .line 365
            iload 3 /* pos */
            istore 2 /* i */
        41: .line 366
            goto 44
        42: .line 367
      StackMap locals: int
      StackMap stack:
            aload 1 /* obuf */
            aload 0 /* path */
            iload 2 /* i */
            aload 0 /* path */
            invokeinterface java.lang.CharSequence.length:()I
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            pop
        43: .line 368
            goto 45
        end local 3 // int pos
        44: .line 324
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            aload 0 /* path */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmplt 5
        45: .line 373
      StackMap locals:
      StackMap stack:
            aload 1 /* obuf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // int i
        end local 1 // java.lang.StringBuilder obuf
        end local 0 // java.lang.CharSequence path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   46     0  path  Ljava/lang/CharSequence;
            3   46     1  obuf  Ljava/lang/StringBuilder;
            4   46     2     i  I
           21   23     3   pos  I
           28   30     3   pos  I
           38   44     3   pos  I
    MethodParameters:
      Name  Flags
      path  

  public static java.net.URI resolveURIReference(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/net/URI;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String base
        start local 1 // java.lang.String ref
         0: .line 380
            aload 0 /* base */
            invokestatic java.net.URI.create:(Ljava/lang/String;)Ljava/net/URI;
            aload 1 /* ref */
            invokestatic io.vertx.core.http.impl.HttpUtils.resolveURIReference:(Ljava/net/URI;Ljava/lang/String;)Ljava/net/URI;
            areturn
        end local 1 // java.lang.String ref
        end local 0 // java.lang.String base
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  base  Ljava/lang/String;
            0    1     1   ref  Ljava/lang/String;
    Exceptions:
      throws java.net.URISyntaxException
    MethodParameters:
      Name  Flags
      base  
      ref   

  public static java.net.URI resolveURIReference(java.net.URI, java.lang.String);
    descriptor: (Ljava/net/URI;Ljava/lang/String;)Ljava/net/URI;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // java.net.URI base
        start local 1 // java.lang.String ref
         0: .line 387
            aload 1 /* ref */
            invokestatic java.net.URI.create:(Ljava/lang/String;)Ljava/net/URI;
            astore 2 /* _ref */
        start local 2 // java.net.URI _ref
         1: .line 392
            aload 2 /* _ref */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            ifnull 7
         2: .line 393
            aload 2 /* _ref */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            astore 3 /* scheme */
        start local 3 // java.lang.String scheme
         3: .line 394
            aload 2 /* _ref */
            invokevirtual java.net.URI.getAuthority:()Ljava/lang/String;
            astore 4 /* authority */
        start local 4 // java.lang.String authority
         4: .line 395
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            invokestatic io.vertx.core.http.impl.HttpUtils.removeDots:(Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 5 /* path */
        start local 5 // java.lang.String path
         5: .line 396
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            astore 6 /* query */
        start local 6 // java.lang.String query
         6: .line 397
            goto 35
        end local 6 // java.lang.String query
        end local 5 // java.lang.String path
        end local 4 // java.lang.String authority
        end local 3 // java.lang.String scheme
         7: .line 398
      StackMap locals: java.net.URI
      StackMap stack:
            aload 2 /* _ref */
            invokevirtual java.net.URI.getAuthority:()Ljava/lang/String;
            ifnull 12
         8: .line 399
            aload 2 /* _ref */
            invokevirtual java.net.URI.getAuthority:()Ljava/lang/String;
            astore 4 /* authority */
        start local 4 // java.lang.String authority
         9: .line 400
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            astore 5 /* path */
        start local 5 // java.lang.String path
        10: .line 401
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            astore 6 /* query */
        start local 6 // java.lang.String query
        11: .line 402
            goto 34
        end local 6 // java.lang.String query
        end local 5 // java.lang.String path
        end local 4 // java.lang.String authority
        12: .line 403
      StackMap locals:
      StackMap stack:
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 19
        13: .line 404
            aload 0 /* base */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            astore 5 /* path */
        start local 5 // java.lang.String path
        14: .line 405
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            ifnull 17
        15: .line 406
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            astore 6 /* query */
        start local 6 // java.lang.String query
        16: .line 407
            goto 33
        end local 6 // java.lang.String query
        17: .line 408
      StackMap locals: java.net.URI java.lang.String java.net.URI top top java.lang.String
      StackMap stack:
            aload 0 /* base */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            astore 6 /* query */
        start local 6 // java.lang.String query
        18: .line 410
            goto 33
        end local 6 // java.lang.String query
        end local 5 // java.lang.String path
        19: .line 411
      StackMap locals: java.net.URI java.lang.String java.net.URI
      StackMap stack:
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 22
        20: .line 412
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            invokestatic io.vertx.core.http.impl.HttpUtils.removeDots:(Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 5 /* path */
        start local 5 // java.lang.String path
        21: .line 413
            goto 32
        end local 5 // java.lang.String path
        22: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* base */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            astore 8 /* basePath */
        start local 8 // java.lang.String basePath
        23: .line 417
            aload 0 /* base */
            invokevirtual java.net.URI.getAuthority:()Ljava/lang/String;
            ifnull 26
            aload 8 /* basePath */
            invokevirtual java.lang.String.length:()I
            ifne 26
        24: .line 418
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* mergedPath */
        start local 7 // java.lang.String mergedPath
        25: .line 419
            goto 31
        end local 7 // java.lang.String mergedPath
        26: .line 420
      StackMap locals: java.net.URI java.lang.String java.net.URI top top top top top java.lang.String
      StackMap stack:
            aload 8 /* basePath */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 9 /* index */
        start local 9 // int index
        27: .line 421
            iload 9 /* index */
            iconst_m1
            if_icmple 30
        28: .line 422
            new java.lang.StringBuilder
            dup
            aload 8 /* basePath */
            iconst_0
            iload 9 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* mergedPath */
        start local 7 // java.lang.String mergedPath
        29: .line 423
            goto 31
        end local 7 // java.lang.String mergedPath
        30: .line 424
      StackMap locals: int
      StackMap stack:
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            astore 7 /* mergedPath */
        end local 9 // int index
        start local 7 // java.lang.String mergedPath
        31: .line 427
      StackMap locals: java.net.URI java.lang.String java.net.URI top top top top java.lang.String java.lang.String
      StackMap stack:
            aload 7 /* mergedPath */
            invokestatic io.vertx.core.http.impl.HttpUtils.removeDots:(Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 5 /* path */
        end local 8 // java.lang.String basePath
        end local 7 // java.lang.String mergedPath
        start local 5 // java.lang.String path
        32: .line 429
      StackMap locals: java.net.URI java.lang.String java.net.URI top top java.lang.String
      StackMap stack:
            aload 2 /* _ref */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            astore 6 /* query */
        start local 6 // java.lang.String query
        33: .line 431
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* base */
            invokevirtual java.net.URI.getAuthority:()Ljava/lang/String;
            astore 4 /* authority */
        start local 4 // java.lang.String authority
        34: .line 433
      StackMap locals: java.net.URI java.lang.String java.net.URI top java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* base */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            astore 3 /* scheme */
        start local 3 // java.lang.String scheme
        35: .line 435
      StackMap locals: java.net.URI java.lang.String java.net.URI java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
            new java.net.URI
            dup
            aload 3 /* scheme */
            aload 4 /* authority */
            aload 5 /* path */
            aload 6 /* query */
            aload 2 /* _ref */
            invokevirtual java.net.URI.getFragment:()Ljava/lang/String;
            invokespecial java.net.URI.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 6 // java.lang.String query
        end local 5 // java.lang.String path
        end local 4 // java.lang.String authority
        end local 3 // java.lang.String scheme
        end local 2 // java.net.URI _ref
        end local 1 // java.lang.String ref
        end local 0 // java.net.URI base
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   36     0        base  Ljava/net/URI;
            0   36     1         ref  Ljava/lang/String;
            1   36     2        _ref  Ljava/net/URI;
            3    7     3      scheme  Ljava/lang/String;
           35   36     3      scheme  Ljava/lang/String;
            4    7     4   authority  Ljava/lang/String;
            9   12     4   authority  Ljava/lang/String;
           34   36     4   authority  Ljava/lang/String;
            5    7     5        path  Ljava/lang/String;
           10   12     5        path  Ljava/lang/String;
           14   19     5        path  Ljava/lang/String;
           21   22     5        path  Ljava/lang/String;
           32   36     5        path  Ljava/lang/String;
            6    7     6       query  Ljava/lang/String;
           11   12     6       query  Ljava/lang/String;
           16   17     6       query  Ljava/lang/String;
           18   19     6       query  Ljava/lang/String;
           33   36     6       query  Ljava/lang/String;
           25   26     7  mergedPath  Ljava/lang/String;
           29   30     7  mergedPath  Ljava/lang/String;
           31   32     7  mergedPath  Ljava/lang/String;
           23   32     8    basePath  Ljava/lang/String;
           27   31     9       index  I
    Exceptions:
      throws java.net.URISyntaxException
    MethodParameters:
      Name  Flags
      base  
      ref   

  static java.lang.String parsePath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String uri
         0: .line 442
            aload 0 /* uri */
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 443
            ldc ""
            areturn
         2: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* uri */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 5
         3: .line 447
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         4: .line 448
            goto 12
        end local 1 // int i
         5: .line 449
      StackMap locals:
      StackMap stack:
            aload 0 /* uri */
            ldc "://"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 1 /* i */
        start local 1 // int i
         6: .line 450
            iload 1 /* i */
            iconst_m1
            if_icmpne 9
         7: .line 451
            iconst_0
            istore 1 /* i */
         8: .line 452
            goto 12
         9: .line 453
      StackMap locals: int
      StackMap stack:
            aload 0 /* uri */
            bipush 47
            iload 1 /* i */
            iconst_3
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
            istore 1 /* i */
        10: .line 454
            iload 1 /* i */
            iconst_m1
            if_icmpne 12
        11: .line 456
            ldc "/"
            areturn
        12: .line 461
      StackMap locals:
      StackMap stack:
            aload 0 /* uri */
            bipush 63
            iload 1 /* i */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 2 /* queryStart */
        start local 2 // int queryStart
        13: .line 462
            iload 2 /* queryStart */
            iconst_m1
            if_icmpne 15
        14: .line 463
            aload 0 /* uri */
            invokevirtual java.lang.String.length:()I
            istore 2 /* queryStart */
        15: .line 465
      StackMap locals: int
      StackMap stack:
            aload 0 /* uri */
            iload 1 /* i */
            iload 2 /* queryStart */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 2 // int queryStart
        end local 1 // int i
        end local 0 // java.lang.String uri
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0         uri  Ljava/lang/String;
            4    5     1           i  I
            6   16     1           i  I
           13   16     2  queryStart  I
    MethodParameters:
      Name  Flags
      uri   

  static java.lang.String parseQuery(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String uri
         0: .line 472
            aload 0 /* uri */
            bipush 63
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* i */
        start local 1 // int i
         1: .line 473
            iload 1 /* i */
            iconst_m1
            if_icmpne 3
         2: .line 474
            aconst_null
            areturn
         3: .line 476
      StackMap locals: int
      StackMap stack:
            aload 0 /* uri */
            iload 1 /* i */
            iconst_1
            iadd
            aload 0 /* uri */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 1 // int i
        end local 0 // java.lang.String uri
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   uri  Ljava/lang/String;
            1    4     1     i  I
    MethodParameters:
      Name  Flags
      uri   

  static java.lang.String absoluteURI(java.lang.String, io.vertx.core.http.HttpServerRequest);
    descriptor: (Ljava/lang/String;Lio/vertx/core/http/HttpServerRequest;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // java.lang.String serverOrigin
        start local 1 // io.vertx.core.http.HttpServerRequest req
         0: .line 482
            new java.net.URI
            dup
            aload 1 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.uri:()Ljava/lang/String;
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            astore 3 /* uri */
        start local 3 // java.net.URI uri
         1: .line 483
            aload 3 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            astore 4 /* scheme */
        start local 4 // java.lang.String scheme
         2: .line 484
            aload 4 /* scheme */
            ifnull 5
            aload 4 /* scheme */
            ldc "http"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            aload 4 /* scheme */
            ldc "https"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 485
      StackMap locals: java.lang.String io.vertx.core.http.HttpServerRequest top java.net.URI java.lang.String
      StackMap stack:
            aload 3 /* uri */
            invokevirtual java.net.URI.toString:()Ljava/lang/String;
            astore 2 /* absoluteURI */
        start local 2 // java.lang.String absoluteURI
         4: .line 486
            goto 10
        end local 2 // java.lang.String absoluteURI
         5: .line 487
      StackMap locals:
      StackMap stack:
            aload 1 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.host:()Ljava/lang/String;
            astore 5 /* host */
        start local 5 // java.lang.String host
         6: .line 488
            aload 5 /* host */
            ifnull 9
         7: .line 489
            new java.lang.StringBuilder
            dup
            aload 1 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.scheme:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "://"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* absoluteURI */
        start local 2 // java.lang.String absoluteURI
         8: .line 490
            goto 10
        end local 2 // java.lang.String absoluteURI
         9: .line 492
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* serverOrigin */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* absoluteURI */
        end local 5 // java.lang.String host
        start local 2 // java.lang.String absoluteURI
        10: .line 495
      StackMap locals: java.lang.String io.vertx.core.http.HttpServerRequest java.lang.String java.net.URI java.lang.String
      StackMap stack:
            aload 2 /* absoluteURI */
            areturn
        end local 4 // java.lang.String scheme
        end local 3 // java.net.URI uri
        end local 2 // java.lang.String absoluteURI
        end local 1 // io.vertx.core.http.HttpServerRequest req
        end local 0 // java.lang.String serverOrigin
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0  serverOrigin  Ljava/lang/String;
            0   11     1           req  Lio/vertx/core/http/HttpServerRequest;
            4    5     2   absoluteURI  Ljava/lang/String;
            8    9     2   absoluteURI  Ljava/lang/String;
           10   11     2   absoluteURI  Ljava/lang/String;
            1   11     3           uri  Ljava/net/URI;
            2   11     4        scheme  Ljava/lang/String;
            6   10     5          host  Ljava/lang/String;
    Exceptions:
      throws java.net.URISyntaxException
    MethodParameters:
              Name  Flags
      serverOrigin  
      req           

  static io.vertx.core.MultiMap params(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/MultiMap;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // java.lang.String uri
         0: .line 499
            new io.netty.handler.codec.http.QueryStringDecoder
            dup
            aload 0 /* uri */
            invokespecial io.netty.handler.codec.http.QueryStringDecoder.<init>:(Ljava/lang/String;)V
            astore 1 /* queryStringDecoder */
        start local 1 // io.netty.handler.codec.http.QueryStringDecoder queryStringDecoder
         1: .line 500
            aload 1 /* queryStringDecoder */
            invokevirtual io.netty.handler.codec.http.QueryStringDecoder.parameters:()Ljava/util/Map;
            astore 2 /* prms */
        start local 2 // java.util.Map prms
         2: .line 501
            invokestatic io.vertx.core.MultiMap.caseInsensitiveMultiMap:()Lio/vertx/core/MultiMap;
            astore 3 /* params */
        start local 3 // io.vertx.core.MultiMap params
         3: .line 502
            aload 2 /* prms */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 8
         4: .line 503
            aload 2 /* prms */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: java.lang.String io.netty.handler.codec.http.QueryStringDecoder java.util.Map io.vertx.core.MultiMap top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         6: .line 504
            aload 3 /* params */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Iterable
            invokeinterface io.vertx.core.MultiMap.add:(Ljava/lang/String;Ljava/lang/Iterable;)Lio/vertx/core/MultiMap;
            pop
        end local 4 // java.util.Map$Entry entry
         7: .line 503
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 507
      StackMap locals: java.lang.String io.netty.handler.codec.http.QueryStringDecoder java.util.Map io.vertx.core.MultiMap
      StackMap stack:
            aload 3 /* params */
            areturn
        end local 3 // io.vertx.core.MultiMap params
        end local 2 // java.util.Map prms
        end local 1 // io.netty.handler.codec.http.QueryStringDecoder queryStringDecoder
        end local 0 // java.lang.String uri
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                 uri  Ljava/lang/String;
            1    9     1  queryStringDecoder  Lio/netty/handler/codec/http/QueryStringDecoder;
            2    9     2                prms  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            3    9     3              params  Lio/vertx/core/MultiMap;
            6    7     4               entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
      Name  Flags
      uri   

  public static void fromVertxInitialSettings(boolean, io.vertx.core.http.Http2Settings, io.netty.handler.codec.http2.Http2Settings);
    descriptor: (ZLio/vertx/core/http/Http2Settings;Lio/netty/handler/codec/http2/Http2Settings;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // boolean server
        start local 1 // io.vertx.core.http.Http2Settings vertxSettings
        start local 2 // io.netty.handler.codec.http2.Http2Settings nettySettings
         0: .line 511
            aload 1 /* vertxSettings */
            ifnull 16
         1: .line 512
            iload 0 /* server */
            ifne 3
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.isPushEnabled:()Z
            ifne 3
         2: .line 513
            aload 2 /* nettySettings */
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.isPushEnabled:()Z
            invokevirtual io.netty.handler.codec.http2.Http2Settings.pushEnabled:(Z)Lio/netty/handler/codec/http2/Http2Settings;
            pop
         3: .line 515
      StackMap locals:
      StackMap stack:
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getHeaderTableSize:()J
            ldc 4096
            lcmp
            ifeq 5
         4: .line 516
            aload 2 /* nettySettings */
            iconst_1
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getHeaderTableSize:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual io.netty.handler.codec.http2.Http2Settings.put:(CLjava/lang/Long;)Ljava/lang/Long;
            pop
         5: .line 518
      StackMap locals:
      StackMap stack:
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getInitialWindowSize:()I
            ldc 65535
            if_icmpeq 7
         6: .line 519
            aload 2 /* nettySettings */
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getInitialWindowSize:()I
            invokevirtual io.netty.handler.codec.http2.Http2Settings.initialWindowSize:(I)Lio/netty/handler/codec/http2/Http2Settings;
            pop
         7: .line 521
      StackMap locals:
      StackMap stack:
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getMaxConcurrentStreams:()J
            ldc 4294967295
            lcmp
            ifeq 9
         8: .line 522
            aload 2 /* nettySettings */
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getMaxConcurrentStreams:()J
            invokevirtual io.netty.handler.codec.http2.Http2Settings.maxConcurrentStreams:(J)Lio/netty/handler/codec/http2/Http2Settings;
            pop
         9: .line 524
      StackMap locals:
      StackMap stack:
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getMaxFrameSize:()I
            sipush 16384
            if_icmpeq 11
        10: .line 525
            aload 2 /* nettySettings */
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getMaxFrameSize:()I
            invokevirtual io.netty.handler.codec.http2.Http2Settings.maxFrameSize:(I)Lio/netty/handler/codec/http2/Http2Settings;
            pop
        11: .line 527
      StackMap locals:
      StackMap stack:
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getMaxHeaderListSize:()J
            ldc 2147483647
            lcmp
            ifeq 13
        12: .line 528
            aload 2 /* nettySettings */
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getMaxHeaderListSize:()J
            invokevirtual io.netty.handler.codec.http2.Http2Settings.maxHeaderListSize:(J)Lio/netty/handler/codec/http2/Http2Settings;
            pop
        13: .line 530
      StackMap locals:
      StackMap stack:
            aload 1 /* vertxSettings */
            invokevirtual io.vertx.core.http.Http2Settings.getExtraSettings:()Ljava/util/Map;
            astore 3 /* extraSettings */
        start local 3 // java.util.Map extraSettings
        14: .line 531
            aload 3 /* extraSettings */
            ifnull 16
        15: .line 532
            aload 3 /* extraSettings */
            aload 2 /* nettySettings */
            invokedynamic accept(Lio/netty/handler/codec/http2/Http2Settings;)Ljava/util/function/BiConsumer;
              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;)V
                  io/vertx/core/http/impl/HttpUtils.lambda$1(Lio/netty/handler/codec/http2/Http2Settings;Ljava/lang/Integer;Ljava/lang/Long;)V (6)
                  (Ljava/lang/Integer;Ljava/lang/Long;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
        end local 3 // java.util.Map extraSettings
        16: .line 537
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.handler.codec.http2.Http2Settings nettySettings
        end local 1 // io.vertx.core.http.Http2Settings vertxSettings
        end local 0 // boolean server
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0         server  Z
            0   17     1  vertxSettings  Lio/vertx/core/http/Http2Settings;
            0   17     2  nettySettings  Lio/netty/handler/codec/http2/Http2Settings;
           14   16     3  extraSettings  Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Long;>;
    MethodParameters:
               Name  Flags
      server         
      vertxSettings  
      nettySettings  

  public static io.netty.handler.codec.http2.Http2Settings fromVertxSettings(io.vertx.core.http.Http2Settings);
    descriptor: (Lio/vertx/core/http/Http2Settings;)Lio/netty/handler/codec/http2/Http2Settings;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.vertx.core.http.Http2Settings settings
         0: .line 540
            new io.netty.handler.codec.http2.Http2Settings
            dup
            invokespecial io.netty.handler.codec.http2.Http2Settings.<init>:()V
            astore 1 /* converted */
        start local 1 // io.netty.handler.codec.http2.Http2Settings converted
         1: .line 541
            aload 1 /* converted */
            aload 0 /* settings */
            invokevirtual io.vertx.core.http.Http2Settings.isPushEnabled:()Z
            invokevirtual io.netty.handler.codec.http2.Http2Settings.pushEnabled:(Z)Lio/netty/handler/codec/http2/Http2Settings;
            pop
         2: .line 542
            aload 1 /* converted */
            aload 0 /* settings */
            invokevirtual io.vertx.core.http.Http2Settings.getMaxFrameSize:()I
            invokevirtual io.netty.handler.codec.http2.Http2Settings.maxFrameSize:(I)Lio/netty/handler/codec/http2/Http2Settings;
            pop
         3: .line 543
            aload 1 /* converted */
            aload 0 /* settings */
            invokevirtual io.vertx.core.http.Http2Settings.getInitialWindowSize:()I
            invokevirtual io.netty.handler.codec.http2.Http2Settings.initialWindowSize:(I)Lio/netty/handler/codec/http2/Http2Settings;
            pop
         4: .line 544
            aload 1 /* converted */
            aload 0 /* settings */
            invokevirtual io.vertx.core.http.Http2Settings.getHeaderTableSize:()J
            invokevirtual io.netty.handler.codec.http2.Http2Settings.headerTableSize:(J)Lio/netty/handler/codec/http2/Http2Settings;
            pop
         5: .line 545
            aload 1 /* converted */
            aload 0 /* settings */
            invokevirtual io.vertx.core.http.Http2Settings.getMaxConcurrentStreams:()J
            invokevirtual io.netty.handler.codec.http2.Http2Settings.maxConcurrentStreams:(J)Lio/netty/handler/codec/http2/Http2Settings;
            pop
         6: .line 546
            aload 1 /* converted */
            aload 0 /* settings */
            invokevirtual io.vertx.core.http.Http2Settings.getMaxHeaderListSize:()J
            invokevirtual io.netty.handler.codec.http2.Http2Settings.maxHeaderListSize:(J)Lio/netty/handler/codec/http2/Http2Settings;
            pop
         7: .line 547
            aload 0 /* settings */
            invokevirtual io.vertx.core.http.Http2Settings.getExtraSettings:()Ljava/util/Map;
            ifnull 9
         8: .line 548
            aload 0 /* settings */
            invokevirtual io.vertx.core.http.Http2Settings.getExtraSettings:()Ljava/util/Map;
            aload 1 /* converted */
            invokedynamic accept(Lio/netty/handler/codec/http2/Http2Settings;)Ljava/util/function/BiConsumer;
              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;)V
                  io/vertx/core/http/impl/HttpUtils.lambda$2(Lio/netty/handler/codec/http2/Http2Settings;Ljava/lang/Integer;Ljava/lang/Long;)V (6)
                  (Ljava/lang/Integer;Ljava/lang/Long;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
         9: .line 552
      StackMap locals: io.netty.handler.codec.http2.Http2Settings
      StackMap stack:
            aload 1 /* converted */
            areturn
        end local 1 // io.netty.handler.codec.http2.Http2Settings converted
        end local 0 // io.vertx.core.http.Http2Settings settings
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0   settings  Lio/vertx/core/http/Http2Settings;
            1   10     1  converted  Lio/netty/handler/codec/http2/Http2Settings;
    MethodParameters:
          Name  Flags
      settings  

  public static io.vertx.core.http.Http2Settings toVertxSettings(io.netty.handler.codec.http2.Http2Settings);
    descriptor: (Lio/netty/handler/codec/http2/Http2Settings;)Lio/vertx/core/http/Http2Settings;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // io.netty.handler.codec.http2.Http2Settings settings
         0: .line 556
            new io.vertx.core.http.Http2Settings
            dup
            invokespecial io.vertx.core.http.Http2Settings.<init>:()V
            astore 1 /* converted */
        start local 1 // io.vertx.core.http.Http2Settings converted
         1: .line 557
            aload 0 /* settings */
            invokevirtual io.netty.handler.codec.http2.Http2Settings.pushEnabled:()Ljava/lang/Boolean;
            astore 2 /* pushEnabled */
        start local 2 // java.lang.Boolean pushEnabled
         2: .line 558
            aload 2 /* pushEnabled */
            ifnull 4
         3: .line 559
            aload 1 /* converted */
            aload 2 /* pushEnabled */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual io.vertx.core.http.Http2Settings.setPushEnabled:(Z)Lio/vertx/core/http/Http2Settings;
            pop
         4: .line 561
      StackMap locals: io.vertx.core.http.Http2Settings java.lang.Boolean
      StackMap stack:
            aload 0 /* settings */
            invokevirtual io.netty.handler.codec.http2.Http2Settings.maxConcurrentStreams:()Ljava/lang/Long;
            astore 3 /* maxConcurrentStreams */
        start local 3 // java.lang.Long maxConcurrentStreams
         5: .line 562
            aload 3 /* maxConcurrentStreams */
            ifnull 7
         6: .line 563
            aload 1 /* converted */
            aload 3 /* maxConcurrentStreams */
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual io.vertx.core.http.Http2Settings.setMaxConcurrentStreams:(J)Lio/vertx/core/http/Http2Settings;
            pop
         7: .line 565
      StackMap locals: java.lang.Long
      StackMap stack:
            aload 0 /* settings */
            invokevirtual io.netty.handler.codec.http2.Http2Settings.maxHeaderListSize:()Ljava/lang/Long;
            astore 4 /* maxHeaderListSize */
        start local 4 // java.lang.Long maxHeaderListSize
         8: .line 566
            aload 4 /* maxHeaderListSize */
            ifnull 10
         9: .line 567
            aload 1 /* converted */
            aload 4 /* maxHeaderListSize */
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual io.vertx.core.http.Http2Settings.setMaxHeaderListSize:(J)Lio/vertx/core/http/Http2Settings;
            pop
        10: .line 569
      StackMap locals: java.lang.Long
      StackMap stack:
            aload 0 /* settings */
            invokevirtual io.netty.handler.codec.http2.Http2Settings.maxFrameSize:()Ljava/lang/Integer;
            astore 5 /* maxFrameSize */
        start local 5 // java.lang.Integer maxFrameSize
        11: .line 570
            aload 5 /* maxFrameSize */
            ifnull 13
        12: .line 571
            aload 1 /* converted */
            aload 5 /* maxFrameSize */
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual io.vertx.core.http.Http2Settings.setMaxFrameSize:(I)Lio/vertx/core/http/Http2Settings;
            pop
        13: .line 573
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 0 /* settings */
            invokevirtual io.netty.handler.codec.http2.Http2Settings.initialWindowSize:()Ljava/lang/Integer;
            astore 6 /* initialWindowSize */
        start local 6 // java.lang.Integer initialWindowSize
        14: .line 574
            aload 6 /* initialWindowSize */
            ifnull 16
        15: .line 575
            aload 1 /* converted */
            aload 6 /* initialWindowSize */
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual io.vertx.core.http.Http2Settings.setInitialWindowSize:(I)Lio/vertx/core/http/Http2Settings;
            pop
        16: .line 577
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 0 /* settings */
            invokevirtual io.netty.handler.codec.http2.Http2Settings.headerTableSize:()Ljava/lang/Long;
            astore 7 /* headerTableSize */
        start local 7 // java.lang.Long headerTableSize
        17: .line 578
            aload 7 /* headerTableSize */
            ifnull 19
        18: .line 579
            aload 1 /* converted */
            aload 7 /* headerTableSize */
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual io.vertx.core.http.Http2Settings.setHeaderTableSize:(J)Lio/vertx/core/http/Http2Settings;
            pop
        19: .line 581
      StackMap locals: java.lang.Long
      StackMap stack:
            aload 0 /* settings */
            aload 1 /* converted */
            invokedynamic accept(Lio/vertx/core/http/Http2Settings;)Ljava/util/function/BiConsumer;
              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;)V
                  io/vertx/core/http/impl/HttpUtils.lambda$3(Lio/vertx/core/http/Http2Settings;Ljava/lang/Character;Ljava/lang/Long;)V (6)
                  (Ljava/lang/Character;Ljava/lang/Long;)V
            invokevirtual io.netty.handler.codec.http2.Http2Settings.forEach:(Ljava/util/function/BiConsumer;)V
        20: .line 586
            aload 1 /* converted */
            areturn
        end local 7 // java.lang.Long headerTableSize
        end local 6 // java.lang.Integer initialWindowSize
        end local 5 // java.lang.Integer maxFrameSize
        end local 4 // java.lang.Long maxHeaderListSize
        end local 3 // java.lang.Long maxConcurrentStreams
        end local 2 // java.lang.Boolean pushEnabled
        end local 1 // io.vertx.core.http.Http2Settings converted
        end local 0 // io.netty.handler.codec.http2.Http2Settings settings
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   21     0              settings  Lio/netty/handler/codec/http2/Http2Settings;
            1   21     1             converted  Lio/vertx/core/http/Http2Settings;
            2   21     2           pushEnabled  Ljava/lang/Boolean;
            5   21     3  maxConcurrentStreams  Ljava/lang/Long;
            8   21     4     maxHeaderListSize  Ljava/lang/Long;
           11   21     5          maxFrameSize  Ljava/lang/Integer;
           14   21     6     initialWindowSize  Ljava/lang/Integer;
           17   21     7       headerTableSize  Ljava/lang/Long;
    MethodParameters:
          Name  Flags
      settings  

  static io.netty.handler.codec.http2.Http2Settings decodeSettings(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/netty/handler/codec/http2/Http2Settings;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // java.lang.String base64Settings
         0: .line 591
            new io.netty.handler.codec.http2.Http2Settings
            dup
            invokespecial io.netty.handler.codec.http2.Http2Settings.<init>:()V
            astore 1 /* settings */
        start local 1 // io.netty.handler.codec.http2.Http2Settings settings
         1: .line 592
            invokestatic java.util.Base64.getUrlDecoder:()Ljava/util/Base64$Decoder;
            aload 0 /* base64Settings */
            invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
            invokestatic io.vertx.core.buffer.Buffer.buffer:([B)Lio/vertx/core/buffer/Buffer;
            astore 2 /* buffer */
        start local 2 // io.vertx.core.buffer.Buffer buffer
         2: .line 593
            iconst_0
            istore 3 /* pos */
        start local 3 // int pos
         3: .line 594
            aload 2 /* buffer */
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            istore 4 /* len */
        start local 4 // int len
         4: .line 595
            goto 10
         5: .line 596
      StackMap locals: java.lang.String io.netty.handler.codec.http2.Http2Settings io.vertx.core.buffer.Buffer int int
      StackMap stack:
            aload 2 /* buffer */
            iload 3 /* pos */
            invokeinterface io.vertx.core.buffer.Buffer.getUnsignedShort:(I)I
            istore 5 /* i */
        start local 5 // int i
         6: .line 597
            iinc 3 /* pos */ 2
         7: .line 598
            aload 2 /* buffer */
            iload 3 /* pos */
            invokeinterface io.vertx.core.buffer.Buffer.getUnsignedInt:(I)J
            lstore 6 /* j */
        start local 6 // long j
         8: .line 599
            iinc 3 /* pos */ 4
         9: .line 600
            aload 1 /* settings */
            iload 5 /* i */
            i2c
            lload 6 /* j */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual io.netty.handler.codec.http2.Http2Settings.put:(CLjava/lang/Long;)Ljava/lang/Long;
            pop
        end local 6 // long j
        end local 5 // int i
        10: .line 595
      StackMap locals:
      StackMap stack:
            iload 3 /* pos */
            iload 4 /* len */
            if_icmplt 5
        11: .line 602
            aload 1 /* settings */
        12: areturn
        end local 4 // int len
        end local 3 // int pos
        end local 2 // io.vertx.core.buffer.Buffer buffer
        end local 1 // io.netty.handler.codec.http2.Http2Settings settings
        13: .line 603
      StackMap locals: java.lang.String
      StackMap stack: java.lang.Exception
            pop
        14: .line 605
            aconst_null
            areturn
        end local 0 // java.lang.String base64Settings
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0  base64Settings  Ljava/lang/String;
            1   13     1        settings  Lio/netty/handler/codec/http2/Http2Settings;
            2   13     2          buffer  Lio/vertx/core/buffer/Buffer;
            3   13     3             pos  I
            4   13     4             len  I
            6   10     5               i  I
            8   10     6               j  J
      Exception table:
        from    to  target  type
           0    12      13  Class java.lang.Exception
    MethodParameters:
                Name  Flags
      base64Settings  

  public static java.lang.String encodeSettings(io.vertx.core.http.Http2Settings);
    descriptor: (Lio/vertx/core/http/Http2Settings;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.Http2Settings settings
         0: .line 609
            invokestatic io.vertx.core.buffer.Buffer.buffer:()Lio/vertx/core/buffer/Buffer;
            astore 1 /* buffer */
        start local 1 // io.vertx.core.buffer.Buffer buffer
         1: .line 610
            aload 0 /* settings */
            invokestatic io.vertx.core.http.impl.HttpUtils.fromVertxSettings:(Lio/vertx/core/http/Http2Settings;)Lio/netty/handler/codec/http2/Http2Settings;
            aload 1 /* buffer */
            invokedynamic accept(Lio/vertx/core/buffer/Buffer;)Ljava/util/function/BiConsumer;
              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;)V
                  io/vertx/core/http/impl/HttpUtils.lambda$4(Lio/vertx/core/buffer/Buffer;Ljava/lang/Character;Ljava/lang/Long;)V (6)
                  (Ljava/lang/Character;Ljava/lang/Long;)V
            invokevirtual io.netty.handler.codec.http2.Http2Settings.forEach:(Ljava/util/function/BiConsumer;)V
         2: .line 614
            invokestatic java.util.Base64.getUrlEncoder:()Ljava/util/Base64$Encoder;
            aload 1 /* buffer */
            invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
            invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
            areturn
        end local 1 // io.vertx.core.buffer.Buffer buffer
        end local 0 // io.vertx.core.http.Http2Settings settings
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  settings  Lio/vertx/core/http/Http2Settings;
            1    3     1    buffer  Lio/vertx/core/buffer/Buffer;
    MethodParameters:
          Name  Flags
      settings  

  public static io.netty.buffer.ByteBuf generateWSCloseFrameByteBuf(short, java.lang.String);
    descriptor: (SLjava/lang/String;)Lio/netty/buffer/ByteBuf;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // short statusCode
        start local 1 // java.lang.String reason
         0: .line 618
            aload 1 /* reason */
            ifnull 5
         1: .line 619
            iconst_2
            anewarray io.netty.buffer.ByteBuf
            dup
            iconst_0
         2: .line 620
            iload 0 /* statusCode */
            invokestatic io.netty.buffer.Unpooled.copyShort:(I)Lio/netty/buffer/ByteBuf;
            aastore
            dup
            iconst_1
         3: .line 621
            aload 1 /* reason */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokestatic io.netty.buffer.Unpooled.copiedBuffer:(Ljava/lang/CharSequence;Ljava/nio/charset/Charset;)Lio/netty/buffer/ByteBuf;
            aastore
         4: .line 619
            invokestatic io.netty.buffer.Unpooled.copiedBuffer:([Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf;
            areturn
         5: .line 624
      StackMap locals:
      StackMap stack:
            iload 0 /* statusCode */
            invokestatic io.netty.buffer.Unpooled.copyShort:(I)Lio/netty/buffer/ByteBuf;
            areturn
        end local 1 // java.lang.String reason
        end local 0 // short statusCode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0  statusCode  S
            0    6     1      reason  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      statusCode  
      reason      

  static void sendError(io.netty.channel.Channel, io.netty.handler.codec.http.HttpResponseStatus);
    descriptor: (Lio/netty/channel/Channel;Lio/netty/handler/codec/http/HttpResponseStatus;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.Channel ch
        start local 1 // io.netty.handler.codec.http.HttpResponseStatus status
         0: .line 628
            aload 0 /* ch */
            aload 1 /* status */
            aload 1 /* status */
            invokevirtual io.netty.handler.codec.http.HttpResponseStatus.reasonPhrase:()Ljava/lang/String;
            invokestatic io.vertx.core.http.impl.HttpUtils.sendError:(Lio/netty/channel/Channel;Lio/netty/handler/codec/http/HttpResponseStatus;Ljava/lang/CharSequence;)V
         1: .line 629
            return
        end local 1 // io.netty.handler.codec.http.HttpResponseStatus status
        end local 0 // io.netty.channel.Channel ch
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0      ch  Lio/netty/channel/Channel;
            0    2     1  status  Lio/netty/handler/codec/http/HttpResponseStatus;
    MethodParameters:
        Name  Flags
      ch      
      status  

  static void sendError(io.netty.channel.Channel, io.netty.handler.codec.http.HttpResponseStatus, java.lang.CharSequence);
    descriptor: (Lio/netty/channel/Channel;Lio/netty/handler/codec/http/HttpResponseStatus;Ljava/lang/CharSequence;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.netty.channel.Channel ch
        start local 1 // io.netty.handler.codec.http.HttpResponseStatus status
        start local 2 // java.lang.CharSequence err
         0: .line 632
            new io.netty.handler.codec.http.DefaultFullHttpResponse
            dup
            getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
            aload 1 /* status */
            invokespecial io.netty.handler.codec.http.DefaultFullHttpResponse.<init>:(Lio/netty/handler/codec/http/HttpVersion;Lio/netty/handler/codec/http/HttpResponseStatus;)V
            astore 3 /* resp */
        start local 3 // io.netty.handler.codec.http.FullHttpResponse resp
         1: .line 633
            aload 1 /* status */
            invokevirtual io.netty.handler.codec.http.HttpResponseStatus.code:()I
            getstatic io.netty.handler.codec.http.HttpResponseStatus.METHOD_NOT_ALLOWED:Lio/netty/handler/codec/http/HttpResponseStatus;
            invokevirtual io.netty.handler.codec.http.HttpResponseStatus.code:()I
            if_icmpne 3
         2: .line 635
            aload 3 /* resp */
            invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
            getstatic io.vertx.core.http.HttpHeaders.ALLOW:Ljava/lang/CharSequence;
            getstatic io.vertx.core.http.HttpHeaders.GET:Ljava/lang/CharSequence;
            invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
            pop
         3: .line 637
      StackMap locals: io.netty.handler.codec.http.FullHttpResponse
      StackMap stack:
            aload 2 /* err */
            ifnull 7
         4: .line 638
            aload 3 /* resp */
            invokeinterface io.netty.handler.codec.http.FullHttpResponse.content:()Lio/netty/buffer/ByteBuf;
            aload 2 /* err */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            getstatic io.netty.util.CharsetUtil.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual io.netty.buffer.ByteBuf.writeBytes:([B)Lio/netty/buffer/ByteBuf;
            pop
         5: .line 639
            aload 3 /* resp */
            aload 2 /* err */
            invokeinterface java.lang.CharSequence.length:()I
            i2l
            invokestatic io.netty.handler.codec.http.HttpUtil.setContentLength:(Lio/netty/handler/codec/http/HttpMessage;J)V
         6: .line 640
            goto 8
         7: .line 641
      StackMap locals:
      StackMap stack:
            aload 3 /* resp */
            lconst_0
            invokestatic io.netty.handler.codec.http.HttpUtil.setContentLength:(Lio/netty/handler/codec/http/HttpMessage;J)V
         8: .line 643
      StackMap locals:
      StackMap stack:
            aload 0 /* ch */
            aload 3 /* resp */
            invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
            pop
         9: .line 644
            return
        end local 3 // io.netty.handler.codec.http.FullHttpResponse resp
        end local 2 // java.lang.CharSequence err
        end local 1 // io.netty.handler.codec.http.HttpResponseStatus status
        end local 0 // io.netty.channel.Channel ch
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0      ch  Lio/netty/channel/Channel;
            0   10     1  status  Lio/netty/handler/codec/http/HttpResponseStatus;
            0   10     2     err  Ljava/lang/CharSequence;
            1   10     3    resp  Lio/netty/handler/codec/http/FullHttpResponse;
    MethodParameters:
        Name  Flags
      ch      
      status  
      err     

  static java.lang.String getWebSocketLocation(io.vertx.core.http.HttpServerRequest, boolean);
    descriptor: (Lio/vertx/core/http/HttpServerRequest;Z)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // io.vertx.core.http.HttpServerRequest req
        start local 1 // boolean ssl
         0: .line 648
            iload 1 /* ssl */
            ifeq 3
         1: .line 649
            ldc "ws://"
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         2: .line 650
            goto 4
        end local 2 // java.lang.String prefix
         3: .line 651
      StackMap locals:
      StackMap stack:
            ldc "wss://"
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         4: .line 653
      StackMap locals: java.lang.String
      StackMap stack:
            new java.net.URI
            dup
            aload 0 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.uri:()Ljava/lang/String;
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            astore 3 /* uri */
        start local 3 // java.net.URI uri
         5: .line 654
            aload 3 /* uri */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            astore 4 /* path */
        start local 4 // java.lang.String path
         6: .line 655
            new java.lang.StringBuilder
            dup
            aload 2 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.headers:()Lio/vertx/core/MultiMap;
            getstatic io.netty.handler.codec.http.HttpHeaderNames.HOST:Lio/netty/util/AsciiString;
            invokeinterface io.vertx.core.MultiMap.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* loc */
        start local 5 // java.lang.String loc
         7: .line 656
            aload 3 /* uri */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            astore 6 /* query */
        start local 6 // java.lang.String query
         8: .line 657
            aload 6 /* query */
            ifnull 10
         9: .line 658
            new java.lang.StringBuilder
            dup
            aload 5 /* loc */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* query */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* loc */
        10: .line 660
      StackMap locals: io.vertx.core.http.HttpServerRequest int java.lang.String java.net.URI java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 5 /* loc */
            areturn
        end local 6 // java.lang.String query
        end local 5 // java.lang.String loc
        end local 4 // java.lang.String path
        end local 3 // java.net.URI uri
        end local 2 // java.lang.String prefix
        end local 1 // boolean ssl
        end local 0 // io.vertx.core.http.HttpServerRequest req
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0     req  Lio/vertx/core/http/HttpServerRequest;
            0   11     1     ssl  Z
            2    3     2  prefix  Ljava/lang/String;
            4   11     2  prefix  Ljava/lang/String;
            5   11     3     uri  Ljava/net/URI;
            6   11     4    path  Ljava/lang/String;
            7   11     5     loc  Ljava/lang/String;
            8   11     6   query  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      req   
      ssl   

  public static java.lang.CharSequence toLowerCase(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.CharSequence sequence
         0: .line 667
            aconst_null
            astore 1 /* buffer */
        start local 1 // java.lang.StringBuilder buffer
         1: .line 668
            aload 0 /* sequence */
            invokeinterface java.lang.CharSequence.length:()I
            istore 2 /* len */
        start local 2 // int len
         2: .line 669
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         3: goto 10
         4: .line 670
      StackMap locals: java.lang.StringBuilder int int
      StackMap stack:
            aload 0 /* sequence */
            iload 3 /* index */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         5: .line 671
            iload 4 /* c */
            bipush 65
            if_icmplt 9
            iload 4 /* c */
            bipush 90
            if_icmpgt 9
         6: .line 672
            aload 1 /* buffer */
            ifnonnull 8
         7: .line 673
            new java.lang.StringBuilder
            dup
            aload 0 /* sequence */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/CharSequence;)V
            astore 1 /* buffer */
         8: .line 675
      StackMap locals: int
      StackMap stack:
            aload 1 /* buffer */
            iload 3 /* index */
            iload 4 /* c */
            bipush 32
            iadd
            i2c
            invokevirtual java.lang.StringBuilder.setCharAt:(IC)V
        end local 4 // char c
         9: .line 669
      StackMap locals:
      StackMap stack:
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* index */
            iload 2 /* len */
            if_icmplt 4
        end local 3 // int index
        11: .line 678
            aload 1 /* buffer */
            ifnull 13
        12: .line 679
            aload 1 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        13: .line 681
      StackMap locals:
      StackMap stack:
            aload 0 /* sequence */
            areturn
        end local 2 // int len
        end local 1 // java.lang.StringBuilder buffer
        end local 0 // java.lang.CharSequence sequence
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0  sequence  Ljava/lang/CharSequence;
            1   14     1    buffer  Ljava/lang/StringBuilder;
            2   14     2       len  I
            3   11     3     index  I
            5    9     4         c  C
    MethodParameters:
          Name  Flags
      sequence  

  static java.lang.String determineContentEncoding(io.netty.handler.codec.http2.Http2Headers);
    descriptor: (Lio/netty/handler/codec/http2/Http2Headers;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // io.netty.handler.codec.http2.Http2Headers headers
         0: .line 694
            aload 0 /* headers */
            getstatic io.netty.handler.codec.http.HttpHeaderNames.ACCEPT_ENCODING:Lio/netty/util/AsciiString;
            invokeinterface io.netty.handler.codec.http2.Http2Headers.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 1
            aload 0 /* headers */
            getstatic io.netty.handler.codec.http.HttpHeaderNames.ACCEPT_ENCODING:Lio/netty/util/AsciiString;
            invokeinterface io.netty.handler.codec.http2.Http2Headers.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.CharSequence
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 1 /* acceptEncoding */
        start local 1 // java.lang.String acceptEncoding
         3: .line 695
            aload 1 /* acceptEncoding */
            ifnull 9
         4: .line 696
            getstatic io.vertx.core.http.impl.HttpUtils.compressor:Lio/vertx/core/http/impl/HttpUtils$CustomCompressor;
            aload 1 /* acceptEncoding */
            invokevirtual io.vertx.core.http.impl.HttpUtils$CustomCompressor.determineWrapper:(Ljava/lang/String;)Lio/netty/handler/codec/compression/ZlibWrapper;
            astore 2 /* wrapper */
        start local 2 // io.netty.handler.codec.compression.ZlibWrapper wrapper
         5: .line 697
            aload 2 /* wrapper */
            ifnull 9
         6: .line 698
            invokestatic io.vertx.core.http.impl.HttpUtils.$SWITCH_TABLE$io$netty$handler$codec$compression$ZlibWrapper:()[I
            aload 2 /* wrapper */
            invokevirtual io.netty.handler.codec.compression.ZlibWrapper.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 8
                    2: 7
              default: 9
          }
         7: .line 700
      StackMap locals: java.lang.String io.netty.handler.codec.compression.ZlibWrapper
      StackMap stack:
            ldc "gzip"
            areturn
         8: .line 702
      StackMap locals:
      StackMap stack:
            ldc "deflate"
            areturn
        end local 2 // io.netty.handler.codec.compression.ZlibWrapper wrapper
         9: .line 706
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String acceptEncoding
        end local 0 // io.netty.handler.codec.http2.Http2Headers headers
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0         headers  Lio/netty/handler/codec/http2/Http2Headers;
            3   10     1  acceptEncoding  Ljava/lang/String;
            5    9     2         wrapper  Lio/netty/handler/codec/compression/ZlibWrapper;
    MethodParameters:
         Name  Flags
      headers  

  static io.netty.handler.codec.http.HttpVersion toNettyHttpVersion(io.vertx.core.http.HttpVersion);
    descriptor: (Lio/vertx/core/http/HttpVersion;)Lio/netty/handler/codec/http/HttpVersion;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // io.vertx.core.http.HttpVersion version
         0: .line 710
            invokestatic io.vertx.core.http.impl.HttpUtils.$SWITCH_TABLE$io$vertx$core$http$HttpVersion:()[I
            aload 0 /* version */
            invokevirtual io.vertx.core.http.HttpVersion.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 1
                    2: 2
              default: 3
          }
         1: .line 712
      StackMap locals:
      StackMap stack:
            getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_0:Lio/netty/handler/codec/http/HttpVersion;
            areturn
         2: .line 715
      StackMap locals:
      StackMap stack:
            getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
            areturn
         3: .line 718
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported HTTP version: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* version */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // io.vertx.core.http.HttpVersion version
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  version  Lio/vertx/core/http/HttpVersion;
    MethodParameters:
         Name  Flags
      version  

  static io.vertx.core.http.HttpMethod toVertxMethod(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/http/HttpMethod;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String method
         0: .line 723
            aload 0 /* method */
            invokestatic io.vertx.core.http.HttpMethod.valueOf:(Ljava/lang/String;)Lio/vertx/core/http/HttpMethod;
            areturn
        end local 0 // java.lang.String method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  method  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      method  

  public static int parseKeepAliveHeaderTimeout(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=1
        start local 0 // java.lang.CharSequence value
         0: .line 729
            aload 0 /* value */
            invokeinterface java.lang.CharSequence.length:()I
            istore 1 /* len */
        start local 1 // int len
         1: .line 730
            iconst_0
            istore 2 /* pos */
        start local 2 // int pos
         2: .line 731
            goto 31
         3: .line 732
      StackMap locals: int int
      StackMap stack:
            aload 0 /* value */
            bipush 44
            iload 2 /* pos */
            invokestatic io.netty.util.AsciiString.indexOf:(Ljava/lang/CharSequence;CI)I
            istore 3 /* idx */
        start local 3 // int idx
         4: .line 734
            iload 3 /* idx */
            iconst_m1
            if_icmpne 8
         5: .line 735
            iload 1 /* len */
            dup
            istore 4 /* next */
        start local 4 // int next
         6: istore 3 /* idx */
         7: .line 736
            goto 11
        end local 4 // int next
         8: .line 737
      StackMap locals: int
      StackMap stack:
            iload 3 /* idx */
            iconst_1
            iadd
            istore 4 /* next */
        start local 4 // int next
         9: .line 739
            goto 11
        10: .line 740
      StackMap locals: int
      StackMap stack:
            iinc 2 /* pos */ 1
        11: .line 739
      StackMap locals:
      StackMap stack:
            iload 2 /* pos */
            iload 3 /* idx */
            if_icmpge 12
            aload 0 /* value */
            iload 2 /* pos */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 32
            if_icmpeq 10
        12: .line 742
      StackMap locals:
      StackMap stack:
            iload 3 /* idx */
            istore 5 /* to */
        start local 5 // int to
        13: .line 743
            goto 15
        14: .line 744
      StackMap locals: int
      StackMap stack:
            iinc 5 /* to */ -1
        15: .line 743
      StackMap locals:
      StackMap stack:
            iload 5 /* to */
            iload 2 /* pos */
            if_icmple 16
            aload 0 /* value */
            iload 5 /* to */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 32
            if_icmpeq 14
        16: .line 746
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            iconst_1
            iload 2 /* pos */
            getstatic io.vertx.core.http.impl.HttpUtils.TIMEOUT_EQ:Lio/netty/util/AsciiString;
            iconst_0
            getstatic io.vertx.core.http.impl.HttpUtils.TIMEOUT_EQ:Lio/netty/util/AsciiString;
            invokevirtual io.netty.util.AsciiString.length:()I
            invokestatic io.netty.util.AsciiString.regionMatches:(Ljava/lang/CharSequence;ZILjava/lang/CharSequence;II)Z
            ifeq 30
        17: .line 747
            iload 2 /* pos */
            getstatic io.vertx.core.http.impl.HttpUtils.TIMEOUT_EQ:Lio/netty/util/AsciiString;
            invokevirtual io.netty.util.AsciiString.length:()I
            iadd
            istore 2 /* pos */
        18: .line 748
            iload 2 /* pos */
            iload 5 /* to */
            if_icmpge 30
        19: .line 749
            iconst_0
            istore 6 /* ret */
        start local 6 // int ret
        20: .line 750
            goto 27
        21: .line 751
      StackMap locals: int
      StackMap stack:
            aload 0 /* value */
            iload 2 /* pos */
            iinc 2 /* pos */ 1
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 7 /* ch */
        start local 7 // int ch
        22: .line 752
            iload 7 /* ch */
            bipush 48
            if_icmplt 25
            iload 7 /* ch */
            bipush 57
            if_icmpge 25
        23: .line 753
            iload 6 /* ret */
            bipush 10
            imul
            iload 7 /* ch */
            bipush 48
            isub
            iadd
            istore 6 /* ret */
        24: .line 754
            goto 27
        25: .line 755
      StackMap locals: int
      StackMap stack:
            iconst_m1
            istore 6 /* ret */
        26: .line 756
            goto 28
        end local 7 // int ch
        27: .line 750
      StackMap locals:
      StackMap stack:
            iload 2 /* pos */
            iload 5 /* to */
            if_icmplt 21
        28: .line 759
      StackMap locals:
      StackMap stack:
            iload 6 /* ret */
            iconst_m1
            if_icmple 30
        29: .line 760
            iload 6 /* ret */
            ireturn
        end local 6 // int ret
        30: .line 764
      StackMap locals:
      StackMap stack:
            iload 4 /* next */
            istore 2 /* pos */
        end local 5 // int to
        end local 4 // int next
        end local 3 // int idx
        31: .line 731
      StackMap locals:
      StackMap stack:
            iload 2 /* pos */
            iload 1 /* len */
            if_icmplt 3
        32: .line 766
            iconst_m1
            ireturn
        end local 2 // int pos
        end local 1 // int len
        end local 0 // java.lang.CharSequence value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   33     0  value  Ljava/lang/CharSequence;
            1   33     1    len  I
            2   33     2    pos  I
            4   31     3    idx  I
            6    8     4   next  I
            9   31     4   next  I
           13   31     5     to  I
           20   30     6    ret  I
           22   27     7     ch  I
    MethodParameters:
       Name  Flags
      value  

  public static void validateHeader(java.lang.CharSequence, java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.CharSequence name
        start local 1 // java.lang.CharSequence value
         0: .line 772
            aload 0 /* name */
            invokestatic io.vertx.core.http.impl.HttpUtils.validateHeaderName:(Ljava/lang/CharSequence;)V
         1: .line 773
            aload 1 /* value */
            ifnull 3
         2: .line 774
            aload 1 /* value */
            invokestatic io.vertx.core.http.impl.HttpUtils.validateHeaderValue:(Ljava/lang/CharSequence;)V
         3: .line 776
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.CharSequence value
        end local 0 // java.lang.CharSequence name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   name  Ljava/lang/CharSequence;
            0    4     1  value  Ljava/lang/CharSequence;
    MethodParameters:
       Name  Flags
      name   
      value  

  public static void validateHeader(java.lang.CharSequence, java.lang.Iterable<? extends java.lang.CharSequence>);
    descriptor: (Ljava/lang/CharSequence;Ljava/lang/Iterable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.CharSequence name
        start local 1 // java.lang.Iterable values
         0: .line 779
            aload 0 /* name */
            invokestatic io.vertx.core.http.impl.HttpUtils.validateHeaderName:(Ljava/lang/CharSequence;)V
         1: .line 780
            aload 1 /* values */
            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
                  io/vertx/core/http/impl/HttpUtils.lambda$5(Ljava/lang/CharSequence;)V (6)
                  (Ljava/lang/CharSequence;)V
            invokeinterface java.lang.Iterable.forEach:(Ljava/util/function/Consumer;)V
         2: .line 785
            return
        end local 1 // java.lang.Iterable values
        end local 0 // java.lang.CharSequence name
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    name  Ljava/lang/CharSequence;
            0    3     1  values  Ljava/lang/Iterable<+Ljava/lang/CharSequence;>;
    Signature: (Ljava/lang/CharSequence;Ljava/lang/Iterable<+Ljava/lang/CharSequence;>;)V
    MethodParameters:
        Name  Flags
      name    
      values  

  public static void validateHeaderValue(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.CharSequence seq
         0: .line 789
            iconst_0
            istore 1 /* state */
        start local 1 // int state
         1: .line 791
            iconst_0
            istore 2 /* index */
        start local 2 // int index
         2: goto 5
         3: .line 792
      StackMap locals: int int
      StackMap stack:
            aload 0 /* seq */
            iload 1 /* state */
            aload 0 /* seq */
            iload 2 /* index */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic io.vertx.core.http.impl.HttpUtils.validateValueChar:(Ljava/lang/CharSequence;IC)I
            istore 1 /* state */
         4: .line 791
            iinc 2 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* index */
            aload 0 /* seq */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmplt 3
        end local 2 // int index
         6: .line 795
            iload 1 /* state */
            ifeq 8
         7: .line 796
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "a header value must not end with '\\r' or '\\n':"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 798
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int state
        end local 0 // java.lang.CharSequence seq
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0    seq  Ljava/lang/CharSequence;
            1    9     1  state  I
            2    6     2  index  I
    MethodParameters:
      Name  Flags
      seq   

  private static int validateValueChar(java.lang.CharSequence, int, char);
    descriptor: (Ljava/lang/CharSequence;IC)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.CharSequence seq
        start local 1 // int state
        start local 2 // char character
         0: .line 809
            iload 2 /* character */
            bipush -16
            iand
            ifne 5
         1: .line 811
            iload 2 /* character */
            lookupswitch { // 3
                    0: 2
                   11: 3
                   12: 4
              default: 5
          }
         2: .line 813
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "a header value contains a prohibited character '\u0000': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 815
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "a header value contains a prohibited character '\\v': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 817
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "a header value contains a prohibited character '\\f': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 822
      StackMap locals:
      StackMap stack:
            iload 1 /* state */
            tableswitch { // 0 - 2
                    0: 6
                    1: 10
                    2: 13
              default: 16
          }
         6: .line 824
      StackMap locals:
      StackMap stack:
            iload 2 /* character */
            tableswitch { // 10 - 13
                   10: 8
                   11: 9
                   12: 9
                   13: 7
              default: 9
          }
         7: .line 826
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 828
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         9: .line 830
      StackMap locals:
      StackMap stack:
            goto 16
        10: .line 832
      StackMap locals:
      StackMap stack:
            iload 2 /* character */
            tableswitch { // 10 - 10
                   10: 11
              default: 12
          }
        11: .line 834
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
        12: .line 836
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "only '\\n' is allowed after '\\r': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 839
      StackMap locals:
      StackMap stack:
            iload 2 /* character */
            lookupswitch { // 2
                    9: 14
                   32: 14
              default: 15
          }
        14: .line 842
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        15: .line 844
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "only ' ' and '\\t' are allowed after '\\n': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 847
      StackMap locals:
      StackMap stack:
            iload 1 /* state */
            ireturn
        end local 2 // char character
        end local 1 // int state
        end local 0 // java.lang.CharSequence seq
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0        seq  Ljava/lang/CharSequence;
            0   17     1      state  I
            0   17     2  character  C
    MethodParameters:
           Name  Flags
      seq        
      state      
      character  

  public static void validateHeaderName(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.CharSequence value
         0: .line 851
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 14
         2: .line 852
      StackMap locals: int
      StackMap stack:
            aload 0 /* value */
            iload 1 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 2 /* c */
        start local 2 // char c
         3: .line 853
            iload 2 /* c */
            lookupswitch { // 11
                    0: 4
                    9: 4
                   10: 4
                   11: 4
                   12: 4
                   13: 4
                   32: 4
                   44: 4
                   58: 4
                   59: 4
                   61: 4
              default: 9
          }
         4: .line 865
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         5: .line 866
            new java.lang.StringBuilder
            dup
            ldc "a header name cannot contain the following prohibited characters: =,;: \\t\\r\\n\\v\\f: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 867
            aload 0 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         7: .line 866
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 865
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 870
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            bipush 127
            if_icmple 13
        10: .line 871
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "a header name cannot contain non-ASCII character: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 872
            aload 0 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 871
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // char c
        13: .line 851
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 1 /* i */
            aload 0 /* value */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmplt 2
        end local 1 // int i
        15: .line 876
            return
        end local 0 // java.lang.CharSequence value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0  value  Ljava/lang/CharSequence;
            1   15     1      i  I
            3   13     2      c  C
    MethodParameters:
       Name  Flags
      value  

  public static boolean isValidMultipartContentType(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // java.lang.String contentType
         0: .line 879
            getstatic io.netty.handler.codec.http.HttpHeaderValues.MULTIPART_FORM_DATA:Lio/netty/util/AsciiString;
            iconst_1
            iconst_0
            aload 0 /* contentType */
            iconst_0
            getstatic io.netty.handler.codec.http.HttpHeaderValues.MULTIPART_FORM_DATA:Lio/netty/util/AsciiString;
            invokevirtual io.netty.util.AsciiString.length:()I
            invokevirtual io.netty.util.AsciiString.regionMatches:(ZILjava/lang/CharSequence;II)Z
            ifne 3
         1: .line 880
            getstatic io.netty.handler.codec.http.HttpHeaderValues.APPLICATION_X_WWW_FORM_URLENCODED:Lio/netty/util/AsciiString;
            iconst_1
            iconst_0
            aload 0 /* contentType */
            iconst_0
            getstatic io.netty.handler.codec.http.HttpHeaderValues.APPLICATION_X_WWW_FORM_URLENCODED:Lio/netty/util/AsciiString;
            invokevirtual io.netty.util.AsciiString.length:()I
            invokevirtual io.netty.util.AsciiString.regionMatches:(ZILjava/lang/CharSequence;II)Z
            ifne 3
         2: .line 879
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // java.lang.String contentType
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0  contentType  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      contentType  

  public static boolean isValidMultipartMethod(io.netty.handler.codec.http.HttpMethod);
    descriptor: (Lio/netty/handler/codec/http/HttpMethod;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.handler.codec.http.HttpMethod method
         0: .line 884
            aload 0 /* method */
            getstatic io.netty.handler.codec.http.HttpMethod.POST:Lio/netty/handler/codec/http/HttpMethod;
            invokevirtual io.netty.handler.codec.http.HttpMethod.equals:(Ljava/lang/Object;)Z
            ifne 3
            aload 0 /* method */
            getstatic io.netty.handler.codec.http.HttpMethod.PUT:Lio/netty/handler/codec/http/HttpMethod;
            invokevirtual io.netty.handler.codec.http.HttpMethod.equals:(Ljava/lang/Object;)Z
            ifne 3
            aload 0 /* method */
            getstatic io.netty.handler.codec.http.HttpMethod.PATCH:Lio/netty/handler/codec/http/HttpMethod;
            invokevirtual io.netty.handler.codec.http.HttpMethod.equals:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 885
            aload 0 /* method */
            getstatic io.netty.handler.codec.http.HttpMethod.DELETE:Lio/netty/handler/codec/http/HttpMethod;
            invokevirtual io.netty.handler.codec.http.HttpMethod.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 884
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // io.netty.handler.codec.http.HttpMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  method  Lio/netty/handler/codec/http/HttpMethod;
    MethodParameters:
        Name  Flags
      method  

  static void resolveFile(io.vertx.core.impl.VertxInternal, java.lang.String, long, long, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.file.AsyncFile>>);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;JJLio/vertx/core/Handler;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=12, args_size=5
        start local 0 // io.vertx.core.impl.VertxInternal vertx
        start local 1 // java.lang.String filename
        start local 2 // long offset
        start local 4 // long length
        start local 6 // io.vertx.core.Handler resultHandler
         0: .line 889
            aload 0 /* vertx */
            aload 1 /* filename */
            invokeinterface io.vertx.core.impl.VertxInternal.resolveFile:(Ljava/lang/String;)Ljava/io/File;
            astore 7 /* file_ */
        start local 7 // java.io.File file_
         1: .line 890
            aload 7 /* file_ */
            invokevirtual java.io.File.exists:()Z
            ifne 4
         2: .line 891
            aload 6 /* resultHandler */
            new java.io.FileNotFoundException
            dup
            invokespecial java.io.FileNotFoundException.<init>:()V
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 892
            return
         4: .line 897
      StackMap locals: java.io.File
      StackMap stack:
            aconst_null
            astore 8
            aconst_null
            astore 9
         5: new java.io.RandomAccessFile
            dup
            aload 7 /* file_ */
            ldc "r"
            invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 10 /* raf */
        start local 10 // java.io.RandomAccessFile raf
         6: .line 898
            aload 0 /* vertx */
            invokeinterface io.vertx.core.impl.VertxInternal.fileSystem:()Lio/vertx/core/file/FileSystem;
            astore 11 /* fs */
        start local 11 // io.vertx.core.file.FileSystem fs
         7: .line 899
            aload 11 /* fs */
            aload 1 /* filename */
            new io.vertx.core.file.OpenOptions
            dup
            invokespecial io.vertx.core.file.OpenOptions.<init>:()V
            iconst_0
            invokevirtual io.vertx.core.file.OpenOptions.setCreate:(Z)Lio/vertx/core/file/OpenOptions;
            iconst_0
            invokevirtual io.vertx.core.file.OpenOptions.setWrite:(Z)Lio/vertx/core/file/OpenOptions;
            lload 4 /* length */
            aload 7 /* file_ */
            lload 2 /* offset */
            aload 6 /* resultHandler */
            invokedynamic handle(JLjava/io/File;JLio/vertx/core/Handler;)Lio/vertx/core/Handler;
              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
                  io/vertx/core/http/impl/HttpUtils.lambda$6(JLjava/io/File;JLio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.file.FileSystem.open:(Ljava/lang/String;Lio/vertx/core/file/OpenOptions;Lio/vertx/core/Handler;)Lio/vertx/core/file/FileSystem;
            pop
        end local 11 // io.vertx.core.file.FileSystem fs
         8: .line 908
            aload 10 /* raf */
            ifnull 16
            aload 10 /* raf */
            invokevirtual java.io.RandomAccessFile.close:()V
            goto 16
      StackMap locals: io.vertx.core.impl.VertxInternal java.lang.String long long io.vertx.core.Handler java.io.File java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile
      StackMap stack: java.lang.Throwable
         9: astore 8
            aload 10 /* raf */
            ifnull 10
            aload 10 /* raf */
            invokevirtual java.io.RandomAccessFile.close:()V
        end local 10 // java.io.RandomAccessFile raf
      StackMap locals:
      StackMap stack:
        10: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 9
            aload 8
            ifnonnull 12
            aload 9
            astore 8
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 8
            aload 9
            if_acmpeq 13
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 8
            athrow
      StackMap locals: io.vertx.core.impl.VertxInternal java.lang.String long long io.vertx.core.Handler java.io.File
      StackMap stack: java.io.IOException
        14: astore 8 /* e */
        start local 8 // java.io.IOException e
        15: .line 909
            aload 6 /* resultHandler */
            aload 8 /* e */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 8 // java.io.IOException e
        16: .line 911
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.io.File file_
        end local 6 // io.vertx.core.Handler resultHandler
        end local 4 // long length
        end local 2 // long offset
        end local 1 // java.lang.String filename
        end local 0 // io.vertx.core.impl.VertxInternal vertx
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0          vertx  Lio/vertx/core/impl/VertxInternal;
            0   17     1       filename  Ljava/lang/String;
            0   17     2         offset  J
            0   17     4         length  J
            0   17     6  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/file/AsyncFile;>;>;
            1   17     7          file_  Ljava/io/File;
            6   10    10            raf  Ljava/io/RandomAccessFile;
            7    8    11             fs  Lio/vertx/core/file/FileSystem;
           15   16     8              e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6     8       9  any
           5    11      11  any
           4    14      14  Class java.io.IOException
    Signature: (Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;JJLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/file/AsyncFile;>;>;)V
    MethodParameters:
               Name  Flags
      vertx          
      filename       
      offset         
      length         
      resultHandler  

  static int[] $SWITCH_TABLE$io$netty$handler$codec$compression$ZlibWrapper();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 65
            getstatic io.vertx.core.http.impl.HttpUtils.$SWITCH_TABLE$io$netty$handler$codec$compression$ZlibWrapper:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.netty.handler.codec.compression.ZlibWrapper.values:()[Lio/netty/handler/codec/compression/ZlibWrapper;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.netty.handler.codec.compression.ZlibWrapper.GZIP:Lio/netty/handler/codec/compression/ZlibWrapper;
            invokevirtual io.netty.handler.codec.compression.ZlibWrapper.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.netty.handler.codec.compression.ZlibWrapper.NONE:Lio/netty/handler/codec/compression/ZlibWrapper;
            invokevirtual io.netty.handler.codec.compression.ZlibWrapper.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.netty.handler.codec.compression.ZlibWrapper.ZLIB:Lio/netty/handler/codec/compression/ZlibWrapper;
            invokevirtual io.netty.handler.codec.compression.ZlibWrapper.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic io.netty.handler.codec.compression.ZlibWrapper.ZLIB_OR_NONE:Lio/netty/handler/codec/compression/ZlibWrapper;
            invokevirtual io.netty.handler.codec.compression.ZlibWrapper.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic io.vertx.core.http.impl.HttpUtils.$SWITCH_TABLE$io$netty$handler$codec$compression$ZlibWrapper:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$io$vertx$core$http$HttpVersion();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 65
            getstatic io.vertx.core.http.impl.HttpUtils.$SWITCH_TABLE$io$vertx$core$http$HttpVersion:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.vertx.core.http.HttpVersion.values:()[Lio/vertx/core/http/HttpVersion;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.vertx.core.http.HttpVersion.HTTP_1_0:Lio/vertx/core/http/HttpVersion;
            invokevirtual io.vertx.core.http.HttpVersion.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.vertx.core.http.HttpVersion.HTTP_1_1:Lio/vertx/core/http/HttpVersion;
            invokevirtual io.vertx.core.http.HttpVersion.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.vertx.core.http.HttpVersion.HTTP_2:Lio/vertx/core/http/HttpVersion;
            invokevirtual io.vertx.core.http.HttpVersion.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic io.vertx.core.http.impl.HttpUtils.$SWITCH_TABLE$io$vertx$core$http$HttpVersion:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError

  private static void lambda$1(io.netty.handler.codec.http2.Http2Settings, java.lang.Integer, java.lang.Long);
    descriptor: (Lio/netty/handler/codec/http2/Http2Settings;Ljava/lang/Integer;Ljava/lang/Long;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 1 // java.lang.Integer code
        start local 2 // java.lang.Long setting
         0: .line 533
            aload 0
            aload 1 /* code */
            invokevirtual java.lang.Integer.intValue:()I
            i2c
            aload 2 /* setting */
            invokevirtual io.netty.handler.codec.http2.Http2Settings.put:(CLjava/lang/Long;)Ljava/lang/Long;
            pop
         1: .line 534
            return
        end local 2 // java.lang.Long setting
        end local 1 // java.lang.Integer code
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     1     code  Ljava/lang/Integer;
            0    2     2  setting  Ljava/lang/Long;

  private static void lambda$2(io.netty.handler.codec.http2.Http2Settings, java.lang.Integer, java.lang.Long);
    descriptor: (Lio/netty/handler/codec/http2/Http2Settings;Ljava/lang/Integer;Ljava/lang/Long;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 1 // java.lang.Integer key
        start local 2 // java.lang.Long value
         0: .line 549
            aload 0
            aload 1 /* key */
            invokevirtual java.lang.Integer.intValue:()I
            i2c
            aload 2 /* value */
            invokevirtual io.netty.handler.codec.http2.Http2Settings.put:(CLjava/lang/Long;)Ljava/lang/Long;
            pop
         1: .line 550
            return
        end local 2 // java.lang.Long value
        end local 1 // java.lang.Integer key
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     1    key  Ljava/lang/Integer;
            0    2     2  value  Ljava/lang/Long;

  private static void lambda$3(io.vertx.core.http.Http2Settings, java.lang.Character, java.lang.Long);
    descriptor: (Lio/vertx/core/http/Http2Settings;Ljava/lang/Character;Ljava/lang/Long;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 1 // java.lang.Character key
        start local 2 // java.lang.Long value
         0: .line 582
            aload 1 /* key */
            invokevirtual java.lang.Character.charValue:()C
            bipush 6
            if_icmple 2
         1: .line 583
            aload 0
            aload 1 /* key */
            invokevirtual java.lang.Character.charValue:()C
            aload 2 /* value */
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual io.vertx.core.http.Http2Settings.set:(IJ)Lio/vertx/core/http/Http2Settings;
            pop
         2: .line 585
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Long value
        end local 1 // java.lang.Character key
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     1    key  Ljava/lang/Character;
            0    3     2  value  Ljava/lang/Long;

  private static void lambda$4(io.vertx.core.buffer.Buffer, java.lang.Character, java.lang.Long);
    descriptor: (Lio/vertx/core/buffer/Buffer;Ljava/lang/Character;Ljava/lang/Long;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 1 // java.lang.Character c
        start local 2 // java.lang.Long l
         0: .line 611
            aload 0
            aload 1 /* c */
            invokevirtual java.lang.Character.charValue:()C
            invokeinterface io.vertx.core.buffer.Buffer.appendUnsignedShort:(I)Lio/vertx/core/buffer/Buffer;
            pop
         1: .line 612
            aload 0
            aload 2 /* l */
            invokevirtual java.lang.Long.longValue:()J
            invokeinterface io.vertx.core.buffer.Buffer.appendUnsignedInt:(J)Lio/vertx/core/buffer/Buffer;
            pop
         2: .line 613
            return
        end local 2 // java.lang.Long l
        end local 1 // java.lang.Character c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     c  Ljava/lang/Character;
            0    3     2     l  Ljava/lang/Long;

  private static void lambda$5(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.CharSequence value
         0: .line 781
            aload 0 /* value */
            ifnull 2
         1: .line 782
            getstatic io.vertx.core.http.impl.HttpUtils.HEADER_VALUE_VALIDATOR:Ljava/util/function/Consumer;
            aload 0 /* value */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         2: .line 784
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.CharSequence value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  Ljava/lang/CharSequence;

  private static void lambda$6(long, java.io.File, long, io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (JLjava/io/File;JLio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=10, args_size=5
        start local 6 // io.vertx.core.AsyncResult ar
         0: .line 900
            aload 6 /* ar */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 5
         1: .line 901
            aload 6 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.file.AsyncFile
            astore 7 /* file */
        start local 7 // io.vertx.core.file.AsyncFile file
         2: .line 902
            lload 0
            aload 2
            invokevirtual java.io.File.length:()J
            lload 3
            lsub
            invokestatic java.lang.Math.min:(JJ)J
            lstore 8 /* contentLength */
        start local 8 // long contentLength
         3: .line 903
            aload 7 /* file */
            lload 3
            invokeinterface io.vertx.core.file.AsyncFile.setReadPos:(J)Lio/vertx/core/file/AsyncFile;
            pop
         4: .line 904
            aload 7 /* file */
            lload 8 /* contentLength */
            invokeinterface io.vertx.core.file.AsyncFile.setReadLength:(J)Lio/vertx/core/file/AsyncFile;
            pop
        end local 8 // long contentLength
        end local 7 // io.vertx.core.file.AsyncFile file
         5: .line 906
      StackMap locals:
      StackMap stack:
            aload 5
            aload 6 /* ar */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         6: .line 907
            return
        end local 6 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     6             ar  Lio/vertx/core/AsyncResult<Lio/vertx/core/file/AsyncFile;>;
            2    5     7           file  Lio/vertx/core/file/AsyncFile;
            3    5     8  contentLength  J
}
SourceFile: "HttpUtils.java"
NestMembers:
  io.vertx.core.http.impl.HttpUtils$1  io.vertx.core.http.impl.HttpUtils$2  io.vertx.core.http.impl.HttpUtils$3  io.vertx.core.http.impl.HttpUtils$4  io.vertx.core.http.impl.HttpUtils$5  io.vertx.core.http.impl.HttpUtils$CustomCompressor
InnerClasses:
  io.vertx.core.http.impl.HttpUtils$1
  io.vertx.core.http.impl.HttpUtils$2
  io.vertx.core.http.impl.HttpUtils$3
  io.vertx.core.http.impl.HttpUtils$4
  io.vertx.core.http.impl.HttpUtils$5
  private CustomCompressor = io.vertx.core.http.impl.HttpUtils$CustomCompressor of io.vertx.core.http.impl.HttpUtils
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Decoder = java.util.Base64$Decoder of java.util.Base64
  public Encoder = java.util.Base64$Encoder of java.util.Base64
  public abstract Entry = java.util.Map$Entry of java.util.Map