require(data!isByteReadPacket||data.remaining.toInt()==dataSize){"bad input. given dataSize=$dataSize, but actual readRemaining=${(data as ByteReadPacket).remaining}"}
require(data!isByteReadPacket||data.remaining.toInt()==dataSize){"bad input. given dataSize=$dataSize, but actual readRemaining=${(data as ByteReadPacket).remaining}"}
require(data!isIoBuffer||data.readRemaining==dataSize){"bad input. given dataSize=$dataSize, but actual readRemaining=${(data as IoBuffer).readRemaining}"}