  FreeType 2.10.2
  ===============

  Homepage: https://www.freetype.org

  FreeType is a freely available software library to render fonts.

  It  is  written  in  C,  designed to  be  small,  efficient,  highly
  customizable, and  portable while capable of  producing high-quality
  output  (glyph  images) of  most  vector  and bitmap  font  formats.

  Please   read   the  docs/CHANGES   file,   it  contains   IMPORTANT
  INFORMATION.

  Read the  files `docs/INSTALL*'  for installation  instructions; see
  the file `docs/LICENSE.TXT' for the available licenses.

  The FreeType  2 API  reference is located  in `docs/reference/site';
  use the file `index.html' as the top entry point.  [Please note that
  currently the  search function  for locally  installed documentation
  doesn't work due to cross-site scripting issues.]

  Additional documentation is available as a separate package from our
  sites.  Go to

    https://download.savannah.gnu.org/releases/freetype/

  and download one of the following files.

    freetype-doc-2.10.2.tar.xz
    freetype-doc-2.10.2.tar.gz
    ftdoc2102.zip

  To view the documentation online, go to

    https://www.freetype.org/freetype2/docs/


  Mailing Lists
  =============

  The preferred way  of communication with the FreeType  team is using
  e-mail lists.

    general use and discussion:      freetype@nongnu.org
    engine internals, porting, etc.: freetype-devel@nongnu.org
    announcements:                   freetype-announce@nongnu.org
    git repository tracker:          freetype-commit@nongnu.org

  The lists are moderated; see

    https://www.freetype.org/contact.html

  how to subscribe.


  Bugs
  ====

  Please submit bug reports at

    https://savannah.nongnu.org/bugs/?group=freetype

  Alternatively,    you   might    report    bugs    by   e-mail    to
  `freetype-devel@nongnu.org'.   Don't  forget   to  send  a  detailed
  explanation of the problem --  there is nothing worse than receiving
  a terse message that only says `it doesn't work'.


  Patches
  =======

  Please  submit patches  to  the `freetype-devel@nongnu.org'  mailing
  list  --  and thank  you  in  advance  for  your work  on  improving
  FreeType!

  Details on the process can be found here:

    https://www.freetype.org/developer.html#patches


  Enjoy!


    The FreeType Team

----------------------------------------------------------------------

Copyright (C) 2006-2020 by
David Turner, Robert Wilhelm, and Werner Lemberg.

This  file is  part of  the FreeType  project, and  may only  be used,
modified,  and distributed  under the  terms of  the  FreeType project
license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
this file you  indicate that you have read  the license and understand
and accept it fully.


--- end of README ---
