anchor.diff:  
   { TBits }
   
  -class procedure TBits.ReverseByteArray(Source, Dest: Pointer; Size: int64);
  +class procedure TBits.ReverseByteArray(Source, Dest: Pointer; Size: Int64);
   var
     ptr_src, ptr_dest: PByte;
   begin
  
positive.code:     /// <returns>Shifted value.</returns>
      /// Implementation was found here <see cref="https://github.com/Spelt/ZXing.Delphi/blob/master/Lib/Classes/Common/MathUtils.pas" />
  
      class function Asr64(Value: int64; ShiftBits: Int32): int64; static; inline;
  
      class function RotateLeft8(a_value: Byte; a_n: Int32): Byte; overload;
        static; inline;
      class function RotateLeft32(a_value: UInt32; a_n: Int32): UInt32; overload;
        static; inline;
      class function RotateLeft64(a_value: UInt64; a_n: Int32): UInt64; overload;
        static; inline;
      class function RotateRight8(a_value: Byte; a_n: Int32): Byte; overload;
        static; inline;
      class function RotateRight32(a_value: UInt32; a_n: Int32): UInt32; overload;
        static; inline;
      class function RotateRight64(a_value: UInt64; a_n: Int32): UInt64; overload;
        static; inline;
  
    end;
  
negative.code: {$ENDIF FPC}
  end;
  
  class function TBits.Asr64(Value: Int64; ShiftBits: Int32): Int64;
  begin
  {$IFDEF FPC}
    Result := SarInt64(Value, ShiftBits);
  