public class io.undertow.server.protocol.ajp.AjpRequestParser
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.undertow.server.protocol.ajp.AjpRequestParser
  super_class: java.lang.Object
{
  private final java.lang.String encoding;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean doDecode;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean allowEncodedSlash;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int maxParameters;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int maxHeaders;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.StringBuilder decodeBuffer;
    descriptor: Ljava/lang/StringBuilder;
    flags: (0x0002) ACC_PRIVATE

  private static final io.undertow.util.HttpString[] HTTP_HEADERS;
    descriptor: [Lio/undertow/util/HttpString;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int FORWARD_REQUEST;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int CPONG;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  public static final int CPING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  public static final int SHUTDOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static final io.undertow.util.HttpString[] HTTP_METHODS;
    descriptor: [Lio/undertow/util/HttpString;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] ATTRIBUTES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String QUERY_STRING;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "query_string"

  public static final java.lang.String SSL_CERT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ssl_cert"

  public static final java.lang.String CONTEXT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "context"

  public static final java.lang.String SERVLET_PATH;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "servlet_path"

  public static final java.lang.String REMOTE_USER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "remote_user"

  public static final java.lang.String AUTH_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "auth_type"

  public static final java.lang.String ROUTE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "route"

  public static final java.lang.String SSL_CIPHER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ssl_cipher"

  public static final java.lang.String SSL_SESSION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ssl_session"

  public static final java.lang.String REQ_ATTRIBUTE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "req_attribute"

  public static final java.lang.String SSL_KEY_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ssl_key_size"

  public static final java.lang.String SECRET;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "secret"

  public static final java.lang.String STORED_METHOD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "stored_method"

  public static final java.lang.String AJP_REMOTE_PORT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "AJP_REMOTE_PORT"

  public static final int STRING_LENGTH_MASK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483648

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 118
            bipush 28
            anewarray io.undertow.util.HttpString
            putstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
         1: .line 119
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            iconst_1
            getstatic io.undertow.util.Methods.OPTIONS:Lio/undertow/util/HttpString;
            aastore
         2: .line 120
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            iconst_2
            getstatic io.undertow.util.Methods.GET:Lio/undertow/util/HttpString;
            aastore
         3: .line 121
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            iconst_3
            getstatic io.undertow.util.Methods.HEAD:Lio/undertow/util/HttpString;
            aastore
         4: .line 122
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            iconst_4
            getstatic io.undertow.util.Methods.POST:Lio/undertow/util/HttpString;
            aastore
         5: .line 123
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            iconst_5
            getstatic io.undertow.util.Methods.PUT:Lio/undertow/util/HttpString;
            aastore
         6: .line 124
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 6
            getstatic io.undertow.util.Methods.DELETE:Lio/undertow/util/HttpString;
            aastore
         7: .line 125
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 7
            getstatic io.undertow.util.Methods.TRACE:Lio/undertow/util/HttpString;
            aastore
         8: .line 126
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 8
            getstatic io.undertow.util.Methods.PROPFIND:Lio/undertow/util/HttpString;
            aastore
         9: .line 127
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 9
            getstatic io.undertow.util.Methods.PROPPATCH:Lio/undertow/util/HttpString;
            aastore
        10: .line 128
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 10
            getstatic io.undertow.util.Methods.MKCOL:Lio/undertow/util/HttpString;
            aastore
        11: .line 129
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 11
            getstatic io.undertow.util.Methods.COPY:Lio/undertow/util/HttpString;
            aastore
        12: .line 130
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 12
            getstatic io.undertow.util.Methods.MOVE:Lio/undertow/util/HttpString;
            aastore
        13: .line 131
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 13
            getstatic io.undertow.util.Methods.LOCK:Lio/undertow/util/HttpString;
            aastore
        14: .line 132
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 14
            getstatic io.undertow.util.Methods.UNLOCK:Lio/undertow/util/HttpString;
            aastore
        15: .line 133
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 15
            getstatic io.undertow.util.Methods.ACL:Lio/undertow/util/HttpString;
            aastore
        16: .line 134
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 16
            getstatic io.undertow.util.Methods.REPORT:Lio/undertow/util/HttpString;
            aastore
        17: .line 135
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 17
            getstatic io.undertow.util.Methods.VERSION_CONTROL:Lio/undertow/util/HttpString;
            aastore
        18: .line 136
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 18
            getstatic io.undertow.util.Methods.CHECKIN:Lio/undertow/util/HttpString;
            aastore
        19: .line 137
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 19
            getstatic io.undertow.util.Methods.CHECKOUT:Lio/undertow/util/HttpString;
            aastore
        20: .line 138
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 20
            getstatic io.undertow.util.Methods.UNCHECKOUT:Lio/undertow/util/HttpString;
            aastore
        21: .line 139
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 21
            getstatic io.undertow.util.Methods.SEARCH:Lio/undertow/util/HttpString;
            aastore
        22: .line 140
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 22
            getstatic io.undertow.util.Methods.MKWORKSPACE:Lio/undertow/util/HttpString;
            aastore
        23: .line 141
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 23
            getstatic io.undertow.util.Methods.UPDATE:Lio/undertow/util/HttpString;
            aastore
        24: .line 142
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 24
            getstatic io.undertow.util.Methods.LABEL:Lio/undertow/util/HttpString;
            aastore
        25: .line 143
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 25
            getstatic io.undertow.util.Methods.MERGE:Lio/undertow/util/HttpString;
            aastore
        26: .line 144
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 26
            getstatic io.undertow.util.Methods.BASELINE_CONTROL:Lio/undertow/util/HttpString;
            aastore
        27: .line 145
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            bipush 27
            getstatic io.undertow.util.Methods.MKACTIVITY:Lio/undertow/util/HttpString;
            aastore
        28: .line 147
            bipush 15
            anewarray io.undertow.util.HttpString
            putstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
        29: .line 148
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            iconst_1
            getstatic io.undertow.util.Headers.ACCEPT:Lio/undertow/util/HttpString;
            aastore
        30: .line 149
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            iconst_2
            getstatic io.undertow.util.Headers.ACCEPT_CHARSET:Lio/undertow/util/HttpString;
            aastore
        31: .line 150
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            iconst_3
            getstatic io.undertow.util.Headers.ACCEPT_ENCODING:Lio/undertow/util/HttpString;
            aastore
        32: .line 151
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            iconst_4
            getstatic io.undertow.util.Headers.ACCEPT_LANGUAGE:Lio/undertow/util/HttpString;
            aastore
        33: .line 152
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            iconst_5
            getstatic io.undertow.util.Headers.AUTHORIZATION:Lio/undertow/util/HttpString;
            aastore
        34: .line 153
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            bipush 6
            getstatic io.undertow.util.Headers.CONNECTION:Lio/undertow/util/HttpString;
            aastore
        35: .line 154
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            bipush 7
            getstatic io.undertow.util.Headers.CONTENT_TYPE:Lio/undertow/util/HttpString;
            aastore
        36: .line 155
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            bipush 8
            getstatic io.undertow.util.Headers.CONTENT_LENGTH:Lio/undertow/util/HttpString;
            aastore
        37: .line 156
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            bipush 9
            getstatic io.undertow.util.Headers.COOKIE:Lio/undertow/util/HttpString;
            aastore
        38: .line 157
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            bipush 10
            getstatic io.undertow.util.Headers.COOKIE2:Lio/undertow/util/HttpString;
            aastore
        39: .line 158
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            bipush 11
            getstatic io.undertow.util.Headers.HOST:Lio/undertow/util/HttpString;
            aastore
        40: .line 159
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            bipush 12
            getstatic io.undertow.util.Headers.PRAGMA:Lio/undertow/util/HttpString;
            aastore
        41: .line 160
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            bipush 13
            getstatic io.undertow.util.Headers.REFERER:Lio/undertow/util/HttpString;
            aastore
        42: .line 161
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            bipush 14
            getstatic io.undertow.util.Headers.USER_AGENT:Lio/undertow/util/HttpString;
            aastore
        43: .line 163
            bipush 14
            anewarray java.lang.String
            putstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
        44: .line 164
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            iconst_1
            ldc "context"
            aastore
        45: .line 165
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            ldc "servlet_path"
            aastore
        46: .line 166
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            iconst_3
            ldc "remote_user"
            aastore
        47: .line 167
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            iconst_4
            ldc "auth_type"
            aastore
        48: .line 168
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            iconst_5
            ldc "query_string"
            aastore
        49: .line 169
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            bipush 6
            ldc "route"
            aastore
        50: .line 170
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            bipush 7
            ldc "ssl_cert"
            aastore
        51: .line 171
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            bipush 8
            ldc "ssl_cipher"
            aastore
        52: .line 172
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            bipush 9
            ldc "ssl_session"
            aastore
        53: .line 173
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            bipush 10
            ldc "req_attribute"
            aastore
        54: .line 174
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            bipush 11
            ldc "ssl_key_size"
            aastore
        55: .line 175
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            bipush 12
            ldc "secret"
            aastore
        56: .line 176
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            bipush 13
            ldc "stored_method"
            aastore
        57: .line 475
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, boolean, int, int, boolean);
    descriptor: (Ljava/lang/String;ZIIZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
        start local 1 // java.lang.String encoding
        start local 2 // boolean doDecode
        start local 3 // int maxParameters
        start local 4 // int maxHeaders
        start local 5 // boolean allowEncodedSlash
         0: .line 179
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 180
            aload 0 /* this */
            aload 1 /* encoding */
            putfield io.undertow.server.protocol.ajp.AjpRequestParser.encoding:Ljava/lang/String;
         2: .line 181
            aload 0 /* this */
            iload 2 /* doDecode */
            putfield io.undertow.server.protocol.ajp.AjpRequestParser.doDecode:Z
         3: .line 182
            aload 0 /* this */
            iload 3 /* maxParameters */
            putfield io.undertow.server.protocol.ajp.AjpRequestParser.maxParameters:I
         4: .line 183
            aload 0 /* this */
            iload 4 /* maxHeaders */
            putfield io.undertow.server.protocol.ajp.AjpRequestParser.maxHeaders:I
         5: .line 184
            aload 0 /* this */
            iload 5 /* allowEncodedSlash */
            putfield io.undertow.server.protocol.ajp.AjpRequestParser.allowEncodedSlash:Z
         6: .line 185
            return
        end local 5 // boolean allowEncodedSlash
        end local 4 // int maxHeaders
        end local 3 // int maxParameters
        end local 2 // boolean doDecode
        end local 1 // java.lang.String encoding
        end local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lio/undertow/server/protocol/ajp/AjpRequestParser;
            0    7     1           encoding  Ljava/lang/String;
            0    7     2           doDecode  Z
            0    7     3      maxParameters  I
            0    7     4         maxHeaders  I
            0    7     5  allowEncodedSlash  Z
    MethodParameters:
                   Name  Flags
      encoding           
      doDecode           
      maxParameters      
      maxHeaders         
      allowEncodedSlash  

  public void parse(java.nio.ByteBuffer, io.undertow.server.protocol.ajp.AjpRequestParseState, io.undertow.server.HttpServerExchange);
    descriptor: (Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/HttpServerExchange;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // io.undertow.server.protocol.ajp.AjpRequestParseState state
        start local 3 // io.undertow.server.HttpServerExchange exchange
         0: .line 189
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 2
         1: .line 190
            return
         2: .line 192
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
            tableswitch { // 0 - 14
                    0: 3
                    1: 198
                    2: 8
                    3: 13
                    4: 21
                    5: 30
                    6: 36
                    7: 60
                    8: 66
                    9: 70
                   10: 76
                   11: 82
                   12: 90
                   13: 98
                   14: 121
              default: 198
          }
         3: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parse16BitInteger:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;)Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder result
         4: .line 195
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.readComplete:Z
            ifne 6
         5: .line 196
            return
         6: .line 198
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder
      StackMap stack:
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.value:I
            sipush 4660
            if_icmpeq 8
         7: .line 199
            new io.undertow.util.BadRequestException
            dup
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.value:I
            invokeinterface io.undertow.UndertowMessages.wrongMagicNumber:(I)Ljava/io/IOException;
            invokespecial io.undertow.util.BadRequestException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder result
         8: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parse16BitInteger:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;)Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder result
         9: .line 205
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.readComplete:Z
            ifne 12
        10: .line 206
            aload 2 /* state */
            iconst_2
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        11: .line 207
            return
        12: .line 209
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder
      StackMap stack:
            aload 2 /* state */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.value:I
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.dataSize:I
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder result
        13: .line 213
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 16
        14: .line 214
            aload 2 /* state */
            iconst_3
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        15: .line 215
            return
        16: .line 217
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 4 /* prefix */
        start local 4 // byte prefix
        17: .line 218
            aload 2 /* state */
            iload 4 /* prefix */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.prefix:B
        18: .line 219
            iload 4 /* prefix */
            iconst_2
            if_icmpeq 21
        19: .line 220
            aload 2 /* state */
            bipush 15
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        20: .line 221
            return
        end local 4 // byte prefix
        21: .line 226
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 24
        22: .line 227
            aload 2 /* state */
            iconst_4
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        23: .line 228
            return
        24: .line 230
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 4 /* method */
        start local 4 // int method
        25: .line 231
            iload 4 /* method */
            ifle 28
            iload 4 /* method */
            bipush 28
            if_icmpge 28
        26: .line 232
            aload 3 /* exchange */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_METHODS:[Lio/undertow/util/HttpString;
            iload 4 /* method */
            aaload
            invokevirtual io.undertow.server.HttpServerExchange.setRequestMethod:(Lio/undertow/util/HttpString;)Lio/undertow/server/HttpServerExchange;
            pop
        27: .line 233
            goto 30
      StackMap locals: int
      StackMap stack:
        28: iload 4 /* method */
            sipush 255
            iand
            sipush 255
            if_icmpeq 30
        29: .line 234
            new io.undertow.util.BadRequestException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown method type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* method */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial io.undertow.util.BadRequestException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int method
        30: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.OTHER:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parseString:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        31: .line 240
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.readComplete:Z
            ifeq 34
        32: .line 242
            aload 3 /* exchange */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            invokestatic io.undertow.util.HttpString.tryFromString:(Ljava/lang/String;)Lio/undertow/util/HttpString;
            invokevirtual io.undertow.server.HttpServerExchange.setProtocol:(Lio/undertow/util/HttpString;)Lio/undertow/server/HttpServerExchange;
            pop
        33: .line 243
            goto 36
        34: .line 244
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
      StackMap stack:
            aload 2 /* state */
            iconst_5
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        35: .line 245
            return
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        36: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.URL:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parseString:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        37: .line 250
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.readComplete:Z
            ifeq 58
        38: .line 251
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            bipush 59
            invokevirtual java.lang.String.indexOf:(I)I
            istore 5 /* colon */
        start local 5 // int colon
        39: .line 252
            iload 5 /* colon */
            iconst_m1
            if_icmpne 45
        40: .line 253
            aload 0 /* this */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.containsUrlCharacters:Z
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.decode:(Ljava/lang/String;Z)Ljava/lang/String;
            astore 6 /* res */
        start local 6 // java.lang.String res
        41: .line 254
            aload 3 /* exchange */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            invokevirtual io.undertow.server.HttpServerExchange.setRequestURI:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
        42: .line 255
            aload 3 /* exchange */
            aload 6 /* res */
            invokevirtual io.undertow.server.HttpServerExchange.setRequestPath:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
        43: .line 256
            aload 3 /* exchange */
            aload 6 /* res */
            invokevirtual io.undertow.server.HttpServerExchange.setRelativePath:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
        end local 6 // java.lang.String res
        44: .line 257
            goto 60
        45: .line 258
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder int
      StackMap stack:
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            iconst_0
            iload 5 /* colon */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* url */
        start local 6 // java.lang.String url
        46: .line 259
            aload 0 /* this */
            aload 6 /* url */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.containsUrlCharacters:Z
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.decode:(Ljava/lang/String;Z)Ljava/lang/String;
            astore 7 /* res */
        start local 7 // java.lang.String res
        47: .line 260
            aload 3 /* exchange */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            invokevirtual io.undertow.server.HttpServerExchange.setRequestURI:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
        48: .line 261
            aload 3 /* exchange */
            aload 7 /* res */
            invokevirtual io.undertow.server.HttpServerExchange.setRequestPath:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
        49: .line 262
            aload 3 /* exchange */
            aload 7 /* res */
            invokevirtual io.undertow.server.HttpServerExchange.setRelativePath:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
        50: .line 264
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            iload 5 /* colon */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aload 3 /* exchange */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.encoding:Ljava/lang/String;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.doDecode:Z
            ifeq 51
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.containsUrlCharacters:Z
            ifeq 51
            iconst_1
            goto 52
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.HttpServerExchange io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder int java.lang.String java.lang.String
      StackMap stack: java.lang.String io.undertow.server.HttpServerExchange java.lang.String
        51: iconst_0
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.HttpServerExchange io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder int java.lang.String java.lang.String
      StackMap stack: java.lang.String io.undertow.server.HttpServerExchange java.lang.String int
        52: aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.maxParameters:I
            invokestatic io.undertow.util.URLUtils.parsePathParams:(Ljava/lang/String;Lio/undertow/server/HttpServerExchange;Ljava/lang/String;ZI)V
        53: .line 265
            goto 60
      StackMap locals:
      StackMap stack: io.undertow.util.ParameterLimitException
        54: astore 8 /* e */
        start local 8 // io.undertow.util.ParameterLimitException e
        55: .line 266
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            aload 8 /* e */
            invokeinterface io.undertow.UndertowLogger.failedToParseRequest:(Ljava/lang/Throwable;)V
        56: .line 267
            aload 2 /* state */
            iconst_1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.badRequest:Z
        end local 8 // io.undertow.util.ParameterLimitException e
        end local 7 // java.lang.String res
        end local 6 // java.lang.String url
        end local 5 // int colon
        57: .line 270
            goto 60
        58: .line 271
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            bipush 6
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        59: .line 272
            return
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        60: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.OTHER:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parseString:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        61: .line 277
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.readComplete:Z
            ifeq 64
        62: .line 278
            aload 2 /* state */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.remoteAddress:Ljava/lang/String;
        63: .line 279
            goto 66
        64: .line 280
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
      StackMap stack:
            aload 2 /* state */
            bipush 7
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        65: .line 281
            return
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        66: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.OTHER:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parseString:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        67: .line 286
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.readComplete:Z
            ifne 70
        68: .line 289
            aload 2 /* state */
            bipush 8
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        69: .line 290
            return
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        70: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.OTHER:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parseString:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        71: .line 295
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.readComplete:Z
            ifeq 74
        72: .line 296
            aload 2 /* state */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.serverAddress:Ljava/lang/String;
        73: .line 297
            goto 76
        74: .line 298
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
      StackMap stack:
            aload 2 /* state */
            bipush 9
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        75: .line 299
            return
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
        76: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parse16BitInteger:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;)Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder result
        77: .line 304
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.readComplete:Z
            ifeq 80
        78: .line 305
            aload 2 /* state */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.value:I
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.serverPort:I
        79: .line 306
            goto 82
        80: .line 307
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder
      StackMap stack:
            aload 2 /* state */
            bipush 10
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        81: .line 308
            return
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder result
        82: .line 312
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 85
        83: .line 313
            aload 2 /* state */
            bipush 11
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        84: .line 314
            return
        85: .line 316
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 4 /* isSsl */
        start local 4 // byte isSsl
        86: .line 317
            iload 4 /* isSsl */
            ifeq 89
        87: .line 318
            aload 3 /* exchange */
            ldc "https"
            invokevirtual io.undertow.server.HttpServerExchange.setRequestScheme:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
        88: .line 319
            goto 90
        89: .line 320
      StackMap locals: int
      StackMap stack:
            aload 3 /* exchange */
            ldc "http"
            invokevirtual io.undertow.server.HttpServerExchange.setRequestScheme:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
        end local 4 // byte isSsl
        90: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parse16BitInteger:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;)Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder result
        91: .line 326
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.readComplete:Z
            ifne 94
        92: .line 327
            aload 2 /* state */
            bipush 12
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
        93: .line 328
            return
        94: .line 330
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder
      StackMap stack:
            aload 2 /* state */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.value:I
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.numHeaders:I
        95: .line 331
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.numHeaders:I
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.maxHeaders:I
            if_icmple 98
        96: .line 332
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            new io.undertow.util.BadRequestException
            dup
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.maxHeaders:I
            invokeinterface io.undertow.UndertowMessages.tooManyHeaders:(I)Ljava/lang/String;
            invokespecial io.undertow.util.BadRequestException.<init>:(Ljava/lang/String;)V
            invokeinterface io.undertow.UndertowLogger.failedToParseRequest:(Ljava/lang/Throwable;)V
        97: .line 333
            aload 2 /* state */
            iconst_1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.badRequest:Z
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder result
        98: .line 338
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.readHeaders:I
            istore 4 /* readHeaders */
        start local 4 // int readHeaders
        99: .line 339
            goto 120
       100: .line 340
      StackMap locals: int
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentHeader:Lio/undertow/util/HttpString;
            ifnonnull 111
       101: .line 341
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.HEADER:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parseString:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
            astore 5 /* result */
        start local 5 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
       102: .line 342
            aload 5 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.readComplete:Z
            ifne 106
       103: .line 343
            aload 2 /* state */
            bipush 13
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
       104: .line 344
            aload 2 /* state */
            iload 4 /* readHeaders */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.readHeaders:I
       105: .line 345
            return
       106: .line 347
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
      StackMap stack:
            aload 5 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.header:Lio/undertow/util/HttpString;
            ifnull 109
       107: .line 348
            aload 2 /* state */
            aload 5 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.header:Lio/undertow/util/HttpString;
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentHeader:Lio/undertow/util/HttpString;
       108: .line 349
            goto 111
       109: .line 350
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            aload 5 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            invokestatic io.undertow.util.HttpString.tryFromString:(Ljava/lang/String;)Lio/undertow/util/HttpString;
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentHeader:Lio/undertow/util/HttpString;
       110: .line 351
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentHeader:Lio/undertow/util/HttpString;
            invokestatic io.undertow.server.Connectors.verifyToken:(Lio/undertow/util/HttpString;)V
        end local 5 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
       111: .line 354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.OTHER:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parseString:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
            astore 5 /* result */
        start local 5 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
       112: .line 355
            aload 5 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.readComplete:Z
            ifne 116
       113: .line 356
            aload 2 /* state */
            bipush 13
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
       114: .line 357
            aload 2 /* state */
            iload 4 /* readHeaders */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.readHeaders:I
       115: .line 358
            return
       116: .line 360
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.badRequest:Z
            ifne 118
       117: .line 361
            aload 3 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentHeader:Lio/undertow/util/HttpString;
            aload 5 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            invokevirtual io.undertow.util.HeaderMap.add:(Lio/undertow/util/HttpString;Ljava/lang/String;)Lio/undertow/util/HeaderMap;
            pop
       118: .line 363
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            aconst_null
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentHeader:Lio/undertow/util/HttpString;
       119: .line 364
            iinc 4 /* readHeaders */ 1
        end local 5 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
       120: .line 339
      StackMap locals:
      StackMap stack:
            iload 4 /* readHeaders */
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.numHeaders:I
            if_icmplt 100
        end local 4 // int readHeaders
       121: .line 369
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ifnonnull 135
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentIntegerPart:I
            iconst_m1
            if_icmpne 135
       122: .line 370
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 125
       123: .line 371
            aload 2 /* state */
            bipush 14
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
       124: .line 372
            return
       125: .line 374
      StackMap locals:
      StackMap stack:
            sipush 255
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            iand
            istore 4 /* val */
        start local 4 // int val
       126: .line 375
            iload 4 /* val */
            sipush 255
            if_icmpne 129
       127: .line 376
            aload 2 /* state */
            bipush 15
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
       128: .line 377
            return
       129: .line 378
      StackMap locals: int
      StackMap stack:
            iload 4 /* val */
            bipush 10
            if_icmpne 132
       130: .line 380
            aload 2 /* state */
            iconst_1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentIntegerPart:I
       131: .line 381
            goto 135
       132: .line 382
      StackMap locals:
      StackMap stack:
            iload 4 /* val */
            ifeq 121
            iload 4 /* val */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            arraylength
            if_icmplt 134
       133: .line 384
            goto 121
       134: .line 386
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.ATTRIBUTES:[Ljava/lang/String;
            iload 4 /* val */
            aaload
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
        end local 4 // int val
       135: .line 390
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentIntegerPart:I
            iconst_1
            if_icmpne 142
       136: .line 391
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.OTHER:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parseString:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
            astore 4 /* result */
        start local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
       137: .line 392
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.readComplete:Z
            ifne 140
       138: .line 393
            aload 2 /* state */
            bipush 14
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
       139: .line 394
            return
       140: .line 396
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
      StackMap stack:
            aload 2 /* state */
            aload 4 /* result */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
       141: .line 397
            aload 2 /* state */
            iconst_m1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentIntegerPart:I
        end local 4 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder result
       142: .line 400
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "ssl_key_size"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 149
       143: .line 401
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parse16BitInteger:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;)Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
            astore 5 /* resultHolder */
        start local 5 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder resultHolder
       144: .line 402
            aload 5 /* resultHolder */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.readComplete:Z
            ifne 147
       145: .line 403
            aload 2 /* state */
            bipush 14
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
       146: .line 404
            return
       147: .line 406
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.HttpServerExchange top io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder
      StackMap stack:
            aload 5 /* resultHolder */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.value:I
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            astore 4 /* result */
        end local 5 // io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder resultHolder
        start local 4 // java.lang.String result
       148: .line 407
            goto 156
        end local 4 // java.lang.String result
       149: .line 408
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.HttpServerExchange
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 2 /* state */
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "query_string"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 150
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.QUERY_STRING:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            goto 151
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.HttpServerExchange
      StackMap stack: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState
       150: getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.OTHER:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.HttpServerExchange
      StackMap stack: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.protocol.ajp.AjpRequestParser$StringType
       151: invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parseString:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
            astore 5 /* resultHolder */
        start local 5 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder resultHolder
       152: .line 409
            aload 5 /* resultHolder */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.readComplete:Z
            ifne 155
       153: .line 410
            aload 2 /* state */
            bipush 14
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
       154: .line 411
            return
       155: .line 413
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.HttpServerExchange top io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
      StackMap stack:
            aload 5 /* resultHolder */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.value:Ljava/lang/String;
            astore 4 /* result */
        end local 5 // io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder resultHolder
        start local 4 // java.lang.String result
       156: .line 416
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.HttpServerExchange java.lang.String
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "query_string"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 167
       157: .line 417
            aload 4 /* result */
            ifnonnull 158
            ldc ""
            goto 159
      StackMap locals:
      StackMap stack:
       158: aload 4 /* result */
      StackMap locals:
      StackMap stack: java.lang.String
       159: astore 5 /* resultAsQueryString */
        start local 5 // java.lang.String resultAsQueryString
       160: .line 418
            aload 3 /* exchange */
            aload 5 /* resultAsQueryString */
            invokevirtual io.undertow.server.HttpServerExchange.setQueryString:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
       161: .line 420
            aload 5 /* resultAsQueryString */
            aload 3 /* exchange */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.encoding:Ljava/lang/String;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.doDecode:Z
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.maxParameters:I
            invokestatic io.undertow.util.URLUtils.parseQueryString:(Ljava/lang/String;Lio/undertow/server/HttpServerExchange;Ljava/lang/String;ZI)V
       162: .line 421
            goto 196
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParser java.nio.ByteBuffer io.undertow.server.protocol.ajp.AjpRequestParseState io.undertow.server.HttpServerExchange java.lang.String java.lang.String
      StackMap stack: io.undertow.util.ParameterLimitException
       163: astore 6 /* e */
        start local 6 // io.undertow.util.ParameterLimitException e
       164: .line 422
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            aload 6 /* e */
            invokeinterface io.undertow.UndertowLogger.failedToParseRequest:(Ljava/lang/Throwable;)V
       165: .line 423
            aload 2 /* state */
            iconst_1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.badRequest:Z
        end local 6 // io.undertow.util.ParameterLimitException e
        end local 5 // java.lang.String resultAsQueryString
       166: .line 425
            goto 196
      StackMap locals:
      StackMap stack:
       167: aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "remote_user"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 170
       168: .line 426
            aload 3 /* exchange */
            getstatic io.undertow.security.impl.ExternalAuthenticationMechanism.EXTERNAL_PRINCIPAL:Lio/undertow/util/AttachmentKey;
            aload 4 /* result */
            invokevirtual io.undertow.server.HttpServerExchange.putAttachment:(Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       169: .line 427
            goto 196
      StackMap locals:
      StackMap stack:
       170: aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "auth_type"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 173
       171: .line 428
            aload 3 /* exchange */
            getstatic io.undertow.security.impl.ExternalAuthenticationMechanism.EXTERNAL_AUTHENTICATION_TYPE:Lio/undertow/util/AttachmentKey;
            aload 4 /* result */
            invokevirtual io.undertow.server.HttpServerExchange.putAttachment:(Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       172: .line 429
            goto 196
      StackMap locals:
      StackMap stack:
       173: aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "stored_method"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 178
       174: .line 430
            new io.undertow.util.HttpString
            dup
            aload 4 /* result */
            invokespecial io.undertow.util.HttpString.<init>:(Ljava/lang/String;)V
            astore 5 /* requestMethod */
        start local 5 // io.undertow.util.HttpString requestMethod
       175: .line 431
            aload 5 /* requestMethod */
            invokestatic io.undertow.server.Connectors.verifyToken:(Lio/undertow/util/HttpString;)V
       176: .line 432
            aload 3 /* exchange */
            aload 5 /* requestMethod */
            invokevirtual io.undertow.server.HttpServerExchange.setRequestMethod:(Lio/undertow/util/HttpString;)Lio/undertow/server/HttpServerExchange;
            pop
        end local 5 // io.undertow.util.HttpString requestMethod
       177: .line 433
            goto 196
      StackMap locals:
      StackMap stack:
       178: aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "AJP_REMOTE_PORT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 181
       179: .line 434
            aload 2 /* state */
            aload 4 /* result */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.remotePort:I
       180: .line 435
            goto 196
      StackMap locals:
      StackMap stack:
       181: aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "ssl_session"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 184
       182: .line 436
            aload 2 /* state */
            aload 4 /* result */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.sslSessionId:Ljava/lang/String;
       183: .line 437
            goto 196
      StackMap locals:
      StackMap stack:
       184: aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "ssl_cipher"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 187
       185: .line 438
            aload 2 /* state */
            aload 4 /* result */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.sslCipher:Ljava/lang/String;
       186: .line 439
            goto 196
      StackMap locals:
      StackMap stack:
       187: aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "ssl_cert"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 190
       188: .line 440
            aload 2 /* state */
            aload 4 /* result */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.sslCert:Ljava/lang/String;
       189: .line 441
            goto 196
      StackMap locals:
      StackMap stack:
       190: aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            ldc "ssl_key_size"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 193
       191: .line 442
            aload 2 /* state */
            aload 4 /* result */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.sslKeySize:Ljava/lang/String;
       192: .line 443
            goto 196
       193: .line 445
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.attributes:Ljava/util/Map;
            ifnonnull 195
       194: .line 446
            aload 2 /* state */
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.attributes:Ljava/util/Map;
       195: .line 448
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.attributes:Ljava/util/Map;
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
            aload 4 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       196: .line 450
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            aconst_null
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentAttribute:Ljava/lang/String;
        end local 4 // java.lang.String result
       197: .line 368
            goto 121
       198: .line 454
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            bipush 15
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.state:I
       199: .line 455
            return
        end local 3 // io.undertow.server.HttpServerExchange exchange
        end local 2 // io.undertow.server.protocol.ajp.AjpRequestParseState state
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  200     0                 this  Lio/undertow/server/protocol/ajp/AjpRequestParser;
            0  200     1                  buf  Ljava/nio/ByteBuffer;
            0  200     2                state  Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            0  200     3             exchange  Lio/undertow/server/HttpServerExchange;
            4    8     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
            9   13     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
           17   21     4               prefix  B
           25   30     4               method  I
           31   36     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
           37   60     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
           39   57     5                colon  I
           41   44     6                  res  Ljava/lang/String;
           46   57     6                  url  Ljava/lang/String;
           47   57     7                  res  Ljava/lang/String;
           55   57     8                    e  Lio/undertow/util/ParameterLimitException;
           61   66     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
           67   70     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
           71   76     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
           77   82     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
           86   90     4                isSsl  B
           91   98     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
           99  121     4          readHeaders  I
          102  111     5               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
          112  120     5               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
          126  135     4                  val  I
          137  142     4               result  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
          148  149     4               result  Ljava/lang/String;
          156  197     4               result  Ljava/lang/String;
          144  148     5         resultHolder  Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
          152  156     5         resultHolder  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
          160  166     5  resultAsQueryString  Ljava/lang/String;
          164  166     6                    e  Lio/undertow/util/ParameterLimitException;
          175  177     5        requestMethod  Lio/undertow/util/HttpString;
      Exception table:
        from    to  target  type
          50    53      54  Class io.undertow.util.ParameterLimitException
         161   162     163  Class io.undertow.util.ParameterLimitException
    Exceptions:
      throws java.io.IOException, io.undertow.util.BadRequestException
    MethodParameters:
          Name  Flags
      buf       final
      state     final
      exchange  final

  private java.lang.String decode(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
        start local 1 // java.lang.String url
        start local 2 // boolean containsUrlCharacters
         0: .line 458
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.doDecode:Z
            ifeq 7
            iload 2 /* containsUrlCharacters */
            ifeq 7
         1: .line 460
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.decodeBuffer:Ljava/lang/StringBuilder;
            ifnonnull 3
         2: .line 461
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            putfield io.undertow.server.protocol.ajp.AjpRequestParser.decodeBuffer:Ljava/lang/StringBuilder;
         3: .line 463
      StackMap locals:
      StackMap stack:
            aload 1 /* url */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.encoding:Ljava/lang/String;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.allowEncodedSlash:Z
            iconst_0
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.decodeBuffer:Ljava/lang/StringBuilder;
            invokestatic io.undertow.util.URLUtils.decode:(Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/StringBuilder;)Ljava/lang/String;
         4: areturn
         5: .line 464
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         6: .line 465
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            aload 1 /* url */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpRequestParser.encoding:Ljava/lang/String;
            aload 3 /* e */
            invokeinterface io.undertow.UndertowMessages.failedToDecodeURL:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/IllegalArgumentException;
            athrow
        end local 3 // java.lang.Exception e
         7: .line 468
      StackMap locals:
      StackMap stack:
            aload 1 /* url */
            areturn
        end local 2 // boolean containsUrlCharacters
        end local 1 // java.lang.String url
        end local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    8     0                   this  Lio/undertow/server/protocol/ajp/AjpRequestParser;
            0    8     1                    url  Ljava/lang/String;
            0    8     2  containsUrlCharacters  Z
            6    7     3                      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Exception
    Exceptions:
      throws java.io.UnsupportedEncodingException
    MethodParameters:
                       Name  Flags
      url                    
      containsUrlCharacters  final

  protected io.undertow.util.HttpString headers(int);
    descriptor: (I)Lio/undertow/util/HttpString;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
        start local 1 // int offset
         0: .line 472
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser.HTTP_HEADERS:[Lio/undertow/util/HttpString;
            iload 1 /* offset */
            aaload
            areturn
        end local 1 // int offset
        end local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/server/protocol/ajp/AjpRequestParser;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  protected io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder parse16BitInteger(java.nio.ByteBuffer, io.undertow.server.protocol.ajp.AjpRequestParseState);
    descriptor: (Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;)Lio/undertow/server/protocol/ajp/AjpRequestParser$IntegerHolder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // io.undertow.server.protocol.ajp.AjpRequestParseState state
         0: .line 478
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 2
         1: .line 479
            new io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder
            dup
            iconst_m1
            iconst_0
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.<init>:(IZ)V
            areturn
         2: .line 481
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentIntegerPart:I
            istore 3 /* number */
        start local 3 // int number
         3: .line 482
            iload 3 /* number */
            iconst_m1
            if_icmpne 5
         4: .line 483
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            istore 3 /* number */
         5: .line 485
      StackMap locals: int
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 10
         6: .line 486
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 4 /* b */
        start local 4 // byte b
         7: .line 487
            sipush 255
            iload 3 /* number */
            iand
            bipush 8
            ishl
            iload 4 /* b */
            sipush 255
            iand
            iadd
            istore 5 /* result */
        start local 5 // int result
         8: .line 488
            aload 2 /* state */
            iconst_m1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentIntegerPart:I
         9: .line 489
            new io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder
            dup
            iload 5 /* result */
            iconst_1
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.<init>:(IZ)V
            areturn
        end local 5 // int result
        end local 4 // byte b
        10: .line 491
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            iload 3 /* number */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.currentIntegerPart:I
        11: .line 492
            new io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder
            dup
            iconst_m1
            iconst_0
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder.<init>:(IZ)V
            areturn
        end local 3 // int number
        end local 2 // io.undertow.server.protocol.ajp.AjpRequestParseState state
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lio/undertow/server/protocol/ajp/AjpRequestParser;
            0   12     1     buf  Ljava/nio/ByteBuffer;
            0   12     2   state  Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            3   12     3  number  I
            7   10     4       b  B
            8   10     5  result  I
    MethodParameters:
       Name  Flags
      buf    
      state  

  protected io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder parseString(java.nio.ByteBuffer, io.undertow.server.protocol.ajp.AjpRequestParseState, io.undertow.server.protocol.ajp.AjpRequestParser$StringType);
    descriptor: (Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;)Lio/undertow/server/protocol/ajp/AjpRequestParser$StringHolder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // io.undertow.server.protocol.ajp.AjpRequestParseState state
        start local 3 // io.undertow.server.protocol.ajp.AjpRequestParser$StringType type
         0: .line 497
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.containsUrlCharacters:Z
            istore 4 /* containsUrlCharacters */
        start local 4 // boolean containsUrlCharacters
         1: .line 498
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 3
         2: .line 499
            new io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
            dup
            aconst_null
            iconst_0
            iconst_0
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
         3: .line 501
      StackMap locals: int
      StackMap stack:
            aload 2 /* state */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.stringLength:I
            istore 5 /* stringLength */
        start local 5 // int stringLength
         4: .line 502
            iload 5 /* stringLength */
            iconst_m1
            if_icmpne 12
         5: .line 503
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            istore 6 /* number */
        start local 6 // int number
         6: .line 504
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 10
         7: .line 505
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 7 /* b */
        start local 7 // byte b
         8: .line 506
            sipush 255
            iload 6 /* number */
            iand
            bipush 8
            ishl
            iload 7 /* b */
            sipush 255
            iand
            iadd
            istore 5 /* stringLength */
        end local 7 // byte b
         9: .line 507
            goto 15
        10: .line 508
      StackMap locals: int int
      StackMap stack:
            aload 2 /* state */
            iload 6 /* number */
            ldc -2147483648
            ior
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.stringLength:I
        11: .line 509
            new io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
            dup
            aconst_null
            iconst_0
            iconst_0
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        end local 6 // int number
        12: .line 511
      StackMap locals:
      StackMap stack:
            iload 5 /* stringLength */
            ldc -2147483648
            iand
            ifeq 15
        13: .line 512
            iload 5 /* stringLength */
            ldc 2147483647
            iand
            istore 6 /* number */
        start local 6 // int number
        14: .line 513
            sipush 255
            iload 6 /* number */
            iand
            bipush 8
            ishl
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            iadd
            istore 5 /* stringLength */
        end local 6 // int number
        15: .line 515
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.HEADER:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            if_acmpne 18
            iload 5 /* stringLength */
            ldc 65280
            iand
            ifeq 18
        16: .line 516
            aload 2 /* state */
            iconst_m1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.stringLength:I
        17: .line 517
            new io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
            dup
            aload 0 /* this */
            iload 5 /* stringLength */
            sipush 255
            iand
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.headers:(I)Lio/undertow/util/HttpString;
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.<init>:(Lio/undertow/util/HttpString;)V
            areturn
        18: .line 519
      StackMap locals:
      StackMap stack:
            iload 5 /* stringLength */
            ldc 65535
            if_icmpne 21
        19: .line 521
            aload 2 /* state */
            iconst_m1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.stringLength:I
        20: .line 522
            new io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
            dup
            aconst_null
            iconst_1
            iconst_0
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        21: .line 524
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParseState.getCurrentStringLength:()I
            istore 6 /* length */
        start local 6 // int length
        22: .line 525
            goto 35
        23: .line 526
      StackMap locals: int
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 27
        24: .line 527
            aload 2 /* state */
            iload 5 /* stringLength */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.stringLength:I
        25: .line 528
            aload 2 /* state */
            iload 4 /* containsUrlCharacters */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.containsUrlCharacters:Z
        26: .line 529
            new io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
            dup
            aconst_null
            iconst_0
            iconst_0
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        27: .line 531
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 7 /* c */
        start local 7 // byte c
        28: .line 532
            aload 3 /* type */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.QUERY_STRING:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            if_acmpne 31
            iload 7 /* c */
            bipush 43
            if_icmpeq 29
            iload 7 /* c */
            bipush 37
            if_icmpne 31
        29: .line 533
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 4 /* containsUrlCharacters */
        30: .line 534
            goto 33
      StackMap locals:
      StackMap stack:
        31: aload 3 /* type */
            getstatic io.undertow.server.protocol.ajp.AjpRequestParser$StringType.URL:Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            if_acmpne 33
            iload 7 /* c */
            bipush 37
            if_icmpne 33
        32: .line 535
            iconst_1
            istore 4 /* containsUrlCharacters */
        33: .line 537
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            iload 7 /* c */
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParseState.addStringByte:(B)V
        34: .line 538
            iinc 6 /* length */ 1
        end local 7 // byte c
        35: .line 525
      StackMap locals:
      StackMap stack:
            iload 6 /* length */
            iload 5 /* stringLength */
            if_icmplt 23
        36: .line 541
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 42
        37: .line 542
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.get:()B
            pop
        38: .line 543
            aload 2 /* state */
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParseState.getStringAndClear:()Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
        39: .line 544
            aload 2 /* state */
            iconst_m1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.stringLength:I
        40: .line 545
            aload 2 /* state */
            iconst_0
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.containsUrlCharacters:Z
        41: .line 546
            new io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
            dup
            aload 7 /* value */
            iconst_1
            iload 4 /* containsUrlCharacters */
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        end local 7 // java.lang.String value
        42: .line 548
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            iload 5 /* stringLength */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.stringLength:I
        43: .line 549
            aload 2 /* state */
            iload 4 /* containsUrlCharacters */
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.containsUrlCharacters:Z
        44: .line 550
            new io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder
            dup
            aconst_null
            iconst_0
            iconst_0
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder.<init>:(Ljava/lang/String;ZZ)V
            areturn
        end local 6 // int length
        end local 5 // int stringLength
        end local 4 // boolean containsUrlCharacters
        end local 3 // io.undertow.server.protocol.ajp.AjpRequestParser$StringType type
        end local 2 // io.undertow.server.protocol.ajp.AjpRequestParseState state
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // io.undertow.server.protocol.ajp.AjpRequestParser this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   45     0                   this  Lio/undertow/server/protocol/ajp/AjpRequestParser;
            0   45     1                    buf  Ljava/nio/ByteBuffer;
            0   45     2                  state  Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            0   45     3                   type  Lio/undertow/server/protocol/ajp/AjpRequestParser$StringType;
            1   45     4  containsUrlCharacters  Z
            4   45     5           stringLength  I
            6   12     6                 number  I
            8    9     7                      b  B
           14   15     6                 number  I
           22   45     6                 length  I
           28   35     7                      c  B
           39   42     7                  value  Ljava/lang/String;
    Exceptions:
      throws java.io.UnsupportedEncodingException
    MethodParameters:
       Name  Flags
      buf    
      state  
      type   
}
SourceFile: "AjpRequestParser.java"
NestMembers:
  io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder  io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder  io.undertow.server.protocol.ajp.AjpRequestParser$StringType
InnerClasses:
  protected IntegerHolder = io.undertow.server.protocol.ajp.AjpRequestParser$IntegerHolder of io.undertow.server.protocol.ajp.AjpRequestParser
  protected StringHolder = io.undertow.server.protocol.ajp.AjpRequestParser$StringHolder of io.undertow.server.protocol.ajp.AjpRequestParser
  final StringType = io.undertow.server.protocol.ajp.AjpRequestParser$StringType of io.undertow.server.protocol.ajp.AjpRequestParser