<?php
/**
 * Copyright (c) 2005, 2018 Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Denis Roy (Eclipse Foundation) - Initial implementation
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<div id="midcolumn">
  <h1><?php print $pageTitle; ?></h1>
  <p>
    This document lists the licenses approved by the Board of Directors for use
    for Non-Code Content (as that term is defined in the <a
      href="termsofuse.php"
    >Eclipse.org Terms of Use</a>). They are:
  </p>
  <ul>
    <li>Eclipse Public License 1.0</li>
  </ul>
</div>