<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- saved from url=(0047)http://www.eclipse.org/legal/epl/longabout.html -->
<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>13 December 2012</P>	
<H3>License</H3>

<P>The Eclipse Foundation makes available all content in this plug-in ("Content").  Unless otherwise 
indicated below, the Content is provided to you under the terms and conditions of the
Eclipse Public License Version 1.0 ("EPL").  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, "Program" 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 ("Redistributor") 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>

		<h4>Nano Third Party Content</h4>
		<p>This is listed in <a href="AboutNano.html">Nano's About file</a>.

		
		<h4>
			<a href="about_files/apache-v20.txt">Apache License 2.0</a>
		</h4>
		This product contains software developed by the Apache Software Foundation (<a href="http://www.apache.org">http://www.apache.org</a>).
		<ul>
			<li>
				Apache Commons Codec 1.3.0 - binary and source is available from the <a href="http://commons.apache.org/codec/">Apache Commons Codec project</a>
			</li>
			<li>
				Apache HttpClient 3.1.0 - binary and source is available from the <a href="http://hc.apache.org/httpclient-3.x/">Apache HttpClient project</a>
			</li>
			<li>
				Spring Framework 3.1.0.RELEASE - binary and source is available from the
				<a href="http://www.springsource.com/download/community">Spring Framework project</a>
			</li>
		</ul>
		<h4>
			<a href="about_files/asm.txt">ASM License</a>
		</h4>
		<ul>
			<li>
				ASM 2.2.3 - binary and source is available from the <a href="http://asm.ow2.org/">ASM project</a>
			</li>
		</ul>
		<h4>
			<a href="http://en.wikipedia.org/wiki/Public_domain">Public Domain</a>
		</h4>
		<ul>
			<li>
				AOP Alliance 1.0.0 - binary and source is available from the
				<a href="http://aopalliance.sourceforge.net/">AOP Alliance project</a>
			</li>
		</ul>

</BODY></HTML>