                 SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT
                                  (ADL SDK)

IMPORTANT—READ CAREFULLY:  This is a legal agreement ("Agreement") between you and Advanced Micro Devices, Inc. ("AMD"). Your use of this AMD Software Development Kit, (the "SDK") and related documentation (the "Documentation") the contents of which are listed in Schedule A, are subject to the following terms and conditions. Do not use this SDK and Documentation until you have carefully read and agreed to the following terms and conditions.   By downloading or using the SDK or Documentation obtained herewith, you are expressly agreeing to all of the following terms: 
WARRANTIES, SUPPORT, RIGHTS, AND DAMAGES ARE DISCLAIMED AND/OR LIMITED BELOW, PLEASE READ ENTIRELY AND CAREFULLY.  IF YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, DO NOT ACCEPT THIS AGREEMENT OR USE THIS SDK, DOCUMENATION OR ANY PORTION THEREOF.
1. Deliverables.  If you accept these terms and conditions, AMD will provide you with the SDK and Documentation.  The SDK contains: (a) machine readable computer programming code files ("Object Code") and; (b) human readable form computer programming code and related system level documentation, including all comments, symbols and any procedural code such as job control language ("Source Code"). The SDK and Documentation is licensed, not sold, to you by AMD and its licensors (collectively referred to as "AMD") on the terms set out herein.  AMD retains ownership of the SDK, Documentation and any derivative works thereof.  
2. Purpose. AMD is agreeing to provide you with the SDK and Documentation solely for the purpose of developing and distributing software that operates with AMD products (the "Licensed Purpose").  The software that you distribute that includes all or a portion of the SDK is hereinafter referred to as the ("Distributed Software").
3. License. Subject to the terms and conditions of this Agreement, AMD hereby grants you a non-exclusive, royalty-free, revocable, non-transferable, non-assignable, limited license to: 
(a) use and reproduce copies of the SDK and Documentation that are reasonably required solely to carry out the Licensed Purpose;
(b) install and use a reasonable number of copies of the Source Code of the SDK internally at your site(s) solely to carry out the Licensed Purpose;
(c) modify and create derivative works of the Source Code of the SDK solely for the Licensed Purpose; and
(d) distribute, in object code form the Distributed Software, solely to carry out the licensed purpose.   
Except as expressly provided in this Section 3, AMD does not grant, by implication, estoppels or otherwise under any patents, trademarks, copyrights, mask works, trade secret information, intellectual property, license or similar material.  You acknowledge that all licenses granted herein are conditioned upon the use of the SDK and Documentation for the Licensed Purpose.  Title to and ownership of the Materials, derivatives of the Materials (regardless of who made such derivatives), and all copies thereof shall be and/or at all times remain in AMD.
4. Requirements. With respect to all Distributed Software, you must: 
a) require all distributors and any/or third party end users to agree to use the Distributed Software in accordance with terms and conditions that are substantially similar to the terms and conditions contained in Schedule B hereof.  You may include these terms in your standard form agreement;
b) reproduce all AMD trademark and/or copyright notices on any copy of Distributed Software that you distribute;
5.  Restrictions.  Restrictions regarding your use of the SDK are as follows, you may not: 
a) decompile, disassemble, reverse engineer, disassemble or otherwise reduce the software contained in the SDK to a human-perceivable form, except as otherwise contemplated herein; 
b) alter any copyright, trademark or patent notice in the SDK;
c) use AMD’s trademarks in your programs’ names or in a way that suggests the Distributed Software comes from or is endorsed by AMD;
d) include contents in malicious, deceptive or unlawful programs; 
e) modify or distribute the Source Code of any of the Distributed Software so that any part of it becomes subject to an Excluded license.  An "Excluded License" is one that requires, as a condition of use, modification or distribution, that code be disclosed or distributed in source code form; or that others have the right to modify it;
f) publish the SDK or Documentation for others to use or copy; or
g) rent, lease or lend the SDK or Documentation or transfer the SDK or Documentation to any third party.
6. No Support.  AMD is under no obligation to provide any kind of technical, development or end-user support for the SDK or any Distributed Software made from or by reference to the SDK.
7. Disclaimer of Warranty.  You expressly acknowledge and agree that use of the SDK is at your sole risk.  The SDK and Documentation is provided "AS IS" AND WITHOUT WARRANTY OF ANY KIND AND AMD EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  AMD DOES NOT WARRANT THAT THE CONTENTS OF THE SDK OR DOCUMENTATION WILL MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF THE SDK OR DOCUMENTATION WILL BE UNINTERRUPTED OR ERROR-FREE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SDK AND DOCUMENTATION IS ASSUMED BY YOU.  FURTHERMORE, AMD DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OR THE RESULTS OF THE USE OF THE SDK OR DOCUMENTATION IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE.  SHOULD THE CONTENTS OF THE SDK OR DOCUMENTATION PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.  
8. Limitation of Liability. UNDER NO CIRCUMSTANCES INCLUDING NEGLIGENCE, SHALL AMD, OR ITS DIRECTORS, OFFICERS, EMPLOYEES OR AGENTS, BE LIABLE TO LICENSEE FOR ANY INCIDENTAL, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE LIKE) ARISING OUT OF THE USE, MISUSE OR INABILITY TO USE THE DELIVERABLES OR RELATED DOCUMENTATION, BREACH OR DEFAULT, INCLUDING THOSE ARISING FROM INFRINGEMENT OR ALLEGED INFRINGEMENT OF ANY PATENT, TRADEMARK, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT, BY AMD, EVEN IF AMD, ITS AUTHORIZED REPRESENTATIVES HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  AMD will not be liable for loss of, or damage to, your equipment, records or data or any damages claimed by you based on any third party claim. In no event shall AMD's total liability to you for all damages, losses, and causes of action (whether in contract, tort (including negligence) or otherwise) exceed the amount of $10 USD.
9. Indemnification. You will indemnify, defend, and hold AMD, its subsidiaries, successors, officers, suppliers, directors and employees harmless from any and all actions, causes of action, claims, demands, costs, liabilities, expenses and damages, including reasonable attorneys' fees, arising out of or in connection with your use of the SDK, the Distributed Software and/or any breach of your obligations under this Agreement.
10. Termination.  This agreement is effective until terminated.  You can terminate this agreement at any time by destroying the SDK and Documentation, and all copies you have made.  This agreement will terminate immediately without notice from AMD if you fail to comply with any provision of this agreement.  Upon termination you must destroy the SDK, related documentation and all copies you have made.
11. Government End Users. If you are acquiring the SDK on behalf of any unit or agency of the United States Government, the following provisions apply.  The Government agrees the Software and documentation were developed at private expense and are provided with "RESTRICTED RIGHTS".  Use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (Oct 1988), FAR 12.212(a)(1995), FAR 52.227-19, (June 1987) or FAR 52.227-14(ALT III) (June 1987),as amended from time to time.  In the event that this agreement, or any part thereof, is deemed inconsistent with the minimum rights identified in the Restricted Rights provisions, the minimum rights shall prevail.
12. Export Restrictions.  The SDK and Documentation is subject to United States export laws and regulations.  You agree to comply with all domestic and international export laws and regulations that apply to the SDK and Documentation, including but not limited to the Export Administration Regulations administered by the U.S. Department of Commerce and International Traffic in Arm Regulations administered by the U.S. Department of State.  These laws include restrictions on destinations, end users and end use.
13. Controlling Law and Severability.  This agreement is governed by and construed under the laws of the state of California without reference to its conflict of law principles.  If for any reason a court of competent jurisdiction finds any provision of this agreement or portion thereof, to be unenforceable, that provision of the agreement shall be enforced to the maximum extent permissible so as to effect the intent of the parties, and the remainder of this License shall continue in full force and effect.
14. Complete Agreement.  Nothing in his agreement shall be construed to constitute either party as the agent, employee or representative of the other party This agreement constitutes the entire agreement between the parties with respect to the use of the SDK and Documentation, and supersedes all prior or contemporaneous understandings or agreements, written or oral, regarding such subject matter.  No amendment to or modification of this agreement will be binding unless in writing and signed by a duly authorized representative of AMD. The waiver by either party of any breach of any provision of this agreement shall not operate or be construed as a waiver of any other or a subsequent breach of the same or different provision. No failure or delay by either party in exercising any right or remedy under this Agreement, except as provided herein, will operate as a waiver.

