@Override
 public int bytesBefore(int index, int length, ByteBufIndexFinder indexFinder) {
   return buf.bytesBefore(index, length, indexFinder);
 }
 @Override
 public int bytesBefore(ByteBufIndexFinder indexFinder) {
   return buf.bytesBefore(indexFinder);
 }
 @Override
 public int bytesBefore(int index, int length, byte value) {
   return buf.bytesBefore(index, length, value);
 }
 @Override
 public int bytesBefore(byte value) {
   return buf.bytesBefore(value);
 }
 @Override
 protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
   ByteBuf msg = in.readBytes(in.bytesBefore((byte) '\n'));
   out.add(msg);
   in.skipBytes(1);
 }
 @Override
 public int bytesBefore(int var1, int var2, byte var3) {
   return a.bytesBefore(var1, var2, var3);
 }
 @Override
 public int bytesBefore(byte var1) {
   return a.bytesBefore(var1);
 }
 @Override
 public String decode(ByteBuf buf, State state) {
   String status = buf.readBytes(buf.bytesBefore((byte) '\r')).toString(CharsetUtil.UTF_8);
   buf.skipBytes(2);
   return status;
 }