anchor.diff:  
   procedure TfmConsole.DoNavigate(Sender: TObject);
   var
  -  S: atString;
  +  S: string;
     N: integer;
   begin
     if Assigned(FOnNavigate) then
     begin
       N:= Memo.Carets[0].PosY;
       if not Memo.Strings.IsIndexValid(N) then exit;
  -    S:= Memo.Strings.Lines[N];
  -    FOnNavigate(Utf8Encode(S));
  +    S:= Memo.Strings.LinesUTF8[N];
  +    FOnNavigate(S);
     end;
   end;
   
  
positive.code:     ModeReadOnly:= false;
      while Strings.Count>cPyConsoleMaxLines do
        Strings.LineDelete(0);
      Strings.LineAdd(Utf8Decode(Str));
      ModeReadOnly:= true;
  
      Update(true);
  
negative.code: 
  procedure TfmConsole.MemoClickDbl(Sender: TObject; var AHandled: boolean);
  var
    s: string;
    n: integer;
  begin
    n:= Memo.Carets[0].PosY;
    if Memo.Strings.IsIndexValid(n) then
    begin
      s:= Memo.Strings.LinesUTF8[n];
      if SBeginsWith(s, cPyConsolePrompt) then
      begin
        Delete(s, 1, Length(cPyConsolePrompt));
        DoExecuteConsoleLine(s);
      end
      else
        DoNavigate(Self);
  