public class org.h2.tools.Console extends org.h2.util.Tool implements org.h2.server.ShutdownHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.tools.Console
  super_class: org.h2.util.Tool
{
  org.h2.tools.Server web;
    descriptor: Lorg/h2/tools/Server;
    flags: (0x0000) 

  private org.h2.tools.Server tcp;
    descriptor: Lorg/h2/tools/Server;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.tools.Server pg;
    descriptor: Lorg/h2/tools/Server;
    flags: (0x0002) ACC_PRIVATE

  boolean isWindows;
    descriptor: Z
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Console this
         0: .line 23
            aload 0 /* this */
            invokespecial org.h2.util.Tool.<init>:()V
            return
        end local 0 // org.h2.tools.Console this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Console;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 68
            ldc "org.h2.tools.GUIConsole"
            iconst_0
            anewarray java.lang.Object
            invokestatic org.h2.util.Utils.newInstance:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.tools.Console
            astore 1 /* console */
        start local 1 // org.h2.tools.Console console
         1: .line 69
            goto 4
        end local 1 // org.h2.tools.Console console
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: pop
         3: .line 70
            new org.h2.tools.Console
            dup
            invokespecial org.h2.tools.Console.<init>:()V
            astore 1 /* console */
        start local 1 // org.h2.tools.Console console
         4: .line 72
      StackMap locals: org.h2.tools.Console
      StackMap stack:
            aload 1 /* console */
            aload 0 /* args */
            invokevirtual org.h2.tools.Console.runTool:([Ljava/lang/String;)V
         5: .line 73
            return
        end local 1 // org.h2.tools.Console console
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     args  [Ljava/lang/String;
            1    2     1  console  Lorg/h2/tools/Console;
            4    6     1  console  Lorg/h2/tools/Console;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
           0     1       2  Class java.lang.NoClassDefFoundError
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public void runTool(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=22, args_size=2
        start local 0 // org.h2.tools.Console this
        start local 1 // java.lang.String[] args
         0: .line 84
            aload 0 /* this */
            ldc "os.name"
            ldc ""
            invokestatic org.h2.util.Utils.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            ldc "Windows"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            putfield org.h2.tools.Console.isWindows:Z
         1: .line 85
            iconst_0
            istore 2 /* tcpStart */
        start local 2 // boolean tcpStart
         2: iconst_0
            istore 3 /* pgStart */
        start local 3 // boolean pgStart
         3: iconst_0
            istore 4 /* webStart */
        start local 4 // boolean webStart
         4: iconst_0
            istore 5 /* toolStart */
        start local 5 // boolean toolStart
         5: .line 86
            iconst_0
            istore 6 /* browserStart */
        start local 6 // boolean browserStart
         6: .line 87
            iconst_1
            istore 7 /* startDefaultServers */
        start local 7 // boolean startDefaultServers
         7: .line 88
            aload 1 /* args */
            ifnull 8
            aload 1 /* args */
            arraylength
            ifle 8
            iconst_1
            goto 9
      StackMap locals: org.h2.tools.Console java.lang.String[] int int int int int int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* printStatus */
        start local 8 // boolean printStatus
        10: .line 89
            aconst_null
            astore 9 /* driver */
        start local 9 // java.lang.String driver
        11: aconst_null
            astore 10 /* url */
        start local 10 // java.lang.String url
        12: aconst_null
            astore 11 /* user */
        start local 11 // java.lang.String user
        13: aconst_null
            astore 12 /* password */
        start local 12 // java.lang.String password
        14: .line 90
            iconst_0
            istore 13 /* tcpShutdown */
        start local 13 // boolean tcpShutdown
        15: iconst_0
            istore 14 /* tcpShutdownForce */
        start local 14 // boolean tcpShutdownForce
        16: .line 91
            ldc ""
            astore 15 /* tcpPassword */
        start local 15 // java.lang.String tcpPassword
        17: .line 92
            ldc ""
            astore 16 /* tcpShutdownServer */
        start local 16 // java.lang.String tcpShutdownServer
        18: .line 93
            iconst_0
            istore 17 /* ifExists */
        start local 17 // boolean ifExists
        19: iconst_0
            istore 18 /* webAllowOthers */
        start local 18 // boolean webAllowOthers
        20: .line 94
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        21: goto 113
        22: .line 95
      StackMap locals: org.h2.tools.Console java.lang.String[] int int int int int int int java.lang.String java.lang.String java.lang.String java.lang.String int int java.lang.String java.lang.String int int int
      StackMap stack:
            aload 1 /* args */
            iload 19 /* i */
            aaload
            astore 20 /* arg */
        start local 20 // java.lang.String arg
        23: .line 96
            aload 20 /* arg */
            ifnull 112
        24: .line 97
            ldc "-?"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            ldc "-help"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        25: .line 98
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.tools.Console.showUsage:()V
        26: .line 99
            return
        27: .line 100
      StackMap locals:
      StackMap stack:
            ldc "-url"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
        28: .line 101
            iconst_0
            istore 7 /* startDefaultServers */
        29: .line 102
            aload 1 /* args */
            iinc 19 /* i */ 1
            iload 19 /* i */
            aaload
            astore 10 /* url */
        30: .line 103
            goto 112
      StackMap locals:
      StackMap stack:
        31: ldc "-driver"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 34
        32: .line 104
            aload 1 /* args */
            iinc 19 /* i */ 1
            iload 19 /* i */
            aaload
            astore 9 /* driver */
        33: .line 105
            goto 112
      StackMap locals:
      StackMap stack:
        34: ldc "-user"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 37
        35: .line 106
            aload 1 /* args */
            iinc 19 /* i */ 1
            iload 19 /* i */
            aaload
            astore 11 /* user */
        36: .line 107
            goto 112
      StackMap locals:
      StackMap stack:
        37: ldc "-password"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        38: .line 108
            aload 1 /* args */
            iinc 19 /* i */ 1
            iload 19 /* i */
            aaload
            astore 12 /* password */
        39: .line 109
            goto 112
      StackMap locals:
      StackMap stack:
        40: aload 20 /* arg */
            ldc "-web"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 55
        41: .line 110
            ldc "-web"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 45
        42: .line 111
            iconst_0
            istore 7 /* startDefaultServers */
        43: .line 112
            iconst_1
            istore 4 /* webStart */
        44: .line 113
            goto 112
      StackMap locals:
      StackMap stack:
        45: ldc "-webAllowOthers"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 48
        46: .line 115
            iconst_1
            istore 18 /* webAllowOthers */
        47: .line 116
            goto 112
      StackMap locals:
      StackMap stack:
        48: ldc "-webDaemon"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 112
        49: .line 118
            ldc "-webSSL"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 112
        50: .line 120
            ldc "-webPort"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 53
        51: .line 121
            iinc 19 /* i */ 1
        52: .line 122
            goto 112
        53: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 20 /* arg */
            invokevirtual org.h2.tools.Console.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        54: .line 125
            goto 112
      StackMap locals:
      StackMap stack:
        55: ldc "-tool"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 60
        56: .line 126
            iconst_0
            istore 7 /* startDefaultServers */
        57: .line 127
            iconst_1
            istore 4 /* webStart */
        58: .line 128
            iconst_1
            istore 5 /* toolStart */
        59: .line 129
            goto 112
      StackMap locals:
      StackMap stack:
        60: ldc "-browser"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 65
        61: .line 130
            iconst_0
            istore 7 /* startDefaultServers */
        62: .line 131
            iconst_1
            istore 4 /* webStart */
        63: .line 132
            iconst_1
            istore 6 /* browserStart */
        64: .line 133
            goto 112
      StackMap locals:
      StackMap stack:
        65: aload 20 /* arg */
            ldc "-tcp"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 89
        66: .line 134
            ldc "-tcp"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 70
        67: .line 135
            iconst_0
            istore 7 /* startDefaultServers */
        68: .line 136
            iconst_1
            istore 2 /* tcpStart */
        69: .line 137
            goto 112
      StackMap locals:
      StackMap stack:
        70: ldc "-tcpAllowOthers"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 112
        71: .line 139
            ldc "-tcpDaemon"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 112
        72: .line 141
            ldc "-tcpSSL"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 112
        73: .line 143
            ldc "-tcpPort"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 76
        74: .line 144
            iinc 19 /* i */ 1
        75: .line 145
            goto 112
      StackMap locals:
      StackMap stack:
        76: ldc "-tcpPassword"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 79
        77: .line 146
            aload 1 /* args */
            iinc 19 /* i */ 1
            iload 19 /* i */
            aaload
            astore 15 /* tcpPassword */
        78: .line 147
            goto 112
      StackMap locals:
      StackMap stack:
        79: ldc "-tcpShutdown"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 84
        80: .line 148
            iconst_0
            istore 7 /* startDefaultServers */
        81: .line 149
            iconst_1
            istore 13 /* tcpShutdown */
        82: .line 150
            aload 1 /* args */
            iinc 19 /* i */ 1
            iload 19 /* i */
            aaload
            astore 16 /* tcpShutdownServer */
        83: .line 151
            goto 112
      StackMap locals:
      StackMap stack:
        84: ldc "-tcpShutdownForce"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 87
        85: .line 152
            iconst_1
            istore 14 /* tcpShutdownForce */
        86: .line 153
            goto 112
        87: .line 154
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 20 /* arg */
            invokevirtual org.h2.tools.Console.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        88: .line 156
            goto 112
      StackMap locals:
      StackMap stack:
        89: aload 20 /* arg */
            ldc "-pg"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 101
        90: .line 157
            ldc "-pg"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 94
        91: .line 158
            iconst_0
            istore 7 /* startDefaultServers */
        92: .line 159
            iconst_1
            istore 3 /* pgStart */
        93: .line 160
            goto 112
      StackMap locals:
      StackMap stack:
        94: ldc "-pgAllowOthers"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 112
        95: .line 162
            ldc "-pgDaemon"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 112
        96: .line 164
            ldc "-pgPort"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 99
        97: .line 165
            iinc 19 /* i */ 1
        98: .line 166
            goto 112
        99: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 20 /* arg */
            invokevirtual org.h2.tools.Console.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
       100: .line 169
            goto 112
      StackMap locals:
      StackMap stack:
       101: ldc "-properties"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 104
       102: .line 170
            iinc 19 /* i */ 1
       103: .line 171
            goto 112
      StackMap locals:
      StackMap stack:
       104: ldc "-trace"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 112
       105: .line 173
            ldc "-ifExists"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 108
       106: .line 175
            iconst_1
            istore 17 /* ifExists */
       107: .line 176
            goto 112
      StackMap locals:
      StackMap stack:
       108: ldc "-baseDir"
            aload 20 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 111
       109: .line 177
            iinc 19 /* i */ 1
       110: .line 178
            goto 112
       111: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 20 /* arg */
            invokevirtual org.h2.tools.Console.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        end local 20 // java.lang.String arg
       112: .line 94
      StackMap locals:
      StackMap stack:
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
       113: aload 1 /* args */
            ifnull 114
            iload 19 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 22
        end local 19 // int i
       114: .line 182
      StackMap locals:
      StackMap stack:
            iload 7 /* startDefaultServers */
            ifeq 120
       115: .line 183
            iconst_1
            istore 4 /* webStart */
       116: .line 184
            iconst_1
            istore 5 /* toolStart */
       117: .line 185
            iconst_1
            istore 6 /* browserStart */
       118: .line 186
            iconst_1
            istore 2 /* tcpStart */
       119: .line 187
            iconst_1
            istore 3 /* pgStart */
       120: .line 189
      StackMap locals:
      StackMap stack:
            iload 13 /* tcpShutdown */
            ifeq 125
       121: .line 190
            aload 0 /* this */
            getfield org.h2.tools.Console.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Shutting down TCP Server at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* tcpShutdownServer */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       122: .line 191
            aload 16 /* tcpShutdownServer */
       123: .line 192
            aload 15 /* tcpPassword */
            iload 14 /* tcpShutdownForce */
            iconst_0
       124: .line 191
            invokestatic org.h2.tools.Server.shutdownTcpServer:(Ljava/lang/String;Ljava/lang/String;ZZ)V
       125: .line 194
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 19 /* startException */
        start local 19 // java.sql.SQLException startException
       126: .line 195
            iconst_0
            istore 20 /* webRunning */
        start local 20 // boolean webRunning
       127: .line 197
            aload 10 /* url */
            ifnull 130
       128: .line 198
            aload 9 /* driver */
            aload 10 /* url */
            aload 11 /* user */
            aload 12 /* password */
            invokestatic org.h2.util.JdbcUtils.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            astore 21 /* conn */
        start local 21 // java.sql.Connection conn
       129: .line 199
            aload 21 /* conn */
            invokestatic org.h2.tools.Server.startWebServer:(Ljava/sql/Connection;)V
        end local 21 // java.sql.Connection conn
       130: .line 202
      StackMap locals: java.sql.SQLException int
      StackMap stack:
            iload 4 /* webStart */
            ifeq 146
       131: .line 204
            iload 18 /* webAllowOthers */
            ifeq 132
            aconst_null
            goto 133
       132: .line 205
      StackMap locals:
      StackMap stack:
            bipush 32
            invokestatic org.h2.util.MathUtils.secureRandomBytes:(I)[B
            invokestatic org.h2.util.StringUtils.convertBytesToHex:([B)Ljava/lang/String;
       133: .line 204
      StackMap locals:
      StackMap stack: java.lang.String
            astore 21 /* webKey */
        start local 21 // java.lang.String webKey
       134: .line 206
            aload 0 /* this */
            aload 1 /* args */
            aload 21 /* webKey */
            iload 17 /* ifExists */
            ifeq 135
            iconst_0
            goto 136
      StackMap locals: org.h2.tools.Console java.lang.String[] int int int int int int int java.lang.String java.lang.String java.lang.String java.lang.String int int java.lang.String java.lang.String int int java.sql.SQLException int java.lang.String
      StackMap stack: org.h2.tools.Console java.lang.String[] java.lang.String
       135: iconst_1
      StackMap locals: org.h2.tools.Console java.lang.String[] int int int int int int int java.lang.String java.lang.String java.lang.String java.lang.String int int java.lang.String java.lang.String int int java.sql.SQLException int java.lang.String
      StackMap stack: org.h2.tools.Console java.lang.String[] java.lang.String int
       136: invokestatic org.h2.tools.Server.createWebServer:([Ljava/lang/String;Ljava/lang/String;Z)Lorg/h2/tools/Server;
            putfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
       137: .line 207
            aload 0 /* this */
            getfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
            aload 0 /* this */
            invokevirtual org.h2.tools.Server.setShutdownHandler:(Lorg/h2/server/ShutdownHandler;)V
       138: .line 208
            aload 0 /* this */
            getfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.start:()Lorg/h2/tools/Server;
            pop
       139: .line 209
            iload 8 /* printStatus */
            ifeq 141
       140: .line 210
            aload 0 /* this */
            getfield org.h2.tools.Console.out:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.getStatus:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       141: .line 212
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 20 /* webRunning */
        end local 21 // java.lang.String webKey
       142: .line 213
            goto 146
      StackMap locals: org.h2.tools.Console java.lang.String[] int int int int int int int java.lang.String java.lang.String java.lang.String java.lang.String int int java.lang.String java.lang.String int int java.sql.SQLException int
      StackMap stack: java.sql.SQLException
       143: astore 21 /* e */
        start local 21 // java.sql.SQLException e
       144: .line 214
            aload 0 /* this */
            aload 21 /* e */
            aload 0 /* this */
            getfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Console.printProblem:(Ljava/lang/Exception;Lorg/h2/tools/Server;)V
       145: .line 215
            aload 21 /* e */
            astore 19 /* startException */
        end local 21 // java.sql.SQLException e
       146: .line 219
      StackMap locals:
      StackMap stack:
            iload 5 /* toolStart */
            ifeq 148
            iload 20 /* webRunning */
            ifeq 148
       147: .line 220
            aload 0 /* this */
            invokevirtual org.h2.tools.Console.show:()V
       148: .line 226
      StackMap locals:
      StackMap stack:
            iload 6 /* browserStart */
            ifeq 150
            aload 0 /* this */
            getfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
            ifnull 150
       149: .line 227
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.getURL:()Ljava/lang/String;
            invokevirtual org.h2.tools.Console.openBrowser:(Ljava/lang/String;)V
       150: .line 230
      StackMap locals:
      StackMap stack:
            iload 2 /* tcpStart */
            ifeq 161
       151: .line 232
            aload 0 /* this */
            aload 1 /* args */
            invokestatic org.h2.tools.Server.createTcpServer:([Ljava/lang/String;)Lorg/h2/tools/Server;
            putfield org.h2.tools.Console.tcp:Lorg/h2/tools/Server;
       152: .line 233
            aload 0 /* this */
            getfield org.h2.tools.Console.tcp:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.start:()Lorg/h2/tools/Server;
            pop
       153: .line 234
            iload 8 /* printStatus */
            ifeq 155
       154: .line 235
            aload 0 /* this */
            getfield org.h2.tools.Console.out:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield org.h2.tools.Console.tcp:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.getStatus:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       155: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Console.tcp:Lorg/h2/tools/Server;
            aload 0 /* this */
            invokevirtual org.h2.tools.Server.setShutdownHandler:(Lorg/h2/server/ShutdownHandler;)V
       156: .line 238
            goto 161
      StackMap locals:
      StackMap stack: java.sql.SQLException
       157: astore 21 /* e */
        start local 21 // java.sql.SQLException e
       158: .line 239
            aload 0 /* this */
            aload 21 /* e */
            aload 0 /* this */
            getfield org.h2.tools.Console.tcp:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Console.printProblem:(Ljava/lang/Exception;Lorg/h2/tools/Server;)V
       159: .line 240
            aload 19 /* startException */
            ifnonnull 161
       160: .line 241
            aload 21 /* e */
            astore 19 /* startException */
        end local 21 // java.sql.SQLException e
       161: .line 245
      StackMap locals:
      StackMap stack:
            iload 3 /* pgStart */
            ifeq 171
       162: .line 247
            aload 0 /* this */
            aload 1 /* args */
            invokestatic org.h2.tools.Server.createPgServer:([Ljava/lang/String;)Lorg/h2/tools/Server;
            putfield org.h2.tools.Console.pg:Lorg/h2/tools/Server;
       163: .line 248
            aload 0 /* this */
            getfield org.h2.tools.Console.pg:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.start:()Lorg/h2/tools/Server;
            pop
       164: .line 249
            iload 8 /* printStatus */
            ifeq 171
       165: .line 250
            aload 0 /* this */
            getfield org.h2.tools.Console.out:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield org.h2.tools.Console.pg:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.getStatus:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       166: .line 252
            goto 171
      StackMap locals:
      StackMap stack: java.sql.SQLException
       167: astore 21 /* e */
        start local 21 // java.sql.SQLException e
       168: .line 253
            aload 0 /* this */
            aload 21 /* e */
            aload 0 /* this */
            getfield org.h2.tools.Console.pg:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Console.printProblem:(Ljava/lang/Exception;Lorg/h2/tools/Server;)V
       169: .line 254
            aload 19 /* startException */
            ifnonnull 171
       170: .line 255
            aload 21 /* e */
            astore 19 /* startException */
        end local 21 // java.sql.SQLException e
       171: .line 259
      StackMap locals:
      StackMap stack:
            aload 19 /* startException */
            ifnull 174
       172: .line 260
            aload 0 /* this */
            invokevirtual org.h2.tools.Console.shutdown:()V
       173: .line 261
            aload 19 /* startException */
            athrow
       174: .line 263
      StackMap locals:
      StackMap stack:
            return
        end local 20 // boolean webRunning
        end local 19 // java.sql.SQLException startException
        end local 18 // boolean webAllowOthers
        end local 17 // boolean ifExists
        end local 16 // java.lang.String tcpShutdownServer
        end local 15 // java.lang.String tcpPassword
        end local 14 // boolean tcpShutdownForce
        end local 13 // boolean tcpShutdown
        end local 12 // java.lang.String password
        end local 11 // java.lang.String user
        end local 10 // java.lang.String url
        end local 9 // java.lang.String driver
        end local 8 // boolean printStatus
        end local 7 // boolean startDefaultServers
        end local 6 // boolean browserStart
        end local 5 // boolean toolStart
        end local 4 // boolean webStart
        end local 3 // boolean pgStart
        end local 2 // boolean tcpStart
        end local 1 // java.lang.String[] args
        end local 0 // org.h2.tools.Console this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  175     0                 this  Lorg/h2/tools/Console;
            0  175     1                 args  [Ljava/lang/String;
            2  175     2             tcpStart  Z
            3  175     3              pgStart  Z
            4  175     4             webStart  Z
            5  175     5            toolStart  Z
            6  175     6         browserStart  Z
            7  175     7  startDefaultServers  Z
           10  175     8          printStatus  Z
           11  175     9               driver  Ljava/lang/String;
           12  175    10                  url  Ljava/lang/String;
           13  175    11                 user  Ljava/lang/String;
           14  175    12             password  Ljava/lang/String;
           15  175    13          tcpShutdown  Z
           16  175    14     tcpShutdownForce  Z
           17  175    15          tcpPassword  Ljava/lang/String;
           18  175    16    tcpShutdownServer  Ljava/lang/String;
           19  175    17             ifExists  Z
           20  175    18       webAllowOthers  Z
           21  114    19                    i  I
           23  112    20                  arg  Ljava/lang/String;
          126  175    19       startException  Ljava/sql/SQLException;
          127  175    20           webRunning  Z
          129  130    21                 conn  Ljava/sql/Connection;
          134  142    21               webKey  Ljava/lang/String;
          144  146    21                    e  Ljava/sql/SQLException;
          158  161    21                    e  Ljava/sql/SQLException;
          168  171    21                    e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
         131   142     143  Class java.sql.SQLException
         151   156     157  Class java.sql.SQLException
         162   166     167  Class java.sql.SQLException
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  void show();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.h2.tools.Console this
         0: .line 269
            return
        end local 0 // org.h2.tools.Console this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Console;

  private void printProblem(java.lang.Exception, org.h2.tools.Server);
    descriptor: (Ljava/lang/Exception;Lorg/h2/tools/Server;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.h2.tools.Console this
        start local 1 // java.lang.Exception e
        start local 2 // org.h2.tools.Server server
         0: .line 272
            aload 2 /* server */
            ifnonnull 3
         1: .line 273
            aload 1 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
         2: .line 274
            goto 5
         3: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Console.out:Ljava/io/PrintStream;
            aload 2 /* server */
            invokevirtual org.h2.tools.Server.getStatus:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 276
            aload 0 /* this */
            getfield org.h2.tools.Console.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Root cause: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 278
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.h2.tools.Server server
        end local 1 // java.lang.Exception e
        end local 0 // org.h2.tools.Console this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/h2/tools/Console;
            0    6     1       e  Ljava/lang/Exception;
            0    6     2  server  Lorg/h2/tools/Server;
    MethodParameters:
        Name  Flags
      e       
      server  

  public void shutdown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.tools.Console this
         0: .line 286
            aload 0 /* this */
            getfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
            ifnull 3
            aload 0 /* this */
            getfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
            iconst_0
            invokevirtual org.h2.tools.Server.isRunning:(Z)Z
            ifeq 3
         1: .line 287
            aload 0 /* this */
            getfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.stop:()V
         2: .line 288
            aload 0 /* this */
            aconst_null
            putfield org.h2.tools.Console.web:Lorg/h2/tools/Server;
         3: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Console.tcp:Lorg/h2/tools/Server;
            ifnull 6
            aload 0 /* this */
            getfield org.h2.tools.Console.tcp:Lorg/h2/tools/Server;
            iconst_0
            invokevirtual org.h2.tools.Server.isRunning:(Z)Z
            ifeq 6
         4: .line 291
            aload 0 /* this */
            getfield org.h2.tools.Console.tcp:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.stop:()V
         5: .line 292
            aload 0 /* this */
            aconst_null
            putfield org.h2.tools.Console.tcp:Lorg/h2/tools/Server;
         6: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Console.pg:Lorg/h2/tools/Server;
            ifnull 9
            aload 0 /* this */
            getfield org.h2.tools.Console.pg:Lorg/h2/tools/Server;
            iconst_0
            invokevirtual org.h2.tools.Server.isRunning:(Z)Z
            ifeq 9
         7: .line 295
            aload 0 /* this */
            getfield org.h2.tools.Console.pg:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.stop:()V
         8: .line 296
            aload 0 /* this */
            aconst_null
            putfield org.h2.tools.Console.pg:Lorg/h2/tools/Server;
         9: .line 298
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.tools.Console this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/h2/tools/Console;

  void openBrowser(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.tools.Console this
        start local 1 // java.lang.String url
         0: .line 307
            aload 1 /* url */
            invokestatic org.h2.tools.Server.openBrowser:(Ljava/lang/String;)V
         1: .line 308
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 2 /* e */
        start local 2 // java.lang.Exception e
         3: .line 309
            aload 0 /* this */
            getfield org.h2.tools.Console.out:Ljava/io/PrintStream;
            aload 2 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 2 // java.lang.Exception e
         4: .line 311
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String url
        end local 0 // org.h2.tools.Console this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/tools/Console;
            0    5     1   url  Ljava/lang/String;
            3    4     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      url   
}
SourceFile: "Console.java"