	LIMITED USE SOFTWARE DEMO LICENSE AGREEMENT

     This Limited Use Software Demo License Agreement (the "Agreement") is a legal agreement between you, the end-user, and Id Software, Inc. ("ID").  BY CONTINUING THE INSTALLATION OF THIS GAME PROGRAM ENTITLED QUAKE II, BY LOADING OR RUNNING THE GAME PROGRAM, OR BY PLACING OR COPYING THE GAME PROGRAM ONTO YOUR COMPUTER HARD DRIVE, COMPUTER RAM OR OTHER STORAGE, YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS AGREEMENT.

     1.  Grant of License.  ID grants to you the non-exclusive limited right to use this Id Software game program in executable or object code form only (the "Software"), which is the demo version of the Software, for non-commercial, recreational purposes.  The term "Software" includes all elements of the Software such as data files and screen displays.  You are not receiving any ownership or proprietary right, title or interest in or to the Software or the copyright, trademarks, or other rights related thereto.  For purposes of this section, "use" means loading the Software into RAM and/or onto computer hard drive, as well as installation of the Software on a hard disk or other storage device.  You agree that the Software will not be shipped, transferred or exported into any country in violation of the U.S. Export Administration Act (or any other law governing such matters) by you or anyone at your direction and that you will not utilize and will not authorize anyone to utilize, in any other manner, the Software in violation of any applicable law.  The Software may not be downloaded or otherwise exported or reexported into (or to a national or resident of) any country to which the U.S. has embargoed goods or to anyone or into any country who/which are prohibited, by applicable law, from receiving such property.

     2.  Prohibitions. You, either directly or indirectly, shall not do any of the following acts:

     a.  rent the Software;

     b.  sell the Software;

     c.  lease or lend the Software;

     d.  offer the Software on a ?pay-per-play? basis;

     e.  distribute the Software (except by electronic means, as
         permitted by section 3. hereinbelow) by any means,
         including, but not limited to direct mail, retail, mail
         order or other means;

     f.  in any other manner and through any medium whatsoever
         commercially exploit the Software or use the Software
         for any commercial purpose;

     g.  disassemble, reverse engineer, decompile, modify or
         alter the Software;

     h.  translate the Software;

     i.  reproduce or copy the Software (except as permitted by
         section 3. hereinbelow);

     j.  publicly display the Software; or

     k.  prepare or develop derivative works based upon the
         Software.

     3.  Permitted Electronic Distribution and Copying.  So long as this Agreement accompanies the Software at all times, ID grants to you the limited right to distribute, free of charge and by electronic means only, the Software.  Anyone who receives the Software from Provider, as defined below, shall be limited to all the terms and conditions of this Agreement.  The term "Provider" shall mean an enduser who installs a copy of the Software on his/its server and allows other endusers to download a copy of the Software from such server.  You may make only the following copies of the Software:  (i) you may download the Software from the Internet and onto your computer hard drive; (ii) you may copy the Software from your computer hard drive into your computer RAM; and (iii) you may make one (1) "back up" or archival copy of the Software on one (1) hard disk.

     4.  Copyright.  The Software and all copyrights, trademarks and all other conceivable intellectual property rights related to the Software are owned by ID and are protected by United States copyright laws, international treaty provisions and all applicable law, such as the Lanham Act.  You must treat the Software like any other copyrighted material, as required by 17 U.S.C., section 101 et seq. and other applicable law.  You agree to use your best efforts to see that any user of the Software licensed hereunder complies with this Agreement.  You agree that you are receiving a copy of the Software by license only and not by sale and that the "first sale" doctrine of 17 U.S.C. section 109 does not apply to your receipt or use of the Software.

5.	NO WARRANTIES.  ID DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE SOFTWARE.  ID DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR FREE OR THAT THE SOFTWARE WILL MEET YOUR SPECIFIC REQUIREMENTS.  ADDITIONAL STATEMENTS SUCH AS PRESENTATIONS, WHETHER ORAL OR WRITTEN, DO NOT CONSTITUTE WARRANTIES BY ID AND SHOULD NOT BE RELIED UPON.

