public final class okhttp3.internal.publicsuffix.PublicSuffixDatabase
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: okhttp3.internal.publicsuffix.PublicSuffixDatabase
  super_class: java.lang.Object
{
  public static final java.lang.String PUBLIC_SUFFIX_RESOURCE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "publicsuffixes.gz"

  private static final byte[] WILDCARD_LABEL;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  private static final byte EXCEPTION_MARKER;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 33

  private static final okhttp3.internal.publicsuffix.PublicSuffixDatabase instance;
    descriptor: Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicBoolean listRead;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.CountDownLatch readCompleteLatch;
    descriptor: Ljava/util/concurrent/CountDownLatch;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private byte[] publicSuffixListBytes;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] publicSuffixExceptionListBytes;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 39
            iconst_1
            newarray 8
            dup
            iconst_0
            bipush 42
            bastore
            putstatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.WILDCARD_LABEL:[B
         1: .line 40
            iconst_0
            anewarray java.lang.String
            putstatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.EMPTY_RULE:[Ljava/lang/String;
         2: .line 41
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "*"
            aastore
            putstatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.PREVAILING_RULE:[Ljava/lang/String;
         3: .line 45
            new okhttp3.internal.publicsuffix.PublicSuffixDatabase
            dup
            invokespecial okhttp3.internal.publicsuffix.PublicSuffixDatabase.<init>:()V
            putstatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.instance:Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            putfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.listRead:Ljava/util/concurrent/atomic/AtomicBoolean;
         2: .line 51
            aload 0 /* this */
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            putfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.readCompleteLatch:Ljava/util/concurrent/CountDownLatch;
         3: .line 36
            return
        end local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;

  public static okhttp3.internal.publicsuffix.PublicSuffixDatabase get();
    descriptor: ()Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 61
            getstatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.instance:Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.String getEffectiveTldPlusOne(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
        start local 1 // java.lang.String domain
         0: .line 80
            aload 1 /* domain */
            ifnonnull 1
            new java.lang.NullPointerException
            dup
            ldc "domain == null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         1: .line 83
      StackMap locals:
      StackMap stack:
            aload 1 /* domain */
            invokestatic java.net.IDN.toUnicode:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* unicodeDomain */
        start local 2 // java.lang.String unicodeDomain
         2: .line 84
            aload 2 /* unicodeDomain */
            ldc "\\."
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* domainLabels */
        start local 3 // java.lang.String[] domainLabels
         3: .line 85
            aload 0 /* this */
            aload 3 /* domainLabels */
            invokevirtual okhttp3.internal.publicsuffix.PublicSuffixDatabase.findMatchingRule:([Ljava/lang/String;)[Ljava/lang/String;
            astore 4 /* rule */
        start local 4 // java.lang.String[] rule
         4: .line 86
            aload 3 /* domainLabels */
            arraylength
            aload 4 /* rule */
            arraylength
            if_icmpne 6
            aload 4 /* rule */
            iconst_0
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 33
            if_icmpeq 6
         5: .line 88
            aconst_null
            areturn
         6: .line 92
      StackMap locals: java.lang.String java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 4 /* rule */
            iconst_0
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 33
            if_icmpne 9
         7: .line 94
            aload 3 /* domainLabels */
            arraylength
            aload 4 /* rule */
            arraylength
            isub
            istore 5 /* firstLabelOffset */
        start local 5 // int firstLabelOffset
         8: .line 95
            goto 10
        end local 5 // int firstLabelOffset
         9: .line 97
      StackMap locals:
      StackMap stack:
            aload 3 /* domainLabels */
            arraylength
            aload 4 /* rule */
            arraylength
            iconst_1
            iadd
            isub
            istore 5 /* firstLabelOffset */
        start local 5 // int firstLabelOffset
        10: .line 100
      StackMap locals: int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* effectiveTldPlusOne */
        start local 6 // java.lang.StringBuilder effectiveTldPlusOne
        11: .line 101
            aload 1 /* domain */
            ldc "\\."
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* punycodeLabels */
        start local 7 // java.lang.String[] punycodeLabels
        12: .line 102
            iload 5 /* firstLabelOffset */
            istore 8 /* i */
        start local 8 // int i
        13: goto 16
        14: .line 103
      StackMap locals: java.lang.StringBuilder java.lang.String[] int
      StackMap stack:
            aload 6 /* effectiveTldPlusOne */
            aload 7 /* punycodeLabels */
            iload 8 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 102
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 8 /* i */
            aload 7 /* punycodeLabels */
            arraylength
            if_icmplt 14
        end local 8 // int i
        17: .line 105
            aload 6 /* effectiveTldPlusOne */
            aload 6 /* effectiveTldPlusOne */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.deleteCharAt:(I)Ljava/lang/StringBuilder;
            pop
        18: .line 107
            aload 6 /* effectiveTldPlusOne */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 7 // java.lang.String[] punycodeLabels
        end local 6 // java.lang.StringBuilder effectiveTldPlusOne
        end local 5 // int firstLabelOffset
        end local 4 // java.lang.String[] rule
        end local 3 // java.lang.String[] domainLabels
        end local 2 // java.lang.String unicodeDomain
        end local 1 // java.lang.String domain
        end local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   19     0                 this  Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
            0   19     1               domain  Ljava/lang/String;
            2   19     2        unicodeDomain  Ljava/lang/String;
            3   19     3         domainLabels  [Ljava/lang/String;
            4   19     4                 rule  [Ljava/lang/String;
            8    9     5     firstLabelOffset  I
           10   19     5     firstLabelOffset  I
           11   19     6  effectiveTldPlusOne  Ljava/lang/StringBuilder;
           12   19     7       punycodeLabels  [Ljava/lang/String;
           13   17     8                    i  I
    MethodParameters:
        Name  Flags
      domain  

  private java.lang.String[] findMatchingRule(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
        start local 1 // java.lang.String[] domainLabels
         0: .line 111
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.listRead:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifne 3
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.listRead:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifeq 3
         1: .line 112
            aload 0 /* this */
            invokevirtual okhttp3.internal.publicsuffix.PublicSuffixDatabase.readTheListUninterruptibly:()V
         2: .line 113
            goto 7
         3: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.readCompleteLatch:Ljava/util/concurrent/CountDownLatch;
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
         4: .line 116
            goto 7
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         5: pop
         6: .line 117
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         7: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         8: .line 122
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.publicSuffixListBytes:[B
            ifnonnull 10
         9: .line 123
            new java.lang.IllegalStateException
            dup
            ldc "Unable to load publicsuffixes.gz resource from the classpath."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 121
      StackMap locals: okhttp3.internal.publicsuffix.PublicSuffixDatabase
      StackMap stack:
            aload 2
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 2
            monitorexit
        13: athrow
        14: .line 129
      StackMap locals:
      StackMap stack:
            aload 1 /* domainLabels */
            arraylength
            anewarray byte[]
            astore 2 /* domainLabelsUtf8Bytes */
        start local 2 // byte[][] domainLabelsUtf8Bytes
        15: .line 130
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        16: goto 19
        17: .line 131
      StackMap locals: byte[][] int
      StackMap stack:
            aload 2 /* domainLabelsUtf8Bytes */
            iload 3 /* i */
            aload 1 /* domainLabels */
            iload 3 /* i */
            aaload
            getstatic okhttp3.internal.Util.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            aastore
        18: .line 130
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 3 /* i */
            aload 1 /* domainLabels */
            arraylength
            if_icmplt 17
        end local 3 // int i
        20: .line 136
            aconst_null
            astore 3 /* exactMatch */
        start local 3 // java.lang.String exactMatch
        21: .line 137
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        22: goto 28
        23: .line 138
      StackMap locals: okhttp3.internal.publicsuffix.PublicSuffixDatabase java.lang.String[] byte[][] java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.publicSuffixListBytes:[B
            aload 2 /* domainLabelsUtf8Bytes */
            iload 4 /* i */
            invokestatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.binarySearchBytes:([B[[BI)Ljava/lang/String;
            astore 5 /* rule */
        start local 5 // java.lang.String rule
        24: .line 139
            aload 5 /* rule */
            ifnull 27
        25: .line 140
            aload 5 /* rule */
            astore 3 /* exactMatch */
        26: .line 141
            goto 29
        end local 5 // java.lang.String rule
        27: .line 137
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 4 /* i */
            aload 2 /* domainLabelsUtf8Bytes */
            arraylength
            if_icmplt 23
        end local 4 // int i
        29: .line 150
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* wildcardMatch */
        start local 4 // java.lang.String wildcardMatch
        30: .line 151
            aload 2 /* domainLabelsUtf8Bytes */
            arraylength
            iconst_1
            if_icmple 41
        31: .line 152
            aload 2 /* domainLabelsUtf8Bytes */
            invokevirtual byte[][].clone:()Ljava/lang/Object;
            checkcast byte[][]
            astore 5 /* labelsWithWildcard */
        start local 5 // byte[][] labelsWithWildcard
        32: .line 153
            iconst_0
            istore 6 /* labelIndex */
        start local 6 // int labelIndex
        33: goto 40
        34: .line 154
      StackMap locals: java.lang.String byte[][] int
      StackMap stack:
            aload 5 /* labelsWithWildcard */
            iload 6 /* labelIndex */
            getstatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.WILDCARD_LABEL:[B
            aastore
        35: .line 155
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.publicSuffixListBytes:[B
            aload 5 /* labelsWithWildcard */
            iload 6 /* labelIndex */
            invokestatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.binarySearchBytes:([B[[BI)Ljava/lang/String;
            astore 7 /* rule */
        start local 7 // java.lang.String rule
        36: .line 156
            aload 7 /* rule */
            ifnull 39
        37: .line 157
            aload 7 /* rule */
            astore 4 /* wildcardMatch */
        38: .line 158
            goto 41
        end local 7 // java.lang.String rule
        39: .line 153
      StackMap locals:
      StackMap stack:
            iinc 6 /* labelIndex */ 1
      StackMap locals:
      StackMap stack:
        40: iload 6 /* labelIndex */
            aload 5 /* labelsWithWildcard */
            arraylength
            iconst_1
            isub
            if_icmplt 34
        end local 6 // int labelIndex
        end local 5 // byte[][] labelsWithWildcard
        41: .line 164
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* exception */
        start local 5 // java.lang.String exception
        42: .line 165
            aload 4 /* wildcardMatch */
            ifnull 52
        43: .line 166
            iconst_0
            istore 6 /* labelIndex */
        start local 6 // int labelIndex
        44: goto 51
        45: .line 168
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.publicSuffixExceptionListBytes:[B
            aload 2 /* domainLabelsUtf8Bytes */
            iload 6 /* labelIndex */
        46: .line 167
            invokestatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.binarySearchBytes:([B[[BI)Ljava/lang/String;
            astore 7 /* rule */
        start local 7 // java.lang.String rule
        47: .line 169
            aload 7 /* rule */
            ifnull 50
        48: .line 170
            aload 7 /* rule */
            astore 5 /* exception */
        49: .line 171
            goto 52
        end local 7 // java.lang.String rule
        50: .line 166
      StackMap locals:
      StackMap stack:
            iinc 6 /* labelIndex */ 1
      StackMap locals:
      StackMap stack:
        51: iload 6 /* labelIndex */
            aload 2 /* domainLabelsUtf8Bytes */
            arraylength
            iconst_1
            isub
            if_icmplt 45
        end local 6 // int labelIndex
        52: .line 176
      StackMap locals:
      StackMap stack:
            aload 5 /* exception */
            ifnull 55
        53: .line 178
            new java.lang.StringBuilder
            dup
            ldc "!"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* exception */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* exception */
        54: .line 179
            aload 5 /* exception */
            ldc "\\."
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        55: .line 180
      StackMap locals:
      StackMap stack:
            aload 3 /* exactMatch */
            ifnonnull 57
            aload 4 /* wildcardMatch */
            ifnonnull 57
        56: .line 181
            getstatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.PREVAILING_RULE:[Ljava/lang/String;
            areturn
        57: .line 184
      StackMap locals:
      StackMap stack:
            aload 3 /* exactMatch */
            ifnull 59
        58: .line 185
            aload 3 /* exactMatch */
            ldc "\\."
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            goto 60
        59: .line 186
      StackMap locals:
      StackMap stack:
            getstatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.EMPTY_RULE:[Ljava/lang/String;
        60: .line 184
      StackMap locals:
      StackMap stack: java.lang.String[]
            astore 6 /* exactRuleLabels */
        start local 6 // java.lang.String[] exactRuleLabels
        61: .line 188
            aload 4 /* wildcardMatch */
            ifnull 63
        62: .line 189
            aload 4 /* wildcardMatch */
            ldc "\\."
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            goto 64
        63: .line 190
      StackMap locals: java.lang.String[]
      StackMap stack:
            getstatic okhttp3.internal.publicsuffix.PublicSuffixDatabase.EMPTY_RULE:[Ljava/lang/String;
        64: .line 188
      StackMap locals:
      StackMap stack: java.lang.String[]
            astore 7 /* wildcardRuleLabels */
        start local 7 // java.lang.String[] wildcardRuleLabels
        65: .line 192
            aload 6 /* exactRuleLabels */
            arraylength
            aload 7 /* wildcardRuleLabels */
            arraylength
            if_icmple 67
        66: .line 193
            aload 6 /* exactRuleLabels */
            goto 68
        67: .line 194
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 7 /* wildcardRuleLabels */
        68: .line 192
      StackMap locals:
      StackMap stack: java.lang.String[]
            areturn
        end local 7 // java.lang.String[] wildcardRuleLabels
        end local 6 // java.lang.String[] exactRuleLabels
        end local 5 // java.lang.String exception
        end local 4 // java.lang.String wildcardMatch
        end local 3 // java.lang.String exactMatch
        end local 2 // byte[][] domainLabelsUtf8Bytes
        end local 1 // java.lang.String[] domainLabels
        end local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   69     0                   this  Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
            0   69     1           domainLabels  [Ljava/lang/String;
           15   69     2  domainLabelsUtf8Bytes  [[B
           16   20     3                      i  I
           21   69     3             exactMatch  Ljava/lang/String;
           22   29     4                      i  I
           24   27     5                   rule  Ljava/lang/String;
           30   69     4          wildcardMatch  Ljava/lang/String;
           32   41     5     labelsWithWildcard  [[B
           33   41     6             labelIndex  I
           36   39     7                   rule  Ljava/lang/String;
           42   69     5              exception  Ljava/lang/String;
           44   52     6             labelIndex  I
           47   50     7                   rule  Ljava/lang/String;
           61   69     6        exactRuleLabels  [Ljava/lang/String;
           65   69     7     wildcardRuleLabels  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.InterruptedException
           8    11      12  any
          12    13      12  any
    MethodParameters:
              Name  Flags
      domainLabels  

  private static java.lang.String binarySearchBytes(byte[], byte[][], int);
    descriptor: ([B[[BI)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=17, args_size=3
        start local 0 // byte[] bytesToSearch
        start local 1 // byte[][] labels
        start local 2 // int labelIndex
         0: .line 198
            iconst_0
            istore 3 /* low */
        start local 3 // int low
         1: .line 199
            aload 0 /* bytesToSearch */
            arraylength
            istore 4 /* high */
        start local 4 // int high
         2: .line 200
            aconst_null
            astore 5 /* match */
        start local 5 // java.lang.String match
         3: .line 201
            goto 57
         4: .line 202
      StackMap locals: int int java.lang.String
      StackMap stack:
            iload 3 /* low */
            iload 4 /* high */
            iadd
            iconst_2
            idiv
            istore 6 /* mid */
        start local 6 // int mid
         5: .line 205
            goto 7
         6: .line 206
      StackMap locals: int
      StackMap stack:
            iinc 6 /* mid */ -1
         7: .line 205
      StackMap locals:
      StackMap stack:
            iload 6 /* mid */
            iconst_m1
            if_icmple 8
            aload 0 /* bytesToSearch */
            iload 6 /* mid */
            baload
            bipush 10
            if_icmpne 6
         8: .line 208
      StackMap locals:
      StackMap stack:
            iinc 6 /* mid */ 1
         9: .line 211
            iconst_1
            istore 7 /* end */
        start local 7 // int end
        10: .line 212
            goto 12
        11: .line 213
      StackMap locals: int
      StackMap stack:
            iinc 7 /* end */ 1
        12: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* bytesToSearch */
            iload 6 /* mid */
            iload 7 /* end */
            iadd
            baload
            bipush 10
            if_icmpne 11
        13: .line 215
            iload 6 /* mid */
            iload 7 /* end */
            iadd
            iload 6 /* mid */
            isub
            istore 8 /* publicSuffixLength */
        start local 8 // int publicSuffixLength
        14: .line 220
            iload 2 /* labelIndex */
            istore 10 /* currentLabelIndex */
        start local 10 // int currentLabelIndex
        15: .line 221
            iconst_0
            istore 11 /* currentLabelByteIndex */
        start local 11 // int currentLabelByteIndex
        16: .line 222
            iconst_0
            istore 12 /* publicSuffixByteIndex */
        start local 12 // int publicSuffixByteIndex
        17: .line 224
            iconst_0
            istore 13 /* expectDot */
        start local 13 // boolean expectDot
        18: .line 227
      StackMap locals: byte[] byte[][] int int int java.lang.String int int int top int int int int
      StackMap stack:
            iload 13 /* expectDot */
            ifeq 22
        19: .line 228
            bipush 46
            istore 14 /* byte0 */
        start local 14 // int byte0
        20: .line 229
            iconst_0
            istore 13 /* expectDot */
        21: .line 230
            goto 23
        end local 14 // int byte0
        22: .line 231
      StackMap locals:
      StackMap stack:
            aload 1 /* labels */
            iload 10 /* currentLabelIndex */
            aaload
            iload 11 /* currentLabelByteIndex */
            baload
            sipush 255
            iand
            istore 14 /* byte0 */
        start local 14 // int byte0
        23: .line 234
      StackMap locals: int
      StackMap stack:
            aload 0 /* bytesToSearch */
            iload 6 /* mid */
            iload 12 /* publicSuffixByteIndex */
            iadd
            baload
            sipush 255
            iand
            istore 15 /* byte1 */
        start local 15 // int byte1
        24: .line 236
            iload 14 /* byte0 */
            iload 15 /* byte1 */
            isub
            istore 9 /* compareResult */
        start local 9 // int compareResult
        25: .line 237
            iload 9 /* compareResult */
            ifeq 26
            goto 36
        26: .line 239
      StackMap locals: byte[] byte[][] int int int java.lang.String int int int int int int int int int int
      StackMap stack:
            iinc 12 /* publicSuffixByteIndex */ 1
        27: .line 240
            iinc 11 /* currentLabelByteIndex */ 1
        28: .line 241
            iload 12 /* publicSuffixByteIndex */
            iload 8 /* publicSuffixLength */
            if_icmpne 29
            goto 36
        29: .line 243
      StackMap locals:
      StackMap stack:
            aload 1 /* labels */
            iload 10 /* currentLabelIndex */
            aaload
            arraylength
            iload 11 /* currentLabelByteIndex */
            if_icmpne 18
        30: .line 246
            iload 10 /* currentLabelIndex */
            aload 1 /* labels */
            arraylength
            iconst_1
            isub
            if_icmpne 32
        31: .line 247
            goto 36
        32: .line 249
      StackMap locals:
      StackMap stack:
            iinc 10 /* currentLabelIndex */ 1
        33: .line 250
            iconst_m1
            istore 11 /* currentLabelByteIndex */
        34: .line 251
            iconst_1
            istore 13 /* expectDot */
        end local 15 // int byte1
        end local 14 // int byte0
        end local 9 // int compareResult
        35: .line 225
            goto 18
        start local 9 // int compareResult
        36: .line 256
      StackMap locals:
      StackMap stack:
            iload 9 /* compareResult */
            ifge 39
        37: .line 257
            iload 6 /* mid */
            iconst_1
            isub
            istore 4 /* high */
        38: .line 258
            goto 57
      StackMap locals:
      StackMap stack:
        39: iload 9 /* compareResult */
            ifle 42
        40: .line 259
            iload 6 /* mid */
            iload 7 /* end */
            iadd
            iconst_1
            iadd
            istore 3 /* low */
        41: .line 260
            goto 57
        42: .line 262
      StackMap locals:
      StackMap stack:
            iload 8 /* publicSuffixLength */
            iload 12 /* publicSuffixByteIndex */
            isub
            istore 14 /* publicSuffixBytesLeft */
        start local 14 // int publicSuffixBytesLeft
        43: .line 263
            aload 1 /* labels */
            iload 10 /* currentLabelIndex */
            aaload
            arraylength
            iload 11 /* currentLabelByteIndex */
            isub
            istore 15 /* labelBytesLeft */
        start local 15 // int labelBytesLeft
        44: .line 264
            iload 10 /* currentLabelIndex */
            iconst_1
            iadd
            istore 16 /* i */
        start local 16 // int i
        45: goto 48
        46: .line 265
      StackMap locals: int int int
      StackMap stack:
            iload 15 /* labelBytesLeft */
            aload 1 /* labels */
            iload 16 /* i */
            aaload
            arraylength
            iadd
            istore 15 /* labelBytesLeft */
        47: .line 264
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 16 /* i */
            aload 1 /* labels */
            arraylength
            if_icmplt 46
        end local 16 // int i
        49: .line 268
            iload 15 /* labelBytesLeft */
            iload 14 /* publicSuffixBytesLeft */
            if_icmpge 52
        50: .line 269
            iload 6 /* mid */
            iconst_1
            isub
            istore 4 /* high */
        51: .line 270
            goto 57
      StackMap locals:
      StackMap stack:
        52: iload 15 /* labelBytesLeft */
            iload 14 /* publicSuffixBytesLeft */
            if_icmple 55
        53: .line 271
            iload 6 /* mid */
            iload 7 /* end */
            iadd
            iconst_1
            iadd
            istore 3 /* low */
        54: .line 272
            goto 57
        55: .line 274
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            aload 0 /* bytesToSearch */
            iload 6 /* mid */
            iload 8 /* publicSuffixLength */
            getstatic okhttp3.internal.Util.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BIILjava/nio/charset/Charset;)V
            astore 5 /* match */
        56: .line 275
            goto 58
        end local 15 // int labelBytesLeft
        end local 14 // int publicSuffixBytesLeft
        end local 13 // boolean expectDot
        end local 12 // int publicSuffixByteIndex
        end local 11 // int currentLabelByteIndex
        end local 10 // int currentLabelIndex
        end local 9 // int compareResult
        end local 8 // int publicSuffixLength
        end local 7 // int end
        end local 6 // int mid
        57: .line 201
      StackMap locals: byte[] byte[][] int int int java.lang.String
      StackMap stack:
            iload 3 /* low */
            iload 4 /* high */
            if_icmplt 4
        58: .line 279
      StackMap locals:
      StackMap stack:
            aload 5 /* match */
            areturn
        end local 5 // java.lang.String match
        end local 4 // int high
        end local 3 // int low
        end local 2 // int labelIndex
        end local 1 // byte[][] labels
        end local 0 // byte[] bytesToSearch
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   59     0          bytesToSearch  [B
            0   59     1                 labels  [[B
            0   59     2             labelIndex  I
            1   59     3                    low  I
            2   59     4                   high  I
            3   59     5                  match  Ljava/lang/String;
            5   57     6                    mid  I
           10   57     7                    end  I
           14   57     8     publicSuffixLength  I
           25   35     9          compareResult  I
           36   57     9          compareResult  I
           15   57    10      currentLabelIndex  I
           16   57    11  currentLabelByteIndex  I
           17   57    12  publicSuffixByteIndex  I
           18   57    13              expectDot  Z
           20   22    14                  byte0  I
           23   35    14                  byte0  I
           24   35    15                  byte1  I
           43   57    14  publicSuffixBytesLeft  I
           44   57    15         labelBytesLeft  I
           45   49    16                      i  I
    MethodParameters:
               Name  Flags
      bytesToSearch  
      labels         
      labelIndex     

  private void readTheListUninterruptibly();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
         0: .line 288
            iconst_0
            istore 1 /* interrupted */
        start local 1 // boolean interrupted
         1: .line 292
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual okhttp3.internal.publicsuffix.PublicSuffixDatabase.readTheList:()V
         2: .line 303
            iload 1 /* interrupted */
            ifeq 4
         3: .line 304
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         4: .line 293
      StackMap locals:
      StackMap stack:
            return
         5: .line 294
      StackMap locals:
      StackMap stack: java.io.InterruptedIOException
            pop
         6: .line 295
            invokestatic java.lang.Thread.interrupted:()Z
            pop
         7: .line 296
            iconst_1
            istore 1 /* interrupted */
            goto 1
         8: .line 297
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         9: .line 298
            invokestatic okhttp3.internal.platform.Platform.get:()Lokhttp3/internal/platform/Platform;
            iconst_5
            ldc "Failed to read public suffix list"
            aload 2 /* e */
            invokevirtual okhttp3.internal.platform.Platform.log:(ILjava/lang/String;Ljava/lang/Throwable;)V
        10: .line 303
            iload 1 /* interrupted */
            ifeq 12
        11: .line 304
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        12: .line 299
      StackMap locals: java.io.IOException
      StackMap stack:
            return
        end local 2 // java.io.IOException e
        13: .line 302
      StackMap locals: okhttp3.internal.publicsuffix.PublicSuffixDatabase int
      StackMap stack: java.lang.Throwable
            astore 3
        14: .line 303
            iload 1 /* interrupted */
            ifeq 16
        15: .line 304
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        16: .line 306
      StackMap locals: okhttp3.internal.publicsuffix.PublicSuffixDatabase int top java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        end local 1 // boolean interrupted
        end local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
            1   17     1  interrupted  Z
            9   13     2            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       5  Class java.io.InterruptedIOException
           1     2       8  Class java.io.IOException
           1     2      13  any
           5    10      13  any

  private void readTheList();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
         0: .line 313
            ldc Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
            ldc "publicsuffixes.gz"
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 3 /* resource */
        start local 3 // java.io.InputStream resource
         1: .line 314
            aload 3 /* resource */
            ifnonnull 2
            return
         2: .line 316
      StackMap locals: okhttp3.internal.publicsuffix.PublicSuffixDatabase top top java.io.InputStream
      StackMap stack:
            new okio.GzipSource
            dup
            aload 3 /* resource */
            invokestatic okio.Okio.source:(Ljava/io/InputStream;)Lokio/Source;
            invokespecial okio.GzipSource.<init>:(Lokio/Source;)V
            invokestatic okio.Okio.buffer:(Lokio/Source;)Lokio/BufferedSource;
            astore 4 /* bufferedSource */
        start local 4 // okio.BufferedSource bufferedSource
         3: .line 318
            aload 4 /* bufferedSource */
            invokeinterface okio.BufferedSource.readInt:()I
            istore 5 /* totalBytes */
        start local 5 // int totalBytes
         4: .line 319
            iload 5 /* totalBytes */
            newarray 8
            astore 1 /* publicSuffixListBytes */
        start local 1 // byte[] publicSuffixListBytes
         5: .line 320
            aload 4 /* bufferedSource */
            aload 1 /* publicSuffixListBytes */
            invokeinterface okio.BufferedSource.readFully:([B)V
         6: .line 322
            aload 4 /* bufferedSource */
            invokeinterface okio.BufferedSource.readInt:()I
            istore 6 /* totalExceptionBytes */
        start local 6 // int totalExceptionBytes
         7: .line 323
            iload 6 /* totalExceptionBytes */
            newarray 8
            astore 2 /* publicSuffixExceptionListBytes */
        start local 2 // byte[] publicSuffixExceptionListBytes
         8: .line 324
            aload 4 /* bufferedSource */
            aload 2 /* publicSuffixExceptionListBytes */
            invokeinterface okio.BufferedSource.readFully:([B)V
        end local 6 // int totalExceptionBytes
        end local 5 // int totalBytes
         9: .line 325
            goto 13
        end local 2 // byte[] publicSuffixExceptionListBytes
        end local 1 // byte[] publicSuffixListBytes
      StackMap locals: okhttp3.internal.publicsuffix.PublicSuffixDatabase top top java.io.InputStream okio.BufferedSource
      StackMap stack: java.lang.Throwable
        10: astore 7
        11: .line 326
            aload 4 /* bufferedSource */
            invokestatic okhttp3.internal.Util.closeQuietly:(Ljava/io/Closeable;)V
        12: .line 327
            aload 7
            athrow
        start local 1 // byte[] publicSuffixListBytes
        start local 2 // byte[] publicSuffixExceptionListBytes
        13: .line 326
      StackMap locals: okhttp3.internal.publicsuffix.PublicSuffixDatabase byte[] byte[] java.io.InputStream okio.BufferedSource
      StackMap stack:
            aload 4 /* bufferedSource */
            invokestatic okhttp3.internal.Util.closeQuietly:(Ljava/io/Closeable;)V
        14: .line 329
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        15: .line 330
            aload 0 /* this */
            aload 1 /* publicSuffixListBytes */
            putfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.publicSuffixListBytes:[B
        16: .line 331
            aload 0 /* this */
            aload 2 /* publicSuffixExceptionListBytes */
            putfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.publicSuffixExceptionListBytes:[B
        17: .line 329
            aload 5
            monitorexit
        18: goto 21
      StackMap locals: okhttp3.internal.publicsuffix.PublicSuffixDatabase byte[] byte[] java.io.InputStream okio.BufferedSource okhttp3.internal.publicsuffix.PublicSuffixDatabase
      StackMap stack: java.lang.Throwable
        19: aload 5
            monitorexit
        20: athrow
        21: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.readCompleteLatch:Ljava/util/concurrent/CountDownLatch;
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        22: .line 335
            return
        end local 4 // okio.BufferedSource bufferedSource
        end local 3 // java.io.InputStream resource
        end local 2 // byte[] publicSuffixExceptionListBytes
        end local 1 // byte[] publicSuffixListBytes
        end local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   23     0                            this  Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
            5   10     1           publicSuffixListBytes  [B
           13   23     1           publicSuffixListBytes  [B
            8   10     2  publicSuffixExceptionListBytes  [B
           13   23     2  publicSuffixExceptionListBytes  [B
            1   23     3                        resource  Ljava/io/InputStream;
            3   23     4                  bufferedSource  Lokio/BufferedSource;
            4    9     5                      totalBytes  I
            7    9     6             totalExceptionBytes  I
      Exception table:
        from    to  target  type
           3    10      10  any
          15    18      19  any
          19    20      19  any
    Exceptions:
      throws java.io.IOException

  void setListBytes(byte[], byte[]);
    descriptor: ([B[B)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
        start local 1 // byte[] publicSuffixListBytes
        start local 2 // byte[] publicSuffixExceptionListBytes
         0: .line 339
            aload 0 /* this */
            aload 1 /* publicSuffixListBytes */
            putfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.publicSuffixListBytes:[B
         1: .line 340
            aload 0 /* this */
            aload 2 /* publicSuffixExceptionListBytes */
            putfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.publicSuffixExceptionListBytes:[B
         2: .line 341
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.listRead:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
         3: .line 342
            aload 0 /* this */
            getfield okhttp3.internal.publicsuffix.PublicSuffixDatabase.readCompleteLatch:Ljava/util/concurrent/CountDownLatch;
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
         4: .line 343
            return
        end local 2 // byte[] publicSuffixExceptionListBytes
        end local 1 // byte[] publicSuffixListBytes
        end local 0 // okhttp3.internal.publicsuffix.PublicSuffixDatabase this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0    5     0                            this  Lokhttp3/internal/publicsuffix/PublicSuffixDatabase;
            0    5     1           publicSuffixListBytes  [B
            0    5     2  publicSuffixExceptionListBytes  [B
    MethodParameters:
                                Name  Flags
      publicSuffixListBytes           
      publicSuffixExceptionListBytes  
}
SourceFile: "PublicSuffixDatabase.java"