<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>About</title>
</head>
<body lang="EN-US">
<h2>About This Content</h2>

<p>September 24, 2008</p>
<h3>License</h3>

<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated
below, the Content is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
(&quot;EPL&quot;). A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another
party (&quot;Redistributor&quot;) and different terms and conditions may apply to your use of any object code in the Content.
Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor.
Unless otherwise indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such
source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>

<h3>Third Party Content</h3>

<p>The Content includes items that have been sourced from third parties as set out below. If you did not receive this
Content directly from the Eclipse Foundation, the following is provided for informational purposes only, and you should look to
the Redistributor&rsquo;s license for terms and conditions of use.</p>

<h4>Apache Commons Logging</h4>

<p>The plug-in includes software developed by The Apache Software Foundation as part of the Commons project.</p>

<p>Your use of the Commons Logging code subject to the terms and conditions of the Apache License, Version 2.0. A copy of the
license is contained in the file <a href="about_files/ASF2.0.txt">ASF2.0.txt</a> and is also available at <a
  href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>.
<p>The Apache attribution <a href="about_files/NOTICE.txt">NOTICE.txt</a> file is included with the Content in accordance with 4d of
the Apache License, Version 2.0.</p>

<p>Source code and further information about Apache Commons Lang is available at <a
  href="http://commons.apache.org/logging/">http://commons.apache.org/logging/</a>.</p>

</body>
</html>