code: public static Vector getBitShort(int[] data, int offset) throws Exception {
  		Vector v = new Vector();
  		int type = ((Integer)getBits(data, 2, offset)).intValue();
  		int read = 2;
  		int val = 0;
  		if (type==0x00) {
  			byte[] bytes = (byte[])getBits(data, 16, (offset+2));
  			ByteBuffer bb = ByteBuffer.wrap(bytes);
  			bb.order(ByteOrder.LITTLE_ENDIAN);
  			val = bb.getShort();
  			read = 18;
  		} else if (type==0x01) {
  			val = ((Integer)getBits(data, 8, (offset+2))).intValue();
  			read = 10;
  		} else if (type==0x02) {
  			val = 0;
  		} else if (type==0x03) {
  			val = 256;
  		}
  		v.add(new Integer(offset+read));
  		v.add(new Integer(val));
  		return v;
  	}
docs: Read a short value from a group of unsigned bytes
  
  @param data Array of unsigned bytes obtained from the DWG binary file
  @param offset The current bit offset where the value begins
  @throws Exception If an unexpected bit value is found in the DWG file. Occurs
  when we are looking for LwPolylines.
  @return Vector This vector has two parts. First is an int value that represents
  the new offset, and second is the short value