If you agree to abide by the terms and conditions of this Agreement, please press "Accept."  If you do not agree to abide by the terms and conditions of this Agreement, press "Decline" and you may not use or access the Materials.
  
SCHEDULE A
Description of SDK and Documentation
ADL SDK
 Libraries and header files (may be built into your software and distributed only as object code):
* Example application source code
* API header files
Tools and documentation (no redistribution of any kind):
* README file
* API documentation in HTML format

Schedule B
END USER LICENSE AGREEMENT
PLEASE READ THIS LICENSE CAREFULLY BEFORE USING THE SOFTWARE.  BY USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS LICENSE. 
1. License. The software accompanying this License (hereinafter "Software"), regardless of the media on which it is distributed, are licensed to you by Advanced Micro Devices, Inc. ("AMD") for use solely in conjunction with AMD products ("AMD Products").  You own the medium on which the Software is recorded, but AMD and AMD's Licensors (referred to collectively as "AMD") retain title to the Software and related documentation.  You may:
a)  use the Software solely in conjunction with the AMD Products;
b) you must reproduce on such copy AMD's copyright notice and any other proprietary legends that were on the original copy of the Software;
c) transfer all your license rights in the Software provided you must also transfer a copy of this License, the AMD Products and the related documentation and provided the other party reads and agrees to accept the terms and conditions of this License.  Upon such transfer your license is then terminated.
2.  Restrictions. The Software contains copyrighted and patented material, trade secrets and other proprietary material.  In order to protect them, and except as permitted by applicable legislation, you may not:
a) decompile, reverse engineer, disassemble or otherwise reduce the Software to a human-perceivable form;
b) modify, network, rent, lend, loan, distribute or create derivative works based upon the Software in whole or in part; or
3.  Termination. This License is effective until terminated.  You may terminate this License at any time by destroying the Software, related documentation and all copies thereof.  This License will terminate immediately without notice from AMD if you fail to comply with any provision of this License.  Upon termination you must destroy the Software, related documentation and all copies thereof.
4.  Government End Users. If you are acquiring the Software on behalf of any unit or agency of the United States Government, the following provisions apply.  The Government agrees the Software and documentation were developed at private expense and are provided with "RESTRICTED RIGHTS".  Use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (Oct 1988), FAR 12.212(a)(1995), FAR 52.227-19, (June 1987) or FAR 52.227-14(ALT III) (June 1987), as amended from time to time.  In the event that this License, or any part thereof, is deemed inconsistent with the minimum rights identified in the Restricted Rights provisions, the minimum rights shall prevail.
5.  No Other License.  No rights or licenses are granted by AMD under this License, expressly or by implication, with respect to any proprietary information or patent, copyright, trade secret or other intellectual property right owned or controlled by AMD, except as expressly provided in this License.
6.  Additional Licenses. DISTRIBUTION OR USE OF THE SOFTWARE WITH AN OPERATING SYSTEM MAY REQUIRE ADDITIONAL LICENSES FROM THE OPERATING SYSTEM VENDOR.  
7.  Disclaimer of Warranty on Software. You expressly acknowledge and agree that use of the Software is at your sole risk.  The Software and related documentation are provided "AS IS" and without warranty of any kind and AMD EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  AMD DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE SOFTWARE WILL BE CORRECTED.  THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU.  FURTHERMORE, AMD DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OR THE RESULTS OF THE USE OF THE SOFTWARE OR RELATED DOCUMENTATION IN TERMS OF THEIR CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY AMD OR AMD'S AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY.  SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU (AND NOT AMD OR AMD'S AUTHORIZED REPRESENTATIVE) ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.  THE SOFTWARE IS NOT INTENDED FOR USE IN MEDICAL, LIFE SAVING OR LIFE SUSTAINING APPLICATIONS.  SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.  
8.  Limitation of Liability. UNDER NO CIRCUMSTANCES INCLUDING NEGLIGENCE, SHALL AMD, OR ITS DIRECTORS, OFFICERS, EMPLOYEES OR AGENTS, BE LIABLE TO YOU FOR ANY INCIDENTAL, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE LIKE) ARISING OUT OF THE USE, MISUSE OR INABILITY TO USE THE SOFTWARE OR RELATED DOCUMENTATION, BREACH OR DEFAULT, INCLUDING THOSE ARISING FROM INFRINGEMENT OR ALLEGED INFRINGEMENT OF ANY PATENT, TRADEMARK, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT, BY AMD, EVEN IF AMD OR AMD'S AUTHORIZED REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.  AMD will not be liable for 1)loss of, or damage to, your records or data or 2) any damages claimed by you based on any third party claim.   In no event shall AMD's total liability to you for all damages, losses, and causes of action (whether in contract, tort (including negligence) or otherwise) exceed the amount paid by you for the Software.
9. Export Restrictions. Recipient shall adhere to all U.S. and other applicable export laws, including but not limited to the U.S. Export Administration Regulations (EAR), currently found at 15 C.F.R. Sections 730 through 744. Further, pursuant to 15 C.F.R Section 740.6, Recipient hereby certifies that, except pursuant to a license granted by the United States Department of Commerce Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration Regulations ("EAR"), Recipient will not (1) export, re-export or release to a national of a country in Country Groups D:1 or E:2 any restricted technology, software, or source code it receives from AMD, or (2) export to Country Groups D:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 of EAR).  For the most current Country Group listings, or for additional information about the EAR or Recipient’s obligations under those regulations, please refer to the U.S. Bureau of Industry and Security’s website at http://www.bis.doc.gov/.  These export requirements shall survive any expiration or termination of this Agreement.
10.  Controlling Law and Severability. This Agreement will be governed by and construed under the laws of the State of California without reference to its conflicts of law principles. The rights and obligations under this Agreement shall not be governed by the United Nations Convention on Contracts or the International Sale of Goods, the application of which is expressly excluded.  Each party hereto submits to the jurisdiction of the state and federal courts of Santa Clara County and the Northern District of California for the purpose of all legal proceedings arising out of or relating to this Agreement or the subject matter hereof.  Each party waives any objection which it may have to contest such forum. 
11.  Complete Agreement.  This License constitutes the entire agreement between the parties with respect to the use of the Software and the related documentation, and supersedes all prior or contemporaneous understandings or agreements, written or oral, regarding such subject matter.  No amendment to or modification of this License will be binding unless in writing and signed by a duly authorized representative of AMD.
