anchor.diff:      p("end.");
     }
   
  -  copyStringToBuffer(bufferList, bufferOffset, s) {
  -    for (var i = 0, len = s.length; i < len; i++) {
  -      bufferList[bufferOffset + i] = s.codeUnitAt(i);
  -    }
  -  }
  -
  -  setBufferLength(a, len) {
  +  setBufferLength(a, offset, len) {
       // Reorder the bytes to place them in network byte order.
       if (len <= 255) {
  -      a[3] = len;
  +      a[3 + offset] = len;
       } else if (len <= 65535) {
         _foreign.setUint16(0, len);
  -      a[3] = _list[0];
  -      a[2] = _list[1];
  +      a[3 + offset] = _list[0];
  +      a[2 + offset] = _list[1];
       } else if (len <= 2147483647) {
         _foreign.setUint32(0, len);
  -      a[3] = _list[0];
  -      a[2] = _list[1];
  -      a[1] = _list[2];
  -      a[0] = _list[3];
  +      a[3 + offset] = _list[0];
  +      a[2 + offset] = _list[1];
  +      a[1 + offset] = _list[2];
  +      a[0 + offset] = _list[3];
       } else {
         throw "Failed to set the buffer length because it exceeded the "
             "limit of unsigned 32 bits: ${len}";
  
positive.code:     p(list);
      return list;
    }
  
    static final BACKEND_STATUS_I = 73; // I - Idle
    static final BACKEND_STATUS_T = 84; // T - Transaction block
  
negative.code:     _list = new Uint8List(4);
      _foreign = _list.buffer.getForeign();
    }
  
    /* StartUp section */
  
    connect({String address: "", int port: 5432, String user: "",
        String password: "", String database: ""}) {
  