final class com.google.protobuf.Utf8$SafeProcessor extends com.google.protobuf.Utf8$Processor
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.protobuf.Utf8$SafeProcessor
  super_class: com.google.protobuf.Utf8$Processor
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.protobuf.Utf8$SafeProcessor this
         0: .line 860
            aload 0 /* this */
            invokespecial com.google.protobuf.Utf8$Processor.<init>:()V
            return
        end local 0 // com.google.protobuf.Utf8$SafeProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/protobuf/Utf8$SafeProcessor;

  int partialIsValidUtf8(int, byte[], int, int);
    descriptor: (I[BII)I
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // com.google.protobuf.Utf8$SafeProcessor this
        start local 1 // int state
        start local 2 // byte[] bytes
        start local 3 // int index
        start local 4 // int limit
         0: .line 863
            iload 1 /* state */
            ifeq 35
         1: .line 871
            iload 3 /* index */
            iload 4 /* limit */
            if_icmplt 3
         2: .line 872
            iload 1 /* state */
            ireturn
         3: .line 874
      StackMap locals:
      StackMap stack:
            iload 1 /* state */
            i2b
            istore 5 /* byte1 */
        start local 5 // int byte1
         4: .line 876
            iload 5 /* byte1 */
            bipush -32
            if_icmpge 8
         5: .line 881
            iload 5 /* byte1 */
            bipush -62
            if_icmplt 7
         6: .line 883
            aload 2 /* bytes */
            iload 3 /* index */
            iinc 3 /* index */ 1
            baload
            bipush -65
            if_icmple 35
         7: .line 884
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
         8: .line 886
      StackMap locals:
      StackMap stack:
            iload 5 /* byte1 */
            bipush -16
            if_icmpge 19
         9: .line 890
            iload 1 /* state */
            bipush 8
            ishr
            iconst_m1
            ixor
            i2b
            istore 6 /* byte2 */
        start local 6 // int byte2
        10: .line 891
            iload 6 /* byte2 */
            ifne 14
        11: .line 892
            aload 2 /* bytes */
            iload 3 /* index */
            iinc 3 /* index */ 1
            baload
            istore 6 /* byte2 */
        12: .line 893
            iload 3 /* index */
            iload 4 /* limit */
            if_icmplt 14
        13: .line 894
            iload 5 /* byte1 */
            iload 6 /* byte2 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
        14: .line 897
      StackMap locals: int
      StackMap stack:
            iload 6 /* byte2 */
            bipush -65
            if_icmpgt 18
        15: .line 899
            iload 5 /* byte1 */
            bipush -32
            if_icmpne 16
            iload 6 /* byte2 */
            bipush -96
            if_icmplt 18
        16: .line 901
      StackMap locals:
      StackMap stack:
            iload 5 /* byte1 */
            bipush -19
            if_icmpne 17
            iload 6 /* byte2 */
            bipush -96
            if_icmpge 18
        17: .line 903
      StackMap locals:
      StackMap stack:
            aload 2 /* bytes */
            iload 3 /* index */
            iinc 3 /* index */ 1
            baload
            bipush -65
            if_icmple 35
        18: .line 904
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 6 // int byte2
        19: .line 910
      StackMap locals:
      StackMap stack:
            iload 1 /* state */
            bipush 8
            ishr
            iconst_m1
            ixor
            i2b
            istore 6 /* byte2 */
        start local 6 // int byte2
        20: .line 911
            iconst_0
            istore 7 /* byte3 */
        start local 7 // int byte3
        21: .line 912
            iload 6 /* byte2 */
            ifne 25
        22: .line 913
            aload 2 /* bytes */
            iload 3 /* index */
            iinc 3 /* index */ 1
            baload
            istore 6 /* byte2 */
        23: .line 914
            iload 3 /* index */
            iload 4 /* limit */
            if_icmplt 26
        24: .line 915
            iload 5 /* byte1 */
            iload 6 /* byte2 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
        25: .line 918
      StackMap locals: int int
      StackMap stack:
            iload 1 /* state */
            bipush 16
            ishr
            i2b
            istore 7 /* byte3 */
        26: .line 920
      StackMap locals:
      StackMap stack:
            iload 7 /* byte3 */
            ifne 30
        27: .line 921
            aload 2 /* bytes */
            iload 3 /* index */
            iinc 3 /* index */ 1
            baload
            istore 7 /* byte3 */
        28: .line 922
            iload 3 /* index */
            iload 4 /* limit */
            if_icmplt 30
        29: .line 923
            iload 5 /* byte1 */
            iload 6 /* byte2 */
            iload 7 /* byte3 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
            ireturn
        30: .line 931
      StackMap locals:
      StackMap stack:
            iload 6 /* byte2 */
            bipush -65
            if_icmpgt 34
        31: .line 936
            iload 5 /* byte1 */
            bipush 28
            ishl
            iload 6 /* byte2 */
            bipush -112
            isub
            iadd
            bipush 30
            ishr
            ifne 34
        32: .line 938
            iload 7 /* byte3 */
            bipush -65
            if_icmpgt 34
        33: .line 940
            aload 2 /* bytes */
            iload 3 /* index */
            iinc 3 /* index */ 1
            baload
            bipush -65
            if_icmple 35
        34: .line 941
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 7 // int byte3
        end local 6 // int byte2
        end local 5 // int byte1
        35: .line 946
      StackMap locals:
      StackMap stack:
            aload 2 /* bytes */
            iload 3 /* index */
            iload 4 /* limit */
            invokestatic com.google.protobuf.Utf8$SafeProcessor.partialIsValidUtf8:([BII)I
            ireturn
        end local 4 // int limit
        end local 3 // int index
        end local 2 // byte[] bytes
        end local 1 // int state
        end local 0 // com.google.protobuf.Utf8$SafeProcessor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   36     0   this  Lcom/google/protobuf/Utf8$SafeProcessor;
            0   36     1  state  I
            0   36     2  bytes  [B
            0   36     3  index  I
            0   36     4  limit  I
            4   35     5  byte1  I
           10   19     6  byte2  I
           20   35     6  byte2  I
           21   35     7  byte3  I
    MethodParameters:
       Name  Flags
      state  
      bytes  
      index  
      limit  

  int partialIsValidUtf8Direct(int, java.nio.ByteBuffer, int, int);
    descriptor: (ILjava/nio/ByteBuffer;II)I
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.google.protobuf.Utf8$SafeProcessor this
        start local 1 // int state
        start local 2 // java.nio.ByteBuffer buffer
        start local 3 // int index
        start local 4 // int limit
         0: .line 952
            aload 0 /* this */
            iload 1 /* state */
            aload 2 /* buffer */
            iload 3 /* index */
            iload 4 /* limit */
            invokevirtual com.google.protobuf.Utf8$SafeProcessor.partialIsValidUtf8Default:(ILjava/nio/ByteBuffer;II)I
            ireturn
        end local 4 // int limit
        end local 3 // int index
        end local 2 // java.nio.ByteBuffer buffer
        end local 1 // int state
        end local 0 // com.google.protobuf.Utf8$SafeProcessor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/google/protobuf/Utf8$SafeProcessor;
            0    1     1   state  I
            0    1     2  buffer  Ljava/nio/ByteBuffer;
            0    1     3   index  I
            0    1     4   limit  I
    MethodParameters:
        Name  Flags
      state   
      buffer  
      index   
      limit   

  java.lang.String decodeUtf8(byte[], int, int);
    descriptor: ([BII)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // com.google.protobuf.Utf8$SafeProcessor this
        start local 1 // byte[] bytes
        start local 2 // int index
        start local 3 // int size
         0: .line 958
            iload 2 /* index */
            iload 3 /* size */
            ior
            aload 1 /* bytes */
            arraylength
            iload 2 /* index */
            isub
            iload 3 /* size */
            isub
            ior
            ifge 4
         1: .line 959
            new java.lang.ArrayIndexOutOfBoundsException
            dup
         2: .line 960
            ldc "buffer length=%d, index=%d, size=%d"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bytes */
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 2 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 3 /* size */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         3: .line 959
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 963
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            istore 4 /* offset */
        start local 4 // int offset
         5: .line 964
            iload 4 /* offset */
            iload 3 /* size */
            iadd
            istore 5 /* limit */
        start local 5 // int limit
         6: .line 968
            iload 3 /* size */
            newarray 5
            astore 6 /* resultArr */
        start local 6 // char[] resultArr
         7: .line 969
            iconst_0
            istore 7 /* resultPos */
        start local 7 // int resultPos
         8: .line 973
            goto 14
         9: .line 974
      StackMap locals: com.google.protobuf.Utf8$SafeProcessor byte[] int int int int char[] int
      StackMap stack:
            aload 1 /* bytes */
            iload 4 /* offset */
            baload
            istore 8 /* b */
        start local 8 // byte b
        10: .line 975
            iload 8 /* b */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
            ifne 12
        11: .line 976
            goto 52
        12: .line 978
      StackMap locals: int
      StackMap stack:
            iinc 4 /* offset */ 1
        13: .line 979
            iload 8 /* b */
            aload 6 /* resultArr */
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
        end local 8 // byte b
        14: .line 973
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 5 /* limit */
            if_icmplt 9
        15: .line 982
            goto 52
        16: .line 983
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            baload
            istore 8 /* byte1 */
        start local 8 // byte byte1
        17: .line 984
            iload 8 /* byte1 */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
            ifeq 27
        18: .line 985
            iload 8 /* byte1 */
            aload 6 /* resultArr */
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
        19: .line 988
            goto 25
        20: .line 989
      StackMap locals: int
      StackMap stack:
            aload 1 /* bytes */
            iload 4 /* offset */
            baload
            istore 9 /* b */
        start local 9 // byte b
        21: .line 990
            iload 9 /* b */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
            ifne 23
        22: .line 991
            goto 52
        23: .line 993
      StackMap locals: int
      StackMap stack:
            iinc 4 /* offset */ 1
        24: .line 994
            iload 9 /* b */
            aload 6 /* resultArr */
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
        end local 9 // byte b
        25: .line 988
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 5 /* limit */
            if_icmplt 20
        26: .line 996
            goto 52
      StackMap locals:
      StackMap stack:
        27: iload 8 /* byte1 */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isTwoBytes:(B)Z
            ifeq 32
        28: .line 997
            iload 4 /* offset */
            iload 5 /* limit */
            if_icmplt 30
        29: .line 998
            invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        30: .line 1000
      StackMap locals:
      StackMap stack:
            iload 8 /* byte1 */
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            baload
            aload 6 /* resultArr */
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleTwoBytes:(BB[CI)V
        31: .line 1001
            goto 52
      StackMap locals:
      StackMap stack:
        32: iload 8 /* byte1 */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isThreeBytes:(B)Z
            ifeq 42
        33: .line 1002
            iload 4 /* offset */
            iload 5 /* limit */
            iconst_1
            isub
            if_icmplt 35
        34: .line 1003
            invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        35: .line 1006
      StackMap locals:
      StackMap stack:
            iload 8 /* byte1 */
        36: .line 1007
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            baload
        37: .line 1008
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            baload
        38: .line 1009
            aload 6 /* resultArr */
        39: .line 1010
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
        40: .line 1005
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleThreeBytes:(BBB[CI)V
        41: .line 1011
            goto 52
        42: .line 1012
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 5 /* limit */
            iconst_2
            isub
            if_icmplt 44
        43: .line 1013
            invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        44: .line 1016
      StackMap locals:
      StackMap stack:
            iload 8 /* byte1 */
        45: .line 1017
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            baload
        46: .line 1018
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            baload
        47: .line 1019
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            baload
        48: .line 1020
            aload 6 /* resultArr */
        49: .line 1021
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
        50: .line 1015
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleFourBytes:(BBBB[CI)V
        51: .line 1023
            iinc 7 /* resultPos */ 1
        end local 8 // byte byte1
        52: .line 982
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 5 /* limit */
            if_icmplt 16
        53: .line 1027
            new java.lang.String
            dup
            aload 6 /* resultArr */
            iconst_0
            iload 7 /* resultPos */
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 7 // int resultPos
        end local 6 // char[] resultArr
        end local 5 // int limit
        end local 4 // int offset
        end local 3 // int size
        end local 2 // int index
        end local 1 // byte[] bytes
        end local 0 // com.google.protobuf.Utf8$SafeProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   54     0       this  Lcom/google/protobuf/Utf8$SafeProcessor;
            0   54     1      bytes  [B
            0   54     2      index  I
            0   54     3       size  I
            5   54     4     offset  I
            6   54     5      limit  I
            7   54     6  resultArr  [C
            8   54     7  resultPos  I
           10   14     8          b  B
           17   52     8      byte1  B
           21   25     9          b  B
    Exceptions:
      throws com.google.protobuf.InvalidProtocolBufferException
    MethodParameters:
       Name  Flags
      bytes  
      index  
      size   

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

  int encodeUtf8(java.lang.CharSequence, byte[], int, int);
    descriptor: (Ljava/lang/CharSequence;[BII)I
    flags: (0x0000) 
    Code:
      stack=6, locals=12, args_size=5
        start local 0 // com.google.protobuf.Utf8$SafeProcessor this
        start local 1 // java.lang.CharSequence in
        start local 2 // byte[] out
        start local 3 // int offset
        start local 4 // int length
         0: .line 1039
            aload 1 /* in */
            invokeinterface java.lang.CharSequence.length:()I
            istore 5 /* utf16Length */
        start local 5 // int utf16Length
         1: .line 1040
            iload 3 /* offset */
            istore 6 /* j */
        start local 6 // int j
         2: .line 1041
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: .line 1042
            iload 3 /* offset */
            iload 4 /* length */
            iadd
            istore 8 /* limit */
        start local 8 // int limit
         4: .line 1045
            goto 7
        start local 9 // char c
         5: .line 1046
      StackMap locals: com.google.protobuf.Utf8$SafeProcessor java.lang.CharSequence byte[] int int int int int int int
      StackMap stack:
            aload 2 /* out */
            iload 6 /* j */
            iload 7 /* i */
            iadd
            iload 9 /* c */
            i2b
            bastore
         6: .line 1045
            iinc 7 /* i */ 1
        end local 9 // char c
      StackMap locals:
      StackMap stack:
         7: iload 7 /* i */
            iload 5 /* utf16Length */
            if_icmpge 9
            iload 7 /* i */
            iload 6 /* j */
            iadd
            iload 8 /* limit */
            if_icmpge 9
            aload 1 /* in */
            iload 7 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            dup
            istore 9 /* c */
        start local 9 // char c
         8: sipush 128
            if_icmplt 5
        end local 9 // char c
         9: .line 1048
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            iload 5 /* utf16Length */
            if_icmpne 11
        10: .line 1049
            iload 6 /* j */
            iload 5 /* utf16Length */
            iadd
            ireturn
        11: .line 1051
      StackMap locals:
      StackMap stack:
            iload 6 /* j */
            iload 7 /* i */
            iadd
            istore 6 /* j */
        12: .line 1052
            goto 42
        13: .line 1053
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 7 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 9 /* c */
        start local 9 // char c
        14: .line 1054
            iload 9 /* c */
            sipush 128
            if_icmpge 17
            iload 6 /* j */
            iload 8 /* limit */
            if_icmpge 17
        15: .line 1055
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            iload 9 /* c */
            i2b
            bastore
        16: .line 1056
            goto 41
      StackMap locals: int
      StackMap stack:
        17: iload 9 /* c */
            sipush 2048
            if_icmpge 21
            iload 6 /* j */
            iload 8 /* limit */
            iconst_2
            isub
            if_icmpgt 21
        18: .line 1057
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            sipush 960
            iload 9 /* c */
            bipush 6
            iushr
            ior
            i2b
            bastore
        19: .line 1058
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            sipush 128
            bipush 63
            iload 9 /* c */
            iand
            ior
            i2b
            bastore
        20: .line 1059
            goto 41
      StackMap locals:
      StackMap stack:
        21: iload 9 /* c */
            ldc 55296
            if_icmplt 22
            ldc 57343
            iload 9 /* c */
            if_icmpge 27
      StackMap locals:
      StackMap stack:
        22: iload 6 /* j */
            iload 8 /* limit */
            iconst_3
            isub
            if_icmpgt 27
        23: .line 1061
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            sipush 480
            iload 9 /* c */
            bipush 12
            iushr
            ior
            i2b
            bastore
        24: .line 1062
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            sipush 128
            bipush 63
            iload 9 /* c */
            bipush 6
            iushr
            iand
            ior
            i2b
            bastore
        25: .line 1063
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            sipush 128
            bipush 63
            iload 9 /* c */
            iand
            ior
            i2b
            bastore
        26: .line 1064
            goto 41
      StackMap locals:
      StackMap stack:
        27: iload 6 /* j */
            iload 8 /* limit */
            iconst_4
            isub
            if_icmpgt 37
        28: .line 1068
            iload 7 /* i */
            iconst_1
            iadd
            aload 1 /* in */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmpeq 30
            iload 9 /* c */
            aload 1 /* in */
            iinc 7 /* i */ 1
            iload 7 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            dup
            istore 10 /* low */
        start local 10 // char low
        29: invokestatic java.lang.Character.isSurrogatePair:(CC)Z
            ifne 31
        end local 10 // char low
        30: .line 1069
      StackMap locals:
      StackMap stack:
            new com.google.protobuf.Utf8$UnpairedSurrogateException
            dup
            iload 7 /* i */
            iconst_1
            isub
            iload 5 /* utf16Length */
            invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
            athrow
        start local 10 // char low
        31: .line 1071
      StackMap locals: int
      StackMap stack:
            iload 9 /* c */
            iload 10 /* low */
            invokestatic java.lang.Character.toCodePoint:(CC)I
            istore 11 /* codePoint */
        start local 11 // int codePoint
        32: .line 1072
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            sipush 240
            iload 11 /* codePoint */
            bipush 18
            iushr
            ior
            i2b
            bastore
        33: .line 1073
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            sipush 128
            bipush 63
            iload 11 /* codePoint */
            bipush 12
            iushr
            iand
            ior
            i2b
            bastore
        34: .line 1074
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            sipush 128
            bipush 63
            iload 11 /* codePoint */
            bipush 6
            iushr
            iand
            ior
            i2b
            bastore
        35: .line 1075
            aload 2 /* out */
            iload 6 /* j */
            iinc 6 /* j */ 1
            sipush 128
            bipush 63
            iload 11 /* codePoint */
            iand
            ior
            i2b
            bastore
        end local 11 // int codePoint
        end local 10 // char low
        36: .line 1076
            goto 41
        37: .line 1079
      StackMap locals:
      StackMap stack:
            ldc 55296
            iload 9 /* c */
            if_icmpgt 40
            iload 9 /* c */
            ldc 57343
            if_icmpgt 40
        38: .line 1080
            iload 7 /* i */
            iconst_1
            iadd
            aload 1 /* in */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmpeq 39
            iload 9 /* c */
            aload 1 /* in */
            iload 7 /* i */
            iconst_1
            iadd
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic java.lang.Character.isSurrogatePair:(CC)Z
            ifne 40
        39: .line 1081
      StackMap locals:
      StackMap stack:
            new com.google.protobuf.Utf8$UnpairedSurrogateException
            dup
            iload 7 /* i */
            iload 5 /* utf16Length */
            invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
            athrow
        40: .line 1083
      StackMap locals:
      StackMap stack:
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed writing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* j */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        41: .line 1052
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
        end local 9 // char c
      StackMap locals:
      StackMap stack:
        42: iload 7 /* i */
            iload 5 /* utf16Length */
            if_icmplt 13
        43: .line 1086
            iload 6 /* j */
            ireturn
        end local 8 // int limit
        end local 7 // int i
        end local 6 // int j
        end local 5 // int utf16Length
        end local 4 // int length
        end local 3 // int offset
        end local 2 // byte[] out
        end local 1 // java.lang.CharSequence in
        end local 0 // com.google.protobuf.Utf8$SafeProcessor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   44     0         this  Lcom/google/protobuf/Utf8$SafeProcessor;
            0   44     1           in  Ljava/lang/CharSequence;
            0   44     2          out  [B
            0   44     3       offset  I
            0   44     4       length  I
            1   44     5  utf16Length  I
            2   44     6            j  I
            3   44     7            i  I
            4   44     8        limit  I
            5    7     9            c  C
            8    9     9            c  C
           14   42     9            c  C
           29   30    10          low  C
           31   36    10          low  C
           32   36    11    codePoint  I
    MethodParameters:
        Name  Flags
      in      
      out     
      offset  
      length  

  void encodeUtf8Direct(java.lang.CharSequence, java.nio.ByteBuffer);
    descriptor: (Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.protobuf.Utf8$SafeProcessor this
        start local 1 // java.lang.CharSequence in
        start local 2 // java.nio.ByteBuffer out
         0: .line 1092
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* out */
            invokevirtual com.google.protobuf.Utf8$SafeProcessor.encodeUtf8Default:(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
         1: .line 1093
            return
        end local 2 // java.nio.ByteBuffer out
        end local 1 // java.lang.CharSequence in
        end local 0 // com.google.protobuf.Utf8$SafeProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/protobuf/Utf8$SafeProcessor;
            0    2     1    in  Ljava/lang/CharSequence;
            0    2     2   out  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      in    
      out   

  private static int partialIsValidUtf8(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int index
        start local 2 // int limit
         0: .line 1098
            goto 2
         1: .line 1099
      StackMap locals:
      StackMap stack:
            iinc 1 /* index */ 1
         2: .line 1098
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iload 2 /* limit */
            if_icmpge 3
            aload 0 /* bytes */
            iload 1 /* index */
            baload
            ifge 1
         3: .line 1102
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iload 2 /* limit */
            if_icmplt 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 0 /* bytes */
            iload 1 /* index */
            iload 2 /* limit */
            invokestatic com.google.protobuf.Utf8$SafeProcessor.partialIsValidUtf8NonAscii:([BII)I
      StackMap locals:
      StackMap stack: int
         5: ireturn
        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
    MethodParameters:
       Name  Flags
      bytes  
      index  
      limit  

  private static int partialIsValidUtf8NonAscii(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int index
        start local 2 // int limit
         0: .line 1112
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iload 2 /* limit */
            if_icmplt 2
         1: .line 1113
            iconst_0
            ireturn
         2: .line 1115
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* index */
            iinc 1 /* index */ 1
            baload
            dup
            istore 3 /* byte1 */
        start local 3 // int byte1
         3: .line 1111
            ifge 0
         4: .line 1117
            iload 3 /* byte1 */
            bipush -32
            if_icmpge 9
         5: .line 1120
            iload 1 /* index */
            iload 2 /* limit */
            if_icmplt 7
         6: .line 1122
            iload 3 /* byte1 */
            ireturn
         7: .line 1127
      StackMap locals: int
      StackMap stack:
            iload 3 /* byte1 */
            bipush -62
            if_icmplt 8
            aload 0 /* bytes */
            iload 1 /* index */
            iinc 1 /* index */ 1
            baload
            bipush -65
            if_icmple 0
         8: .line 1128
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
         9: .line 1130
      StackMap locals:
      StackMap stack:
            iload 3 /* byte1 */
            bipush -16
            if_icmpge 18
        10: .line 1133
            iload 1 /* index */
            iload 2 /* limit */
            iconst_1
            isub
            if_icmplt 12
        11: .line 1134
            aload 0 /* bytes */
            iload 1 /* index */
            iload 2 /* limit */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:([BII)I
            ireturn
        12: .line 1136
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* index */
            iinc 1 /* index */ 1
            baload
            dup
            istore 4 /* byte2 */
        start local 4 // int byte2
        13: bipush -65
            if_icmpgt 17
        14: .line 1138
            iload 3 /* byte1 */
            bipush -32
            if_icmpne 15
            iload 4 /* byte2 */
            bipush -96
            if_icmplt 17
        15: .line 1140
      StackMap locals: int
      StackMap stack:
            iload 3 /* byte1 */
            bipush -19
            if_icmpne 16
            iload 4 /* byte2 */
            bipush -96
            if_icmpge 17
        16: .line 1142
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* index */
            iinc 1 /* index */ 1
            baload
            bipush -65
            if_icmple 0
        17: .line 1143
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 4 // int byte2
        18: .line 1148
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iload 2 /* limit */
            iconst_2
            isub
            if_icmplt 20
        19: .line 1149
            aload 0 /* bytes */
            iload 1 /* index */
            iload 2 /* limit */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:([BII)I
            ireturn
        20: .line 1151
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* index */
            iinc 1 /* index */ 1
            baload
            dup
            istore 4 /* byte2 */
        start local 4 // int byte2
        21: bipush -65
            if_icmpgt 25
        22: .line 1156
            iload 3 /* byte1 */
            bipush 28
            ishl
            iload 4 /* byte2 */
            bipush -112
            isub
            iadd
            bipush 30
            ishr
            ifne 25
        23: .line 1158
            aload 0 /* bytes */
            iload 1 /* index */
            iinc 1 /* index */ 1
            baload
            bipush -65
            if_icmpgt 25
        24: .line 1160
            aload 0 /* bytes */
            iload 1 /* index */
            iinc 1 /* index */ 1
            baload
            bipush -65
            if_icmple 0
        25: .line 1161
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        end local 4 // int byte2
        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   26     0  bytes  [B
            0   26     1  index  I
            0   26     2  limit  I
            3   26     3  byte1  I
           13   18     4  byte2  I
           21   26     4  byte2  I
    MethodParameters:
       Name  Flags
      bytes  
      index  
      limit  
}
SourceFile: "Utf8.java"
NestHost: com.google.protobuf.Utf8
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