final class com.sun.media.sound.RealTimeSequencer$PlayThread implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.media.sound.RealTimeSequencer$PlayThread
  super_class: java.lang.Object
{
  private java.lang.Thread thread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object lock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final com.sun.media.sound.RealTimeSequencer$DataPump dataPump;
    descriptor: Lcom/sun/media/sound/RealTimeSequencer$DataPump;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final com.sun.media.sound.RealTimeSequencer this$0;
    descriptor: Lcom/sun/media/sound/RealTimeSequencer;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.sun.media.sound.RealTimeSequencer);
    descriptor: (Lcom/sun/media/sound/RealTimeSequencer;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
         0: .line 1259
            aload 0 /* this */
            aload 1
            putfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1250
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
         2: .line 1253
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.RealTimeSequencer$PlayThread.interrupted:Z
         3: .line 1254
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.RealTimeSequencer$PlayThread.isPumping:Z
         4: .line 1256
            aload 0 /* this */
            new com.sun.media.sound.RealTimeSequencer$DataPump
            dup
            aload 1
            invokespecial com.sun.media.sound.RealTimeSequencer$DataPump.<init>:(Lcom/sun/media/sound/RealTimeSequencer;)V
            putfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
         5: .line 1261
            bipush 8
            istore 2 /* priority */
        start local 2 // int priority
         6: .line 1263
            aload 0 /* this */
            aload 0 /* this */
         7: .line 1264
            ldc "Java Sound Sequencer"
         8: .line 1265
            iconst_0
         9: .line 1266
            iload 2 /* priority */
        10: .line 1267
            iconst_1
        11: .line 1263
            invokestatic com.sun.media.sound.JSSecurityManager.createThread:(Ljava/lang/Runnable;Ljava/lang/String;ZIZ)Ljava/lang/Thread;
            putfield com.sun.media.sound.RealTimeSequencer$PlayThread.thread:Ljava/lang/Thread;
        12: .line 1268
            return
        end local 2 // int priority
        end local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/sun/media/sound/RealTimeSequencer$PlayThread;
            6   13     2  priority  I
    MethodParameters:
        Name  Flags
      this$0  final

  com.sun.media.sound.RealTimeSequencer$DataPump getDataPump();
    descriptor: ()Lcom/sun/media/sound/RealTimeSequencer$DataPump;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
         0: .line 1271
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            areturn
        end local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/RealTimeSequencer$PlayThread;

  synchronized void setSequence(javax.sound.midi.Sequence);
    descriptor: (Ljavax/sound/midi/Sequence;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
        start local 1 // javax.sound.midi.Sequence seq
         0: .line 1275
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            aload 1 /* seq */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.setSequence:(Ljavax/sound/midi/Sequence;)V
         1: .line 1276
            return
        end local 1 // javax.sound.midi.Sequence seq
        end local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/media/sound/RealTimeSequencer$PlayThread;
            0    2     1   seq  Ljavax/sound/midi/Sequence;
    MethodParameters:
      Name  Flags
      seq   

  synchronized void start();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
         0: .line 1282
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            iconst_1
            putfield com.sun.media.sound.RealTimeSequencer.running:Z
         1: .line 1284
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.hasCachedTempo:()Z
            ifne 4
         2: .line 1285
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTickPosition:()J
            lstore 1 /* tickPos */
        start local 1 // long tickPos
         3: .line 1286
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.tempoCache:Lcom/sun/media/sound/MidiUtils$TempoCache;
            lload 1 /* tickPos */
            invokevirtual com.sun.media.sound.MidiUtils$TempoCache.getTempoMPQAt:(J)F
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.setTempoMPQ:(F)V
        end local 1 // long tickPos
         4: .line 1288
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            lconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
         5: .line 1289
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.clearNoteOnCache:()V
         6: .line 1290
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            iconst_1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.needReindex:Z
         7: .line 1292
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.resetLoopCount:()V
         8: .line 1295
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         9: .line 1296
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        10: .line 1295
            aload 1
            monitorexit
        11: goto 14
      StackMap locals: com.sun.media.sound.RealTimeSequencer$PlayThread java.lang.Object
      StackMap stack: java.lang.Throwable
        12: aload 1
            monitorexit
        13: athrow
        14: .line 1301
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lcom/sun/media/sound/RealTimeSequencer$PlayThread;
            3    4     1  tickPos  J
      Exception table:
        from    to  target  type
           9    11      12  any
          12    13      12  any

  synchronized void stop();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
         0: .line 1305
            aload 0 /* this */
            invokevirtual com.sun.media.sound.RealTimeSequencer$PlayThread.playThreadImplStop:()V
         1: .line 1306
            invokestatic java.lang.System.nanoTime:()J
            ldc 1000000
            ldiv
            lstore 1 /* t */
        start local 1 // long t
         2: .line 1307
            goto 12
         3: .line 1308
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         4: .line 1310
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            ldc 2000
            invokevirtual java.lang.Object.wait:(J)V
         5: .line 1311
            goto 7
      StackMap locals: com.sun.media.sound.RealTimeSequencer$PlayThread long java.lang.Object
      StackMap stack: java.lang.InterruptedException
         6: pop
         7: .line 1308
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        11: .line 1316
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            ldc 1000000
            ldiv
            lload 1 /* t */
            lsub
            ldc 1900
            lcmp
            ifle 12
        12: .line 1307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.isPumping:Z
            ifne 3
        13: .line 1321
            return
        end local 1 // long t
        end local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/sun/media/sound/RealTimeSequencer$PlayThread;
            2   14     1     t  J
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.InterruptedException
           4     8       9  any
           9    10       9  any

  void playThreadImplStop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
         0: .line 1325
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            iconst_0
            putfield com.sun.media.sound.RealTimeSequencer.running:Z
         1: .line 1326
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 1327
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         3: .line 1326
            aload 1
            monitorexit
         4: goto 7
      StackMap locals: com.sun.media.sound.RealTimeSequencer$PlayThread java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 1329
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/media/sound/RealTimeSequencer$PlayThread;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any

  void close();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
         0: .line 1332
            aconst_null
            astore 1 /* oldThread */
        start local 1 // java.lang.Thread oldThread
         1: .line 1333
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 1335
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.RealTimeSequencer$PlayThread.interrupted:Z
         3: .line 1336
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.thread:Ljava/lang/Thread;
            astore 1 /* oldThread */
         4: .line 1337
            aload 0 /* this */
            aconst_null
            putfield com.sun.media.sound.RealTimeSequencer$PlayThread.thread:Ljava/lang/Thread;
         5: .line 1333
            aload 2
            monitorexit
         6: goto 9
      StackMap locals: com.sun.media.sound.RealTimeSequencer$PlayThread java.lang.Thread com.sun.media.sound.RealTimeSequencer$PlayThread
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 1339
      StackMap locals:
      StackMap stack:
            aload 1 /* oldThread */
            ifnull 16
        10: .line 1341
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
        11: .line 1342
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        12: .line 1341
            aload 2
            monitorexit
        13: goto 16
      StackMap locals: com.sun.media.sound.RealTimeSequencer$PlayThread java.lang.Thread java.lang.Object
      StackMap stack: java.lang.Throwable
        14: aload 2
            monitorexit
        15: athrow
        16: .line 1347
      StackMap locals:
      StackMap stack:
            aload 1 /* oldThread */
            ifnull 20
        17: .line 1349
            aload 1 /* oldThread */
            ldc 2000
            invokevirtual java.lang.Thread.join:(J)V
        18: .line 1350
            goto 20
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        19: pop
        20: .line 1352
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread oldThread
        end local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0       this  Lcom/sun/media/sound/RealTimeSequencer$PlayThread;
            1   21     1  oldThread  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any
          11    13      14  any
          14    15      14  any
          17    18      19  Class java.lang.InterruptedException

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
         0: .line 1363
            goto 34
         1: .line 1364
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* EOM */
        start local 1 // boolean EOM
         2: .line 1365
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.running:Z
            istore 2 /* wasRunning */
        start local 2 // boolean wasRunning
         3: .line 1366
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.interrupted:Z
            ifne 4
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.running:Z
            ifeq 4
            iconst_1
            goto 5
      StackMap locals: com.sun.media.sound.RealTimeSequencer$PlayThread int int
      StackMap stack: com.sun.media.sound.RealTimeSequencer$PlayThread
         4: iconst_0
      StackMap locals: com.sun.media.sound.RealTimeSequencer$PlayThread int int
      StackMap stack: com.sun.media.sound.RealTimeSequencer$PlayThread int
         5: putfield com.sun.media.sound.RealTimeSequencer$PlayThread.isPumping:Z
         6: .line 1367
            goto 11
         7: .line 1368
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.pump:()Z
            istore 1 /* EOM */
         8: .line 1371
            lconst_1
            invokestatic java.lang.Thread.sleep:(J)V
         9: .line 1372
            goto 11
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        10: pop
        11: .line 1367
      StackMap locals:
      StackMap stack:
            iload 1 /* EOM */
            ifne 12
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.interrupted:Z
            ifne 12
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.running:Z
            ifne 7
        12: .line 1383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.sound.RealTimeSequencer$PlayThread.playThreadImplStop:()V
        13: .line 1384
            iload 2 /* wasRunning */
            ifeq 15
        14: .line 1385
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            iconst_1
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.notesOff:(Z)V
        15: .line 1387
      StackMap locals:
      StackMap stack:
            iload 1 /* EOM */
            ifeq 22
        16: .line 1388
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.dataPump:Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.sequence:Ljavax/sound/midi/Sequence;
            invokevirtual javax.sound.midi.Sequence.getTickLength:()J
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.setTickPos:(J)V
        17: .line 1391
            new javax.sound.midi.MetaMessage
            dup
            invokespecial javax.sound.midi.MetaMessage.<init>:()V
            astore 3 /* message */
        start local 3 // javax.sound.midi.MetaMessage message
        18: .line 1393
            aload 3 /* message */
            bipush 47
            iconst_0
            newarray 8
            iconst_0
            invokevirtual javax.sound.midi.MetaMessage.setMessage:(I[BI)V
        19: .line 1394
            goto 21
      StackMap locals: com.sun.media.sound.RealTimeSequencer$PlayThread int int javax.sound.midi.MetaMessage
      StackMap stack: javax.sound.midi.InvalidMidiDataException
        20: pop
        21: .line 1395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            aload 3 /* message */
            invokevirtual com.sun.media.sound.RealTimeSequencer.sendMetaEvents:(Ljavax/sound/midi/MidiMessage;)V
        end local 3 // javax.sound.midi.MetaMessage message
        22: .line 1397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
        23: .line 1398
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.RealTimeSequencer$PlayThread.isPumping:Z
        24: .line 1400
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        25: .line 1401
            goto 29
        26: .line 1403
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
        27: .line 1404
            goto 29
      StackMap locals:
      StackMap stack: java.lang.Exception
        28: pop
        29: .line 1401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.running:Z
            ifne 30
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.interrupted:Z
            ifeq 26
        30: .line 1397
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        31: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: aload 3
            monitorexit
        33: athrow
        end local 2 // boolean wasRunning
        end local 1 // boolean EOM
        34: .line 1363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$PlayThread.interrupted:Z
            ifeq 1
        35: .line 1409
            return
        end local 0 // com.sun.media.sound.RealTimeSequencer$PlayThread this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   36     0        this  Lcom/sun/media/sound/RealTimeSequencer$PlayThread;
            2   34     1         EOM  Z
            3   34     2  wasRunning  Z
           18   22     3     message  Ljavax/sound/midi/MetaMessage;
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.InterruptedException
          18    19      20  Class javax.sound.midi.InvalidMidiDataException
          26    27      28  Class java.lang.Exception
          23    31      32  any
          32    33      32  any
}
SourceFile: "RealTimeSequencer.java"
NestHost: com.sun.media.sound.RealTimeSequencer
InnerClasses:
  public final TempoCache = com.sun.media.sound.MidiUtils$TempoCache of com.sun.media.sound.MidiUtils
  private DataPump = com.sun.media.sound.RealTimeSequencer$DataPump of com.sun.media.sound.RealTimeSequencer
  final PlayThread = com.sun.media.sound.RealTimeSequencer$PlayThread of com.sun.media.sound.RealTimeSequencer