class jdk.jshell.execution.ExecutionControlForwarder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.jshell.execution.ExecutionControlForwarder
  super_class: java.lang.Object
{
  static final java.lang.String NULL_MARKER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "\u0002*\u03C0*NULL*\u03C0*\u0003"

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

  private final jdk.jshell.spi.ExecutionControl ec;
    descriptor: Ljdk/jshell/spi/ExecutionControl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.ObjectInput in;
    descriptor: Ljava/io/ObjectInput;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.ObjectOutput out;
    descriptor: Ljava/io/ObjectOutput;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(jdk.jshell.spi.ExecutionControl, java.io.ObjectInput, java.io.ObjectOutput);
    descriptor: (Ljdk/jshell/spi/ExecutionControl;Ljava/io/ObjectInput;Ljava/io/ObjectOutput;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // jdk.jshell.spi.ExecutionControl ec
        start local 2 // java.io.ObjectInput in
        start local 3 // java.io.ObjectOutput out
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 0 /* this */
            aload 1 /* ec */
            putfield jdk.jshell.execution.ExecutionControlForwarder.ec:Ljdk/jshell/spi/ExecutionControl;
         2: .line 66
            aload 0 /* this */
            aload 2 /* in */
            putfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
         3: .line 67
            aload 0 /* this */
            aload 3 /* out */
            putfield jdk.jshell.execution.ExecutionControlForwarder.out:Ljava/io/ObjectOutput;
         4: .line 68
            return
        end local 3 // java.io.ObjectOutput out
        end local 2 // java.io.ObjectInput in
        end local 1 // jdk.jshell.spi.ExecutionControl ec
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    5     1    ec  Ljdk/jshell/spi/ExecutionControl;
            0    5     2    in  Ljava/io/ObjectInput;
            0    5     3   out  Ljava/io/ObjectOutput;
    MethodParameters:
      Name  Flags
      ec    
      in    
      out   

  private boolean writeSuccess();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
         0: .line 71
            aload 0 /* this */
            bipush 100
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
         1: .line 72
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
         2: .line 73
            iconst_1
            ireturn
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
    Exceptions:
      throws java.io.IOException

  private boolean writeSuccessAndResult(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // java.lang.String result
         0: .line 77
            aload 0 /* this */
            bipush 100
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
         1: .line 78
            aload 0 /* this */
            aload 1 /* result */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeUTF:(Ljava/lang/String;)V
         2: .line 79
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
         3: .line 80
            iconst_1
            ireturn
        end local 1 // java.lang.String result
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    4     1  result  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      result  

  private boolean writeSuccessAndResult(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // java.lang.Object result
         0: .line 84
            aload 0 /* this */
            bipush 100
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
         1: .line 85
            aload 0 /* this */
            aload 1 /* result */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeObject:(Ljava/lang/Object;)V
         2: .line 86
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
         3: .line 87
            iconst_1
            ireturn
        end local 1 // java.lang.Object result
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    4     1  result  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      result  

  private void writeStatus(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // int status
         0: .line 91
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.out:Ljava/io/ObjectOutput;
            iload 1 /* status */
            invokeinterface java.io.ObjectOutput.writeInt:(I)V
         1: .line 92
            return
        end local 1 // int status
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    2     1  status  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      status  

  private void writeObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // java.lang.Object o
         0: .line 95
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.out:Ljava/io/ObjectOutput;
            aload 1 /* o */
            invokeinterface java.io.ObjectOutput.writeObject:(Ljava/lang/Object;)V
         1: .line 96
            return
        end local 1 // java.lang.Object o
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    2     1     o  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      o     

  private void writeInt(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // int i
         0: .line 99
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.out:Ljava/io/ObjectOutput;
            iload 1 /* i */
            invokeinterface java.io.ObjectOutput.writeInt:(I)V
         1: .line 100
            return
        end local 1 // int i
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    2     1     i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      i     

  private void writeNullOrUTF(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // java.lang.String s
         0: .line 103
            aload 0 /* this */
            aload 1 /* s */
            ifnonnull 1
            ldc "\u0002*\u03C0*NULL*\u03C0*\u0003"
            goto 2
      StackMap locals:
      StackMap stack: jdk.jshell.execution.ExecutionControlForwarder
         1: aload 1 /* s */
      StackMap locals: jdk.jshell.execution.ExecutionControlForwarder java.lang.String
      StackMap stack: jdk.jshell.execution.ExecutionControlForwarder java.lang.String
         2: invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeUTF:(Ljava/lang/String;)V
         3: .line 104
            return
        end local 1 // java.lang.String s
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    4     1     s  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  private void writeUTF(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // java.lang.String s
         0: .line 107
            aload 1 /* s */
            ifnonnull 3
         1: .line 108
            ldc ""
            astore 1 /* s */
         2: .line 109
            goto 5
      StackMap locals:
      StackMap stack:
         3: aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            sipush 21844
            if_icmple 5
         4: .line 111
            aload 1 /* s */
            iconst_0
            sipush 21844
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* s */
         5: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.out:Ljava/io/ObjectOutput;
            aload 1 /* s */
            invokeinterface java.io.ObjectOutput.writeUTF:(Ljava/lang/String;)V
         6: .line 114
            return
        end local 1 // java.lang.String s
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    7     1     s  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  private void flush();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
         0: .line 117
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.out:Ljava/io/ObjectOutput;
            invokeinterface java.io.ObjectOutput.flush:()V
         1: .line 118
            return
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
    Exceptions:
      throws java.io.IOException

  private boolean processCommand();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
         0: .line 122
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readInt:()I
            istore 1 /* prefix */
        start local 1 // int prefix
         1: .line 123
            iload 1 /* prefix */
            ldc -1069694915
            if_icmpeq 3
         2: .line 124
            new jdk.jshell.spi.ExecutionControl$EngineTerminationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid command prefix: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* prefix */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial jdk.jshell.spi.ExecutionControl$EngineTerminationException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 126
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readUTF:()Ljava/lang/String;
            astore 2 /* cmd */
        start local 2 // java.lang.String cmd
         4: .line 127
            aload 2 /* cmd */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 7
          -1835626261: 5
          -1835412473: 6
          -1252757709: 7
          -1197896396: 8
          -1078226317: 9
            418417882: 10
           1108549437: 11
              default: 42
          }
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         5: aload 3
            ldc "CMD_LOAD"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 42
      StackMap locals:
      StackMap stack:
         6: aload 3
            ldc "CMD_STOP"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 34
            goto 42
      StackMap locals:
      StackMap stack:
         7: aload 3
            ldc "CMD_REDEFINE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 42
      StackMap locals:
      StackMap stack:
         8: aload 3
            ldc "CMD_VAR_VALUE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 42
      StackMap locals:
      StackMap stack:
         9: aload 3
            ldc "CMD_CLOSE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 38
            goto 42
      StackMap locals:
      StackMap stack:
        10: aload 3
            ldc "CMD_ADD_CLASSPATH"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 30
            goto 42
      StackMap locals:
      StackMap stack:
        11: aload 3
            ldc "CMD_INVOKE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
            goto 42
        12: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readObject:()Ljava/lang/Object;
            checkcast jdk.jshell.spi.ExecutionControl$ClassBytecodes[]
            astore 4 /* cbcs */
        start local 4 // jdk.jshell.spi.ExecutionControl$ClassBytecodes[] cbcs
        13: .line 131
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.ec:Ljdk/jshell/spi/ExecutionControl;
            aload 4 /* cbcs */
            invokeinterface jdk.jshell.spi.ExecutionControl.load:([Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)V
        14: .line 132
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeSuccess:()Z
        15: ireturn
        end local 4 // jdk.jshell.spi.ExecutionControl$ClassBytecodes[] cbcs
        16: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readObject:()Ljava/lang/Object;
            checkcast jdk.jshell.spi.ExecutionControl$ClassBytecodes[]
            astore 4 /* cbcs */
        start local 4 // jdk.jshell.spi.ExecutionControl$ClassBytecodes[] cbcs
        17: .line 137
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.ec:Ljdk/jshell/spi/ExecutionControl;
            aload 4 /* cbcs */
            invokeinterface jdk.jshell.spi.ExecutionControl.redefine:([Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)V
        18: .line 138
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeSuccess:()Z
        19: ireturn
        end local 4 // jdk.jshell.spi.ExecutionControl$ClassBytecodes[] cbcs
        20: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readUTF:()Ljava/lang/String;
            astore 4 /* className */
        start local 4 // java.lang.String className
        21: .line 143
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readUTF:()Ljava/lang/String;
            astore 5 /* methodName */
        start local 5 // java.lang.String methodName
        22: .line 144
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.ec:Ljdk/jshell/spi/ExecutionControl;
            aload 4 /* className */
            aload 5 /* methodName */
            invokeinterface jdk.jshell.spi.ExecutionControl.invoke:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* res */
        start local 6 // java.lang.String res
        23: .line 145
            aload 0 /* this */
            aload 6 /* res */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeSuccessAndResult:(Ljava/lang/String;)Z
        24: ireturn
        end local 6 // java.lang.String res
        end local 5 // java.lang.String methodName
        end local 4 // java.lang.String className
        25: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readUTF:()Ljava/lang/String;
            astore 4 /* className */
        start local 4 // java.lang.String className
        26: .line 150
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readUTF:()Ljava/lang/String;
            astore 5 /* varName */
        start local 5 // java.lang.String varName
        27: .line 151
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.ec:Ljdk/jshell/spi/ExecutionControl;
            aload 4 /* className */
            aload 5 /* varName */
            invokeinterface jdk.jshell.spi.ExecutionControl.varValue:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* res */
        start local 6 // java.lang.String res
        28: .line 152
            aload 0 /* this */
            aload 6 /* res */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeSuccessAndResult:(Ljava/lang/String;)Z
        29: ireturn
        end local 6 // java.lang.String res
        end local 5 // java.lang.String varName
        end local 4 // java.lang.String className
        30: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readUTF:()Ljava/lang/String;
            astore 4 /* cp */
        start local 4 // java.lang.String cp
        31: .line 157
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.ec:Ljdk/jshell/spi/ExecutionControl;
            aload 4 /* cp */
            invokeinterface jdk.jshell.spi.ExecutionControl.addToClasspath:(Ljava/lang/String;)V
        32: .line 158
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeSuccess:()Z
        33: ireturn
        end local 4 // java.lang.String cp
        34: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.ec:Ljdk/jshell/spi/ExecutionControl;
            invokeinterface jdk.jshell.spi.ExecutionControl.stop:()V
        35: .line 164
            goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        36: pop
        37: .line 167
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        38: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.ec:Ljdk/jshell/spi/ExecutionControl;
            invokeinterface jdk.jshell.spi.ExecutionControl.close:()V
        39: .line 173
            goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        40: pop
        41: .line 176
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        42: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.in:Ljava/io/ObjectInput;
            invokeinterface java.io.ObjectInput.readObject:()Ljava/lang/Object;
            astore 4 /* arg */
        start local 4 // java.lang.Object arg
        43: .line 180
            aload 0 /* this */
            getfield jdk.jshell.execution.ExecutionControlForwarder.ec:Ljdk/jshell/spi/ExecutionControl;
            aload 2 /* cmd */
            aload 4 /* arg */
            invokeinterface jdk.jshell.spi.ExecutionControl.extensionCommand:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* res */
        start local 5 // java.lang.Object res
        44: .line 181
            aload 0 /* this */
            aload 5 /* res */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeSuccessAndResult:(Ljava/lang/Object;)Z
        45: ireturn
        end local 5 // java.lang.Object res
        end local 4 // java.lang.Object arg
        end local 2 // java.lang.String cmd
        end local 1 // int prefix
        46: .line 184
      StackMap locals: jdk.jshell.execution.ExecutionControlForwarder
      StackMap stack: java.io.IOException
            astore 1 /* ex */
        start local 1 // java.io.IOException ex
        47: .line 186
            aload 1 /* ex */
            athrow
        end local 1 // java.io.IOException ex
        48: .line 187
      StackMap locals:
      StackMap stack: jdk.jshell.spi.ExecutionControl$EngineTerminationException
            astore 1 /* ex */
        start local 1 // jdk.jshell.spi.ExecutionControl$EngineTerminationException ex
        49: .line 188
            aload 0 /* this */
            bipush 101
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
        50: .line 189
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.spi.ExecutionControl$EngineTerminationException.getMessage:()Ljava/lang/String;
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeUTF:(Ljava/lang/String;)V
        51: .line 190
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
        52: .line 191
            iconst_0
            ireturn
        end local 1 // jdk.jshell.spi.ExecutionControl$EngineTerminationException ex
        53: .line 192
      StackMap locals:
      StackMap stack: jdk.jshell.spi.ExecutionControl$NotImplementedException
            astore 1 /* ex */
        start local 1 // jdk.jshell.spi.ExecutionControl$NotImplementedException ex
        54: .line 193
            aload 0 /* this */
            bipush 102
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
        55: .line 194
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.spi.ExecutionControl$NotImplementedException.getMessage:()Ljava/lang/String;
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeUTF:(Ljava/lang/String;)V
        56: .line 195
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
        57: .line 196
            iconst_1
            ireturn
        end local 1 // jdk.jshell.spi.ExecutionControl$NotImplementedException ex
        58: .line 197
      StackMap locals:
      StackMap stack: jdk.jshell.spi.ExecutionControl$InternalException
            astore 1 /* ex */
        start local 1 // jdk.jshell.spi.ExecutionControl$InternalException ex
        59: .line 198
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeInternalException:(Ljava/lang/Throwable;)V
        60: .line 199
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
        61: .line 200
            iconst_1
            ireturn
        end local 1 // jdk.jshell.spi.ExecutionControl$InternalException ex
        62: .line 201
      StackMap locals:
      StackMap stack: jdk.jshell.spi.ExecutionControl$ClassInstallException
            astore 1 /* ex */
        start local 1 // jdk.jshell.spi.ExecutionControl$ClassInstallException ex
        63: .line 202
            aload 0 /* this */
            bipush 106
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
        64: .line 203
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.spi.ExecutionControl$ClassInstallException.getMessage:()Ljava/lang/String;
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeUTF:(Ljava/lang/String;)V
        65: .line 204
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.spi.ExecutionControl$ClassInstallException.installed:()[Z
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeObject:(Ljava/lang/Object;)V
        66: .line 205
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
        67: .line 206
            iconst_1
            ireturn
        end local 1 // jdk.jshell.spi.ExecutionControl$ClassInstallException ex
        68: .line 207
      StackMap locals:
      StackMap stack: jdk.jshell.spi.ExecutionControl$UserException
            astore 1 /* ex */
        start local 1 // jdk.jshell.spi.ExecutionControl$UserException ex
        69: .line 208
            aload 0 /* this */
            bipush 108
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
        70: .line 209
            aload 1 /* ex */
            astore 2 /* e */
        start local 2 // java.lang.Throwable e
        71: goto 82
        72: .line 210
      StackMap locals: jdk.jshell.spi.ExecutionControl$UserException java.lang.Throwable
      StackMap stack:
            aload 2 /* e */
            instanceof jdk.jshell.spi.ExecutionControl$UserException
            ifeq 76
        73: .line 211
            aload 0 /* this */
            aload 2 /* e */
            checkcast jdk.jshell.spi.ExecutionControl$UserException
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeUserException:(Ljdk/jshell/spi/ExecutionControl$UserException;)V
        74: .line 212
            aload 2 /* e */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 2 /* e */
        75: .line 213
            goto 82
      StackMap locals:
      StackMap stack:
        76: aload 2 /* e */
            instanceof jdk.jshell.spi.ExecutionControl$ResolutionException
            ifeq 80
        77: .line 214
            aload 0 /* this */
            aload 2 /* e */
            checkcast jdk.jshell.spi.ExecutionControl$ResolutionException
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeResolutionException:(Ljdk/jshell/spi/ExecutionControl$ResolutionException;)V
        78: .line 215
            aconst_null
            astore 2 /* e */
        79: .line 216
            goto 82
        80: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeInternalException:(Ljava/lang/Throwable;)V
        81: .line 218
            aconst_null
            astore 2 /* e */
        82: .line 209
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            ifnonnull 72
        end local 2 // java.lang.Throwable e
        83: .line 221
            aload 0 /* this */
            bipush 100
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
        84: .line 222
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
        85: .line 223
            iconst_1
            ireturn
        end local 1 // jdk.jshell.spi.ExecutionControl$UserException ex
        86: .line 224
      StackMap locals: jdk.jshell.execution.ExecutionControlForwarder
      StackMap stack: jdk.jshell.spi.ExecutionControl$ResolutionException
            astore 1 /* ex */
        start local 1 // jdk.jshell.spi.ExecutionControl$ResolutionException ex
        87: .line 225
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeResolutionException:(Ljdk/jshell/spi/ExecutionControl$ResolutionException;)V
        88: .line 226
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
        89: .line 227
            iconst_1
            ireturn
        end local 1 // jdk.jshell.spi.ExecutionControl$ResolutionException ex
        90: .line 228
      StackMap locals:
      StackMap stack: jdk.jshell.spi.ExecutionControl$StoppedException
            pop
        91: .line 229
            aload 0 /* this */
            bipush 107
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
        92: .line 230
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
        93: .line 231
            iconst_1
            ireturn
        94: .line 232
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* ex */
        start local 1 // java.lang.Throwable ex
        95: .line 234
            aload 0 /* this */
            bipush 101
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
        96: .line 235
            aload 1 /* ex */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
        97: .line 236
            aload 0 /* this */
            aload 2 /* msg */
            ifnonnull 98
            aload 1 /* ex */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            goto 99
      StackMap locals: jdk.jshell.execution.ExecutionControlForwarder java.lang.Throwable java.lang.String
      StackMap stack: jdk.jshell.execution.ExecutionControlForwarder
        98: aload 2 /* msg */
      StackMap locals: jdk.jshell.execution.ExecutionControlForwarder java.lang.Throwable java.lang.String
      StackMap stack: jdk.jshell.execution.ExecutionControlForwarder java.lang.String
        99: invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeUTF:(Ljava/lang/String;)V
       100: .line 237
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.flush:()V
       101: .line 238
            iconst_0
            ireturn
        end local 2 // java.lang.String msg
        end local 1 // java.lang.Throwable ex
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0  102     0        this  Ljdk/jshell/execution/ExecutionControlForwarder;
            1   46     1      prefix  I
            4   46     2         cmd  Ljava/lang/String;
           13   16     4        cbcs  [Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;
           17   20     4        cbcs  [Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;
           21   25     4   className  Ljava/lang/String;
           22   25     5  methodName  Ljava/lang/String;
           23   25     6         res  Ljava/lang/String;
           26   30     4   className  Ljava/lang/String;
           27   30     5     varName  Ljava/lang/String;
           28   30     6         res  Ljava/lang/String;
           31   34     4          cp  Ljava/lang/String;
           43   46     4         arg  Ljava/lang/Object;
           44   46     5         res  Ljava/lang/Object;
           47   48     1          ex  Ljava/io/IOException;
           49   53     1          ex  Ljdk/jshell/spi/ExecutionControl$EngineTerminationException;
           54   58     1          ex  Ljdk/jshell/spi/ExecutionControl$NotImplementedException;
           59   62     1          ex  Ljdk/jshell/spi/ExecutionControl$InternalException;
           63   68     1          ex  Ljdk/jshell/spi/ExecutionControl$ClassInstallException;
           69   86     1          ex  Ljdk/jshell/spi/ExecutionControl$UserException;
           71   83     2           e  Ljava/lang/Throwable;
           87   90     1          ex  Ljdk/jshell/spi/ExecutionControl$ResolutionException;
           95  102     1          ex  Ljava/lang/Throwable;
           97  102     2         msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
          34    35      36  Class java.lang.Throwable
          38    39      40  Class java.lang.Throwable
           0    15      46  Class java.io.IOException
          16    19      46  Class java.io.IOException
          20    24      46  Class java.io.IOException
          25    29      46  Class java.io.IOException
          30    33      46  Class java.io.IOException
          34    37      46  Class java.io.IOException
          38    41      46  Class java.io.IOException
          42    45      46  Class java.io.IOException
           0    15      48  Class jdk.jshell.spi.ExecutionControl$EngineTerminationException
          16    19      48  Class jdk.jshell.spi.ExecutionControl$EngineTerminationException
          20    24      48  Class jdk.jshell.spi.ExecutionControl$EngineTerminationException
          25    29      48  Class jdk.jshell.spi.ExecutionControl$EngineTerminationException
          30    33      48  Class jdk.jshell.spi.ExecutionControl$EngineTerminationException
          34    37      48  Class jdk.jshell.spi.ExecutionControl$EngineTerminationException
          38    41      48  Class jdk.jshell.spi.ExecutionControl$EngineTerminationException
          42    45      48  Class jdk.jshell.spi.ExecutionControl$EngineTerminationException
           0    15      53  Class jdk.jshell.spi.ExecutionControl$NotImplementedException
          16    19      53  Class jdk.jshell.spi.ExecutionControl$NotImplementedException
          20    24      53  Class jdk.jshell.spi.ExecutionControl$NotImplementedException
          25    29      53  Class jdk.jshell.spi.ExecutionControl$NotImplementedException
          30    33      53  Class jdk.jshell.spi.ExecutionControl$NotImplementedException
          34    37      53  Class jdk.jshell.spi.ExecutionControl$NotImplementedException
          38    41      53  Class jdk.jshell.spi.ExecutionControl$NotImplementedException
          42    45      53  Class jdk.jshell.spi.ExecutionControl$NotImplementedException
           0    15      58  Class jdk.jshell.spi.ExecutionControl$InternalException
          16    19      58  Class jdk.jshell.spi.ExecutionControl$InternalException
          20    24      58  Class jdk.jshell.spi.ExecutionControl$InternalException
          25    29      58  Class jdk.jshell.spi.ExecutionControl$InternalException
          30    33      58  Class jdk.jshell.spi.ExecutionControl$InternalException
          34    37      58  Class jdk.jshell.spi.ExecutionControl$InternalException
          38    41      58  Class jdk.jshell.spi.ExecutionControl$InternalException
          42    45      58  Class jdk.jshell.spi.ExecutionControl$InternalException
           0    15      62  Class jdk.jshell.spi.ExecutionControl$ClassInstallException
          16    19      62  Class jdk.jshell.spi.ExecutionControl$ClassInstallException
          20    24      62  Class jdk.jshell.spi.ExecutionControl$ClassInstallException
          25    29      62  Class jdk.jshell.spi.ExecutionControl$ClassInstallException
          30    33      62  Class jdk.jshell.spi.ExecutionControl$ClassInstallException
          34    37      62  Class jdk.jshell.spi.ExecutionControl$ClassInstallException
          38    41      62  Class jdk.jshell.spi.ExecutionControl$ClassInstallException
          42    45      62  Class jdk.jshell.spi.ExecutionControl$ClassInstallException
           0    15      68  Class jdk.jshell.spi.ExecutionControl$UserException
          16    19      68  Class jdk.jshell.spi.ExecutionControl$UserException
          20    24      68  Class jdk.jshell.spi.ExecutionControl$UserException
          25    29      68  Class jdk.jshell.spi.ExecutionControl$UserException
          30    33      68  Class jdk.jshell.spi.ExecutionControl$UserException
          34    37      68  Class jdk.jshell.spi.ExecutionControl$UserException
          38    41      68  Class jdk.jshell.spi.ExecutionControl$UserException
          42    45      68  Class jdk.jshell.spi.ExecutionControl$UserException
           0    15      86  Class jdk.jshell.spi.ExecutionControl$ResolutionException
          16    19      86  Class jdk.jshell.spi.ExecutionControl$ResolutionException
          20    24      86  Class jdk.jshell.spi.ExecutionControl$ResolutionException
          25    29      86  Class jdk.jshell.spi.ExecutionControl$ResolutionException
          30    33      86  Class jdk.jshell.spi.ExecutionControl$ResolutionException
          34    37      86  Class jdk.jshell.spi.ExecutionControl$ResolutionException
          38    41      86  Class jdk.jshell.spi.ExecutionControl$ResolutionException
          42    45      86  Class jdk.jshell.spi.ExecutionControl$ResolutionException
           0    15      90  Class jdk.jshell.spi.ExecutionControl$StoppedException
          16    19      90  Class jdk.jshell.spi.ExecutionControl$StoppedException
          20    24      90  Class jdk.jshell.spi.ExecutionControl$StoppedException
          25    29      90  Class jdk.jshell.spi.ExecutionControl$StoppedException
          30    33      90  Class jdk.jshell.spi.ExecutionControl$StoppedException
          34    37      90  Class jdk.jshell.spi.ExecutionControl$StoppedException
          38    41      90  Class jdk.jshell.spi.ExecutionControl$StoppedException
          42    45      90  Class jdk.jshell.spi.ExecutionControl$StoppedException
           0    15      94  Class java.lang.Throwable
          16    19      94  Class java.lang.Throwable
          20    24      94  Class java.lang.Throwable
          25    29      94  Class java.lang.Throwable
          30    33      94  Class java.lang.Throwable
          34    37      94  Class java.lang.Throwable
          38    41      94  Class java.lang.Throwable
          42    45      94  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException

  void writeInternalException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // java.lang.Throwable ex
         0: .line 243
            aload 0 /* this */
            bipush 103
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
         1: .line 244
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeUTF:(Ljava/lang/String;)V
         2: .line 245
            return
        end local 1 // java.lang.Throwable ex
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    3     1    ex  Ljava/lang/Throwable;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ex    

  void writeUserException(jdk.jshell.spi.ExecutionControl$UserException);
    descriptor: (Ljdk/jshell/spi/ExecutionControl$UserException;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // jdk.jshell.spi.ExecutionControl$UserException ex
         0: .line 248
            aload 0 /* this */
            bipush 104
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
         1: .line 249
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.spi.ExecutionControl$UserException.getMessage:()Ljava/lang/String;
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeNullOrUTF:(Ljava/lang/String;)V
         2: .line 250
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.spi.ExecutionControl$UserException.causeExceptionClass:()Ljava/lang/String;
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeUTF:(Ljava/lang/String;)V
         3: .line 251
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.spi.ExecutionControl$UserException.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeObject:(Ljava/lang/Object;)V
         4: .line 252
            return
        end local 1 // jdk.jshell.spi.ExecutionControl$UserException ex
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    5     1    ex  Ljdk/jshell/spi/ExecutionControl$UserException;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ex    

  void writeResolutionException(jdk.jshell.spi.ExecutionControl$ResolutionException);
    descriptor: (Ljdk/jshell/spi/ExecutionControl$ResolutionException;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
        start local 1 // jdk.jshell.spi.ExecutionControl$ResolutionException ex
         0: .line 255
            aload 0 /* this */
            bipush 105
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeStatus:(I)V
         1: .line 256
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.spi.ExecutionControl$ResolutionException.id:()I
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeInt:(I)V
         2: .line 257
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual jdk.jshell.spi.ExecutionControl$ResolutionException.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.writeObject:(Ljava/lang/Object;)V
         3: .line 258
            return
        end local 1 // jdk.jshell.spi.ExecutionControl$ResolutionException ex
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
            0    4     1    ex  Ljdk/jshell/spi/ExecutionControl$ResolutionException;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ex    

  void commandLoop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.execution.ExecutionControlForwarder this
         0: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.ExecutionControlForwarder.processCommand:()Z
            ifne 0
         1: .line 265
            goto 3
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 268
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.jshell.execution.ExecutionControlForwarder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/jshell/execution/ExecutionControlForwarder;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
}
SourceFile: "ExecutionControlForwarder.java"
InnerClasses:
  public final ClassBytecodes = jdk.jshell.spi.ExecutionControl$ClassBytecodes of jdk.jshell.spi.ExecutionControl
  public ClassInstallException = jdk.jshell.spi.ExecutionControl$ClassInstallException of jdk.jshell.spi.ExecutionControl
  public EngineTerminationException = jdk.jshell.spi.ExecutionControl$EngineTerminationException of jdk.jshell.spi.ExecutionControl
  public InternalException = jdk.jshell.spi.ExecutionControl$InternalException of jdk.jshell.spi.ExecutionControl
  public NotImplementedException = jdk.jshell.spi.ExecutionControl$NotImplementedException of jdk.jshell.spi.ExecutionControl
  public ResolutionException = jdk.jshell.spi.ExecutionControl$ResolutionException of jdk.jshell.spi.ExecutionControl
  public StoppedException = jdk.jshell.spi.ExecutionControl$StoppedException of jdk.jshell.spi.ExecutionControl
  public UserException = jdk.jshell.spi.ExecutionControl$UserException of jdk.jshell.spi.ExecutionControl