public final class io.vertx.ext.web.impl.Origin
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.vertx.ext.web.impl.Origin
  super_class: java.lang.Object
{
  private static final java.lang.String DEFAULT_FTP_PORT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "21"

  private static final java.lang.String DEFAULT_HTTP_PORT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "80"

  private static final java.lang.String DEFAULT_HTTPS_PORT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "443"

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

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

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

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

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

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

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

  private void <init>(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // io.vertx.ext.web.impl.Origin this
        start local 1 // java.lang.String protocol
        start local 2 // java.lang.String host
        start local 3 // java.lang.String port
        start local 4 // java.lang.String resource
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 45
            aload 1 /* protocol */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            dup
            astore 6
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
               101730: 2
              3213448: 3
             99617003: 4
              default: 14
          }
      StackMap locals: io.vertx.ext.web.impl.Origin java.lang.String java.lang.String java.lang.String java.lang.String top java.lang.String
      StackMap stack:
         2: aload 6
            ldc "ftp"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            goto 14
      StackMap locals:
      StackMap stack:
         3: aload 6
            ldc "http"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 14
      StackMap locals:
      StackMap stack:
         4: aload 6
            ldc "https"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 14
         5: .line 47
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* protocol */
            putfield io.vertx.ext.web.impl.Origin.protocol:Ljava/lang/String;
         6: .line 48
            ldc "21"
            astore 5 /* defaultPort */
        start local 5 // java.lang.String defaultPort
         7: .line 49
            goto 15
        end local 5 // java.lang.String defaultPort
         8: .line 51
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* protocol */
            putfield io.vertx.ext.web.impl.Origin.protocol:Ljava/lang/String;
         9: .line 52
            ldc "80"
            astore 5 /* defaultPort */
        start local 5 // java.lang.String defaultPort
        10: .line 53
            goto 15
        end local 5 // java.lang.String defaultPort
        11: .line 55
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* protocol */
            putfield io.vertx.ext.web.impl.Origin.protocol:Ljava/lang/String;
        12: .line 56
            ldc "443"
            astore 5 /* defaultPort */
        start local 5 // java.lang.String defaultPort
        13: .line 57
            goto 15
        end local 5 // java.lang.String defaultPort
        14: .line 59
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported protocol: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* protocol */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        start local 5 // java.lang.String defaultPort
        15: .line 61
      StackMap locals: io.vertx.ext.web.impl.Origin java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* host */
            ifnonnull 17
        16: .line 62
            new java.lang.IllegalStateException
            dup
            ldc "Null host not allowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 66
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* ipv6 */
        start local 7 // boolean ipv6
        18: .line 67
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        19: goto 33
        20: .line 68
      StackMap locals: io.vertx.ext.web.impl.Origin java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String top int int
      StackMap stack:
            aload 2 /* host */
            iload 8 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 9 /* c */
        start local 9 // char c
        21: .line 69
            iload 9 /* c */
            lookupswitch { // 3
                   58: 28
                   91: 22
                   93: 26
              default: 30
          }
        22: .line 71
      StackMap locals: int
      StackMap stack:
            iload 8 /* i */
            ifne 25
        23: .line 72
            iconst_1
            istore 7 /* ipv6 */
        24: .line 73
            goto 32
        25: .line 74
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal character in hostname: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 78
      StackMap locals:
      StackMap stack:
            iload 7 /* ipv6 */
            ifeq 27
            iload 8 /* i */
            aload 2 /* host */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            if_icmpeq 32
        27: .line 79
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal character in hostname: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 83
      StackMap locals:
      StackMap stack:
            iload 7 /* ipv6 */
            ifne 32
        29: .line 84
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal character in hostname: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 88
      StackMap locals:
      StackMap stack:
            iload 9 /* c */
            invokestatic java.lang.Character.isLetterOrDigit:(C)Z
            ifne 32
            iload 9 /* c */
            bipush 46
            if_icmpeq 32
            iload 9 /* c */
            bipush 45
            if_icmpeq 32
        31: .line 89
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal character in hostname: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // char c
        32: .line 67
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 8 /* i */
            aload 2 /* host */
            invokevirtual java.lang.String.length:()I
            if_icmplt 20
        end local 8 // int i
        34: .line 94
            aload 0 /* this */
            aload 2 /* host */
            putfield io.vertx.ext.web.impl.Origin.host:Ljava/lang/String;
        35: .line 97
            aload 3 /* port */
            ifnull 45
        36: .line 98
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        37: goto 42
        38: .line 99
      StackMap locals:
      StackMap stack:
            aload 3 /* port */
            iload 8 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 9 /* c */
        start local 9 // char c
        39: .line 100
            iload 9 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 41
        40: .line 101
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal character in port: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* port */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // char c
        41: .line 98
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 8 /* i */
            aload 3 /* port */
            invokevirtual java.lang.String.length:()I
            if_icmplt 38
        end local 8 // int i
        43: .line 104
            aload 0 /* this */
            aload 3 /* port */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield io.vertx.ext.web.impl.Origin.port:I
        44: .line 105
            goto 46
        45: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* defaultPort */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield io.vertx.ext.web.impl.Origin.port:I
        46: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* resource */
            putfield io.vertx.ext.web.impl.Origin.resource:Ljava/lang/String;
        47: .line 111
            aload 3 /* port */
            ifnonnull 51
        48: .line 112
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 1 /* protocol */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "://"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.ext.web.impl.Origin.base:Ljava/lang/String;
        49: .line 113
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc ":"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* defaultPort */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.ext.web.impl.Origin.optional:Ljava/lang/String;
        50: .line 114
            goto 53
        51: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 1 /* protocol */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "://"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* port */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.ext.web.impl.Origin.base:Ljava/lang/String;
        52: .line 116
            aload 0 /* this */
            ldc ""
            putfield io.vertx.ext.web.impl.Origin.optional:Ljava/lang/String;
        53: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.base:Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            putfield io.vertx.ext.web.impl.Origin.BASE:Ljava/lang/String;
        54: .line 119
            return
        end local 7 // boolean ipv6
        end local 5 // java.lang.String defaultPort
        end local 4 // java.lang.String resource
        end local 3 // java.lang.String port
        end local 2 // java.lang.String host
        end local 1 // java.lang.String protocol
        end local 0 // io.vertx.ext.web.impl.Origin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   55     0         this  Lio/vertx/ext/web/impl/Origin;
            0   55     1     protocol  Ljava/lang/String;
            0   55     2         host  Ljava/lang/String;
            0   55     3         port  Ljava/lang/String;
            0   55     4     resource  Ljava/lang/String;
            7    8     5  defaultPort  Ljava/lang/String;
           10   11     5  defaultPort  Ljava/lang/String;
           13   14     5  defaultPort  Ljava/lang/String;
           15   55     5  defaultPort  Ljava/lang/String;
           18   55     7         ipv6  Z
           19   34     8            i  I
           21   32     9            c  C
           37   43     8            i  I
           39   41     9            c  C
    MethodParameters:
          Name  Flags
      protocol  
      host      
      port      
      resource  

  public static io.vertx.ext.web.impl.Origin parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/impl/Origin;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // java.lang.String text
         0: .line 123
            aload 0 /* text */
            ldc "://"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 1 /* sep0 */
        start local 1 // int sep0
         1: .line 125
            iload 1 /* sep0 */
            ifle 18
         2: .line 127
            aload 0 /* text */
            iconst_0
            iload 1 /* sep0 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* protocol */
        start local 2 // java.lang.String protocol
         3: .line 129
            iconst_m1
            istore 3 /* sep1 */
        start local 3 // int sep1
         4: .line 132
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 9
         5: .line 133
            aload 0 /* text */
            bipush 93
            iload 1 /* sep0 */
            iconst_3
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* endHost */
        start local 4 // int endHost
         6: .line 134
            iload 4 /* endHost */
            iconst_m1
            if_icmpeq 10
         7: .line 135
            aload 0 /* text */
            bipush 58
            iload 4 /* endHost */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 3 /* sep1 */
        end local 4 // int endHost
         8: .line 137
            goto 10
         9: .line 138
      StackMap locals: int java.lang.String int
      StackMap stack:
            aload 0 /* text */
            bipush 58
            iload 1 /* sep0 */
            iconst_3
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
            istore 3 /* sep1 */
        10: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            bipush 47
            iload 1 /* sep0 */
            iconst_3
            iadd
            iload 3 /* sep1 */
            iconst_1
            iadd
            invokestatic java.lang.Math.max:(II)I
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* sep2 */
        start local 4 // int sep2
        11: .line 143
            iload 3 /* sep1 */
            iconst_m1
            if_icmpne 13
            iload 4 /* sep2 */
            iconst_m1
            if_icmpne 13
        12: .line 145
            new io.vertx.ext.web.impl.Origin
            dup
            aload 2 /* protocol */
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aconst_null
            aconst_null
            invokespecial io.vertx.ext.web.impl.Origin.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        13: .line 148
      StackMap locals: int
      StackMap stack:
            iload 3 /* sep1 */
            iconst_m1
            if_icmpeq 15
            iload 4 /* sep2 */
            iconst_m1
            if_icmpne 15
        14: .line 150
            new io.vertx.ext.web.impl.Origin
            dup
            aload 2 /* protocol */
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            iload 3 /* sep1 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aload 0 /* text */
            iload 3 /* sep1 */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aconst_null
            invokespecial io.vertx.ext.web.impl.Origin.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        15: .line 153
      StackMap locals:
      StackMap stack:
            iload 3 /* sep1 */
            iconst_m1
            if_icmpne 17
        16: .line 155
            new io.vertx.ext.web.impl.Origin
            dup
            aload 2 /* protocol */
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            iload 4 /* sep2 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aconst_null
            aload 0 /* text */
            iload 4 /* sep2 */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial io.vertx.ext.web.impl.Origin.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        17: .line 159
      StackMap locals:
      StackMap stack:
            new io.vertx.ext.web.impl.Origin
            dup
            aload 2 /* protocol */
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            iload 3 /* sep1 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aload 0 /* text */
            iload 3 /* sep1 */
            iconst_1
            iadd
            iload 4 /* sep2 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aload 0 /* text */
            iload 4 /* sep2 */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial io.vertx.ext.web.impl.Origin.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 4 // int sep2
        end local 3 // int sep1
        end local 2 // java.lang.String protocol
        18: .line 162
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Invalid Origin, expected <protocol>://<domain>[:<port>][</resource>]"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int sep0
        end local 0 // java.lang.String text
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      text  Ljava/lang/String;
            1   19     1      sep0  I
            3   18     2  protocol  Ljava/lang/String;
            4   18     3      sep1  I
            6    8     4   endHost  I
           11   18     4      sep2  I
    MethodParameters:
      Name  Flags
      text  

  public static boolean isValid(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.lang.String text
         0: .line 171
            aload 0 /* text */
            ldc "://"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 1 /* sep0 */
        start local 1 // int sep0
         1: .line 173
            iload 1 /* sep0 */
            ifle 23
         2: .line 175
            aload 0 /* text */
            iconst_0
            iload 1 /* sep0 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* protocol */
        start local 2 // java.lang.String protocol
         3: .line 177
            aload 2 /* protocol */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
               101730: 4
              3213448: 5
             99617003: 6
              default: 7
          }
      StackMap locals: int java.lang.String java.lang.String
      StackMap stack:
         4: aload 3
            ldc "ftp"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 7
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "http"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 3
            ldc "https"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 183
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         8: .line 186
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 4 /* sep1 */
        start local 4 // int sep1
         9: .line 189
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 14
        10: .line 190
            aload 0 /* text */
            bipush 93
            iload 1 /* sep0 */
            iconst_3
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* endHost */
        start local 5 // int endHost
        11: .line 191
            iload 5 /* endHost */
            iconst_m1
            if_icmpeq 15
        12: .line 192
            aload 0 /* text */
            bipush 58
            iload 5 /* endHost */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* sep1 */
        end local 5 // int endHost
        13: .line 194
            goto 15
        14: .line 195
      StackMap locals: java.lang.String int java.lang.String top int
      StackMap stack:
            aload 0 /* text */
            bipush 58
            iload 1 /* sep0 */
            iconst_3
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* sep1 */
        15: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            bipush 47
            iload 1 /* sep0 */
            iconst_3
            iadd
            iload 4 /* sep1 */
            iconst_1
            iadd
            invokestatic java.lang.Math.max:(II)I
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* sep2 */
        start local 5 // int sep2
        16: .line 200
            iload 4 /* sep1 */
            iconst_m1
            if_icmpne 18
            iload 5 /* sep2 */
            iconst_m1
            if_icmpne 18
        17: .line 202
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aconst_null
            invokestatic io.vertx.ext.web.impl.Origin.check:(Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        18: .line 205
      StackMap locals: int
      StackMap stack:
            iload 4 /* sep1 */
            iconst_m1
            if_icmpeq 20
            iload 5 /* sep2 */
            iconst_m1
            if_icmpne 20
        19: .line 207
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            iload 4 /* sep1 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aload 0 /* text */
            iload 4 /* sep1 */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic io.vertx.ext.web.impl.Origin.check:(Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        20: .line 210
      StackMap locals:
      StackMap stack:
            iload 4 /* sep1 */
            iconst_m1
            if_icmpne 22
        21: .line 212
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            iload 5 /* sep2 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aconst_null
            invokestatic io.vertx.ext.web.impl.Origin.check:(Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        22: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iload 1 /* sep0 */
            iconst_3
            iadd
            iload 4 /* sep1 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aload 0 /* text */
            iload 4 /* sep1 */
            iconst_1
            iadd
            iload 5 /* sep2 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic io.vertx.ext.web.impl.Origin.check:(Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 5 // int sep2
        end local 4 // int sep1
        end local 2 // java.lang.String protocol
        23: .line 220
      StackMap locals: java.lang.String int
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // int sep0
        end local 0 // java.lang.String text
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      text  Ljava/lang/String;
            1   24     1      sep0  I
            3   23     2  protocol  Ljava/lang/String;
            9   23     4      sep1  I
           11   13     5   endHost  I
           16   23     5      sep2  I
    MethodParameters:
      Name  Flags
      text  

  private static boolean check(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.String host
        start local 1 // java.lang.String port
         0: .line 224
            aload 0 /* host */
            ifnonnull 2
         1: .line 225
            iconst_0
            ireturn
         2: .line 229
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* ipv6 */
        start local 2 // boolean ipv6
         3: .line 230
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 18
         5: .line 231
      StackMap locals: int int
      StackMap stack:
            aload 0 /* host */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         6: .line 232
            iload 4 /* c */
            lookupswitch { // 3
                   58: 13
                   91: 7
                   93: 11
              default: 15
          }
         7: .line 234
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            ifne 10
         8: .line 235
            iconst_1
            istore 2 /* ipv6 */
         9: .line 236
            goto 17
        10: .line 237
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        11: .line 241
      StackMap locals:
      StackMap stack:
            iload 2 /* ipv6 */
            ifeq 12
            iload 3 /* i */
            aload 0 /* host */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            if_icmpeq 17
        12: .line 242
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        13: .line 246
      StackMap locals:
      StackMap stack:
            iload 2 /* ipv6 */
            ifne 17
        14: .line 247
            iconst_0
            ireturn
        15: .line 251
      StackMap locals:
      StackMap stack:
            iload 4 /* c */
            invokestatic java.lang.Character.isLetterOrDigit:(C)Z
            ifne 17
            iload 4 /* c */
            bipush 46
            if_icmpeq 17
            iload 4 /* c */
            bipush 45
            if_icmpeq 17
        16: .line 252
            iconst_0
            ireturn
        end local 4 // char c
        17: .line 230
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            aload 0 /* host */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 3 // int i
        19: .line 259
            aload 1 /* port */
            ifnull 27
        20: .line 260
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        21: goto 26
        22: .line 261
      StackMap locals:
      StackMap stack:
            aload 1 /* port */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
        23: .line 262
            iload 4 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 25
        24: .line 263
            iconst_0
            ireturn
        end local 4 // char c
        25: .line 260
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 3 /* i */
            aload 1 /* port */
            invokevirtual java.lang.String.length:()I
            if_icmplt 22
        end local 3 // int i
        27: .line 268
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // boolean ipv6
        end local 1 // java.lang.String port
        end local 0 // java.lang.String host
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   28     0  host  Ljava/lang/String;
            0   28     1  port  Ljava/lang/String;
            3   28     2  ipv6  Z
            4   19     3     i  I
            6   17     4     c  C
           21   27     3     i  I
           23   25     4     c  C
    MethodParameters:
      Name  Flags
      host  
      port  

  public java.lang.String protocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.impl.Origin this
         0: .line 272
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.protocol:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.web.impl.Origin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/impl/Origin;

  public java.lang.String host();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.impl.Origin this
         0: .line 276
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.host:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.web.impl.Origin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/impl/Origin;

  public int port();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.impl.Origin this
         0: .line 280
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.port:I
            ireturn
        end local 0 // io.vertx.ext.web.impl.Origin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/impl/Origin;

  public java.lang.String resource();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.impl.Origin this
         0: .line 284
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.resource:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.web.impl.Origin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/impl/Origin;

  public boolean sameOrigin(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // io.vertx.ext.web.impl.Origin this
        start local 1 // java.lang.String other
         0: .line 298
            iconst_0
            istore 2 /* offset */
        start local 2 // int offset
         1: .line 299
            aload 1 /* other */
            invokevirtual java.lang.String.length:()I
            istore 3 /* len */
        start local 3 // int len
         2: .line 301
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.base:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iload 3 /* len */
            if_icmple 4
         3: .line 302
            iconst_0
            ireturn
         4: .line 304
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 10
         6: .line 305
      StackMap locals: int
      StackMap stack:
            aload 1 /* other */
            iload 2 /* offset */
            iload 4 /* i */
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         7: .line 306
            iload 5 /* c */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.base:Ljava/lang/String;
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 9
            iload 5 /* c */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.BASE:Ljava/lang/String;
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 9
         8: .line 307
            iconst_0
            ireturn
        end local 5 // char c
         9: .line 304
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.base:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 6
        end local 4 // int i
        11: .line 310
            iload 2 /* offset */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.base:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iadd
            istore 2 /* offset */
        12: .line 311
            iload 3 /* len */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.base:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            isub
            istore 3 /* len */
        13: .line 312
            iload 3 /* len */
            ifle 29
        14: .line 313
            aload 1 /* other */
            iload 2 /* offset */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 58
            if_icmpne 26
        15: .line 314
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.optional:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iload 3 /* len */
            if_icmple 17
        16: .line 315
            iconst_0
            ireturn
        17: .line 317
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        18: goto 23
        19: .line 318
      StackMap locals: int
      StackMap stack:
            aload 1 /* other */
            iload 2 /* offset */
            iload 4 /* i */
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
        20: .line 319
            iload 5 /* c */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.optional:Ljava/lang/String;
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 22
        21: .line 320
            iconst_0
            ireturn
        end local 5 // char c
        22: .line 317
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 4 /* i */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.optional:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 19
        end local 4 // int i
        24: .line 323
            iload 2 /* offset */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.optional:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iadd
            istore 2 /* offset */
        25: .line 324
            iload 3 /* len */
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.optional:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            isub
            istore 3 /* len */
        26: .line 326
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifle 29
        27: .line 327
            aload 1 /* other */
            iload 2 /* offset */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 28
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        28: iconst_0
            ireturn
        29: .line 331
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int len
        end local 2 // int offset
        end local 1 // java.lang.String other
        end local 0 // io.vertx.ext.web.impl.Origin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   30     0    this  Lio/vertx/ext/web/impl/Origin;
            0   30     1   other  Ljava/lang/String;
            1   30     2  offset  I
            2   30     3     len  I
            5   11     4       i  I
            7    9     5       c  C
           18   24     4       i  I
           20   22     5       c  C
    MethodParameters:
       Name  Flags
      other  

  public java.lang.String encode();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.vertx.ext.web.impl.Origin this
         0: .line 335
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.protocol:Ljava/lang/String;
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
               101730: 1
              3213448: 2
             99617003: 3
              default: 13
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 1
            ldc "ftp"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 13
      StackMap locals:
      StackMap stack:
         2: aload 1
            ldc "http"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            goto 13
      StackMap locals:
      StackMap stack:
         3: aload 1
            ldc "https"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 13
         4: .line 337
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.protocol:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "://"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.port:I
            bipush 80
            if_icmpne 5
            ldc ""
            goto 6
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         5: new java.lang.StringBuilder
            dup
            ldc ":"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: io.vertx.ext.web.impl.Origin java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
         6: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         7: .line 339
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.protocol:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "://"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.port:I
            sipush 443
            if_icmpne 8
            ldc ""
            goto 9
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         8: new java.lang.StringBuilder
            dup
            ldc ":"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: io.vertx.ext.web.impl.Origin java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
         9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        10: .line 341
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.protocol:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "://"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.port:I
            bipush 21
            if_icmpne 11
            ldc ""
            goto 12
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        11: new java.lang.StringBuilder
            dup
            ldc ":"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: io.vertx.ext.web.impl.Origin java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
        12: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        13: .line 343
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // io.vertx.ext.web.impl.Origin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lio/vertx/ext/web/impl/Origin;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.impl.Origin this
         0: .line 349
            aload 0 /* this */
            getfield io.vertx.ext.web.impl.Origin.base:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.web.impl.Origin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/impl/Origin;
}
SourceFile: "Origin.java"