6.	Venue and Liability Limitation.  This Agreement shall be construed in accordance with and governed by the laws of the State of Texas and U.S. federal law.  Copyright and other proprietary matters will be governed by United States laws and international treaties.  Exclusive venue for all litigation regarding this Agreement shall be in Dallas County, Texas and you agree to submit to the jurisdiction of the courts in Dallas, Texas for any such litigation.  IN ANY CASE, NEITHER ID NOR ID'S OFFICERS, EMPLOYEES, DIRECTORS, AGENTS, LICENSEES, SUBLICENSEES, SUCCESSORS OR ASSIGNS SHALL BE LIABLE FOR LOSS OF DATA, LOSS OF PROFITS, LOST SAVINGS, SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT, PUNITIVE OR OTHER SIMILAR DAMAGES ARISING FROM BREACH OF WARRANTY, BREACH OF CONTRACT, NEGLIGENCE, STRICT PRODUCT  LIABILITY, OR OTHER LEGAL THEORY EVEN IF ID OR ITS AGENT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR EVEN IF SUCH DAMAGES ARE FORESEEABLE, OR LIABLE FOR ANY CLAIM BY ANY OTHER PARTY.  Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you.

7.	U.S. Government Restricted Rights. To the extent applicable, the United States Government shall only have those rights to use the Software as expressly stated and expressly limited and restricted in this Agreement, as provided in 48 C.F.R. sections 227.7202-1 through 227.7204, inclusive.

8.	General Provisions.  A copy of all notices or other correspondence which you send to ID shall also be sent by you to ID's counsel:

D. Wade Cloud, Jr.
HIERSCHE, MARTENS, HAYWARD, DRAKELEY & URBACH, P.C.
15303 Dallas Parkway, Suite 700
Dallas, TX 75248
(972) 701-7000
Facsimile:   (972) 701-8765

Neither this Agreement nor any part or portion hereof shall be assigned or sublicensed by you.  ID may assign its rights under this Agreement in ID's sole discretion.  Should any provision of this Agreement be held to be void, invalid, unenforceable or illegal by a court, the validity and enforceability of the other provisions shall not be affected thereby.  If any provision is determined to be unenforceable, you agree to a modification of such provision to provide for enforcement of the provision's intent, to the extent permitted by applicable law.  Failure of ID to enforce any provision of this Agreement shall not constitute or be construed as a waiver of such provision or of the right to enforce such provision.  If you fail to comply with any term of this Agreement, YOUR LICENSE IS AUTOMATICALLY TERMINATED, WITHOUT NOTICE.  In the event this Agreement is terminated, you shall have no right to use the Software, in any manner and you shall immediately destroy all copies of the Software in your possession, custody or control.  You agree that your unauthorized use of any ID property, whether in whole or in part, would immediately and irreparably damage ID such that ID could not be adequately compensated by an award of monetary damages, and in the event of such threatened or actual unauthorized use ID shall be entitled to an injunctive order appropriately restraining and/or prohibiting such unauthorized use without the necessity of ID posting bond or other security.

YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, YOU UNDERSTAND THIS AGREEMENT, AND UNDERSTAND THAT BY CONTINUING THE INSTALLATION OF THE SOFTWARE, BY LOADING OR RUNNING THE SOFTWARE, OR BY PLACING OR COPYING THE SOFTWARE ONTO YOUR COMPUTER HARD DRIVE OR RAM, YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS OF THIS AGREEMENT.  YOU FURTHER AGREE THAT, EXCEPT FOR WRITTEN SEPARATE AGREEMENTS BETWEEN ID AND YOU, THIS AGREEMENT IS A COMPLETE AND EXCLUSIVE STATEMENT OF THE RIGHTS AND LIABILITIES OF THE PARTIES HERETO.  THIS AGREEMENT SUPERSEDES ALL PRIOR ORAL AGREEMENTS, PROPOSALS OR UNDERSTANDINGS, AND ANY OTHER COMMUNICATIONS BETWEEN ID AND YOU RELATING TO THE SUBJECT MATTER OF THIS AGREEMENT.



February 16, 1998 (9:22am)
