<!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>November 30, 2017</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 2.0 (&quot;EPL&quot;). A copy of the EPL is
		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</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>OSGi Materials</h4>

<p>All files in the following sub-directories (and their sub-directories):</p>

<ul>
	<li>org/osgi</li>
</ul>

<p>and the following files (which may not be present in all cases):</p>

<ul>
	<li>osgi/ee.foundation.jar</li>
	<li>osgi/ee.minimum.jar</li>	
</ul>

<p>shall be defined as the &quot;OSGi Materials.&quot;  The OSGi Materials are:</p>

<blockquote>
Copyright (c) 2000, 2006
<br /><br />
OSGi Alliance
Bishop Ranch 6<br/>
2400 Camino Ramon, Suite 375<br/>
San Ramon, CA 94583 USA
<br /><br />
All Rights Reserved.
</blockquote>

<p>The OSGi Materials are provided to you under 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/LICENSE-2.0.txt" target="_blank">LICENSE-2.0.txt</a> and is also available at <a href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">http://www.apache.org/licenses/LICENSE-2.0.html</a>.</p>

<p>Implementation of certain elements of the OSGi Materials may be subject to third party intellectual property rights, including without limitation, patent rights (such a third party may
or may not be a member of the OSGi Alliance).  The OSGi Alliance and its members are not responsible and shall not be held responsible in any manner for identifying or failing to identify any or all such third party
intellectual property rights.</p>

<small>OSGi&trade; is a trademark, registered trademark, or service mark of The OSGi Alliance in the US and other countries. Java is a trademark,
registered trademark, or service mark of Sun Microsystems, Inc. in the US and other countries. All other trademarks, registered trademarks, or
service marks used in the Content are the property of their respective owners and are hereby recognized.</small>
</body>
</html>