public class purejavacomm.PureJavaSerialPort extends purejavacomm.SerialPort
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: purejavacomm.PureJavaSerialPort
  super_class: purejavacomm.SerialPort
{
  final boolean USE_POLL;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean RAW_READ_MODE;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  private java.lang.Thread m_Thread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private volatile purejavacomm.SerialPortEventListener m_EventListener;
    descriptor: Lpurejavacomm/SerialPortEventListener;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile java.io.OutputStream m_OutputStream;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile java.io.InputStream m_InputStream;
    descriptor: Ljava/io/InputStream;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_FD;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_HaveNudgePipe;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_PipeWrFD;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_PipeRdFD;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private byte[] m_NudgeData;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private volatile int m_BaudRate;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_DataBits;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_FlowControlMode;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_Parity;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_StopBits;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile java.lang.Object m_ThresholdTimeoutLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_TimeoutThresholdChanged;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_ReceiveTimeoutEnabled;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_ReceiveTimeoutValue;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_ReceiveTimeoutVTIME;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_ReceiveThresholdEnabled;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int m_ReceiveThresholdValue;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_PollingReadMode;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnDataAvailable;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_DataAvailableNotified;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnOutputEmpty;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_OutputEmptyNotified;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnRI;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnCTS;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnDSR;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnCD;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnOverrunError;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnParityError;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnFramingError;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_NotifyOnBreakInterrupt;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_ThreadRunning;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean m_ThreadStarted;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private int[] m_ioctl;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int m_ControlLineStates;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private jtermios.Termios m_Termios;
    descriptor: Ljtermios/Termios;
    flags: (0x0002) ACC_PRIVATE

  private int m_MinVTIME;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private void sendDataEvents(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean read
        start local 2 // boolean write
         0: .line 90
            iload 1 /* read */
            ifeq 3
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_NotifyOnDataAvailable:Z
            ifeq 3
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_DataAvailableNotified:Z
            ifne 3
         1: .line 91
            aload 0 /* this */
            iconst_1
            putfield purejavacomm.PureJavaSerialPort.m_DataAvailableNotified:Z
         2: .line 92
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
            new purejavacomm.SerialPortEvent
            dup
            aload 0 /* this */
            iconst_1
            iconst_0
            iconst_1
            invokespecial purejavacomm.SerialPortEvent.<init>:(Lpurejavacomm/SerialPort;IZZ)V
            invokeinterface purejavacomm.SerialPortEventListener.serialEvent:(Lpurejavacomm/SerialPortEvent;)V
         3: .line 94
      StackMap locals:
      StackMap stack:
            iload 2 /* write */
            ifeq 6
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_NotifyOnOutputEmpty:Z
            ifeq 6
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_OutputEmptyNotified:Z
            ifne 6
         4: .line 95
            aload 0 /* this */
            iconst_1
            putfield purejavacomm.PureJavaSerialPort.m_OutputEmptyNotified:Z
         5: .line 96
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
            new purejavacomm.SerialPortEvent
            dup
            aload 0 /* this */
            iconst_2
            iconst_0
            iconst_1
            invokespecial purejavacomm.SerialPortEvent.<init>:(Lpurejavacomm/SerialPort;IZZ)V
            invokeinterface purejavacomm.SerialPortEventListener.serialEvent:(Lpurejavacomm/SerialPortEvent;)V
         6: .line 98
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean write
        end local 1 // boolean read
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lpurejavacomm/PureJavaSerialPort;
            0    7     1   read  Z
            0    7     2  write  Z
    MethodParameters:
       Name  Flags
      read   
      write  

  private synchronized void sendNonDataEvents();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=8, locals=5, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 101
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TIOCMGET:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            invokestatic jtermios.JTermios.ioctl:(II[I)I
            ifge 2
         1: .line 102
            return
         2: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ControlLineStates:I
            istore 1 /* oldstates */
        start local 1 // int oldstates
         3: .line 104
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            iconst_0
            iaload
            putfield purejavacomm.PureJavaSerialPort.m_ControlLineStates:I
         4: .line 105
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ControlLineStates:I
            istore 2 /* newstates */
        start local 2 // int newstates
         5: .line 106
            iload 1 /* oldstates */
            iload 2 /* newstates */
            ixor
            istore 3 /* changes */
        start local 3 // int changes
         6: .line 107
            iload 3 /* changes */
            ifne 8
         7: .line 108
            return
         8: .line 112
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_NotifyOnCTS:Z
            ifeq 16
            getstatic jtermios.JTermios.TIOCM_CTS:I
            dup
            istore 4 /* line */
        start local 4 // int line
         9: iload 3 /* changes */
            iand
            ifeq 16
        10: .line 113
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
        11: new purejavacomm.SerialPortEvent
            dup
            aload 0 /* this */
            iconst_3
            iload 1 /* oldstates */
            iload 4 /* line */
            iand
            ifeq 12
            iconst_1
            goto 13
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 11 new 11 purejavacomm.PureJavaSerialPort int
        12: iconst_0
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 11 new 11 purejavacomm.PureJavaSerialPort int int
        13: iload 2 /* newstates */
            iload 4 /* line */
            iand
            ifeq 14
            iconst_1
            goto 15
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 11 new 11 purejavacomm.PureJavaSerialPort int int
        14: iconst_0
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 11 new 11 purejavacomm.PureJavaSerialPort int int int
        15: invokespecial purejavacomm.SerialPortEvent.<init>:(Lpurejavacomm/SerialPort;IZZ)V
            invokeinterface purejavacomm.SerialPortEventListener.serialEvent:(Lpurejavacomm/SerialPortEvent;)V
        end local 4 // int line
        16: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_NotifyOnDSR:Z
            ifeq 24
            getstatic jtermios.JTermios.TIOCM_DSR:I
            dup
            istore 4 /* line */
        start local 4 // int line
        17: iload 3 /* changes */
            iand
            ifeq 24
        18: .line 116
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
        19: new purejavacomm.SerialPortEvent
            dup
            aload 0 /* this */
            iconst_4
            iload 1 /* oldstates */
            iload 4 /* line */
            iand
            ifeq 20
            iconst_1
            goto 21
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 19 new 19 purejavacomm.PureJavaSerialPort int
        20: iconst_0
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 19 new 19 purejavacomm.PureJavaSerialPort int int
        21: iload 2 /* newstates */
            iload 4 /* line */
            iand
            ifeq 22
            iconst_1
            goto 23
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 19 new 19 purejavacomm.PureJavaSerialPort int int
        22: iconst_0
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 19 new 19 purejavacomm.PureJavaSerialPort int int int
        23: invokespecial purejavacomm.SerialPortEvent.<init>:(Lpurejavacomm/SerialPort;IZZ)V
            invokeinterface purejavacomm.SerialPortEventListener.serialEvent:(Lpurejavacomm/SerialPortEvent;)V
        end local 4 // int line
        24: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_NotifyOnRI:Z
            ifeq 32
            getstatic jtermios.JTermios.TIOCM_RI:I
            dup
            istore 4 /* line */
        start local 4 // int line
        25: iload 3 /* changes */
            iand
            ifeq 32
        26: .line 119
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
        27: new purejavacomm.SerialPortEvent
            dup
            aload 0 /* this */
            iconst_5
            iload 1 /* oldstates */
            iload 4 /* line */
            iand
            ifeq 28
            iconst_1
            goto 29
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 27 new 27 purejavacomm.PureJavaSerialPort int
        28: iconst_0
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 27 new 27 purejavacomm.PureJavaSerialPort int int
        29: iload 2 /* newstates */
            iload 4 /* line */
            iand
            ifeq 30
            iconst_1
            goto 31
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 27 new 27 purejavacomm.PureJavaSerialPort int int
        30: iconst_0
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 27 new 27 purejavacomm.PureJavaSerialPort int int int
        31: invokespecial purejavacomm.SerialPortEvent.<init>:(Lpurejavacomm/SerialPort;IZZ)V
            invokeinterface purejavacomm.SerialPortEventListener.serialEvent:(Lpurejavacomm/SerialPortEvent;)V
        end local 4 // int line
        32: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_NotifyOnCD:Z
            ifeq 40
            getstatic jtermios.JTermios.TIOCM_CD:I
            dup
            istore 4 /* line */
        start local 4 // int line
        33: iload 3 /* changes */
            iand
            ifeq 40
        34: .line 122
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
        35: new purejavacomm.SerialPortEvent
            dup
            aload 0 /* this */
            bipush 6
            iload 1 /* oldstates */
            iload 4 /* line */
            iand
            ifeq 36
            iconst_1
            goto 37
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 35 new 35 purejavacomm.PureJavaSerialPort int
        36: iconst_0
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 35 new 35 purejavacomm.PureJavaSerialPort int int
        37: iload 2 /* newstates */
            iload 4 /* line */
            iand
            ifeq 38
            iconst_1
            goto 39
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 35 new 35 purejavacomm.PureJavaSerialPort int int
        38: iconst_0
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int
      StackMap stack: purejavacomm.SerialPortEventListener new 35 new 35 purejavacomm.PureJavaSerialPort int int int
        39: invokespecial purejavacomm.SerialPortEvent.<init>:(Lpurejavacomm/SerialPort;IZZ)V
            invokeinterface purejavacomm.SerialPortEventListener.serialEvent:(Lpurejavacomm/SerialPortEvent;)V
        end local 4 // int line
        40: .line 123
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int changes
        end local 2 // int newstates
        end local 1 // int oldstates
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   41     0       this  Lpurejavacomm/PureJavaSerialPort;
            3   41     1  oldstates  I
            5   41     2  newstates  I
            6   41     3    changes  I
            9   16     4       line  I
           17   24     4       line  I
           25   32     4       line  I
           33   40     4       line  I

  public synchronized void addEventListener(purejavacomm.SerialPortEventListener);
    descriptor: (Lpurejavacomm/SerialPortEventListener;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // purejavacomm.SerialPortEventListener eventListener
         0: .line 127
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 128
            aload 1 /* eventListener */
            ifnonnull 3
         2: .line 129
            new java.lang.IllegalArgumentException
            dup
            ldc "eventListener cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
            ifnull 5
         4: .line 131
            new java.util.TooManyListenersException
            dup
            invokespecial java.util.TooManyListenersException.<init>:()V
            athrow
         5: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* eventListener */
            putfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
         6: .line 133
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ThreadStarted:Z
            ifne 9
         7: .line 134
            aload 0 /* this */
            iconst_1
            putfield purejavacomm.PureJavaSerialPort.m_ThreadStarted:Z
         8: .line 135
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Thread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
         9: .line 137
      StackMap locals:
      StackMap stack:
            return
        end local 1 // purejavacomm.SerialPortEventListener eventListener
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lpurejavacomm/PureJavaSerialPort;
            0   10     1  eventListener  Lpurejavacomm/SerialPortEventListener;
    Exceptions:
      throws java.util.TooManyListenersException
    MethodParameters:
               Name  Flags
      eventListener  

  public synchronized int getBaudRate();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 141
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 142
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_BaudRate:I
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized int getDataBits();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 147
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 148
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_DataBits:I
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized int getFlowControlMode();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 153
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 154
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FlowControlMode:I
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized int getParity();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 159
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 160
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Parity:I
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized int getStopBits();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 165
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 166
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_StopBits:I
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized boolean isCD();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 171
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 172
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_CD:I
            invokevirtual purejavacomm.PureJavaSerialPort.getControlLineState:(I)Z
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized boolean isCTS();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 177
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 178
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_CTS:I
            invokevirtual purejavacomm.PureJavaSerialPort.getControlLineState:(I)Z
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized boolean isDSR();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 183
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 184
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_DSR:I
            invokevirtual purejavacomm.PureJavaSerialPort.getControlLineState:(I)Z
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized boolean isDTR();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 189
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 190
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_DTR:I
            invokevirtual purejavacomm.PureJavaSerialPort.getControlLineState:(I)Z
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized boolean isRI();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 195
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 196
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_RI:I
            invokevirtual purejavacomm.PureJavaSerialPort.getControlLineState:(I)Z
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized boolean isRTS();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 201
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 202
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_RTS:I
            invokevirtual purejavacomm.PureJavaSerialPort.getControlLineState:(I)Z
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized void notifyOnBreakInterrupt(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 207
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 208
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnBreakInterrupt:Z
         2: .line 209
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    3     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void notifyOnCTS(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 213
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 214
            iload 1 /* x */
            ifeq 3
         2: .line 215
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_CTS:I
            invokevirtual purejavacomm.PureJavaSerialPort.updateControlLineState:(I)V
         3: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnCTS:Z
         4: .line 217
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.nudgePipe:()V
         5: .line 218
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    6     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void notifyOnCarrierDetect(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 222
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 223
            iload 1 /* x */
            ifeq 3
         2: .line 224
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_CD:I
            invokevirtual purejavacomm.PureJavaSerialPort.updateControlLineState:(I)V
         3: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnCD:Z
         4: .line 226
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.nudgePipe:()V
         5: .line 227
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    6     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void notifyOnDSR(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 231
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 232
            iload 1 /* x */
            ifeq 3
         2: .line 233
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_DSR:I
            invokevirtual purejavacomm.PureJavaSerialPort.updateControlLineState:(I)V
         3: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnDSR:Z
         4: .line 235
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.nudgePipe:()V
         5: .line 236
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    6     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void notifyOnDataAvailable(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 240
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 241
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnDataAvailable:Z
         2: .line 242
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.nudgePipe:()V
         3: .line 243
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    4     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void notifyOnFramingError(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 247
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 248
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnFramingError:Z
         2: .line 249
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    3     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void notifyOnOutputEmpty(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 253
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 254
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnOutputEmpty:Z
         2: .line 255
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.nudgePipe:()V
         3: .line 256
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    4     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void notifyOnOverrunError(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 260
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 261
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnOverrunError:Z
         2: .line 262
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    3     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void notifyOnParityError(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 266
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 267
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnParityError:Z
         2: .line 268
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    3     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void notifyOnRingIndicator(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 272
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 273
            iload 1 /* x */
            ifeq 3
         2: .line 274
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_RI:I
            invokevirtual purejavacomm.PureJavaSerialPort.updateControlLineState:(I)V
         3: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* x */
            putfield purejavacomm.PureJavaSerialPort.m_NotifyOnRI:Z
         4: .line 276
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.nudgePipe:()V
         5: .line 277
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    6     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void removeEventListener();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 281
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 282
            aload 0 /* this */
            aconst_null
            putfield purejavacomm.PureJavaSerialPort.m_EventListener:Lpurejavacomm/SerialPortEventListener;
         2: .line 283
            return
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized void sendBreak(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int duration
         0: .line 287
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 301
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            iload 1 /* duration */
            invokestatic jtermios.JTermios.tcsendbreak:(II)I
            pop
         2: .line 302
            return
        end local 1 // int duration
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lpurejavacomm/PureJavaSerialPort;
            0    3     1  duration  I
    MethodParameters:
          Name  Flags
      duration  

  public synchronized void setDTR(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 306
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 307
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_DTR:I
            iload 1 /* x */
            invokevirtual purejavacomm.PureJavaSerialPort.setControlLineState:(IZ)V
         2: .line 308
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    3     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void setRTS(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // boolean x
         0: .line 312
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 313
            aload 0 /* this */
            getstatic jtermios.JTermios.TIOCM_RTS:I
            iload 1 /* x */
            invokevirtual purejavacomm.PureJavaSerialPort.setControlLineState:(IZ)V
         2: .line 314
            return
        end local 1 // boolean x
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    3     1     x  Z
    MethodParameters:
      Name  Flags
      x     

  public synchronized void disableReceiveFraming();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 318
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 320
            return
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized void disableReceiveThreshold();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 324
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 325
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ThresholdTimeoutLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 326
            aload 0 /* this */
            iconst_0
            putfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdEnabled:Z
         3: .line 327
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.thresholdOrTimeoutChanged:()V
         4: .line 325
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: purejavacomm.PureJavaSerialPort java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 329
      StackMap locals:
      StackMap stack:
            return
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lpurejavacomm/PureJavaSerialPort;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any

  public synchronized void disableReceiveTimeout();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 333
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 334
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ThresholdTimeoutLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 335
            aload 0 /* this */
            iconst_0
            putfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutEnabled:Z
         3: .line 336
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.thresholdOrTimeoutChanged:()V
         4: .line 334
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: purejavacomm.PureJavaSerialPort java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 338
      StackMap locals:
      StackMap stack:
            return
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lpurejavacomm/PureJavaSerialPort;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any

  public synchronized void enableReceiveThreshold(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int value
         0: .line 342
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 343
            iload 1 /* value */
            ifge 3
         2: .line 344
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "threshold"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " < 0 "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.RAW_READ_MODE:Z
            ifeq 5
            iload 1 /* value */
            sipush 255
            if_icmple 5
         4: .line 346
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "threshold"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " > 255 in raw read mode"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ThresholdTimeoutLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         6: .line 348
            aload 0 /* this */
            iconst_1
            putfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdEnabled:Z
         7: .line 349
            aload 0 /* this */
            iload 1 /* value */
            putfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdValue:I
         8: .line 350
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.thresholdOrTimeoutChanged:()V
         9: .line 347
            aload 2
            monitorexit
        10: goto 13
      StackMap locals: purejavacomm.PureJavaSerialPort int java.lang.Object
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 352
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int value
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lpurejavacomm/PureJavaSerialPort;
            0   14     1  value  I
      Exception table:
        from    to  target  type
           6    10      11  any
          11    12      11  any
    Exceptions:
      throws purejavacomm.UnsupportedCommOperationException
    MethodParameters:
       Name  Flags
      value  

  public synchronized void enableReceiveTimeout(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int value
         0: .line 356
            iload 1 /* value */
            ifge 2
         1: .line 357
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "threshold"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " < 0 "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 358
      StackMap locals:
      StackMap stack:
            iload 1 /* value */
            sipush 25500
            if_icmple 4
         3: .line 359
            new purejavacomm.UnsupportedCommOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "threshold"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " > 25500 "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial purejavacomm.UnsupportedCommOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         5: .line 362
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ThresholdTimeoutLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         6: .line 363
            aload 0 /* this */
            iconst_1
            putfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutEnabled:Z
         7: .line 364
            aload 0 /* this */
            iload 1 /* value */
            putfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutValue:I
         8: .line 365
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.thresholdOrTimeoutChanged:()V
         9: .line 362
            aload 2
            monitorexit
        10: goto 13
      StackMap locals: purejavacomm.PureJavaSerialPort int java.lang.Object
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 367
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int value
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lpurejavacomm/PureJavaSerialPort;
            0   14     1  value  I
      Exception table:
        from    to  target  type
           6    10      11  any
          11    12      11  any
    Exceptions:
      throws purejavacomm.UnsupportedCommOperationException
    MethodParameters:
       Name  Flags
      value  

  public synchronized void enableReceiveFraming(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int arg0
         0: .line 371
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 372
            new purejavacomm.UnsupportedCommOperationException
            dup
            ldc "receive framing not supported/implemented"
            invokespecial purejavacomm.UnsupportedCommOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int arg0
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    2     1  arg0  I
    Exceptions:
      throws purejavacomm.UnsupportedCommOperationException
    MethodParameters:
      Name  Flags
      arg0  

  private void thresholdOrTimeoutChanged();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 376
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutEnabled:Z
            ifeq 1
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutValue:I
            ifeq 3
      StackMap locals:
      StackMap stack: purejavacomm.PureJavaSerialPort
         1: aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdEnabled:Z
            ifeq 2
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdValue:I
            ifeq 3
      StackMap locals:
      StackMap stack: purejavacomm.PureJavaSerialPort
         2: iconst_0
            goto 4
      StackMap locals:
      StackMap stack: purejavacomm.PureJavaSerialPort
         3: iconst_1
      StackMap locals: purejavacomm.PureJavaSerialPort
      StackMap stack: purejavacomm.PureJavaSerialPort int
         4: putfield purejavacomm.PureJavaSerialPort.m_PollingReadMode:Z
         5: .line 377
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutValue:I
            bipush 99
            iadd
            bipush 100
            idiv
            putfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutVTIME:I
         6: .line 378
            aload 0 /* this */
            iconst_1
            putfield purejavacomm.PureJavaSerialPort.m_TimeoutThresholdChanged:Z
         7: .line 379
            return
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized int getInputBufferSize();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 383
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 385
            iconst_0
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized int getOutputBufferSize();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 390
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 392
            iconst_0
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized void setFlowControlMode(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int mode
         0: .line 397
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 398
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            astore 2
            monitorenter
         2: .line 399
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_iflag:I
            getstatic jtermios.JTermios.IXANY:I
            iconst_m1
            ixor
            iand
            putfield jtermios.Termios.c_iflag:I
         3: .line 401
            iload 1 /* mode */
            iconst_3
            iand
            ifeq 5
         4: .line 402
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_cflag:I
            getstatic jtermios.JTermios.CRTSCTS:I
            ior
            putfield jtermios.Termios.c_cflag:I
            goto 6
         5: .line 404
      StackMap locals: jtermios.Termios
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_cflag:I
            getstatic jtermios.JTermios.CRTSCTS:I
            iconst_m1
            ixor
            iand
            putfield jtermios.Termios.c_cflag:I
         6: .line 406
      StackMap locals:
      StackMap stack:
            iload 1 /* mode */
            iconst_4
            iand
            ifeq 8
         7: .line 407
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_iflag:I
            getstatic jtermios.JTermios.IXOFF:I
            ior
            putfield jtermios.Termios.c_iflag:I
            goto 9
         8: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_iflag:I
            getstatic jtermios.JTermios.IXOFF:I
            iconst_m1
            ixor
            iand
            putfield jtermios.Termios.c_iflag:I
         9: .line 411
      StackMap locals:
      StackMap stack:
            iload 1 /* mode */
            bipush 8
            iand
            ifeq 11
        10: .line 412
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_iflag:I
            getstatic jtermios.JTermios.IXON:I
            ior
            putfield jtermios.Termios.c_iflag:I
            goto 12
        11: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_iflag:I
            getstatic jtermios.JTermios.IXON:I
            iconst_m1
            ixor
            iand
            putfield jtermios.Termios.c_iflag:I
        12: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TCSANOW:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            invokestatic jtermios.JTermios.tcsetattr:(IILjtermios/Termios;)I
            invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
        13: .line 418
            aload 0 /* this */
            iload 1 /* mode */
            putfield purejavacomm.PureJavaSerialPort.m_FlowControlMode:I
        14: .line 398
            aload 2
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 2
            monitorexit
        17: athrow
        18: .line 420
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int mode
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lpurejavacomm/PureJavaSerialPort;
            0   19     1  mode  I
      Exception table:
        from    to  target  type
           2    15      16  any
          16    17      16  any
    Exceptions:
      throws purejavacomm.UnsupportedCommOperationException
    MethodParameters:
      Name  Flags
      mode  

  public synchronized void setSerialPortParams(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int baudRate
        start local 2 // int dataBits
        start local 3 // int stopBits
        start local 4 // int parity
         0: .line 424
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 425
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            astore 5
            monitorenter
         2: .line 426
            new jtermios.Termios
            dup
            invokespecial jtermios.Termios.<init>:()V
            astore 6 /* prev */
        start local 6 // jtermios.Termios prev
         3: .line 429
            aload 6 /* prev */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            invokevirtual jtermios.Termios.set:(Ljtermios/Termios;)V
         4: .line 432
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            iload 1 /* baudRate */
            invokestatic jtermios.JTermios.setspeed:(ILjtermios/Termios;I)I
            invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
         5: .line 435
            iload 2 /* dataBits */
            tableswitch { // 5 - 8
                    5: 6
                    6: 8
                    7: 10
                    8: 12
              default: 14
          }
         6: .line 437
      StackMap locals: jtermios.Termios jtermios.Termios
      StackMap stack:
            getstatic jtermios.JTermios.CS5:I
            istore 7 /* db */
        start local 7 // int db
         7: .line 438
            goto 15
        end local 7 // int db
         8: .line 440
      StackMap locals:
      StackMap stack:
            getstatic jtermios.JTermios.CS6:I
            istore 7 /* db */
        start local 7 // int db
         9: .line 441
            goto 15
        end local 7 // int db
        10: .line 443
      StackMap locals:
      StackMap stack:
            getstatic jtermios.JTermios.CS7:I
            istore 7 /* db */
        start local 7 // int db
        11: .line 444
            goto 15
        end local 7 // int db
        12: .line 446
      StackMap locals:
      StackMap stack:
            getstatic jtermios.JTermios.CS8:I
            istore 7 /* db */
        start local 7 // int db
        13: .line 447
            goto 15
        end local 7 // int db
        14: .line 449
      StackMap locals:
      StackMap stack:
            new purejavacomm.UnsupportedCommOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "dataBits = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* dataBits */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial purejavacomm.UnsupportedCommOperationException.<init>:(Ljava/lang/String;)V
            athrow
        start local 7 // int db
        15: .line 453
      StackMap locals: int
      StackMap stack:
            iload 3 /* stopBits */
            tableswitch { // 1 - 3
                    1: 16
                    2: 20
                    3: 18
              default: 22
          }
        16: .line 455
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* sb */
        start local 8 // int sb
        17: .line 456
            goto 23
        end local 8 // int sb
        18: .line 467
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 8 /* sb */
        start local 8 // int sb
        19: .line 468
            goto 23
        end local 8 // int sb
        20: .line 470
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 8 /* sb */
        start local 8 // int sb
        21: .line 471
            goto 23
        end local 8 // int sb
        22: .line 473
      StackMap locals:
      StackMap stack:
            new purejavacomm.UnsupportedCommOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "stopBits = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* stopBits */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial purejavacomm.UnsupportedCommOperationException.<init>:(Ljava/lang/String;)V
            athrow
        start local 8 // int sb
        23: .line 476
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            getfield jtermios.Termios.c_iflag:I
            getstatic jtermios.JTermios.INPCK:I
            getstatic jtermios.JTermios.ISTRIP:I
            ior
            iconst_m1
            ixor
            iand
            istore 9 /* fi */
        start local 9 // int fi
        24: .line 477
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            getfield jtermios.Termios.c_cflag:I
            getstatic jtermios.JTermios.PARENB:I
            getstatic jtermios.JTermios.CMSPAR:I
            ior
            getstatic jtermios.JTermios.PARODD:I
            ior
            iconst_m1
            ixor
            iand
            istore 10 /* fc */
        start local 10 // int fc
        25: .line 478
            iload 4 /* parity */
            tableswitch { // 0 - 4
                    0: 26
                    1: 29
                    2: 27
                    3: 32
                    4: 36
              default: 39
          }
        26: .line 480
      StackMap locals: int int
      StackMap stack:
            goto 40
        27: .line 482
      StackMap locals:
      StackMap stack:
            iload 10 /* fc */
            getstatic jtermios.JTermios.PARENB:I
            ior
            istore 10 /* fc */
        28: .line 483
            goto 40
        29: .line 485
      StackMap locals:
      StackMap stack:
            iload 10 /* fc */
            getstatic jtermios.JTermios.PARENB:I
            ior
            istore 10 /* fc */
        30: .line 486
            iload 10 /* fc */
            getstatic jtermios.JTermios.PARODD:I
            ior
            istore 10 /* fc */
        31: .line 487
            goto 40
        32: .line 489
      StackMap locals:
      StackMap stack:
            iload 10 /* fc */
            getstatic jtermios.JTermios.PARENB:I
            ior
            istore 10 /* fc */
        33: .line 490
            iload 10 /* fc */
            getstatic jtermios.JTermios.CMSPAR:I
            ior
            istore 10 /* fc */
        34: .line 491
            iload 10 /* fc */
            getstatic jtermios.JTermios.PARODD:I
            ior
            istore 10 /* fc */
        35: .line 492
            goto 40
        36: .line 494
      StackMap locals:
      StackMap stack:
            iload 10 /* fc */
            getstatic jtermios.JTermios.PARENB:I
            ior
            istore 10 /* fc */
        37: .line 495
            iload 10 /* fc */
            getstatic jtermios.JTermios.CMSPAR:I
            ior
            istore 10 /* fc */
        38: .line 496
            goto 40
        39: .line 498
      StackMap locals:
      StackMap stack:
            new purejavacomm.UnsupportedCommOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "parity = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* parity */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial purejavacomm.UnsupportedCommOperationException.<init>:(Ljava/lang/String;)V
            athrow
        40: .line 503
      StackMap locals:
      StackMap stack:
            iload 10 /* fc */
            getstatic jtermios.JTermios.CSIZE:I
            iconst_m1
            ixor
            iand
            istore 10 /* fc */
        41: .line 504
            iload 10 /* fc */
            iload 7 /* db */
            ior
            istore 10 /* fc */
        42: .line 506
            iload 8 /* sb */
            iconst_2
            if_icmpne 44
        43: .line 507
            iload 10 /* fc */
            getstatic jtermios.JTermios.CSTOPB:I
            ior
            istore 10 /* fc */
            goto 45
        44: .line 509
      StackMap locals:
      StackMap stack:
            iload 10 /* fc */
            getstatic jtermios.JTermios.CSTOPB:I
            iconst_m1
            ixor
            iand
            istore 10 /* fc */
        45: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            iload 10 /* fc */
            putfield jtermios.Termios.c_cflag:I
        46: .line 512
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            iload 9 /* fi */
            putfield jtermios.Termios.c_iflag:I
        47: .line 514
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TCSANOW:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            invokestatic jtermios.JTermios.tcsetattr:(IILjtermios/Termios;)I
            ifeq 49
        48: .line 515
            new purejavacomm.UnsupportedCommOperationException
            dup
            ldc "tcsetattr failed"
            invokespecial purejavacomm.UnsupportedCommOperationException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* baudRate */
            putfield purejavacomm.PureJavaSerialPort.m_BaudRate:I
        50: .line 523
            aload 0 /* this */
            iload 4 /* parity */
            putfield purejavacomm.PureJavaSerialPort.m_Parity:I
        51: .line 524
            aload 0 /* this */
            iload 2 /* dataBits */
            putfield purejavacomm.PureJavaSerialPort.m_DataBits:I
        52: .line 525
            aload 0 /* this */
            iload 3 /* stopBits */
            putfield purejavacomm.PureJavaSerialPort.m_StopBits:I
        end local 10 // int fc
        end local 9 // int fi
        end local 8 // int sb
        end local 7 // int db
        53: .line 526
            goto 64
      StackMap locals: purejavacomm.PureJavaSerialPort int int int int jtermios.Termios jtermios.Termios
      StackMap stack: purejavacomm.UnsupportedCommOperationException
        54: astore 7 /* e */
        start local 7 // purejavacomm.UnsupportedCommOperationException e
        55: .line 527
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            aload 6 /* prev */
            invokevirtual jtermios.Termios.set:(Ljtermios/Termios;)V
        56: .line 528
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TCSANOW:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            invokestatic jtermios.JTermios.tcsetattr:(IILjtermios/Termios;)I
            invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
        57: .line 529
            aload 7 /* e */
            athrow
        end local 7 // purejavacomm.UnsupportedCommOperationException e
        58: .line 530
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 7 /* e */
        start local 7 // java.lang.IllegalStateException e
        59: .line 531
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            aload 6 /* prev */
            invokevirtual jtermios.Termios.set:(Ljtermios/Termios;)V
        60: .line 532
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TCSANOW:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            invokestatic jtermios.JTermios.tcsetattr:(IILjtermios/Termios;)I
            invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
        61: .line 533
            aload 7 /* e */
            instanceof purejavacomm.PureJavaIllegalStateException
            ifeq 63
        62: .line 534
            aload 7 /* e */
            athrow
        63: .line 536
      StackMap locals: java.lang.IllegalStateException
      StackMap stack:
            new purejavacomm.PureJavaIllegalStateException
            dup
            aload 7 /* e */
            invokespecial purejavacomm.PureJavaIllegalStateException.<init>:(Ljava/lang/Exception;)V
            athrow
        end local 7 // java.lang.IllegalStateException e
        end local 6 // jtermios.Termios prev
        64: .line 425
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        65: goto 68
      StackMap locals:
      StackMap stack: java.lang.Throwable
        66: aload 5
            monitorexit
        67: athrow
        68: .line 540
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int parity
        end local 3 // int stopBits
        end local 2 // int dataBits
        end local 1 // int baudRate
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   69     0      this  Lpurejavacomm/PureJavaSerialPort;
            0   69     1  baudRate  I
            0   69     2  dataBits  I
            0   69     3  stopBits  I
            0   69     4    parity  I
            3   64     6      prev  Ljtermios/Termios;
            7    8     7        db  I
            9   10     7        db  I
           11   12     7        db  I
           13   14     7        db  I
           15   53     7        db  I
           17   18     8        sb  I
           19   20     8        sb  I
           21   22     8        sb  I
           23   53     8        sb  I
           24   53     9        fi  I
           25   53    10        fc  I
           55   58     7         e  Lpurejavacomm/UnsupportedCommOperationException;
           59   64     7         e  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
           4    53      54  Class purejavacomm.UnsupportedCommOperationException
           4    53      58  Class java.lang.IllegalStateException
           2    65      66  any
          66    67      66  any
    Exceptions:
      throws purejavacomm.UnsupportedCommOperationException
    MethodParameters:
          Name  Flags
      baudRate  
      dataBits  
      stopBits  
      parity    

  public int getNativeFileDescriptor();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 601
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 606
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 607
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_OutputStream:Ljava/io/OutputStream;
            ifnonnull 3
         2: .line 608
            aload 0 /* this */
            new purejavacomm.PureJavaSerialPort$1
            dup
            aload 0 /* this */
            invokespecial purejavacomm.PureJavaSerialPort$1.<init>:(Lpurejavacomm/PureJavaSerialPort;)V
            putfield purejavacomm.PureJavaSerialPort.m_OutputStream:Ljava/io/OutputStream;
         3: .line 669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_OutputStream:Ljava/io/OutputStream;
            areturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lpurejavacomm/PureJavaSerialPort;
    Exceptions:
      throws java.io.IOException

  public synchronized java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 673
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 674
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_InputStream:Ljava/io/InputStream;
            ifnonnull 3
         2: .line 683
            aload 0 /* this */
            new purejavacomm.PureJavaSerialPort$2
            dup
            aload 0 /* this */
            invokespecial purejavacomm.PureJavaSerialPort$2.<init>:(Lpurejavacomm/PureJavaSerialPort;)V
            putfield purejavacomm.PureJavaSerialPort.m_InputStream:Ljava/io/InputStream;
         3: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_InputStream:Ljava/io/InputStream;
            areturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lpurejavacomm/PureJavaSerialPort;
    Exceptions:
      throws java.io.IOException

  public synchronized int getReceiveFramingByte();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 950
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 952
            iconst_0
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized int getReceiveThreshold();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 957
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 958
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdValue:I
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized int getReceiveTimeout();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 963
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 964
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutValue:I
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized boolean isReceiveFramingEnabled();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 969
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 971
            iconst_0
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized boolean isReceiveThresholdEnabled();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 976
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 977
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdEnabled:Z
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized boolean isReceiveTimeoutEnabled();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 982
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 983
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutEnabled:Z
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized void setInputBufferSize(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int arg0
         0: .line 988
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 990
            return
        end local 1 // int arg0
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    2     1  arg0  I
    MethodParameters:
      Name  Flags
      arg0  

  public synchronized void setOutputBufferSize(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int arg0
         0: .line 994
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 996
            return
        end local 1 // int arg0
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    2     1  arg0  I
    MethodParameters:
      Name  Flags
      arg0  

  private void nudgePipe();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 999
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
            ifeq 2
         1: .line 1000
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_PipeWrFD:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_NudgeData:[B
            iconst_1
            invokestatic jtermios.JTermios.write:(I[BI)I
            pop
         2: .line 1001
      StackMap locals:
      StackMap stack:
            return
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lpurejavacomm/PureJavaSerialPort;

  public synchronized void close();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 1005
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            istore 1 /* fd */
        start local 1 // int fd
         1: .line 1006
            iload 1 /* fd */
            iconst_m1
            if_icmpeq 62
         2: .line 1007
            aload 0 /* this */
            iconst_m1
            putfield purejavacomm.PureJavaSerialPort.m_FD:I
         3: .line 1009
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_InputStream:Ljava/io/InputStream;
            ifnull 14
         4: .line 1010
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_InputStream:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
         5: .line 1011
            goto 14
      StackMap locals: purejavacomm.PureJavaSerialPort int
      StackMap stack: java.io.IOException
         6: astore 2 /* e */
        start local 2 // java.io.IOException e
         7: .line 1012
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 8
            iconst_1
            ldc "m_InputStream.close threw an IOException %s\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: java.io.IOException
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: putstatic jtermios.JTermios$JTermiosLogging.log:Z
        end local 2 // java.io.IOException e
        10: .line 1014
            aload 0 /* this */
            aconst_null
            putfield purejavacomm.PureJavaSerialPort.m_InputStream:Ljava/io/InputStream;
            goto 15
        11: .line 1013
      StackMap locals: purejavacomm.PureJavaSerialPort int
      StackMap stack: java.lang.Throwable
            astore 3
        12: .line 1014
            aload 0 /* this */
            aconst_null
            putfield purejavacomm.PureJavaSerialPort.m_InputStream:Ljava/io/InputStream;
        13: .line 1015
            aload 3
            athrow
        14: .line 1014
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield purejavacomm.PureJavaSerialPort.m_InputStream:Ljava/io/InputStream;
        15: .line 1017
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_OutputStream:Ljava/io/OutputStream;
            ifnull 26
        16: .line 1018
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_OutputStream:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
        17: .line 1019
            goto 26
      StackMap locals:
      StackMap stack: java.io.IOException
        18: astore 2 /* e */
        start local 2 // java.io.IOException e
        19: .line 1020
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 20
            iconst_1
            ldc "m_OutputStream.close threw an IOException %s\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 20
            iconst_1
            goto 21
      StackMap locals: java.io.IOException
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: putstatic jtermios.JTermios$JTermiosLogging.log:Z
        end local 2 // java.io.IOException e
        22: .line 1022
            aload 0 /* this */
            aconst_null
            putfield purejavacomm.PureJavaSerialPort.m_OutputStream:Ljava/io/OutputStream;
            goto 27
        23: .line 1021
      StackMap locals: purejavacomm.PureJavaSerialPort int
      StackMap stack: java.lang.Throwable
            astore 3
        24: .line 1022
            aload 0 /* this */
            aconst_null
            putfield purejavacomm.PureJavaSerialPort.m_OutputStream:Ljava/io/OutputStream;
        25: .line 1023
            aload 3
            athrow
        26: .line 1022
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield purejavacomm.PureJavaSerialPort.m_OutputStream:Ljava/io/OutputStream;
        27: .line 1024
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.nudgePipe:()V
        28: .line 1025
            iload 1 /* fd */
            getstatic jtermios.JTermios.F_GETFL:I
            iconst_0
            invokestatic jtermios.JTermios.fcntl:(III)I
            istore 2 /* flags */
        start local 2 // int flags
        29: .line 1026
            iload 2 /* flags */
            getstatic jtermios.JTermios.O_NONBLOCK:I
            ior
            istore 2 /* flags */
        30: .line 1027
            iload 1 /* fd */
            getstatic jtermios.JTermios.F_SETFL:I
            iload 2 /* flags */
            invokestatic jtermios.JTermios.fcntl:(III)I
            istore 3 /* fcres */
        start local 3 // int fcres
        31: .line 1028
            iload 3 /* fcres */
            ifeq 35
        32: .line 1029
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 33
            iconst_1
            ldc "fcntl(%d,%d,%d) returned %d\n"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* fd */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            getstatic jtermios.JTermios.F_SETFL:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 2 /* flags */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            iload 3 /* fcres */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 33
            iconst_1
            goto 34
      StackMap locals: int int
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: putstatic jtermios.JTermios$JTermiosLogging.log:Z
        35: .line 1031
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Thread:Ljava/lang/Thread;
            ifnull 37
        36: .line 1032
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Thread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        37: .line 1033
      StackMap locals:
      StackMap stack:
            iload 1 /* fd */
            invokestatic jtermios.JTermios.close:(I)I
            istore 4 /* err */
        start local 4 // int err
        38: .line 1034
            iload 4 /* err */
            ifge 42
        39: .line 1035
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 40
            iconst_1
            ldc "JTermios.close returned %d, errno %d\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 4 /* err */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            invokestatic jtermios.JTermios.errno:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 40
            iconst_1
            goto 41
      StackMap locals: int
      StackMap stack:
        40: iconst_0
      StackMap locals:
      StackMap stack: int
        41: putstatic jtermios.JTermios$JTermiosLogging.log:Z
        42: .line 1037
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
            ifeq 53
        43: .line 1038
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
            invokestatic jtermios.JTermios.close:(I)I
            istore 4 /* err */
        44: .line 1039
            iload 4 /* err */
            ifge 48
        45: .line 1040
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 46
            iconst_1
            ldc "JTermios.close returned %d, errno %d\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 4 /* err */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            invokestatic jtermios.JTermios.errno:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 46
            iconst_1
            goto 47
      StackMap locals:
      StackMap stack:
        46: iconst_0
      StackMap locals:
      StackMap stack: int
        47: putstatic jtermios.JTermios$JTermiosLogging.log:Z
        48: .line 1041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_PipeWrFD:I
            invokestatic jtermios.JTermios.close:(I)I
            istore 4 /* err */
        49: .line 1042
            iload 4 /* err */
            ifge 53
        50: .line 1043
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 51
            iconst_1
            ldc "JTermios.close returned %d, errno %d\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 4 /* err */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            invokestatic jtermios.JTermios.errno:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 51
            iconst_1
            goto 52
      StackMap locals:
      StackMap stack:
        51: iconst_0
      StackMap locals:
      StackMap stack: int
        52: putstatic jtermios.JTermios$JTermiosLogging.log:Z
        53: .line 1045
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 5 /* t0 */
        start local 5 // long t0
        54: .line 1046
            goto 60
        55: .line 1048
      StackMap locals: long
      StackMap stack:
            ldc 5
            invokestatic java.lang.Thread.sleep:(J)V
        56: .line 1049
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 5 /* t0 */
            lsub
            ldc 2000
            lcmp
            ifle 60
        57: .line 1050
            goto 61
        58: .line 1051
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
        59: .line 1052
            goto 61
        60: .line 1046
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ThreadRunning:Z
            ifne 55
        61: .line 1055
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial purejavacomm.SerialPort.close:()V
        end local 5 // long t0
        end local 4 // int err
        end local 3 // int fcres
        end local 2 // int flags
        62: .line 1057
      StackMap locals: purejavacomm.PureJavaSerialPort int
      StackMap stack:
            return
        end local 1 // int fd
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   63     0   this  Lpurejavacomm/PureJavaSerialPort;
            1   63     1     fd  I
            7   10     2      e  Ljava/io/IOException;
           19   22     2      e  Ljava/io/IOException;
           29   62     2  flags  I
           31   62     3  fcres  I
           38   62     4    err  I
           54   62     5     t0  J
      Exception table:
        from    to  target  type
           3     5       6  Class java.io.IOException
           3    10      11  any
          15    17      18  Class java.io.IOException
          15    22      23  any
          55    57      58  Class java.lang.InterruptedException

  void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // java.lang.String name
        start local 2 // int timeout
         0: .line 1060
            aload 0 /* this */
            invokespecial purejavacomm.SerialPort.<init>:()V
         1: .line 50
            aload 0 /* this */
            iconst_m1
            putfield purejavacomm.PureJavaSerialPort.m_FD:I
         2: .line 51
            aload 0 /* this */
            iconst_0
            putfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
         3: .line 52
            aload 0 /* this */
            iconst_0
            putfield purejavacomm.PureJavaSerialPort.m_PipeWrFD:I
         4: .line 53
            aload 0 /* this */
            iconst_0
            putfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
         5: .line 54
            aload 0 /* this */
            iconst_1
            newarray 8
            putfield purejavacomm.PureJavaSerialPort.m_NudgeData:[B
         6: .line 60
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield purejavacomm.PureJavaSerialPort.m_ThresholdTimeoutLock:Ljava/lang/Object;
         7: .line 61
            aload 0 /* this */
            iconst_1
            putfield purejavacomm.PureJavaSerialPort.m_TimeoutThresholdChanged:Z
         8: .line 82
            aload 0 /* this */
            iconst_1
            newarray 10
            putfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
         9: .line 86
            aload 0 /* this */
            new jtermios.Termios
            dup
            invokespecial jtermios.Termios.<init>:()V
            putfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
        10: .line 1062
            iconst_0
            istore 3 /* usepoll */
        start local 3 // boolean usepoll
        11: .line 1063
            invokestatic jtermios.JTermios.canPoll:()Z
            ifeq 23
        12: .line 1064
            ldc "purejavacomm.use_poll"
            astore 4 /* key1 */
        start local 4 // java.lang.String key1
        13: .line 1065
            ldc "purejavacomm.usepoll"
            astore 5 /* key2 */
        start local 5 // java.lang.String key2
        14: .line 1066
            aload 4 /* key1 */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 20
        15: .line 1067
            aload 4 /* key1 */
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            istore 3 /* usepoll */
        16: .line 1068
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 17
            iconst_1
            ldc "use of '%s' is deprecated, use '%s' instead\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* key1 */
            aastore
            dup
            iconst_1
            aload 5 /* key2 */
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 17
            iconst_1
            goto 18
      StackMap locals: purejavacomm.PureJavaSerialPort java.lang.String int int java.lang.String java.lang.String
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: putstatic jtermios.JTermios$JTermiosLogging.log:Z
        19: .line 1069
            goto 23
      StackMap locals:
      StackMap stack:
        20: aload 5 /* key2 */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 22
        21: .line 1070
            aload 5 /* key2 */
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            istore 3 /* usepoll */
            goto 23
        22: .line 1072
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* usepoll */
        end local 5 // java.lang.String key2
        end local 4 // java.lang.String key1
        23: .line 1074
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* usepoll */
            putfield purejavacomm.PureJavaSerialPort.USE_POLL:Z
        24: .line 1076
            aload 0 /* this */
            ldc "purejavacomm.rawreadmode"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putfield purejavacomm.PureJavaSerialPort.RAW_READ_MODE:Z
        25: .line 1078
            aload 0 /* this */
            aload 1 /* name */
            putfield purejavacomm.PureJavaSerialPort.name:Ljava/lang/String;
        26: .line 1080
            iload 2 /* timeout */
            iconst_5
            iadd
            bipush 10
            idiv
            istore 4 /* tries */
        start local 4 // int tries
        27: .line 1081
            goto 36
        28: .line 1082
      StackMap locals: int
      StackMap stack:
            invokestatic jtermios.JTermios.errno:()I
            istore 5 /* errno */
        start local 5 // int errno
        29: .line 1084
            ldc 10
            invokestatic java.lang.Thread.sleep:(J)V
        30: .line 1085
            goto 34
      StackMap locals: purejavacomm.PureJavaSerialPort java.lang.String int int int int
      StackMap stack: java.lang.InterruptedException
        31: astore 6 /* e */
        start local 6 // java.lang.InterruptedException e
        32: .line 1086
            aload 6 /* e */
            invokevirtual java.lang.InterruptedException.printStackTrace:()V
        33: .line 1087
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 6 // java.lang.InterruptedException e
        34: .line 1089
      StackMap locals:
      StackMap stack:
            iload 4 /* tries */
            iinc 4 /* tries */ -1
            ifge 36
        35: .line 1090
            new purejavacomm.PortInUseException
            dup
            ldc "Unknown Application"
            iload 5 /* errno */
            invokespecial purejavacomm.PortInUseException.<init>:(Ljava/lang/String;I)V
            athrow
        end local 5 // int errno
        36: .line 1081
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            getstatic jtermios.JTermios.O_RDWR:I
            getstatic jtermios.JTermios.O_NOCTTY:I
            ior
            getstatic jtermios.JTermios.O_NONBLOCK:I
            ior
            invokestatic jtermios.JTermios.open:(Ljava/lang/String;I)I
            dup_x1
            putfield purejavacomm.PureJavaSerialPort.m_FD:I
            iflt 28
        37: .line 1093
            aload 0 /* this */
            ldc "purejavacomm.minvtime"
            bipush 100
            invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putfield purejavacomm.PureJavaSerialPort.m_MinVTIME:I
        38: .line 1094
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.F_GETFL:I
            iconst_0
            invokestatic jtermios.JTermios.fcntl:(III)I
            istore 5 /* flags */
        start local 5 // int flags
        39: .line 1095
            iload 5 /* flags */
            ifge 41
        40: .line 1096
            aload 0 /* this */
            iload 5 /* flags */
            invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
        41: .line 1097
      StackMap locals: int
      StackMap stack:
            iload 5 /* flags */
            getstatic jtermios.JTermios.O_NONBLOCK:I
            iconst_m1
            ixor
            iand
            istore 5 /* flags */
        42: .line 1098
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.F_SETFL:I
            iload 5 /* flags */
            invokestatic jtermios.JTermios.fcntl:(III)I
            invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
        43: .line 1100
            aload 0 /* this */
            sipush 9600
            putfield purejavacomm.PureJavaSerialPort.m_BaudRate:I
        44: .line 1101
            aload 0 /* this */
            bipush 8
            putfield purejavacomm.PureJavaSerialPort.m_DataBits:I
        45: .line 1102
            aload 0 /* this */
            iconst_0
            putfield purejavacomm.PureJavaSerialPort.m_FlowControlMode:I
        46: .line 1103
            aload 0 /* this */
            iconst_0
            putfield purejavacomm.PureJavaSerialPort.m_Parity:I
        47: .line 1104
            aload 0 /* this */
            iconst_1
            putfield purejavacomm.PureJavaSerialPort.m_StopBits:I
        48: .line 1106
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            invokestatic jtermios.JTermios.tcgetattr:(ILjtermios/Termios;)I
            invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
        49: .line 1108
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            invokestatic jtermios.JTermios.cfmakeraw:(ILjtermios/Termios;)V
        50: .line 1110
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_cflag:I
            getstatic jtermios.JTermios.CLOCAL:I
            getstatic jtermios.JTermios.CREAD:I
            ior
            ior
            putfield jtermios.Termios.c_cflag:I
        51: .line 1111
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_lflag:I
            getstatic jtermios.JTermios.ICANON:I
            getstatic jtermios.JTermios.ECHO:I
            ior
            getstatic jtermios.JTermios.ECHOE:I
            ior
            getstatic jtermios.JTermios.ISIG:I
            ior
            iconst_m1
            ixor
            iand
            putfield jtermios.Termios.c_lflag:I
        52: .line 1112
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            dup
            getfield jtermios.Termios.c_oflag:I
            getstatic jtermios.JTermios.OPOST:I
            iconst_m1
            ixor
            iand
            putfield jtermios.Termios.c_oflag:I
        53: .line 1114
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            getfield jtermios.Termios.c_cc:[B
            getstatic jtermios.JTermios.VSTART:I
            getstatic jtermios.JTermios.DC1:I
            i2b
            bastore
        54: .line 1115
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            getfield jtermios.Termios.c_cc:[B
            getstatic jtermios.JTermios.VSTOP:I
            getstatic jtermios.JTermios.DC3:I
            i2b
            bastore
        55: .line 1116
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            getfield jtermios.Termios.c_cc:[B
            getstatic jtermios.JTermios.VMIN:I
            iconst_0
            bastore
        56: .line 1117
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            getfield jtermios.Termios.c_cc:[B
            getstatic jtermios.JTermios.VTIME:I
            iconst_0
            bastore
        57: .line 1118
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TCSANOW:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
            invokestatic jtermios.JTermios.tcsetattr:(IILjtermios/Termios;)I
            invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
        58: .line 1121
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_BaudRate:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_DataBits:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_StopBits:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Parity:I
            invokevirtual purejavacomm.PureJavaSerialPort.setSerialPortParams:(IIII)V
        59: .line 1122
            goto 62
      StackMap locals:
      StackMap stack: purejavacomm.UnsupportedCommOperationException
        60: astore 6 /* e */
        start local 6 // purejavacomm.UnsupportedCommOperationException e
        61: .line 1124
            aload 6 /* e */
            invokevirtual purejavacomm.UnsupportedCommOperationException.printStackTrace:()V
        end local 6 // purejavacomm.UnsupportedCommOperationException e
        62: .line 1128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual purejavacomm.PureJavaSerialPort.setFlowControlMode:(I)V
        63: .line 1129
            goto 66
      StackMap locals:
      StackMap stack: purejavacomm.UnsupportedCommOperationException
        64: astore 6 /* e */
        start local 6 // purejavacomm.UnsupportedCommOperationException e
        65: .line 1131
            aload 6 /* e */
            invokevirtual purejavacomm.UnsupportedCommOperationException.printStackTrace:()V
        end local 6 // purejavacomm.UnsupportedCommOperationException e
        66: .line 1134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TIOCMGET:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            invokestatic jtermios.JTermios.ioctl:(II[I)I
            istore 6 /* res */
        start local 6 // int res
        67: .line 1135
            iload 6 /* res */
            ifne 69
        68: .line 1136
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            iconst_0
            iaload
            putfield purejavacomm.PureJavaSerialPort.m_ControlLineStates:I
            goto 72
        69: .line 1138
      StackMap locals: int
      StackMap stack:
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 70
            iconst_1
            ldc "ioctl(TIOCMGET) returned %d, errno %d\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 6 /* res */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            invokestatic jtermios.JTermios.errno:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 70
            iconst_1
            goto 71
      StackMap locals:
      StackMap stack:
        70: iconst_0
      StackMap locals:
      StackMap stack: int
        71: putstatic jtermios.JTermios$JTermiosLogging.log:Z
        72: .line 1140
      StackMap locals:
      StackMap stack:
            ldc "purejavacomm.usenudgepipe"
            astore 7 /* nudgekey */
        start local 7 // java.lang.String nudgekey
        73: .line 1141
            aload 7 /* nudgekey */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 74
            aload 7 /* nudgekey */
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 80
        74: .line 1142
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_2
            newarray 10
            astore 8 /* pipes */
        start local 8 // int[] pipes
        75: .line 1143
            aload 8 /* pipes */
            invokestatic jtermios.JTermios.pipe:([I)I
            ifne 80
        76: .line 1144
            aload 0 /* this */
            iconst_1
            putfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
        77: .line 1145
            aload 0 /* this */
            aload 8 /* pipes */
            iconst_0
            iaload
            putfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
        78: .line 1146
            aload 0 /* this */
            aload 8 /* pipes */
            iconst_1
            iaload
            putfield purejavacomm.PureJavaSerialPort.m_PipeWrFD:I
        79: .line 1147
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
            getstatic jtermios.JTermios.F_SETFL:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
            getstatic jtermios.JTermios.F_GETFL:I
            iconst_0
            invokestatic jtermios.JTermios.fcntl:(III)I
            getstatic jtermios.JTermios.O_NONBLOCK:I
            ior
            invokestatic jtermios.JTermios.fcntl:(III)I
            invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
        end local 8 // int[] pipes
        80: .line 1151
      StackMap locals:
      StackMap stack:
            new purejavacomm.PureJavaSerialPort$3
            dup
            aload 0 /* this */
            invokespecial purejavacomm.PureJavaSerialPort$3.<init>:(Lpurejavacomm/PureJavaSerialPort;)V
            astore 8 /* runnable */
        start local 8 // java.lang.Runnable runnable
        81: .line 1254
            aload 0 /* this */
            new java.lang.Thread
            dup
            aload 8 /* runnable */
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.getName:()Ljava/lang/String;
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
            putfield purejavacomm.PureJavaSerialPort.m_Thread:Ljava/lang/Thread;
        82: .line 1255
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_Thread:Ljava/lang/Thread;
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
        83: .line 1256
            return
        end local 8 // java.lang.Runnable runnable
        end local 7 // java.lang.String nudgekey
        end local 6 // int res
        end local 5 // int flags
        end local 4 // int tries
        end local 3 // boolean usepoll
        end local 2 // int timeout
        end local 1 // java.lang.String name
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   84     0      this  Lpurejavacomm/PureJavaSerialPort;
            0   84     1      name  Ljava/lang/String;
            0   84     2   timeout  I
           11   84     3   usepoll  Z
           13   23     4      key1  Ljava/lang/String;
           14   23     5      key2  Ljava/lang/String;
           27   84     4     tries  I
           29   36     5     errno  I
           32   34     6         e  Ljava/lang/InterruptedException;
           39   84     5     flags  I
           61   62     6         e  Lpurejavacomm/UnsupportedCommOperationException;
           65   66     6         e  Lpurejavacomm/UnsupportedCommOperationException;
           67   84     6       res  I
           73   84     7  nudgekey  Ljava/lang/String;
           75   80     8     pipes  [I
           81   84     8  runnable  Ljava/lang/Runnable;
      Exception table:
        from    to  target  type
          29    30      31  Class java.lang.InterruptedException
          58    59      60  Class purejavacomm.UnsupportedCommOperationException
          62    63      64  Class purejavacomm.UnsupportedCommOperationException
    Exceptions:
      throws purejavacomm.PortInUseException
    MethodParameters:
         Name  Flags
      name     
      timeout  

  private synchronized void updateControlLineState(int);
    descriptor: (I)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int line
         0: .line 1259
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 1261
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TIOCMGET:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            invokestatic jtermios.JTermios.ioctl:(II[I)I
            iconst_m1
            if_icmpne 3
         2: .line 1262
            new purejavacomm.PureJavaIllegalStateException
            dup
            ldc "ioctl(m_FD, TIOCMGET, m_ioctl) == -1"
            invokespecial purejavacomm.PureJavaIllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            iconst_0
            iaload
            iload 1 /* line */
            iand
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ControlLineStates:I
            iload 1 /* line */
            iconst_m1
            ixor
            iand
            iadd
            putfield purejavacomm.PureJavaSerialPort.m_ControlLineStates:I
         4: .line 1265
            return
        end local 1 // int line
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    5     1  line  I
    MethodParameters:
      Name  Flags
      line  

  private synchronized boolean getControlLineState(int);
    descriptor: (I)Z
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int line
         0: .line 1268
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 1269
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TIOCMGET:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            invokestatic jtermios.JTermios.ioctl:(II[I)I
            iconst_m1
            if_icmpne 3
         2: .line 1270
            new purejavacomm.PureJavaIllegalStateException
            dup
            ldc "ioctl(m_FD, TIOCMGET, m_ioctl) == -1"
            invokespecial purejavacomm.PureJavaIllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            iconst_0
            iaload
            iload 1 /* line */
            iand
            ifeq 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 1 // int line
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lpurejavacomm/PureJavaSerialPort;
            0    5     1  line  I
    MethodParameters:
      Name  Flags
      line  

  private synchronized void setControlLineState(int, boolean);
    descriptor: (IZ)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int line
        start local 2 // boolean state
         0: .line 1275
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
         1: .line 1276
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TIOCMGET:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            invokestatic jtermios.JTermios.ioctl:(II[I)I
            iconst_m1
            if_icmpne 3
         2: .line 1277
            new purejavacomm.PureJavaIllegalStateException
            dup
            ldc "ioctl(m_FD, TIOCMGET, m_ioctl) == -1"
            invokespecial purejavacomm.PureJavaIllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1279
      StackMap locals:
      StackMap stack:
            iload 2 /* state */
            ifeq 5
         4: .line 1280
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            iconst_0
            dup2
            iaload
            iload 1 /* line */
            ior
            iastore
            goto 6
         5: .line 1282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            iconst_0
            dup2
            iaload
            iload 1 /* line */
            iconst_m1
            ixor
            iand
            iastore
         6: .line 1283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            getstatic jtermios.JTermios.TIOCMSET:I
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ioctl:[I
            invokestatic jtermios.JTermios.ioctl:(II[I)I
            iconst_m1
            if_icmpne 8
         7: .line 1284
            new purejavacomm.PureJavaIllegalStateException
            dup
            ldc "ioctl(m_FD, TIOCMSET, m_ioctl) == -1"
            invokespecial purejavacomm.PureJavaIllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1285
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean state
        end local 1 // int line
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lpurejavacomm/PureJavaSerialPort;
            0    9     1   line  I
            0    9     2  state  Z
    MethodParameters:
       Name  Flags
      line   
      state  

  private void failWithIllegalStateException();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 1288
            new purejavacomm.PureJavaIllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "File descriptor is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " < 0, maybe closed by previous error condition"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial purejavacomm.PureJavaIllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lpurejavacomm/PureJavaSerialPort;

  private void checkState();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 1292
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_FD:I
            ifge 2
         1: .line 1293
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.failWithIllegalStateException:()V
         2: .line 1294
      StackMap locals:
      StackMap stack:
            return
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lpurejavacomm/PureJavaSerialPort;

  private void checkReturnCode(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // purejavacomm.PureJavaSerialPort this
        start local 1 // int code
         0: .line 1297
            iload 1 /* code */
            ifeq 14
         1: .line 1298
            ldc "JTermios call returned %d at %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* code */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iconst_1
            invokestatic jtermios.JTermios$JTermiosLogging.lineno:(I)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         2: .line 1299
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 3
            iconst_1
            ldc "%s\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* msg */
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 3
            iconst_1
            goto 4
      StackMap locals: java.lang.String
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: putstatic jtermios.JTermios$JTermiosLogging.log:Z
         5: .line 1301
            aload 0 /* this */
            invokevirtual purejavacomm.PureJavaSerialPort.close:()V
         6: .line 1302
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Exception
         7: astore 3 /* e */
        start local 3 // java.lang.Exception e
         8: .line 1303
            aload 3 /* e */
            invokevirtual java.lang.Exception.getStackTrace:()[Ljava/lang/StackTraceElement;
            iconst_0
            aaload
            astore 4 /* st */
        start local 4 // java.lang.StackTraceElement st
         9: .line 1304
            ldc "close threw %s at class %s line% d"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 4 /* st */
            invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 4 /* st */
            invokevirtual java.lang.StackTraceElement.getLineNumber:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* msg2 */
        start local 5 // java.lang.String msg2
        10: .line 1305
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 11
            iconst_1
            ldc "%s\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* msg2 */
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 11
            iconst_1
            goto 12
      StackMap locals: java.lang.Exception java.lang.StackTraceElement java.lang.String
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: putstatic jtermios.JTermios$JTermiosLogging.log:Z
        end local 5 // java.lang.String msg2
        end local 4 // java.lang.StackTraceElement st
        end local 3 // java.lang.Exception e
        13: .line 1307
      StackMap locals:
      StackMap stack:
            new purejavacomm.PureJavaIllegalStateException
            dup
            aload 2 /* msg */
            invokespecial purejavacomm.PureJavaIllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String msg
        14: .line 1309
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int code
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lpurejavacomm/PureJavaSerialPort;
            0   15     1  code  I
            2   14     2   msg  Ljava/lang/String;
            8   13     3     e  Ljava/lang/Exception;
            9   13     4    st  Ljava/lang/StackTraceElement;
           10   13     5  msg2  Ljava/lang/String;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      code  

  public boolean isInternalThreadRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // purejavacomm.PureJavaSerialPort this
         0: .line 1316
            aload 0 /* this */
            getfield purejavacomm.PureJavaSerialPort.m_ThreadRunning:Z
            ireturn
        end local 0 // purejavacomm.PureJavaSerialPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lpurejavacomm/PureJavaSerialPort;
}
SourceFile: "PureJavaSerialPort.java"
NestMembers:
  purejavacomm.PureJavaSerialPort$1  purejavacomm.PureJavaSerialPort$2  purejavacomm.PureJavaSerialPort$3
InnerClasses:
  public JTermiosLogging = jtermios.JTermios$JTermiosLogging of jtermios.JTermios
  purejavacomm.PureJavaSerialPort$1
  purejavacomm.PureJavaSerialPort$2
  purejavacomm.PureJavaSerialPort$3