anchor.diff:      class function Equals(const v1,v2 : TDynRawBytes) : Boolean; overload;
       class function Higher(const vHigh,vLow : T32Bytes) : Boolean;
       class function Compare(const leftBytes,rightBytes : T32Bytes) : Integer;
  -  end;
  +    // Herman functions moved from "Common"
  +    { Binary-safe StrComp replacement. StrComp will return 0 for when str1 and str2 both start with NUL character. }
  +    class function BinStrComp(const Str1, Str2 : AnsiString): Integer;
  +  end;
  +
  +  // TickCount is platform specific (32 or 64 bits)
  +  TTickCount = {$IFDEF CPU64}QWord{$ELSE}Cardinal{$ENDIF};
  +
  +
  +  TPlatform = Class
  +  public
  +    class function GetTickCount : TTickCount;
  +    class function GetElapsedMilliseconds(Const previousTickCount : TTickCount) : Int64;
  +  End;
  +
  +  TNotifyEventToMany = Class
  +  private
  +    FList : Array of TNotifyEvent;
  +  public
  +    function IndexOf(search : TNotifyEvent) : Integer;
  +    procedure Add(newNotifyEvent : TNotifyEvent);
  +    procedure Remove(removeNotifyEvent : TNotifyEvent);
  +    procedure Invoke(sender : TObject);
  +    function Count : Integer;
  +    procedure Delete(index : Integer);
  +    Constructor Create;
  +  End;
  +
   
   implementation
  +
  +Uses Windows;
   
   { TBaseType }
   
  
positive.code:   Result := False; // No higher, equal
  end;
  
  class function TBaseType.Compare(const leftBytes, rightBytes: T32Bytes): Integer;
  var i : Integer;
  begin
  
negative.code: interface
  
  uses
    Classes, SysUtils, Generics.Defaults;
  
  Type
    // Raw data in a maximum 65k bytes
  