anchor.diff:    {$ifdef windows}shlobj, registry, winutils,{$else}LazUTF8,{$endif}
     {$ifdef linux}initc, ctypes, BaseUnix,{$endif}
     mMathUtility;
  +
  +var
  +  UTF8BOM : array[0..2] of byte = ($EF, $BB, $BF);
   
   {$ifdef linux}
   function sysconf(i:cint):clong;cdecl;external name 'sysconf';
  
positive.code: // https://docs.microsoft.com/it-it/windows/desktop/FileIO/naming-a-file#basic_naming_conventions
  function SanitizeFileName(const aSrc: String) : String;
  
  function GetTimeStampForFileName(const aInstant : TDateTime): string;
  
  // encode a file to base64
  procedure EncodeFileToBase64(const aFullPathInputFile: String; out aOutputData: String);
  procedure DecodeBase64ToFile(const aInputData : String; const aFullPathOutputFile: String);
  
  function IsRunningAsRoot : boolean;
  
  
negative.code:     Result := ChangeFileExt(Result, ExtractFileExt(aSrc));
  end;
  
  procedure AddUTF8BOMToFileStream(aFileStream: TFileStream);
  begin
    aFileStream.Write(UTF8BOM[0],3);
  end;
  
  function IsRunningAsRoot: boolean;
  begin
  {$IFDEF WINDOWS}
  