anchor.diff:    Result := GetFilename(FTouchLayoutFilename);
   end;
   
  +function TKeyboardProjectTemplate.HasIcon: Boolean;
  +begin
  +  Result := (KMXKeymanTargets+[ktAny]) * FTargets <> [];
  +end;
  +
   function TKeyboardProjectTemplate.HasKMX: Boolean;
   begin
     Result := (KMXKeymanTargets+[ktAny]) * FTargets <> [];
  
positive.code:     procedure WriteRepositoryMetadata;
      procedure WriteDocumentation;
      procedure WriteKeyboardInfo;
      function HasKMX: Boolean;
      function HasIcon: Boolean;
      procedure Transform(const SourceFile: string; DestFile: string = '');
      function DataPath: string;
      procedure SetKeyboardLanguages(kps: TkpsFile);
  
negative.code: function TKeyboardProjectTemplate.HasTouchLayout: Boolean;
  begin
    Result := (TouchKeymanTargets+[ktAny]) * FTargets <> [];
  end;
  
  procedure TKeyboardProjectTemplate.WriteDocumentation;
  