===========================================================================

Apache FreeMarker
Copyright 2015-2016 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

===========================================================================

The documentation includes a selection of icons from various icon sets
(fonts), stored together inside these files, which were geneated with
https://icomoon.io/app/:

    documentation/_html/docgen-resources/fonts/icomoon.eot
    documentation/_html/docgen-resources/fonts/icomoon.svg
    documentation/_html/docgen-resources/fonts/icomoon.ttf
    documentation/_html/docgen-resources/fonts/icomoon.woff
    
The name, license, and attribution of each icon sets (fonts) used follows:
    
- The documentation includes icons from Entypo pictograms, version 2.0,
  by Daniel Bruce (http://www.entypo.com/, http://www.danielbruce.se/),
  licensed under Creative Commons Attribution-ShareAlike 3.0 (CC BY-SA 3.0)
  (http://creativecommons.org/licenses/by-sa/3.0/legalcode) and under SIL
  Open Font License 1.1 (http://scripts.sil.org/OFL).

- The documentation includes icons from Font Awesome by Dave Gandy
  (http://fontawesome.io), licensed under SIL Open Font License 1.1
  (http://scripts.sil.org/OFL).

- The documentation includes icons from Material Design icons by Google
  (http://google.github.io/material-design-icons/), licensed under
  Creative Common Attribution 4.0 International License (CC-BY 4.0)
  (https://creativecommons.org/licenses/by/4.0/).

===========================================================================

FreeMarker, both in its source code and binary form (freemarker.jar)
includes files that were developed outside the FreeMarker project, and
are licensed by the Apache Software Foundation under the Apache License,
Version 2.0. This is the same license as the license of FreeMaker. These
files in the binary distribution are:
  
    freemarker.jar/freemarker/ext/jsp/web-app_2_2.dtd
    freemarker.jar/freemarker/ext/jsp/web-app_2_3.dtd
    freemarker.jar/freemarker/ext/jsp/web-jsptaglibrary_1_1.dtd
    freemarker.jar/freemarker/ext/jsp/web-jsptaglibrary_1_2.dtd

===========================================================================
