public class com.sun.tools.script.shell.Main
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.script.shell.Main
  super_class: java.lang.Object
{
  private static final int EXIT_SUCCESS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

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

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

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

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

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

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

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

  private static final java.lang.String DEFAULT_LANGUAGE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "js"

  private static java.util.List<com.sun.tools.script.shell.Main$Command> scripts;
    descriptor: Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/List<Lcom/sun/tools/script/shell/Main$Command;>;

  private static javax.script.ScriptEngineManager engineManager;
    descriptor: Ljavax/script/ScriptEngineManager;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.util.Map<java.lang.String, javax.script.ScriptEngine> engines;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/Map<Ljava/lang/String;Ljavax/script/ScriptEngine;>;

  private static java.util.ResourceBundle msgRes;
    descriptor: Ljava/util/ResourceBundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.String BUNDLE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.String PROGRAM_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 579
            ldc "com.sun.tools.script.shell.messages"
            putstatic com.sun.tools.script.shell.Main.BUNDLE_NAME:Ljava/lang/String;
         1: .line 580
            ldc "jrunscript"
            putstatic com.sun.tools.script.shell.Main.PROGRAM_NAME:Ljava/lang/String;
         2: .line 583
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic com.sun.tools.script.shell.Main.scripts:Ljava/util/List;
         3: .line 584
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic com.sun.tools.script.shell.Main.engines:Ljava/util/Map;
         4: .line 585
            getstatic com.sun.tools.script.shell.Main.BUNDLE_NAME:Ljava/lang/String;
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/ResourceBundle;
            putstatic com.sun.tools.script.shell.Main.msgRes:Ljava/util/ResourceBundle;
         5: .line 586
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.script.shell.Main this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.tools.script.shell.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/script/shell/Main;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 44
            aload 0 /* args */
            invokestatic com.sun.tools.script.shell.Main.processOptions:([Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* scriptArgs */
        start local 1 // java.lang.String[] scriptArgs
         1: .line 47
            getstatic com.sun.tools.script.shell.Main.scripts:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.String[] java.lang.String[] top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.script.shell.Main$Command
            astore 2 /* cmd */
        start local 2 // com.sun.tools.script.shell.Main$Command cmd
         3: .line 48
            aload 2 /* cmd */
            aload 1 /* scriptArgs */
            invokeinterface com.sun.tools.script.shell.Main$Command.run:([Ljava/lang/String;)V
        end local 2 // com.sun.tools.script.shell.Main$Command cmd
         4: .line 47
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 51
            iconst_0
            invokestatic java.lang.System.exit:(I)V
         6: .line 52
            return
        end local 1 // java.lang.String[] scriptArgs
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        args  [Ljava/lang/String;
            1    7     1  scriptArgs  [Ljava/lang/String;
            3    4     2         cmd  Lcom/sun/tools/script/shell/Main$Command;
    MethodParameters:
      Name  Flags
      args  

  private static java.lang.String[] processOptions(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 66
            ldc "js"
            astore 1 /* currentLanguage */
        start local 1 // java.lang.String currentLanguage
         1: .line 68
            aconst_null
            astore 2 /* currentEncoding */
        start local 2 // java.lang.String currentEncoding
         2: .line 71
            aload 0 /* args */
            invokestatic com.sun.tools.script.shell.Main.checkClassPath:([Ljava/lang/String;)V
         3: .line 74
            iconst_0
            istore 3 /* seenScript */
        start local 3 // boolean seenScript
         4: .line 76
            iconst_0
            istore 4 /* seenStdin */
        start local 4 // boolean seenStdin
         5: .line 77
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 75
         7: .line 78
      StackMap locals: java.lang.String[] java.lang.String java.lang.String int int int
      StackMap stack:
            aload 0 /* args */
            iload 5 /* i */
            aaload
            astore 6 /* arg */
        start local 6 // java.lang.String arg
         8: .line 79
            aload 6 /* arg */
            ldc "-classpath"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 80
            aload 6 /* arg */
            ldc "-cp"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 82
      StackMap locals: java.lang.String
      StackMap stack:
            iinc 5 /* i */ 1
        11: .line 83
            goto 74
        12: .line 87
      StackMap locals:
      StackMap stack:
            aload 6 /* arg */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 24
        13: .line 90
            iload 3 /* seenScript */
            ifeq 17
        14: .line 93
            aload 0 /* args */
            arraylength
            iload 5 /* i */
            isub
            istore 7 /* numScriptArgs */
        start local 7 // int numScriptArgs
        15: .line 94
            iload 5 /* i */
            istore 8 /* startScriptArg */
        start local 8 // int startScriptArg
        16: .line 95
            goto 21
        end local 8 // int startScriptArg
        end local 7 // int numScriptArgs
        17: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            arraylength
            iload 5 /* i */
            isub
            iconst_1
            isub
            istore 7 /* numScriptArgs */
        start local 7 // int numScriptArgs
        18: .line 100
            iload 5 /* i */
            iconst_1
            iadd
            istore 8 /* startScriptArg */
        start local 8 // int startScriptArg
        19: .line 101
            aload 1 /* currentLanguage */
            invokestatic com.sun.tools.script.shell.Main.getScriptEngine:(Ljava/lang/String;)Ljavax/script/ScriptEngine;
            astore 9 /* se */
        start local 9 // javax.script.ScriptEngine se
        20: .line 102
            aload 9 /* se */
            aload 0 /* args */
            iload 5 /* i */
            aaload
            aload 2 /* currentEncoding */
            invokestatic com.sun.tools.script.shell.Main.addFileSource:(Ljavax/script/ScriptEngine;Ljava/lang/String;Ljava/lang/String;)V
        end local 9 // javax.script.ScriptEngine se
        21: .line 105
      StackMap locals: int int
      StackMap stack:
            iload 7 /* numScriptArgs */
            anewarray java.lang.String
            astore 9 /* result */
        start local 9 // java.lang.String[] result
        22: .line 106
            aload 0 /* args */
            iload 8 /* startScriptArg */
            aload 9 /* result */
            iconst_0
            iload 7 /* numScriptArgs */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        23: .line 107
            aload 9 /* result */
            areturn
        end local 9 // java.lang.String[] result
        end local 8 // int startScriptArg
        end local 7 // int numScriptArgs
        24: .line 110
      StackMap locals:
      StackMap stack:
            aload 6 /* arg */
            ldc "-D"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 37
        25: .line 111
            aload 6 /* arg */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
        26: .line 112
            aload 7 /* value */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            istore 8 /* eq */
        start local 8 // int eq
        27: .line 113
            iload 8 /* eq */
            iconst_m1
            if_icmpeq 32
        28: .line 114
            aload 7 /* value */
            iconst_0
            iload 8 /* eq */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
        29: .line 115
            aload 7 /* value */
            iload 8 /* eq */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
        30: .line 114
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        31: .line 116
            goto 74
        32: .line 117
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 7 /* value */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
        33: .line 118
            aload 7 /* value */
            ldc ""
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        34: .line 119
            goto 74
        35: .line 121
      StackMap locals:
      StackMap stack:
            bipush 6
            invokestatic com.sun.tools.script.shell.Main.usage:(I)V
        36: .line 124
            goto 74
        end local 8 // int eq
        end local 7 // java.lang.String value
        37: .line 125
      StackMap locals:
      StackMap stack:
            aload 6 /* arg */
            ldc "-?"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 38
            aload 6 /* arg */
            ldc "-help"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        38: .line 126
      StackMap locals:
      StackMap stack:
            iconst_0
            invokestatic com.sun.tools.script.shell.Main.usage:(I)V
        39: .line 127
            goto 73
      StackMap locals:
      StackMap stack:
        40: aload 6 /* arg */
            ldc "-e"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 47
        41: .line 128
            iconst_1
            istore 3 /* seenScript */
        42: .line 129
            iinc 5 /* i */ 1
            iload 5 /* i */
            aload 0 /* args */
            arraylength
            if_icmpne 44
        43: .line 130
            iconst_3
            invokestatic com.sun.tools.script.shell.Main.usage:(I)V
        44: .line 132
      StackMap locals:
      StackMap stack:
            aload 1 /* currentLanguage */
            invokestatic com.sun.tools.script.shell.Main.getScriptEngine:(Ljava/lang/String;)Ljavax/script/ScriptEngine;
            astore 7 /* se */
        start local 7 // javax.script.ScriptEngine se
        45: .line 133
            aload 7 /* se */
            aload 0 /* args */
            iload 5 /* i */
            aaload
            invokestatic com.sun.tools.script.shell.Main.addStringSource:(Ljavax/script/ScriptEngine;Ljava/lang/String;)V
        46: .line 134
            goto 74
        end local 7 // javax.script.ScriptEngine se
        47: .line 135
      StackMap locals:
      StackMap stack:
            aload 6 /* arg */
            ldc "-encoding"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 52
        48: .line 136
            iinc 5 /* i */ 1
            iload 5 /* i */
            aload 0 /* args */
            arraylength
            if_icmpne 50
        49: .line 137
            iconst_5
            invokestatic com.sun.tools.script.shell.Main.usage:(I)V
        50: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            iload 5 /* i */
            aaload
            astore 2 /* currentEncoding */
        51: .line 139
            goto 74
        52: .line 140
      StackMap locals:
      StackMap stack:
            aload 6 /* arg */
            ldc "-f"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 66
        53: .line 141
            iconst_1
            istore 3 /* seenScript */
        54: .line 142
            iinc 5 /* i */ 1
            iload 5 /* i */
            aload 0 /* args */
            arraylength
            if_icmpne 56
        55: .line 143
            iconst_2
            invokestatic com.sun.tools.script.shell.Main.usage:(I)V
        56: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* currentLanguage */
            invokestatic com.sun.tools.script.shell.Main.getScriptEngine:(Ljava/lang/String;)Ljavax/script/ScriptEngine;
            astore 7 /* se */
        start local 7 // javax.script.ScriptEngine se
        57: .line 145
            aload 0 /* args */
            iload 5 /* i */
            aaload
            ldc "-"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 64
        58: .line 146
            iload 4 /* seenStdin */
            ifeq 61
        59: .line 147
            bipush 12
            invokestatic com.sun.tools.script.shell.Main.usage:(I)V
        60: .line 148
            goto 62
        61: .line 149
      StackMap locals: javax.script.ScriptEngine
      StackMap stack:
            iconst_1
            istore 4 /* seenStdin */
        62: .line 151
      StackMap locals:
      StackMap stack:
            aload 7 /* se */
            invokestatic com.sun.tools.script.shell.Main.addInteractiveMode:(Ljavax/script/ScriptEngine;)V
        63: .line 152
            goto 74
        64: .line 153
      StackMap locals:
      StackMap stack:
            aload 7 /* se */
            aload 0 /* args */
            iload 5 /* i */
            aaload
            aload 2 /* currentEncoding */
            invokestatic com.sun.tools.script.shell.Main.addFileSource:(Ljavax/script/ScriptEngine;Ljava/lang/String;Ljava/lang/String;)V
        65: .line 155
            goto 74
        end local 7 // javax.script.ScriptEngine se
        66: .line 156
      StackMap locals:
      StackMap stack:
            aload 6 /* arg */
            ldc "-l"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 71
        67: .line 157
            iinc 5 /* i */ 1
            iload 5 /* i */
            aload 0 /* args */
            arraylength
            if_icmpne 69
        68: .line 158
            iconst_4
            invokestatic com.sun.tools.script.shell.Main.usage:(I)V
        69: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            iload 5 /* i */
            aaload
            astore 1 /* currentLanguage */
        70: .line 160
            goto 74
        71: .line 161
      StackMap locals:
      StackMap stack:
            aload 6 /* arg */
            ldc "-q"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 73
        72: .line 162
            invokestatic com.sun.tools.script.shell.Main.listScriptEngines:()V
        73: .line 165
      StackMap locals:
      StackMap stack:
            bipush 7
            invokestatic com.sun.tools.script.shell.Main.usage:(I)V
        end local 6 // java.lang.String arg
        74: .line 77
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        75: iload 5 /* i */
            aload 0 /* args */
            arraylength
            if_icmplt 7
        end local 5 // int i
        76: .line 168
            iload 3 /* seenScript */
            ifne 79
        77: .line 169
            aload 1 /* currentLanguage */
            invokestatic com.sun.tools.script.shell.Main.getScriptEngine:(Ljava/lang/String;)Ljavax/script/ScriptEngine;
            astore 5 /* se */
        start local 5 // javax.script.ScriptEngine se
        78: .line 170
            aload 5 /* se */
            invokestatic com.sun.tools.script.shell.Main.addInteractiveMode:(Ljavax/script/ScriptEngine;)V
        end local 5 // javax.script.ScriptEngine se
        79: .line 172
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray java.lang.String
            areturn
        end local 4 // boolean seenStdin
        end local 3 // boolean seenScript
        end local 2 // java.lang.String currentEncoding
        end local 1 // java.lang.String currentLanguage
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   80     0             args  [Ljava/lang/String;
            1   80     1  currentLanguage  Ljava/lang/String;
            2   80     2  currentEncoding  Ljava/lang/String;
            4   80     3       seenScript  Z
            5   80     4        seenStdin  Z
            6   76     5                i  I
            8   74     6              arg  Ljava/lang/String;
           15   17     7    numScriptArgs  I
           18   24     7    numScriptArgs  I
           16   17     8   startScriptArg  I
           19   24     8   startScriptArg  I
           20   21     9               se  Ljavax/script/ScriptEngine;
           22   24     9           result  [Ljava/lang/String;
           26   37     7            value  Ljava/lang/String;
           27   37     8               eq  I
           45   47     7               se  Ljavax/script/ScriptEngine;
           57   66     7               se  Ljavax/script/ScriptEngine;
           78   79     5               se  Ljavax/script/ScriptEngine;
    MethodParameters:
      Name  Flags
      args  

  private static void addInteractiveMode(javax.script.ScriptEngine);
    descriptor: (Ljavax/script/ScriptEngine;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // javax.script.ScriptEngine se
         0: .line 180
            getstatic com.sun.tools.script.shell.Main.scripts:Ljava/util/List;
            new com.sun.tools.script.shell.Main$1
            dup
            aload 0 /* se */
            invokespecial com.sun.tools.script.shell.Main$1.<init>:(Ljavax/script/ScriptEngine;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 186
            return
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    se  Ljavax/script/ScriptEngine;
    MethodParameters:
      Name  Flags
      se    final

  private static void addFileSource(javax.script.ScriptEngine, java.lang.String, java.lang.String);
    descriptor: (Ljavax/script/ScriptEngine;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // javax.script.ScriptEngine se
        start local 1 // java.lang.String fileName
        start local 2 // java.lang.String encoding
         0: .line 197
            getstatic com.sun.tools.script.shell.Main.scripts:Ljava/util/List;
            new com.sun.tools.script.shell.Main$2
            dup
            aload 0 /* se */
            aload 1 /* fileName */
            aload 2 /* encoding */
            invokespecial com.sun.tools.script.shell.Main$2.<init>:(Ljavax/script/ScriptEngine;Ljava/lang/String;Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 203
            return
        end local 2 // java.lang.String encoding
        end local 1 // java.lang.String fileName
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0        se  Ljavax/script/ScriptEngine;
            0    2     1  fileName  Ljava/lang/String;
            0    2     2  encoding  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      se        final
      fileName  final
      encoding  final

  private static void addStringSource(javax.script.ScriptEngine, java.lang.String);
    descriptor: (Ljavax/script/ScriptEngine;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // javax.script.ScriptEngine se
        start local 1 // java.lang.String source
         0: .line 212
            getstatic com.sun.tools.script.shell.Main.scripts:Ljava/util/List;
            new com.sun.tools.script.shell.Main$3
            dup
            aload 0 /* se */
            aload 1 /* source */
            invokespecial com.sun.tools.script.shell.Main$3.<init>:(Ljavax/script/ScriptEngine;Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 223
            return
        end local 1 // java.lang.String source
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0      se  Ljavax/script/ScriptEngine;
            0    2     1  source  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      se      final
      source  final

  private static void listScriptEngines();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=0
         0: .line 229
            getstatic com.sun.tools.script.shell.Main.engineManager:Ljavax/script/ScriptEngineManager;
            invokevirtual javax.script.ScriptEngineManager.getEngineFactories:()Ljava/util/List;
            astore 0 /* factories */
        start local 0 // java.util.List factories
         1: .line 230
            aload 0 /* factories */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.script.ScriptEngineFactory
            astore 1 /* factory */
        start local 1 // javax.script.ScriptEngineFactory factory
         3: .line 231
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            ldc "engine.info"
         4: .line 232
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* factory */
            invokeinterface javax.script.ScriptEngineFactory.getLanguageName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         5: .line 233
            aload 1 /* factory */
            invokeinterface javax.script.ScriptEngineFactory.getLanguageVersion:()Ljava/lang/String;
            aastore
            dup
            iconst_2
         6: .line 234
            aload 1 /* factory */
            invokeinterface javax.script.ScriptEngineFactory.getEngineName:()Ljava/lang/String;
            aastore
            dup
            iconst_3
         7: .line 235
            aload 1 /* factory */
            invokeinterface javax.script.ScriptEngineFactory.getEngineVersion:()Ljava/lang/String;
            aastore
         8: .line 231
            invokestatic com.sun.tools.script.shell.Main.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 1 // javax.script.ScriptEngineFactory factory
         9: .line 230
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 238
            iconst_0
            invokestatic java.lang.System.exit:(I)V
        11: .line 239
            return
        end local 0 // java.util.List factories
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            1   12     0  factories  Ljava/util/List<Ljavax/script/ScriptEngineFactory;>;
            3    9     1    factory  Ljavax/script/ScriptEngineFactory;

  private static void processSource(javax.script.ScriptEngine, java.lang.String, java.lang.String);
    descriptor: (Ljavax/script/ScriptEngine;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // javax.script.ScriptEngine se
        start local 1 // java.lang.String filename
        start local 2 // java.lang.String encoding
         0: .line 249
            aload 1 /* filename */
            ldc "-"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
         1: .line 250
            new java.io.BufferedReader
            dup
         2: .line 251
            new java.io.InputStreamReader
            dup
            invokestatic com.sun.tools.script.shell.Main.getIn:()Ljava/io/InputStream;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
         3: .line 250
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 3 /* in */
        start local 3 // java.io.BufferedReader in
         4: .line 252
            iconst_0
            istore 4 /* hitEOF */
        start local 4 // boolean hitEOF
         5: .line 253
            aload 0 /* se */
            invokestatic com.sun.tools.script.shell.Main.getPrompt:(Ljavax/script/ScriptEngine;)Ljava/lang/String;
            astore 5 /* prompt */
        start local 5 // java.lang.String prompt
         6: .line 254
            aload 0 /* se */
            ldc "javax.script.filename"
            ldc "<STDIN>"
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 255
            goto 23
         8: .line 256
      StackMap locals: java.io.BufferedReader int java.lang.String
      StackMap stack:
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            aload 5 /* prompt */
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         9: .line 257
            ldc ""
            astore 6 /* source */
        start local 6 // java.lang.String source
        10: .line 259
            aload 3 /* in */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 6 /* source */
        11: .line 260
            goto 14
      StackMap locals: javax.script.ScriptEngine java.lang.String java.lang.String java.io.BufferedReader int java.lang.String java.lang.String
      StackMap stack: java.io.IOException
        12: astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        13: .line 261
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            aload 7 /* ioe */
            invokevirtual java.io.IOException.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 7 // java.io.IOException ioe
        14: .line 263
      StackMap locals:
      StackMap stack:
            aload 6 /* source */
            ifnonnull 17
        15: .line 264
            iconst_1
            istore 4 /* hitEOF */
        16: .line 265
            goto 34
        17: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* se */
            aload 6 /* source */
            iconst_0
            invokestatic com.sun.tools.script.shell.Main.evaluateString:(Ljavax/script/ScriptEngine;Ljava/lang/String;Z)Ljava/lang/Object;
            astore 7 /* res */
        start local 7 // java.lang.Object res
        18: .line 268
            aload 7 /* res */
            ifnull 23
        19: .line 269
            aload 7 /* res */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 7 /* res */
        20: .line 270
            aload 7 /* res */
            ifnonnull 22
        21: .line 271
            ldc "null"
            astore 7 /* res */
        22: .line 273
      StackMap locals: java.lang.Object
      StackMap stack:
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            aload 7 /* res */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        end local 7 // java.lang.Object res
        end local 6 // java.lang.String source
        23: .line 255
      StackMap locals:
      StackMap stack:
            iload 4 /* hitEOF */
            ifeq 8
        end local 5 // java.lang.String prompt
        end local 4 // boolean hitEOF
        end local 3 // java.io.BufferedReader in
        24: .line 276
            goto 34
        25: .line 277
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* fis */
        start local 3 // java.io.FileInputStream fis
        26: .line 279
            new java.io.FileInputStream
            dup
            aload 1 /* filename */
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 3 /* fis */
        27: .line 280
            goto 33
      StackMap locals: javax.script.ScriptEngine java.lang.String java.lang.String java.io.FileInputStream
      StackMap stack: java.io.FileNotFoundException
        28: pop
        29: .line 281
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            ldc "file.not.found"
        30: .line 282
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* filename */
            aastore
        31: .line 281
            invokestatic com.sun.tools.script.shell.Main.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 283
            bipush 11
            invokestatic java.lang.System.exit:(I)V
        33: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* se */
            aload 3 /* fis */
            aload 1 /* filename */
            aload 2 /* encoding */
            invokestatic com.sun.tools.script.shell.Main.evaluateStream:(Ljavax/script/ScriptEngine;Ljava/io/InputStream;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        end local 3 // java.io.FileInputStream fis
        34: .line 287
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String encoding
        end local 1 // java.lang.String filename
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   35     0        se  Ljavax/script/ScriptEngine;
            0   35     1  filename  Ljava/lang/String;
            0   35     2  encoding  Ljava/lang/String;
            4   24     3        in  Ljava/io/BufferedReader;
            5   24     4    hitEOF  Z
            6   24     5    prompt  Ljava/lang/String;
           10   23     6    source  Ljava/lang/String;
           13   14     7       ioe  Ljava/io/IOException;
           18   23     7       res  Ljava/lang/Object;
           26   34     3       fis  Ljava/io/FileInputStream;
      Exception table:
        from    to  target  type
          10    11      12  Class java.io.IOException
          26    27      28  Class java.io.FileNotFoundException
    MethodParameters:
          Name  Flags
      se        
      filename  
      encoding  

  private static java.lang.Object evaluateString(javax.script.ScriptEngine, java.lang.String, boolean);
    descriptor: (Ljavax/script/ScriptEngine;Ljava/lang/String;Z)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // javax.script.ScriptEngine se
        start local 1 // java.lang.String script
        start local 2 // boolean exitOnError
         0: .line 298
            aload 0 /* se */
            aload 1 /* script */
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
         1: areturn
         2: .line 299
      StackMap locals:
      StackMap stack: javax.script.ScriptException
            astore 3 /* sexp */
        start local 3 // javax.script.ScriptException sexp
         3: .line 300
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            ldc "string.script.error"
         4: .line 301
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* sexp */
            invokevirtual javax.script.ScriptException.getMessage:()Ljava/lang/String;
            aastore
         5: .line 300
            invokestatic com.sun.tools.script.shell.Main.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 302
            iload 2 /* exitOnError */
            ifeq 13
         7: .line 303
            bipush 10
            invokestatic java.lang.System.exit:(I)V
        end local 3 // javax.script.ScriptException sexp
         8: goto 13
         9: .line 304
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* exp */
        start local 3 // java.lang.Exception exp
        10: .line 305
            aload 3 /* exp */
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintStream;)V
        11: .line 306
            iload 2 /* exitOnError */
            ifeq 13
        12: .line 307
            bipush 10
            invokestatic java.lang.System.exit:(I)V
        end local 3 // java.lang.Exception exp
        13: .line 310
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // boolean exitOnError
        end local 1 // java.lang.String script
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0           se  Ljavax/script/ScriptEngine;
            0   14     1       script  Ljava/lang/String;
            0   14     2  exitOnError  Z
            3    8     3         sexp  Ljavax/script/ScriptException;
           10   13     3          exp  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.script.ScriptException
           0     1       9  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      se           
      script       
      exitOnError  

  private static void evaluateString(javax.script.ScriptEngine, java.lang.String);
    descriptor: (Ljavax/script/ScriptEngine;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.script.ScriptEngine se
        start local 1 // java.lang.String script
         0: .line 319
            aload 0 /* se */
            aload 1 /* script */
            iconst_1
            invokestatic com.sun.tools.script.shell.Main.evaluateString:(Ljavax/script/ScriptEngine;Ljava/lang/String;Z)Ljava/lang/Object;
            pop
         1: .line 320
            return
        end local 1 // java.lang.String script
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0      se  Ljavax/script/ScriptEngine;
            0    2     1  script  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      se      
      script  

  private static java.lang.Object evaluateReader(javax.script.ScriptEngine, java.io.Reader, java.lang.String);
    descriptor: (Ljavax/script/ScriptEngine;Ljava/io/Reader;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // javax.script.ScriptEngine se
        start local 1 // java.io.Reader reader
        start local 2 // java.lang.String name
         0: .line 330
            aload 0 /* se */
            aload 2 /* name */
            invokestatic com.sun.tools.script.shell.Main.setScriptFilename:(Ljavax/script/ScriptEngine;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* oldFilename */
        start local 3 // java.lang.String oldFilename
         1: .line 332
            aload 0 /* se */
            aload 1 /* reader */
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/io/Reader;)Ljava/lang/Object;
            astore 6
         2: .line 341
            aload 0 /* se */
            aload 3 /* oldFilename */
            invokestatic com.sun.tools.script.shell.Main.setScriptFilename:(Ljavax/script/ScriptEngine;Ljava/lang/String;)Ljava/lang/String;
            pop
         3: .line 332
            aload 6
            areturn
         4: .line 333
      StackMap locals: javax.script.ScriptEngine java.io.Reader java.lang.String java.lang.String
      StackMap stack: javax.script.ScriptException
            astore 4 /* sexp */
        start local 4 // javax.script.ScriptException sexp
         5: .line 334
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            ldc "file.script.error"
         6: .line 335
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* name */
            aastore
            dup
            iconst_1
            aload 4 /* sexp */
            invokevirtual javax.script.ScriptException.getMessage:()Ljava/lang/String;
            aastore
         7: .line 334
            invokestatic com.sun.tools.script.shell.Main.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 336
            bipush 10
            invokestatic java.lang.System.exit:(I)V
        end local 4 // javax.script.ScriptException sexp
         9: .line 341
            aload 0 /* se */
            aload 3 /* oldFilename */
            invokestatic com.sun.tools.script.shell.Main.setScriptFilename:(Ljavax/script/ScriptEngine;Ljava/lang/String;)Ljava/lang/String;
            pop
            goto 17
        10: .line 337
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* exp */
        start local 4 // java.lang.Exception exp
        11: .line 338
            aload 4 /* exp */
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintStream;)V
        12: .line 339
            bipush 10
            invokestatic java.lang.System.exit:(I)V
        end local 4 // java.lang.Exception exp
        13: .line 341
            aload 0 /* se */
            aload 3 /* oldFilename */
            invokestatic com.sun.tools.script.shell.Main.setScriptFilename:(Ljavax/script/ScriptEngine;Ljava/lang/String;)Ljava/lang/String;
            pop
            goto 17
        14: .line 340
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        15: .line 341
            aload 0 /* se */
            aload 3 /* oldFilename */
            invokestatic com.sun.tools.script.shell.Main.setScriptFilename:(Ljavax/script/ScriptEngine;Ljava/lang/String;)Ljava/lang/String;
            pop
        16: .line 342
            aload 5
            athrow
        17: .line 343
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.String oldFilename
        end local 2 // java.lang.String name
        end local 1 // java.io.Reader reader
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0           se  Ljavax/script/ScriptEngine;
            0   18     1       reader  Ljava/io/Reader;
            0   18     2         name  Ljava/lang/String;
            1   18     3  oldFilename  Ljava/lang/String;
            5    9     4         sexp  Ljavax/script/ScriptException;
           11   13     4          exp  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       4  Class javax.script.ScriptException
           1     2      10  Class java.lang.Exception
           1     2      14  any
           4     9      14  any
          10    13      14  any
    MethodParameters:
        Name  Flags
      se      
      reader  
      name    

  private static java.lang.Object evaluateStream(javax.script.ScriptEngine, java.io.InputStream, java.lang.String, java.lang.String);
    descriptor: (Ljavax/script/ScriptEngine;Ljava/io/InputStream;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // javax.script.ScriptEngine se
        start local 1 // java.io.InputStream is
        start local 2 // java.lang.String name
        start local 3 // java.lang.String encoding
         0: .line 355
            aconst_null
            astore 4 /* reader */
        start local 4 // java.io.BufferedReader reader
         1: .line 356
            aload 3 /* encoding */
            ifnull 12
         2: .line 358
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 1 /* is */
         3: .line 359
            aload 3 /* encoding */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
         4: .line 358
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 4 /* reader */
         5: .line 360
            goto 13
      StackMap locals: javax.script.ScriptEngine java.io.InputStream java.lang.String java.lang.String java.io.BufferedReader
      StackMap stack: java.io.UnsupportedEncodingException
         6: pop
         7: .line 361
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            ldc "encoding.unsupported"
         8: .line 362
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* encoding */
            aastore
         9: .line 361
            invokestatic com.sun.tools.script.shell.Main.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 363
            bipush 9
            invokestatic java.lang.System.exit:(I)V
        11: .line 365
            goto 13
        12: .line 366
      StackMap locals:
      StackMap stack:
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 1 /* is */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 4 /* reader */
        13: .line 368
      StackMap locals:
      StackMap stack:
            aload 0 /* se */
            aload 4 /* reader */
            aload 2 /* name */
            invokestatic com.sun.tools.script.shell.Main.evaluateReader:(Ljavax/script/ScriptEngine;Ljava/io/Reader;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 4 // java.io.BufferedReader reader
        end local 3 // java.lang.String encoding
        end local 2 // java.lang.String name
        end local 1 // java.io.InputStream is
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0        se  Ljavax/script/ScriptEngine;
            0   14     1        is  Ljava/io/InputStream;
            0   14     2      name  Ljava/lang/String;
            0   14     3  encoding  Ljava/lang/String;
            1   14     4    reader  Ljava/io/BufferedReader;
      Exception table:
        from    to  target  type
           2     5       6  Class java.io.UnsupportedEncodingException
    MethodParameters:
          Name  Flags
      se        
      is        
      name      
      encoding  

  private static void usage(int);
    descriptor: (I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // int exitCode
         0: .line 376
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            ldc "main.usage"
         1: .line 377
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic com.sun.tools.script.shell.Main.PROGRAM_NAME:Ljava/lang/String;
            aastore
         2: .line 376
            invokestatic com.sun.tools.script.shell.Main.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 378
            iload 0 /* exitCode */
            invokestatic java.lang.System.exit:(I)V
         4: .line 379
            return
        end local 0 // int exitCode
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  exitCode  I
    MethodParameters:
          Name  Flags
      exitCode  

  private static java.lang.String getPrompt(javax.script.ScriptEngine);
    descriptor: (Ljavax/script/ScriptEngine;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // javax.script.ScriptEngine se
         0: .line 386
            aload 0 /* se */
            invokeinterface javax.script.ScriptEngine.getFactory:()Ljavax/script/ScriptEngineFactory;
            invokeinterface javax.script.ScriptEngineFactory.getNames:()Ljava/util/List;
            astore 1 /* names */
        start local 1 // java.util.List names
         1: .line 387
            new java.lang.StringBuilder
            dup
            aload 1 /* names */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.util.List names
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0     se  Ljavax/script/ScriptEngine;
            1    2     1  names  Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      se    

  private static java.lang.String getMessage(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String key
        start local 1 // java.lang.Object[] params
         0: .line 394
            getstatic com.sun.tools.script.shell.Main.msgRes:Ljava/util/ResourceBundle;
            aload 0 /* key */
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* params */
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object[] params
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0     key  Ljava/lang/String;
            0    1     1  params  [Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      key     
      params  

  private static java.io.InputStream getIn();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 399
            getstatic java.lang.System.in:Ljava/io/InputStream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.io.PrintStream getError();
    descriptor: ()Ljava/io/PrintStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 404
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static javax.script.ScriptEngine getScriptEngine(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/script/ScriptEngine;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String lang
         0: .line 409
            getstatic com.sun.tools.script.shell.Main.engines:Ljava/util/Map;
            aload 0 /* lang */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.script.ScriptEngine
            astore 1 /* se */
        start local 1 // javax.script.ScriptEngine se
         1: .line 410
            aload 1 /* se */
            ifnonnull 10
         2: .line 411
            getstatic com.sun.tools.script.shell.Main.engineManager:Ljavax/script/ScriptEngineManager;
            aload 0 /* lang */
            invokevirtual javax.script.ScriptEngineManager.getEngineByName:(Ljava/lang/String;)Ljavax/script/ScriptEngine;
            astore 1 /* se */
         3: .line 412
            aload 1 /* se */
            ifnonnull 8
         4: .line 413
            invokestatic com.sun.tools.script.shell.Main.getError:()Ljava/io/PrintStream;
            ldc "engine.not.found"
         5: .line 414
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* lang */
            aastore
         6: .line 413
            invokestatic com.sun.tools.script.shell.Main.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 415
            bipush 8
            invokestatic java.lang.System.exit:(I)V
         8: .line 419
      StackMap locals: javax.script.ScriptEngine
      StackMap stack:
            aload 1 /* se */
            invokestatic com.sun.tools.script.shell.Main.initScriptEngine:(Ljavax/script/ScriptEngine;)V
         9: .line 421
            getstatic com.sun.tools.script.shell.Main.engines:Ljava/util/Map;
            aload 0 /* lang */
            aload 1 /* se */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 423
      StackMap locals:
      StackMap stack:
            aload 1 /* se */
            areturn
        end local 1 // javax.script.ScriptEngine se
        end local 0 // java.lang.String lang
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  lang  Ljava/lang/String;
            1   11     1    se  Ljavax/script/ScriptEngine;
    MethodParameters:
      Name  Flags
      lang  

  private static void initScriptEngine(javax.script.ScriptEngine);
    descriptor: (Ljavax/script/ScriptEngine;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // javax.script.ScriptEngine se
         0: .line 429
            aload 0 /* se */
            ldc "engine"
            aload 0 /* se */
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 432
            aload 0 /* se */
            invokeinterface javax.script.ScriptEngine.getFactory:()Ljavax/script/ScriptEngineFactory;
            invokeinterface javax.script.ScriptEngineFactory.getExtensions:()Ljava/util/List;
            astore 1 /* exts */
        start local 1 // java.util.List exts
         2: .line 433
            aconst_null
            astore 2 /* sysIn */
        start local 2 // java.io.InputStream sysIn
         3: .line 434
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
         4: .line 435
            aload 1 /* exts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: javax.script.ScriptEngine java.util.List java.io.InputStream java.lang.ClassLoader top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* ext */
        start local 4 // java.lang.String ext
         6: .line 436
            aload 3 /* cl */
            new java.lang.StringBuilder
            dup
            ldc "com/sun/tools/script/shell/init."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 437
            aload 4 /* ext */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 436
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* sysIn */
         9: .line 438
            aload 2 /* sysIn */
            ifnull 10
            goto 11
        end local 4 // java.lang.String ext
        10: .line 435
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        11: .line 440
      StackMap locals: javax.script.ScriptEngine java.util.List java.io.InputStream java.lang.ClassLoader
      StackMap stack:
            aload 2 /* sysIn */
            ifnull 13
        12: .line 441
            aload 0 /* se */
            aload 2 /* sysIn */
            ldc "<system-init>"
            aconst_null
            invokestatic com.sun.tools.script.shell.Main.evaluateStream:(Ljavax/script/ScriptEngine;Ljava/io/InputStream;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        13: .line 443
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.ClassLoader cl
        end local 2 // java.io.InputStream sysIn
        end local 1 // java.util.List exts
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0     se  Ljavax/script/ScriptEngine;
            2   14     1   exts  Ljava/util/List<Ljava/lang/String;>;
            3   14     2  sysIn  Ljava/io/InputStream;
            4   14     3     cl  Ljava/lang/ClassLoader;
            6   10     4    ext  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      se    

  private static void checkClassPath(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 452
            aconst_null
            astore 1 /* classPath */
        start local 1 // java.lang.String classPath
         1: .line 453
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 10
         3: .line 454
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* args */
            iload 2 /* i */
            aaload
            ldc "-classpath"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 455
            aload 0 /* args */
            iload 2 /* i */
            aaload
            ldc "-cp"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         5: .line 456
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
            iload 2 /* i */
            aload 0 /* args */
            arraylength
            if_icmpne 8
         6: .line 458
            iconst_1
            invokestatic com.sun.tools.script.shell.Main.usage:(I)V
         7: .line 459
            goto 9
         8: .line 460
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            iload 2 /* i */
            aaload
            astore 1 /* classPath */
         9: .line 453
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* args */
            arraylength
            if_icmplt 3
        end local 2 // int i
        11: .line 465
            aload 1 /* classPath */
            ifnull 16
        12: .line 477
            ldc Lcom/sun/tools/script/shell/Main;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* parent */
        start local 2 // java.lang.ClassLoader parent
        13: .line 478
            aload 1 /* classPath */
            invokestatic com.sun.tools.script.shell.Main.pathToURLs:(Ljava/lang/String;)[Ljava/net/URL;
            astore 3 /* urls */
        start local 3 // java.net.URL[] urls
        14: .line 479
            new java.net.URLClassLoader
            dup
            aload 3 /* urls */
            aload 2 /* parent */
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
            astore 4 /* loader */
        start local 4 // java.net.URLClassLoader loader
        15: .line 480
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 4 /* loader */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        end local 4 // java.net.URLClassLoader loader
        end local 3 // java.net.URL[] urls
        end local 2 // java.lang.ClassLoader parent
        16: .line 486
      StackMap locals:
      StackMap stack:
            new javax.script.ScriptEngineManager
            dup
            invokespecial javax.script.ScriptEngineManager.<init>:()V
            putstatic com.sun.tools.script.shell.Main.engineManager:Ljavax/script/ScriptEngineManager;
        17: .line 487
            return
        end local 1 // java.lang.String classPath
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       args  [Ljava/lang/String;
            1   18     1  classPath  Ljava/lang/String;
            2   11     2          i  I
           13   16     2     parent  Ljava/lang/ClassLoader;
           14   16     3       urls  [Ljava/net/URL;
           15   16     4     loader  Ljava/net/URLClassLoader;
    MethodParameters:
      Name  Flags
      args  

  private static java.net.URL[] pathToURLs(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/net/URL;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // java.lang.String path
         0: .line 497
            aload 0 /* path */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* components */
        start local 1 // java.lang.String[] components
         1: .line 498
            aload 1 /* components */
            arraylength
            anewarray java.net.URL
            astore 2 /* urls */
        start local 2 // java.net.URL[] urls
         2: .line 499
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         3: .line 500
            goto 7
         4: .line 501
      StackMap locals: java.lang.String[] java.net.URL[] int
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* components */
            iload 3 /* count */
            aaload
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.tools.script.shell.Main.fileToURL:(Ljava/io/File;)Ljava/net/URL;
            astore 4 /* url */
        start local 4 // java.net.URL url
         5: .line 502
            aload 4 /* url */
            ifnull 7
         6: .line 503
            aload 2 /* urls */
            iload 3 /* count */
            iinc 3 /* count */ 1
            aload 4 /* url */
            aastore
        end local 4 // java.net.URL url
         7: .line 500
      StackMap locals:
      StackMap stack:
            iload 3 /* count */
            aload 1 /* components */
            arraylength
            if_icmplt 4
         8: .line 506
            aload 2 /* urls */
            arraylength
            iload 3 /* count */
            if_icmpeq 12
         9: .line 507
            iload 3 /* count */
            anewarray java.net.URL
            astore 4 /* tmp */
        start local 4 // java.net.URL[] tmp
        10: .line 508
            aload 2 /* urls */
            iconst_0
            aload 4 /* tmp */
            iconst_0
            iload 3 /* count */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 509
            aload 4 /* tmp */
            astore 2 /* urls */
        end local 4 // java.net.URL[] tmp
        12: .line 511
      StackMap locals:
      StackMap stack:
            aload 2 /* urls */
            areturn
        end local 3 // int count
        end local 2 // java.net.URL[] urls
        end local 1 // java.lang.String[] components
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        path  Ljava/lang/String;
            1   13     1  components  [Ljava/lang/String;
            2   13     2        urls  [Ljava/net/URL;
            3   13     3       count  I
            5    7     4         url  Ljava/net/URL;
           10   12     4         tmp  [Ljava/net/URL;
    MethodParameters:
      Name  Flags
      path  

  private static java.net.URL fileToURL(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/net/URL;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 524
            aload 0 /* file */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 525
            goto 4
        end local 1 // java.lang.String name
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 526
            aload 0 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         4: .line 528
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* name */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* name */
         5: .line 529
            aload 1 /* name */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 7
         6: .line 530
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
         7: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* file */
            invokevirtual java.io.File.isFile:()Z
            ifne 9
         8: .line 534
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
         9: .line 537
      StackMap locals:
      StackMap stack:
            new java.net.URL
            dup
            ldc "file"
            ldc ""
            aload 1 /* name */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        10: areturn
        11: .line 538
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            pop
        12: .line 539
            new java.lang.IllegalArgumentException
            dup
            ldc "file"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String name
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  file  Ljava/io/File;
            1    2     1  name  Ljava/lang/String;
            4   13     1  name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
           9    10      11  Class java.net.MalformedURLException
    MethodParameters:
      Name  Flags
      file  

  private static void setScriptArguments(javax.script.ScriptEngine, java.lang.String[]);
    descriptor: (Ljavax/script/ScriptEngine;[Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.script.ScriptEngine se
        start local 1 // java.lang.String[] args
         0: .line 544
            aload 0 /* se */
            ldc "arguments"
            aload 1 /* args */
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 545
            aload 0 /* se */
            ldc "javax.script.argv"
            aload 1 /* args */
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 546
            return
        end local 1 // java.lang.String[] args
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    se  Ljavax/script/ScriptEngine;
            0    3     1  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      se    
      args  

  private static java.lang.String setScriptFilename(javax.script.ScriptEngine, java.lang.String);
    descriptor: (Ljavax/script/ScriptEngine;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.script.ScriptEngine se
        start local 1 // java.lang.String name
         0: .line 549
            aload 0 /* se */
            ldc "javax.script.filename"
            invokeinterface javax.script.ScriptEngine.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* oldName */
        start local 2 // java.lang.String oldName
         1: .line 550
            aload 0 /* se */
            ldc "javax.script.filename"
            aload 1 /* name */
            invokeinterface javax.script.ScriptEngine.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 551
            aload 2 /* oldName */
            areturn
        end local 2 // java.lang.String oldName
        end local 1 // java.lang.String name
        end local 0 // javax.script.ScriptEngine se
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0       se  Ljavax/script/ScriptEngine;
            0    3     1     name  Ljava/lang/String;
            1    3     2  oldName  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      se    
      name  
}
SourceFile: "Main.java"
NestMembers:
  com.sun.tools.script.shell.Main$1  com.sun.tools.script.shell.Main$2  com.sun.tools.script.shell.Main$3  com.sun.tools.script.shell.Main$Command
InnerClasses:
  com.sun.tools.script.shell.Main$1
  com.sun.tools.script.shell.Main$2
  com.sun.tools.script.shell.Main$3
  private abstract Command = com.sun.tools.script.shell.Main$Command of com.sun.tools.script.shell.Main