// Path: src/main/java/hk/miru/javapgm/Preconditions.java
// public static void checkArgument (boolean expression) {
// 	if (!expression) {
// 		throw new IllegalArgumentException();
// 	}
// }
// 
// Path: src/main/java/hk/miru/javapgm/Preconditions.java
// public static <T> T checkNotNull (T reference) {
// 	if (reference == null) {
// 		throw new NullPointerException();
// 	}
// 	return reference;
// }


import static hk.miru.javapgm.Preconditions.checkArgument;
import static hk.miru.javapgm.Preconditions.checkNotNull;
import java.util.concurrent.atomic.AtomicInteger;
import javax.annotation.Nullable;
import org.apache.logging.log4j.LogManager;
                        (getUnsignedByte (offset + 1) << 0));
	}

	public void setUnsignedShort (int offset, int value) {
		this._buf[offset + 0] = (byte)((value >> 8) & 0xff);
		this._buf[offset + 1] = (byte)((value >> 0) & 0xff);
	}

	public final int getSignedInt (int offset) {
		return (getSignedByte (offset + 0) << 24) +                /* keep sign-bit */
                     (getUnsignedByte (offset + 1) << 16) +
                     (getUnsignedByte (offset + 2) <<  8) +
                     (getUnsignedByte (offset + 3) <<  0);
	}

	public final long getUnsignedInt (int offset) {
		return ((long)(getUnsignedByte (offset + 0) << 24) +
                              (getUnsignedByte (offset + 1) << 16) +
                              (getUnsignedByte (offset + 2) <<  8) +
                              (getUnsignedByte (offset + 3) <<  0));
	}

	public void setUnsignedInt (int offset, long value) {
		this._buf[offset + 0] = (byte)((value >> 24) & 0xff);
		this._buf[offset + 1] = (byte)((value >> 16) & 0xff);
		this._buf[offset + 2] = (byte)((value >> 8) & 0xff);
		this._buf[offset + 3] = (byte)((value >> 0) & 0xff);
	}

        @SuppressWarnings("ShiftOutOfRange")
// Path: src/main/java/hk/miru/javapgm/Preconditions.java
// public static void checkArgument (boolean expression) {
// 	if (!expression) {
// 		throw new IllegalArgumentException();
// 	}
// }
// 
// Path: src/main/java/hk/miru/javapgm/Preconditions.java
// public static <T> T checkNotNull (T reference) {
// 	if (reference == null) {
// 		throw new NullPointerException();
// 	}
// 	return reference;
// }


// Path: src/main/java/hk/miru/javapgm/SocketBuffer.java
import static hk.miru.javapgm.Preconditions.checkArgument;
import static hk.miru.javapgm.Preconditions.checkNotNull;
import java.util.concurrent.atomic.AtomicInteger;
import javax.annotation.Nullable;
import org.apache.logging.log4j.LogManager;

                        (getUnsignedByte (offset + 1) << 0));
	}

	public void setUnsignedShort (int offset, int value) {
		this._buf[offset + 0] = (byte)((value >> 8) & 0xff);
		this._buf[offset + 1] = (byte)((value >> 0) & 0xff);
	}

	public final int getSignedInt (int offset) {
		return (getSignedByte (offset + 0) << 24) +                /* keep sign-bit */
                     (getUnsignedByte (offset + 1) << 16) +
                     (getUnsignedByte (offset + 2) <<  8) +
                     (getUnsignedByte (offset + 3) <<  0);
	}

	public final long getUnsignedInt (int offset) {
		return ((long)(getUnsignedByte (offset + 0) << 24) +
                              (getUnsignedByte (offset + 1) << 16) +
                              (getUnsignedByte (offset + 2) <<  8) +
                              (getUnsignedByte (offset + 3) <<  0));
	}

	public void setUnsignedInt (int offset, long value) {
		this._buf[offset + 0] = (byte)((value >> 24) & 0xff);
		this._buf[offset + 1] = (byte)((value >> 16) & 0xff);
		this._buf[offset + 2] = (byte)((value >> 8) & 0xff);
		this._buf[offset + 3] = (byte)((value >> 0) & 0xff);
	}

        @SuppressWarnings("ShiftOutOfRange")
	public final long getSignedLong (int offset) {