<!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>&lt;<em>insert current release date here, e.g., June 5, 2007</em>&gt;</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's license for 
		terms and conditions of use.</p>
		<p><em>
		<strong>Apache Commons CLI 1.2</strong> <br/><br/>
		<p>The plug-in includes Commons CLI 1.2 (&quot;Commons CLI&quot;) developed by the Apache Software Foundation as part of the Apache Commons project.  Therefore:</p>

		<blockquote>
		This product includes software developed by the Apache Software Foundation (<a href="http://www.apache.org/">http://www.apache.org/</a>).
		</blockquote>

		<p>The Commons CLI is obtained from <a href="http://commons.apache.org/cli/">http://commons.apache.org/cli/</a>.

		<p>The Commons CLI binary code is included with no modifications except postprocessing
		(pack200 conditioning and signing). The corresponding Commons CLI source code can be obtained from <a href="http://commons.apache.org/cli/">http://commons.apache.org/cli/</a></p>

		<p>Commons CLI is:</p>

		<blockquote>Copyright (c) 2001-2009 The Apache Software Foundation. All rights reserved.</blockquote>

		<p>Your use of the Commons CLI code is subject to the terms and conditions of the Apache Software License 2.0.  A copy of the license is contained
		in the file <a href="about_files/Apache_Software_Licence-2.0.txt">Apache_Software_Licence-2.0.txt</a> and is also available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.

		<p>Examples and documentation as well as updated source code for Commons CLI is available at <a href="http://commons.apache.org/cli/">http://commons.apache.org/cli/</a>.</p>

		<br/><br/>
		


</body>
</html>