public final class jdk.internal.icu.text.UTF16
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.internal.icu.text.UTF16
  super_class: java.lang.Object
{
  public static final int CODEPOINT_MIN_VALUE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

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

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

  private static final int LEAD_SURROGATE_BITMASK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1024

  private static final int TRAIL_SURROGATE_BITMASK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1024

  private static final int SURROGATE_BITMASK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -2048

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

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

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

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

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

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

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.icu.text.UTF16 this
         0: .line 192
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 193
            return
        end local 0 // jdk.internal.icu.text.UTF16 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/icu/text/UTF16;

  public static int charAt(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String source
        start local 1 // int offset16
         0: .line 218
            aload 0 /* source */
            iload 1 /* offset16 */
            invokevirtual java.lang.String.charAt:(I)C
            istore 2 /* single */
        start local 2 // char single
         1: .line 219
            iload 2 /* single */
            ldc 55296
            if_icmpge 3
         2: .line 220
            iload 2 /* single */
            ireturn
         3: .line 222
      StackMap locals: int
      StackMap stack:
            aload 0 /* source */
            iload 1 /* offset16 */
            iload 2 /* single */
            invokestatic jdk.internal.icu.text.UTF16._charAt:(Ljava/lang/String;IC)I
            ireturn
        end local 2 // char single
        end local 1 // int offset16
        end local 0 // java.lang.String source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0    source  Ljava/lang/String;
            0    4     1  offset16  I
            1    4     2    single  C
    MethodParameters:
          Name  Flags
      source    
      offset16  

  private static int _charAt(java.lang.String, int, char);
    descriptor: (Ljava/lang/String;IC)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.String source
        start local 1 // int offset16
        start local 2 // char single
         0: .line 226
            iload 2 /* single */
            ldc 57343
            if_icmple 2
         1: .line 227
            iload 2 /* single */
            ireturn
         2: .line 234
      StackMap locals:
      StackMap stack:
            iload 2 /* single */
            ldc 56319
            if_icmpgt 8
         3: .line 235
            iinc 1 /* offset16 */ 1
         4: .line 236
            aload 0 /* source */
            invokevirtual java.lang.String.length:()I
            iload 1 /* offset16 */
            if_icmpeq 13
         5: .line 237
            aload 0 /* source */
            iload 1 /* offset16 */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* trail */
        start local 3 // char trail
         6: .line 238
            iload 3 /* trail */
            ldc 56320
            if_icmplt 13
            iload 3 /* trail */
            ldc 57343
            if_icmpgt 13
         7: .line 239
            iload 2 /* single */
            iload 3 /* trail */
            invokestatic jdk.internal.icu.impl.UCharacterProperty.getRawSupplementary:(CC)I
            ireturn
        end local 3 // char trail
         8: .line 243
      StackMap locals:
      StackMap stack:
            iinc 1 /* offset16 */ -1
         9: .line 244
            iload 1 /* offset16 */
            iflt 13
        10: .line 246
            aload 0 /* source */
            iload 1 /* offset16 */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* lead */
        start local 3 // char lead
        11: .line 247
            iload 3 /* lead */
            ldc 55296
            if_icmplt 13
            iload 3 /* lead */
            ldc 56319
            if_icmpgt 13
        12: .line 248
            iload 3 /* lead */
            iload 2 /* single */
            invokestatic jdk.internal.icu.impl.UCharacterProperty.getRawSupplementary:(CC)I
            ireturn
        end local 3 // char lead
        13: .line 252
      StackMap locals:
      StackMap stack:
            iload 2 /* single */
            ireturn
        end local 2 // char single
        end local 1 // int offset16
        end local 0 // java.lang.String source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0    source  Ljava/lang/String;
            0   14     1  offset16  I
            0   14     2    single  C
            6    8     3     trail  C
           11   13     3      lead  C
    MethodParameters:
          Name  Flags
      source    
      offset16  
      single    

  public static int charAt(java.lang.CharSequence, int);
    descriptor: (Ljava/lang/CharSequence;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.CharSequence source
        start local 1 // int offset16
         0: .line 274
            aload 0 /* source */
            iload 1 /* offset16 */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 2 /* single */
        start local 2 // char single
         1: .line 275
            iload 2 /* single */
            ldc 55296
            if_icmpge 3
         2: .line 276
            iload 2 /* single */
            ireturn
         3: .line 278
      StackMap locals: int
      StackMap stack:
            aload 0 /* source */
            iload 1 /* offset16 */
            iload 2 /* single */
            invokestatic jdk.internal.icu.text.UTF16._charAt:(Ljava/lang/CharSequence;IC)I
            ireturn
        end local 2 // char single
        end local 1 // int offset16
        end local 0 // java.lang.CharSequence source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0    source  Ljava/lang/CharSequence;
            0    4     1  offset16  I
            1    4     2    single  C
    MethodParameters:
          Name  Flags
      source    
      offset16  

  private static int _charAt(java.lang.CharSequence, int, char);
    descriptor: (Ljava/lang/CharSequence;IC)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.CharSequence source
        start local 1 // int offset16
        start local 2 // char single
         0: .line 282
            iload 2 /* single */
            ldc 57343
            if_icmple 2
         1: .line 283
            iload 2 /* single */
            ireturn
         2: .line 290
      StackMap locals:
      StackMap stack:
            iload 2 /* single */
            ldc 56319
            if_icmpgt 9
         3: .line 291
            iinc 1 /* offset16 */ 1
         4: .line 292
            aload 0 /* source */
            invokeinterface java.lang.CharSequence.length:()I
            iload 1 /* offset16 */
            if_icmpeq 15
         5: .line 293
            aload 0 /* source */
            iload 1 /* offset16 */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 3 /* trail */
        start local 3 // char trail
         6: .line 294
            iload 3 /* trail */
            ldc 56320
            if_icmplt 15
         7: .line 295
            iload 3 /* trail */
            ldc 57343
            if_icmpgt 15
         8: .line 296
            iload 2 /* single */
            iload 3 /* trail */
            invokestatic jdk.internal.icu.impl.UCharacterProperty.getRawSupplementary:(CC)I
            ireturn
        end local 3 // char trail
         9: .line 300
      StackMap locals:
      StackMap stack:
            iinc 1 /* offset16 */ -1
        10: .line 301
            iload 1 /* offset16 */
            iflt 15
        11: .line 303
            aload 0 /* source */
            iload 1 /* offset16 */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 3 /* lead */
        start local 3 // char lead
        12: .line 304
            iload 3 /* lead */
            ldc 55296
            if_icmplt 15
        13: .line 305
            iload 3 /* lead */
            ldc 56319
            if_icmpgt 15
        14: .line 306
            iload 3 /* lead */
            iload 2 /* single */
            invokestatic jdk.internal.icu.impl.UCharacterProperty.getRawSupplementary:(CC)I
            ireturn
        end local 3 // char lead
        15: .line 310
      StackMap locals:
      StackMap stack:
            iload 2 /* single */
            ireturn
        end local 2 // char single
        end local 1 // int offset16
        end local 0 // java.lang.CharSequence source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0    source  Ljava/lang/CharSequence;
            0   16     1  offset16  I
            0   16     2    single  C
            6    9     3     trail  C
           12   15     3      lead  C
    MethodParameters:
          Name  Flags
      source    
      offset16  
      single    

  public static int charAt(char[], int, int, int);
    descriptor: ([CIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // char[] source
        start local 1 // int start
        start local 2 // int limit
        start local 3 // int offset16
         0: .line 332
            iload 3 /* offset16 */
            iload 1 /* start */
            iadd
            istore 3 /* offset16 */
         1: .line 333
            iload 3 /* offset16 */
            iload 1 /* start */
            if_icmplt 2
            iload 3 /* offset16 */
            iload 2 /* limit */
            if_icmplt 3
         2: .line 334
      StackMap locals:
      StackMap stack:
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            iload 3 /* offset16 */
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(I)V
            athrow
         3: .line 337
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            iload 3 /* offset16 */
            caload
            istore 4 /* single */
        start local 4 // char single
         4: .line 338
            iload 4 /* single */
            invokestatic jdk.internal.icu.text.UTF16.isSurrogate:(C)Z
            ifne 6
         5: .line 339
            iload 4 /* single */
            ireturn
         6: .line 345
      StackMap locals: int
      StackMap stack:
            iload 4 /* single */
            ldc 56319
            if_icmpgt 13
         7: .line 346
            iinc 3 /* offset16 */ 1
         8: .line 347
            iload 3 /* offset16 */
            iload 2 /* limit */
            if_icmplt 10
         9: .line 348
            iload 4 /* single */
            ireturn
        10: .line 350
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            iload 3 /* offset16 */
            caload
            istore 5 /* trail */
        start local 5 // char trail
        11: .line 351
            iload 5 /* trail */
            invokestatic jdk.internal.icu.text.UTF16.isTrailSurrogate:(C)Z
            ifeq 19
        12: .line 352
            iload 4 /* single */
            iload 5 /* trail */
            invokestatic jdk.internal.icu.impl.UCharacterProperty.getRawSupplementary:(CC)I
            ireturn
        end local 5 // char trail
        13: .line 356
      StackMap locals:
      StackMap stack:
            iload 3 /* offset16 */
            iload 1 /* start */
            if_icmpne 15
        14: .line 357
            iload 4 /* single */
            ireturn
        15: .line 359
      StackMap locals:
      StackMap stack:
            iinc 3 /* offset16 */ -1
        16: .line 360
            aload 0 /* source */
            iload 3 /* offset16 */
            caload
            istore 5 /* lead */
        start local 5 // char lead
        17: .line 361
            iload 5 /* lead */
            invokestatic jdk.internal.icu.text.UTF16.isLeadSurrogate:(C)Z
            ifeq 19
        18: .line 362
            iload 5 /* lead */
            iload 4 /* single */
            invokestatic jdk.internal.icu.impl.UCharacterProperty.getRawSupplementary:(CC)I
            ireturn
        end local 5 // char lead
        19: .line 364
      StackMap locals:
      StackMap stack:
            iload 4 /* single */
            ireturn
        end local 4 // char single
        end local 3 // int offset16
        end local 2 // int limit
        end local 1 // int start
        end local 0 // char[] source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0    source  [C
            0   20     1     start  I
            0   20     2     limit  I
            0   20     3  offset16  I
            4   20     4    single  C
           11   13     5     trail  C
           17   19     5      lead  C
    MethodParameters:
          Name  Flags
      source    
      start     
      limit     
      offset16  

  public static int getCharCount(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int char32
         0: .line 378
            iload 0 /* char32 */
            ldc 65536
            if_icmpge 2
         1: .line 379
            iconst_1
            ireturn
         2: .line 381
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
        end local 0 // int char32
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  char32  I
    MethodParameters:
        Name  Flags
      char32  

  public static boolean isSurrogate(char);
    descriptor: (C)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char char16
         0: .line 392
            iload 0 /* char16 */
            sipush -2048
            iand
            ldc 55296
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // char char16
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  char16  C
    MethodParameters:
        Name  Flags
      char16  

  public static boolean isTrailSurrogate(char);
    descriptor: (C)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char char16
         0: .line 403
            iload 0 /* char16 */
            sipush -1024
            iand
            ldc 56320
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // char char16
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  char16  C
    MethodParameters:
        Name  Flags
      char16  

  public static boolean isLeadSurrogate(char);
    descriptor: (C)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char char16
         0: .line 414
            iload 0 /* char16 */
            sipush -1024
            iand
            ldc 55296
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // char char16
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  char16  C
    MethodParameters:
        Name  Flags
      char16  

  public static char getLeadSurrogate(int);
    descriptor: (I)C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int char32
         0: .line 429
            iload 0 /* char32 */
            ldc 65536
            if_icmplt 4
         1: .line 430
            ldc 55232
         2: .line 431
            iload 0 /* char32 */
            bipush 10
            ishr
         3: .line 430
            iadd
            i2c
            ireturn
         4: .line 434
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // int char32
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  char32  I
    MethodParameters:
        Name  Flags
      char32  

  public static char getTrailSurrogate(int);
    descriptor: (I)C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int char32
         0: .line 449
            iload 0 /* char32 */
            ldc 65536
            if_icmplt 4
         1: .line 450
            ldc 56320
         2: .line 451
            iload 0 /* char32 */
            sipush 1023
            iand
         3: .line 450
            iadd
            i2c
            ireturn
         4: .line 454
      StackMap locals:
      StackMap stack:
            iload 0 /* char32 */
            i2c
            ireturn
        end local 0 // int char32
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  char32  I
    MethodParameters:
        Name  Flags
      char32  

  public static java.lang.String valueOf(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int char32
         0: .line 471
            iload 0 /* char32 */
            iflt 1
            iload 0 /* char32 */
            ldc 1114111
            if_icmple 2
         1: .line 472
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal codepoint"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 474
      StackMap locals:
      StackMap stack:
            iload 0 /* char32 */
            invokestatic jdk.internal.icu.text.UTF16.toString:(I)Ljava/lang/String;
            areturn
        end local 0 // int char32
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  char32  I
    MethodParameters:
        Name  Flags
      char32  

  public static java.lang.StringBuffer append(java.lang.StringBuffer, int);
    descriptor: (Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.StringBuffer target
        start local 1 // int char32
         0: .line 492
            iload 1 /* char32 */
            iflt 1
            iload 1 /* char32 */
            ldc 1114111
            if_icmple 2
         1: .line 493
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal codepoint: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* char32 */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 497
      StackMap locals:
      StackMap stack:
            iload 1 /* char32 */
            ldc 65536
            if_icmplt 6
         3: .line 499
            aload 0 /* target */
            iload 1 /* char32 */
            invokestatic jdk.internal.icu.text.UTF16.getLeadSurrogate:(I)C
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         4: .line 500
            aload 0 /* target */
            iload 1 /* char32 */
            invokestatic jdk.internal.icu.text.UTF16.getTrailSurrogate:(I)C
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         5: .line 501
            goto 7
         6: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            iload 1 /* char32 */
            i2c
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         7: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            areturn
        end local 1 // int char32
        end local 0 // java.lang.StringBuffer target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  target  Ljava/lang/StringBuffer;
            0    8     1  char32  I
    MethodParameters:
        Name  Flags
      target  
      char32  

  public static int moveCodePointOffset(char[], int, int, int, int);
    descriptor: ([CIIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=5
        start local 0 // char[] source
        start local 1 // int start
        start local 2 // int limit
        start local 3 // int offset16
        start local 4 // int shift32
         0: .line 524
            aload 0 /* source */
            arraylength
            istore 5 /* size */
        start local 5 // int size
         1: .line 527
            iload 3 /* offset16 */
            iload 1 /* start */
            iadd
            istore 8 /* result */
        start local 8 // int result
         2: .line 528
            iload 1 /* start */
            iflt 3
            iload 2 /* limit */
            iload 1 /* start */
            if_icmpge 4
         3: .line 529
      StackMap locals: char[] int int int int int top top int
      StackMap stack:
            new java.lang.StringIndexOutOfBoundsException
            dup
            iload 1 /* start */
            invokespecial java.lang.StringIndexOutOfBoundsException.<init>:(I)V
            athrow
         4: .line 531
      StackMap locals:
      StackMap stack:
            iload 2 /* limit */
            iload 5 /* size */
            if_icmple 6
         5: .line 532
            new java.lang.StringIndexOutOfBoundsException
            dup
            iload 2 /* limit */
            invokespecial java.lang.StringIndexOutOfBoundsException.<init>:(I)V
            athrow
         6: .line 534
      StackMap locals:
      StackMap stack:
            iload 3 /* offset16 */
            iflt 7
            iload 8 /* result */
            iload 2 /* limit */
            if_icmple 8
         7: .line 535
      StackMap locals:
      StackMap stack:
            new java.lang.StringIndexOutOfBoundsException
            dup
            iload 3 /* offset16 */
            invokespecial java.lang.StringIndexOutOfBoundsException.<init>:(I)V
            athrow
         8: .line 537
      StackMap locals:
      StackMap stack:
            iload 4 /* shift32 */
            ifle 21
         9: .line 538
            iload 4 /* shift32 */
            iload 8 /* result */
            iadd
            iload 5 /* size */
            if_icmple 11
        10: .line 539
            new java.lang.StringIndexOutOfBoundsException
            dup
            iload 8 /* result */
            invokespecial java.lang.StringIndexOutOfBoundsException.<init>:(I)V
            athrow
        11: .line 541
      StackMap locals:
      StackMap stack:
            iload 4 /* shift32 */
            istore 6 /* count */
        start local 6 // int count
        12: .line 542
            goto 19
        13: .line 544
      StackMap locals: char[] int int int int int int top int
      StackMap stack:
            aload 0 /* source */
            iload 8 /* result */
            caload
            istore 7 /* ch */
        start local 7 // char ch
        14: .line 545
            iload 7 /* ch */
            invokestatic jdk.internal.icu.text.UTF16.isLeadSurrogate:(C)Z
            ifeq 17
            iload 8 /* result */
            iconst_1
            iadd
            iload 2 /* limit */
            if_icmpge 17
        15: .line 546
            aload 0 /* source */
            iload 8 /* result */
            iconst_1
            iadd
            caload
            invokestatic jdk.internal.icu.text.UTF16.isTrailSurrogate:(C)Z
            ifeq 17
        16: .line 547
            iinc 8 /* result */ 1
        17: .line 549
      StackMap locals: char[] int int int int int int int int
      StackMap stack:
            iinc 6 /* count */ -1
        18: .line 550
            iinc 8 /* result */ 1
        end local 7 // char ch
        19: .line 542
      StackMap locals: char[] int int int int int int top int
      StackMap stack:
            iload 8 /* result */
            iload 2 /* limit */
            if_icmpge 33
            iload 6 /* count */
            ifgt 13
        20: .line 552
            goto 33
        end local 6 // int count
        21: .line 553
      StackMap locals: char[] int int int int int top top int
      StackMap stack:
            iload 8 /* result */
            iload 4 /* shift32 */
            iadd
            iload 1 /* start */
            if_icmpge 23
        22: .line 554
            new java.lang.StringIndexOutOfBoundsException
            dup
            iload 8 /* result */
            invokespecial java.lang.StringIndexOutOfBoundsException.<init>:(I)V
            athrow
        23: .line 556
      StackMap locals:
      StackMap stack:
            iload 4 /* shift32 */
            ineg
            istore 6 /* count */
        start local 6 // int count
        24: goto 32
        25: .line 557
      StackMap locals: char[] int int int int int int top int
      StackMap stack:
            iinc 8 /* result */ -1
        26: .line 558
            iload 8 /* result */
            iload 1 /* start */
            if_icmpge 28
        27: .line 559
            goto 33
        28: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            iload 8 /* result */
            caload
            istore 7 /* ch */
        start local 7 // char ch
        29: .line 562
            iload 7 /* ch */
            invokestatic jdk.internal.icu.text.UTF16.isTrailSurrogate:(C)Z
            ifeq 31
            iload 8 /* result */
            iload 1 /* start */
            if_icmple 31
            aload 0 /* source */
            iload 8 /* result */
            iconst_1
            isub
            caload
            invokestatic jdk.internal.icu.text.UTF16.isLeadSurrogate:(C)Z
            ifeq 31
        30: .line 563
            iinc 8 /* result */ -1
        31: .line 556
      StackMap locals: char[] int int int int int int int int
      StackMap stack:
            iinc 6 /* count */ -1
        end local 7 // char ch
      StackMap locals: char[] int int int int int int top int
      StackMap stack:
        32: iload 6 /* count */
            ifgt 25
        33: .line 567
      StackMap locals:
      StackMap stack:
            iload 6 /* count */
            ifeq 35
        34: .line 568
            new java.lang.StringIndexOutOfBoundsException
            dup
            iload 4 /* shift32 */
            invokespecial java.lang.StringIndexOutOfBoundsException.<init>:(I)V
            athrow
        35: .line 570
      StackMap locals:
      StackMap stack:
            iload 8 /* result */
            iload 1 /* start */
            isub
            istore 8 /* result */
        36: .line 571
            iload 8 /* result */
            ireturn
        end local 8 // int result
        end local 6 // int count
        end local 5 // int size
        end local 4 // int shift32
        end local 3 // int offset16
        end local 2 // int limit
        end local 1 // int start
        end local 0 // char[] source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   37     0    source  [C
            0   37     1     start  I
            0   37     2     limit  I
            0   37     3  offset16  I
            0   37     4   shift32  I
            1   37     5      size  I
           12   21     6     count  I
           24   37     6     count  I
           14   19     7        ch  C
           29   32     7        ch  C
            2   37     8    result  I
    MethodParameters:
          Name  Flags
      source    
      start     
      limit     
      offset16  
      shift32   

  private static java.lang.String toString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int ch
         0: .line 609
            iload 0 /* ch */
            ldc 65536
            if_icmpge 2
         1: .line 610
            iload 0 /* ch */
            i2c
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            areturn
         2: .line 613
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* result */
        start local 1 // java.lang.StringBuilder result
         3: .line 614
            aload 1 /* result */
            iload 0 /* ch */
            invokestatic jdk.internal.icu.text.UTF16.getLeadSurrogate:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 615
            aload 1 /* result */
            iload 0 /* ch */
            invokestatic jdk.internal.icu.text.UTF16.getTrailSurrogate:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 616
            aload 1 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder result
        end local 0 // int ch
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0      ch  I
            3    6     1  result  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      ch    
}
SourceFile: "UTF16.java"