ECW JPEG 2000 SDK PUBLIC USE LICENSE AGREEMENT
IMPORTANT-READ CAREFULLY: This Earth Resource Mapping Limited ("ERM") End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and ERM for the ERM ECW JPEG 2000 SDK software product under this Public Use License Agreement, which includes computer software and may include associated media,  printed materials, and "online" or electronic documentation ("SOFTWARE PRODUCT"). The SOFTWARE PRODUCT also includes any updates and supplements to the original SOFTWARE PRODUCT provided to you by ERM.  Any software provided along with the SOFTWARE PRODUCT that is associated with a separate end-user license agreement is licensed to you under the terms of that license agreement. By installing, copying, downloading, accessing or otherwise using the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to the terms of this EULA, do not install or use the SOFTWARE PRODUCT.
The intent of this license is to establish freedom to share and change the software regulated by this license under the open source model and is applicable to the use of the ECW JPEG 2000 SDK with Unlimited Decompressing and Unlimited Compression for applications licensed under a GNU General Public style license ("GPL") as set out below. 
This license applies to any use of the Software Product solely intended to develop or be distributed with products that are licensed under a license similar to a General Public License ("GPL") and at no charge to the public.  This license covers modification and distribution of the Software, use of third-party application programs based on the Software, and development of free software that uses the Software. 
The Software Product is protected by patents, copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The Software Product is licensed, not sold. Rights to use patents, including ERM's large DWT and streaming imagery patents, are given only for use with the ECW JPEG 2000 SDK and not for other uses.
Granted Rights
1) GRANT OF LICENSE. This EULA grants you the following limited, non-exclusive rights, provided you agree to and comply with any and all conditions in this license. Whole or partial distribution of the Software, or software items that link with the Software, in any form signifies acceptance of this license. 
a) You may copy and distribute the Software in unmodified form provided that the entire package, including - but not restricted to - copyright, trademark notices and disclaimers, as released by the initial developer of the Software, is distributed. 
b) You may make modifications to the Software and distribute your modifications, in a form that is separate from the Software, such as patches. The following restrictions apply to modifications: 
i) Modifications must not alter or remove any copyright notices in the Software. 
ii) When modifications to the Software are released under this license, a non-exclusive royalty-free right is granted to the initial developer of the Software to distribute your modification in future versions of the Software provided such versions remain available under these terms in addition to any other license(s) of the initial developer. 
iii) You are not permitted to change the ECW file format.
c) You may distribute machine-executable forms of the Software or machine-executable forms of modified versions of the Software, provided that you meet these restrictions: 
i) You must include this license document in the distribution. 
ii) You must ensure that all recipients of the machine-executable forms are also able to receive the complete machine-readable source code to the distributed Software, including all modifications, without any charge beyond the costs of data transfer, and place prominent notices in the distribution explaining this. 
iii) You must ensure that all modifications included in the machine-executable forms are available under the terms of this license. 
d) You may use the original or modified versions of the Software to compile, link and run application programs legally developed by you or by others. 
e) You may develop application programs, reusable components and other software items that link with the original or modified versions of the Software. These items, when distributed, are subject to the following requirements: 
i) You must ensure that all recipients of machine-executable forms of these items are also able to receive and use the complete machine-readable source code to the items without any charge beyond the costs of data transfer. 
ii) You must explicitly license all recipients of your items to use and re-distribute original and modified versions of the items in both machine-executable and source code forms. The recipients must be able to do so without any charges whatsoever, and they must be able to re-distribute to anyone they choose. 
iii) If the items are not available to the general public, and the initial developer of the Software requests a copy of the items, then you must supply one. 

2) SUPPORT AND UPDATES.
Licensee is optionally entitled to join the ERM Developer Network for a fee.  Other than this service, ERM provides no technical support as part of this license.

3) U.S. GOVERNMENT RESTRICTED RIGHTS. 
The SOFTWARE PRODUCT and documentation are provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the US Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of The Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c)(1) and (2) of the Commercial Computer Software - Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Earth Resource Mapping Limited.

4) DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS. 
a) Rental. You may not rent, lease or lend the SOFTWARE PRODUCT. 
b) Software Transfer. You may permanently transfer all of your rights under this EULA, provided you retain no copies, you transfer all of the SOFTWARE PRODUCT (including all component parts, the media and printed materials, any upgrades, this EULA, and, if applicable, the Certificate of Authenticity), and the recipient agrees to the terms of this EULA. If the SOFTWARE PRODUCT is an upgrade, any transfer must include all prior versions of the SOFTWARE PRODUCT.
c) Termination. Without prejudice to any other rights, ERM may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts. 
d) No Warranties. ERM EXPRESSLY DISCLAIMS ANY WARRANTY FOR THE SOFTWARE  PRODUCT. THE SOFTWARE PRODUCT AND ANY RELATED DOCUMENTATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. THE ENTIRE RISK  ARISING OUT OF USE OR PERFORMANCE OF THE SOFTWARE PRODUCT REMAINS WITH YOU. 
e) Limitation of Liability. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE  LAW, IN NO EVENT SHALL ERM OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE PRODUCT OR THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES, EVEN IF ERM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN ANY CASE, ERM'S ENTIRE LIABILITY UNDER ANY PROVISION OF THIS EULA SHALL BE LIMITED TO THE GREATER OF THE AMOUNT ACTUALLY PAID BY YOU FOR THE SOFTWARE PRODUCT OR US$5.00; PROVIDED HOWEVER, IF YOU HAVE ENTERED INTO A ERM SUPPORT SERVICES AGREEMENT, ERM'S ENTIRE LIABILITY REGARDING SUPPORT SERVICES SHALL BE GOVERNED BY THE TERMS OF THAT AGREEMENT. BECAUSE SOME STATES AND JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.
f) This Agreement may only be modified in writing signed by authorized representatives of ERM. All terms of any purchase order or other ordering document shall be superseded by this Agreement. If any provision of the Agreement is found void or unenforceable, the remainder will remain valid and enforceable according to its terms. If any remedy provided is determined to have failed for its essential purpose, all limitations of liability and exclusions of damages set forth in this Agreement shall remain in effect.
g) This Agreement shall be construed, interpreted and governed by the laws of Western Australia. 
h) ERM reserves all rights not specifically granted in this Agreement.
