final class com.google.protobuf.Utf8
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.protobuf.Utf8
  super_class: java.lang.Object
{
  private static final com.google.protobuf.Utf8$Processor processor;
    descriptor: Lcom/google/protobuf/Utf8$Processor;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long ASCII_MASK_LONG;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -9187201950435737472

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 84
            invokestatic com.google.protobuf.Utf8$UnsafeProcessor.isAvailable:()Z
            ifeq 2
            invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
            ifne 2
         1: .line 85
            new com.google.protobuf.Utf8$UnsafeProcessor
            dup
            invokespecial com.google.protobuf.Utf8$UnsafeProcessor.<init>:()V
            goto 3
         2: .line 86
      StackMap locals:
      StackMap stack:
            new com.google.protobuf.Utf8$SafeProcessor
            dup
            invokespecial com.google.protobuf.Utf8$SafeProcessor.<init>:()V
         3: .line 83
      StackMap locals:
      StackMap stack: com.google.protobuf.Utf8$Processor
            putstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
         4: .line 119
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean isValidUtf8(byte[]);
    descriptor: ([B)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // byte[] bytes
         0: .line 147
            getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
            aload 0 /* bytes */
            iconst_0
            aload 0 /* bytes */
            arraylength
            invokevirtual com.google.protobuf.Utf8$Processor.isValidUtf8:([BII)Z
            ireturn
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
    MethodParameters:
       Name  Flags
      bytes  

  public static boolean isValidUtf8(byte[], int, int);
    descriptor: ([BII)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int index
        start local 2 // int limit
         0: .line 159
            getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
            aload 0 /* bytes */
            iload 1 /* index */
            iload 2 /* limit */
            invokevirtual com.google.protobuf.Utf8$Processor.isValidUtf8:([BII)Z
            ireturn
        end local 2 // int limit
        end local 1 // int index
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
            0    1     1  index  I
            0    1     2  limit  I
    MethodParameters:
       Name  Flags
      bytes  
      index  
      limit  

  public static int partialIsValidUtf8(int, byte[], int, int);
    descriptor: (I[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // int state
        start local 1 // byte[] bytes
        start local 2 // int index
        start local 3 // int limit
         0: .line 176
            getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
            iload 0 /* state */
            aload 1 /* bytes */
            iload 2 /* index */
            iload 3 /* limit */
            invokevirtual com.google.protobuf.Utf8$Processor.partialIsValidUtf8:(I[BII)I
            ireturn
        end local 3 // int limit
        end local 2 // int index
        end local 1 // byte[] bytes
        end local 0 // int state
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  state  I
            0    1     1  bytes  [B
            0    1     2  index  I
            0    1     3  limit  I
    MethodParameters:
       Name  Flags
      state  
      bytes  
      index  
      limit  

  private static int incompleteStateFor(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int byte1
         0: .line 180
            iload 0 /* byte1 */
            bipush -12
            if_icmple 1
            iconst_m1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 0 /* byte1 */
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // int byte1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  byte1  I
    MethodParameters:
       Name  Flags
      byte1  

  private static int incompleteStateFor(int, int);
    descriptor: (II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int byte1
        start local 1 // int byte2
         0: .line 184
            iload 0 /* byte1 */
            bipush -12
            if_icmpgt 1
            iload 1 /* byte2 */
            bipush -65
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: iconst_m1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 0 /* byte1 */
            iload 1 /* byte2 */
            bipush 8
            ishl
            ixor
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // int byte2
        end local 0 // int byte1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  byte1  I
            0    4     1  byte2  I
    MethodParameters:
       Name  Flags
      byte1  
      byte2  

  private static int incompleteStateFor(int, int, int);
    descriptor: (III)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // int byte1
        start local 1 // int byte2
        start local 2 // int byte3
         0: .line 188
            iload 0 /* byte1 */
            bipush -12
            if_icmpgt 1
            iload 1 /* byte2 */
            bipush -65
            if_icmpgt 1
            iload 2 /* byte3 */
            bipush -65
            if_icmple 2
         1: .line 189
      StackMap locals:
      StackMap stack:
            iconst_m1
            goto 3
         2: .line 190
      StackMap locals:
      StackMap stack:
            iload 0 /* byte1 */
            iload 1 /* byte2 */
            bipush 8
            ishl
            ixor
            iload 2 /* byte3 */
            bipush 16
            ishl
            ixor
         3: .line 188
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 2 // int byte3
        end local 1 // int byte2
        end local 0 // int byte1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  byte1  I
            0    4     1  byte2  I
            0    4     2  byte3  I
    MethodParameters:
       Name  Flags
      byte1  
      byte2  
      byte3  

  private static int incompleteStateFor(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int index
        start local 2 // int limit
         0: .line 194
            aload 0 /* bytes */
            iload 1 /* index */
            iconst_1
            isub
            baload
            istore 3 /* byte1 */
        start local 3 // int byte1
         1: .line 195
            iload 2 /* limit */
            iload 1 /* index */
            isub
            tableswitch { // 0 - 2
                    0: 2
                    1: 3
                    2: 4
              default: 5
          }
         2: .line 197
      StackMap locals: int
      StackMap stack:
            iload 3 /* byte1 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(I)I
            ireturn
         3: .line 199
      StackMap locals:
      StackMap stack:
            iload 3 /* byte1 */
            aload 0 /* bytes */
            iload 1 /* index */
            baload
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
         4: .line 201
      StackMap locals:
      StackMap stack:
            iload 3 /* byte1 */
            aload 0 /* bytes */
            iload 1 /* index */
            baload
            aload 0 /* bytes */
            iload 1 /* index */
            iconst_1
            iadd
            baload
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
            ireturn
         5: .line 203
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 3 // int byte1
        end local 2 // int limit
        end local 1 // int index
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  bytes  [B
            0    6     1  index  I
            0    6     2  limit  I
            1    6     3  byte1  I
    MethodParameters:
       Name  Flags
      bytes  
      index  
      limit  

  private static int incompleteStateFor(java.nio.ByteBuffer, int, int, int);
    descriptor: (Ljava/nio/ByteBuffer;III)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.nio.ByteBuffer buffer
        start local 1 // int byte1
        start local 2 // int index
        start local 3 // int remaining
         0: .line 209
            iload 3 /* remaining */
            tableswitch { // 0 - 2
                    0: 1
                    1: 2
                    2: 3
              default: 4
          }
         1: .line 211
      StackMap locals:
      StackMap stack:
            iload 1 /* byte1 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(I)I
            ireturn
         2: .line 213
      StackMap locals:
      StackMap stack:
            iload 1 /* byte1 */
            aload 0 /* buffer */
            iload 2 /* index */
            invokevirtual java.nio.ByteBuffer.get:(I)B
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
         3: .line 215
      StackMap locals:
      StackMap stack:
            iload 1 /* byte1 */
            aload 0 /* buffer */
            iload 2 /* index */
            invokevirtual java.nio.ByteBuffer.get:(I)B
            aload 0 /* buffer */
            iload 2 /* index */
            iconst_1
            iadd
            invokevirtual java.nio.ByteBuffer.get:(I)B
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
            ireturn
         4: .line 217
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 3 // int remaining
        end local 2 // int index
        end local 1 // int byte1
        end local 0 // java.nio.ByteBuffer buffer
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0     buffer  Ljava/nio/ByteBuffer;
            0    5     1      byte1  I
            0    5     2      index  I
            0    5     3  remaining  I
    MethodParameters:
           Name  Flags
      buffer     final
      byte1      final
      index      final
      remaining  final

  static int encodedLength(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // java.lang.CharSequence sequence
         0: .line 241
            aload 0 /* sequence */
            invokeinterface java.lang.CharSequence.length:()I
            istore 1 /* utf16Length */
        start local 1 // int utf16Length
         1: .line 242
            iload 1 /* utf16Length */
            istore 2 /* utf8Length */
        start local 2 // int utf8Length
         2: .line 243
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: .line 246
            goto 5
         4: .line 247
      StackMap locals: int int int
      StackMap stack:
            iinc 3 /* i */ 1
         5: .line 246
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 1 /* utf16Length */
            if_icmpge 14
            aload 0 /* sequence */
            iload 3 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            sipush 128
            if_icmplt 4
         6: .line 251
            goto 14
         7: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* sequence */
            iload 3 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         8: .line 253
            iload 4 /* c */
            sipush 2048
            if_icmpge 11
         9: .line 254
            iload 2 /* utf8Length */
            bipush 127
            iload 4 /* c */
            isub
            bipush 31
            iushr
            iadd
            istore 2 /* utf8Length */
        10: .line 255
            goto 13
        11: .line 256
      StackMap locals: int
      StackMap stack:
            iload 2 /* utf8Length */
            aload 0 /* sequence */
            iload 3 /* i */
            invokestatic com.google.protobuf.Utf8.encodedLengthGeneral:(Ljava/lang/CharSequence;I)I
            iadd
            istore 2 /* utf8Length */
        12: .line 257
            goto 15
        end local 4 // char c
        13: .line 251
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            iload 1 /* utf16Length */
            if_icmplt 7
        15: .line 261
      StackMap locals:
      StackMap stack:
            iload 2 /* utf8Length */
            iload 1 /* utf16Length */
            if_icmpge 19
        16: .line 263
            new java.lang.IllegalArgumentException
            dup
        17: .line 264
            new java.lang.StringBuilder
            dup
            ldc "UTF-8 length does not fit in int: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* utf8Length */
            i2l
            ldc 4294967296
            ladd
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 263
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 266
      StackMap locals:
      StackMap stack:
            iload 2 /* utf8Length */
            ireturn
        end local 3 // int i
        end local 2 // int utf8Length
        end local 1 // int utf16Length
        end local 0 // java.lang.CharSequence sequence
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0     sequence  Ljava/lang/CharSequence;
            1   20     1  utf16Length  I
            2   20     2   utf8Length  I
            3   20     3            i  I
            8   13     4            c  C
    MethodParameters:
          Name  Flags
      sequence  

  private static int encodedLengthGeneral(java.lang.CharSequence, int);
    descriptor: (Ljava/lang/CharSequence;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.lang.CharSequence sequence
        start local 1 // int start
         0: .line 270
            aload 0 /* sequence */
            invokeinterface java.lang.CharSequence.length:()I
            istore 2 /* utf16Length */
        start local 2 // int utf16Length
         1: .line 271
            iconst_0
            istore 3 /* utf8Length */
        start local 3 // int utf8Length
         2: .line 272
            iload 1 /* start */
            istore 4 /* i */
        start local 4 // int i
         3: goto 15
         4: .line 273
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* sequence */
            iload 4 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         5: .line 274
            iload 5 /* c */
            sipush 2048
            if_icmpge 8
         6: .line 275
            iload 3 /* utf8Length */
            bipush 127
            iload 5 /* c */
            isub
            bipush 31
            iushr
            iadd
            istore 3 /* utf8Length */
         7: .line 276
            goto 14
         8: .line 277
      StackMap locals: int
      StackMap stack:
            iinc 3 /* utf8Length */ 2
         9: .line 279
            ldc 55296
            iload 5 /* c */
            if_icmpgt 14
            iload 5 /* c */
            ldc 57343
            if_icmpgt 14
        10: .line 281
            aload 0 /* sequence */
            iload 4 /* i */
            invokestatic java.lang.Character.codePointAt:(Ljava/lang/CharSequence;I)I
            istore 6 /* cp */
        start local 6 // int cp
        11: .line 282
            iload 6 /* cp */
            ldc 65536
            if_icmpge 13
        12: .line 283
            new com.google.protobuf.Utf8$UnpairedSurrogateException
            dup
            iload 4 /* i */
            iload 2 /* utf16Length */
            invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
            athrow
        13: .line 285
      StackMap locals: int
      StackMap stack:
            iinc 4 /* i */ 1
        end local 6 // int cp
        end local 5 // char c
        14: .line 272
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            iload 2 /* utf16Length */
            if_icmplt 4
        end local 4 // int i
        16: .line 289
            iload 3 /* utf8Length */
            ireturn
        end local 3 // int utf8Length
        end local 2 // int utf16Length
        end local 1 // int start
        end local 0 // java.lang.CharSequence sequence
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0     sequence  Ljava/lang/CharSequence;
            0   17     1        start  I
            1   17     2  utf16Length  I
            2   17     3   utf8Length  I
            3   16     4            i  I
            5   14     5            c  C
           11   14     6           cp  I
    MethodParameters:
          Name  Flags
      sequence  
      start     

  static int encode(java.lang.CharSequence, byte[], int, int);
    descriptor: (Ljava/lang/CharSequence;[BII)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.CharSequence in
        start local 1 // byte[] out
        start local 2 // int offset
        start local 3 // int length
         0: .line 293
            getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
            aload 0 /* in */
            aload 1 /* out */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual com.google.protobuf.Utf8$Processor.encodeUtf8:(Ljava/lang/CharSequence;[BII)I
            ireturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] out
        end local 0 // java.lang.CharSequence in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0      in  Ljava/lang/CharSequence;
            0    1     1     out  [B
            0    1     2  offset  I
            0    1     3  length  I
    MethodParameters:
        Name  Flags
      in      
      out     
      offset  
      length  

  static boolean isValidUtf8(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.nio.ByteBuffer buffer
         0: .line 307
            getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
            aload 0 /* buffer */
            aload 0 /* buffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            aload 0 /* buffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual com.google.protobuf.Utf8$Processor.isValidUtf8:(Ljava/nio/ByteBuffer;II)Z
            ireturn
        end local 0 // java.nio.ByteBuffer buffer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  buffer  Ljava/nio/ByteBuffer;
    MethodParameters:
        Name  Flags
      buffer  

  static int partialIsValidUtf8(int, java.nio.ByteBuffer, int, int);
    descriptor: (ILjava/nio/ByteBuffer;II)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // int state
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // int index
        start local 3 // int limit
         0: .line 320
            getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
            iload 0 /* state */
            aload 1 /* buffer */
            iload 2 /* index */
            iload 3 /* limit */
            invokevirtual com.google.protobuf.Utf8$Processor.partialIsValidUtf8:(ILjava/nio/ByteBuffer;II)I
            ireturn
        end local 3 // int limit
        end local 2 // int index
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // int state
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   state  I
            0    1     1  buffer  Ljava/nio/ByteBuffer;
            0    1     2   index  I
            0    1     3   limit  I
    MethodParameters:
        Name  Flags
      state   
      buffer  
      index   
      limit   

  static java.lang.String decodeUtf8(java.nio.ByteBuffer, int, int);
    descriptor: (Ljava/nio/ByteBuffer;II)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.nio.ByteBuffer buffer
        start local 1 // int index
        start local 2 // int size
         0: .line 330
            getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
            aload 0 /* buffer */
            iload 1 /* index */
            iload 2 /* size */
            invokevirtual com.google.protobuf.Utf8$Processor.decodeUtf8:(Ljava/nio/ByteBuffer;II)Ljava/lang/String;
            areturn
        end local 2 // int size
        end local 1 // int index
        end local 0 // java.nio.ByteBuffer buffer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  buffer  Ljava/nio/ByteBuffer;
            0    1     1   index  I
            0    1     2    size  I
    Exceptions:
      throws com.google.protobuf.InvalidProtocolBufferException
    MethodParameters:
        Name  Flags
      buffer  
      index   
      size    

  static java.lang.String decodeUtf8(byte[], int, int);
    descriptor: ([BII)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int index
        start local 2 // int size
         0: .line 340
            getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
            aload 0 /* bytes */
            iload 1 /* index */
            iload 2 /* size */
            invokevirtual com.google.protobuf.Utf8$Processor.decodeUtf8:([BII)Ljava/lang/String;
            areturn
        end local 2 // int size
        end local 1 // int index
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
            0    1     1  index  I
            0    1     2   size  I
    Exceptions:
      throws com.google.protobuf.InvalidProtocolBufferException
    MethodParameters:
       Name  Flags
      bytes  
      index  
      size   

  static void encodeUtf8(java.lang.CharSequence, java.nio.ByteBuffer);
    descriptor: (Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.CharSequence in
        start local 1 // java.nio.ByteBuffer out
         0: .line 354
            getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
            aload 0 /* in */
            aload 1 /* out */
            invokevirtual com.google.protobuf.Utf8$Processor.encodeUtf8:(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
         1: .line 355
            return
        end local 1 // java.nio.ByteBuffer out
        end local 0 // java.lang.CharSequence in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    in  Ljava/lang/CharSequence;
            0    2     1   out  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      in    
      out   

  private static int estimateConsecutiveAscii(java.nio.ByteBuffer, int, int);
    descriptor: (Ljava/nio/ByteBuffer;II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.nio.ByteBuffer buffer
        start local 1 // int index
        start local 2 // int limit
         0: .line 369
            iload 1 /* index */
            istore 3 /* i */
        start local 3 // int i
         1: .line 370
            iload 2 /* limit */
            bipush 7
            isub
            istore 4 /* lim */
        start local 4 // int lim
         2: .line 374
            goto 4
      StackMap locals: int int
      StackMap stack:
         3: iinc 3 /* i */ 8
      StackMap locals:
      StackMap stack:
         4: iload 3 /* i */
            iload 4 /* lim */
            if_icmpge 5
            aload 0 /* buffer */
            iload 3 /* i */
            invokevirtual java.nio.ByteBuffer.getLong:(I)J
            ldc -9187201950435737472
            land
            lconst_0
            lcmp
            ifeq 3
         5: .line 375
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 1 /* index */
            isub
            ireturn
        end local 4 // int lim
        end local 3 // int i
        end local 2 // int limit
        end local 1 // int index
        end local 0 // java.nio.ByteBuffer buffer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  buffer  Ljava/nio/ByteBuffer;
            0    6     1   index  I
            0    6     2   limit  I
            1    6     3       i  I
            2    6     4     lim  I
    MethodParameters:
        Name  Flags
      buffer  
      index   
      limit   

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.protobuf.Utf8 this
         0: .line 1975
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.protobuf.Utf8 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/protobuf/Utf8;
}
SourceFile: "Utf8.java"
NestMembers:
  com.google.protobuf.Utf8$DecodeUtil  com.google.protobuf.Utf8$Processor  com.google.protobuf.Utf8$SafeProcessor  com.google.protobuf.Utf8$UnpairedSurrogateException  com.google.protobuf.Utf8$UnsafeProcessor
InnerClasses:
  private DecodeUtil = com.google.protobuf.Utf8$DecodeUtil of com.google.protobuf.Utf8
  abstract Processor = com.google.protobuf.Utf8$Processor of com.google.protobuf.Utf8
  final SafeProcessor = com.google.protobuf.Utf8$SafeProcessor of com.google.protobuf.Utf8
  UnpairedSurrogateException = com.google.protobuf.Utf8$UnpairedSurrogateException of com.google.protobuf.Utf8
  final UnsafeProcessor = com.google.protobuf.Utf8$UnsafeProcessor of com.google.protobuf.Utf8