anchor.diff:  uses
     Classes, SysUtils;
   
  +{$I config.inc}
  +
   Type
  +  {$IFDEF NO_ANSISTRING}
  +    // When Delphi + Android, then no ANSISTRING available
  +    PAnsiChar = PByte;
  +    PPAnsiChar = ^PAnsiChar;
  +  {$ENDIF}
  +
  +
     // Raw data in a maximum 65k bytes
     TDynRawBytes = TBytes;
     // Raw data in a maximum 256 bytes
  
positive.code:   while (i<32) And (i<=high(source)) do begin
      Result[i+32-length(source)] := source[i];
      inc(i);
    end;
  end;
  
  class function TBaseType.Copy(const source: T32bytes; astart, alength: Integer): ShortString;
  begin
    if (alength+astart)>32 then raise Exception.Create('ERROR DEV 20170601-1');
    SetLength(Result,alength);
    move(source[astart],Result[Low(Result)],alength);
  end;
  
  class function TBaseType.Copy(const source: T256RawBytes; var dest: T256RawBytes): ShortString;
  var i : Integer;
  begin
    SetLength(dest,Length(source));
    for i:=0 to high(dest) do begin
      dest[i] := source[i];
    end;
  end;
  
  
negative.code:     class procedure T32BytesToRawBytes(const source : T32Bytes; var dest : TDynRawBytes); overload;
      class function T32BytesToRawBytes(const source : T32Bytes) : TDynRawBytes; overload;
      class function TRawBytesTo32Left0Padded(const source : TDynRawBytes) : T32Bytes;
      class function To256RawBytes(const source : TRawBytes) : T256RawBytes; overload;
      class procedure To256RawBytes(const source : TRawBytes; var dest : T256RawBytes); overload;
      class function ToRawBytes(const source : T256RawBytes) : TRawBytes; overload;
  