End User License Agreement (EULA)

  IMPORTANT - READ CAREFULLY BEFORE INSTALLING:

  THIS END-USER LICENSE AGREEMENT is a legal contract between SUPER MICRO
  COMPUTER, INC. ("SUPERMICRO") and the individual or entity which
  downloads, installs or otherwise uses the attached SUPERMICRO software
  product ("the Software ").

  BY CLICKING ON THE "ACCEPT" BUTTON AT THE END OF THIS AGREEMENT, WHICH
  WILL INSTALL THE ATTACHED SOFTWARE, OR BY OTHERWISE INSTALLING OR USING
  THE SOFTWARE, THE INDIVIDUAL OR ENTITY WHICH INSTALLS OR USES THE SOFTWARE
  ("LICENSEE") AGREES TO BE BOUND BY THE TERMS OF THIS AGREEMENT. IF YOU DO
  NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, CLICK THE "CANCEL" BUTTON
  AND THE INSTALLATION PROCESS WILL NOT CONTINUE.

  1. License: This Agreement grants you, the Licensee, a limited,
  non-exclusive, global, non-transferable license to download the Software,
  install on SUPERMICRO's products, and distribute the Software in
  combination with SUPERMICRO's products ("License").

  2. General Public License/Lesser General Public License. Certain
  components of the Software may be subject to the GNU GPL or LGPL terms and
  conditions available for viewing at http://www.gnu.org/copyleft/gpl.html
  and http://www.gnu.org/copyleft/lesser.html or as otherwise designated. To
  the extent you receive Software under this License which contains
  components subject to the GPL or LGPL terms, you agree to be bound by all
  the terms and restrictions therein including keeping all copyright notices
  in tact for the duration of your use of the Software and modifying and/or
  redistributing such components only in accordance with the terms of the
  GNU GPL or LGPL terms.

  3. Restrictions: The Licensee may NOT sublicense, assign, reproduce or
  distribute copies of the Software to others except as otherwise provided
  herein. The Software contains trade secrets. The Licensee may NOT
  decompile, reverse engineer, disassemble, or otherwise reduce the Software
  to a human readable form. THE LICENSEE MAY NOT MODIFY, ADAPT, TRANSLATE,
  RENT, LEASE, LOAN, RESELL FOR PROFIT, DISTRIBUTE, OR OTHERWISE ASSIGN OR
  TRANSFER THE SOFTWARE, OR CREATE DERIVATIVE WORKS BASED UPON THE SOFTWARE
  OR ANY PART THEREOF, EXCEPT AS EXPRESSLY AGREED TO IN WRITING BY
  SUPERMICRO.

  4. Copyright Protection: Except to the extent the Software was licensed to
  SUPERMICRO by its licensor, the Software and all related documentation are
  owned by SUPERMICRO and are protected by United States' copyright laws and
  international treaty provisions. Any copying or redistribution, except as
  expressly permitted by this Agreement is a violation of the law. You may
  not remove or alter any copyright, trade secret, patent, trademark, trade
  name, logo, product designation or other proprietary and/or other legal
  notices contained in or on the Software. These legal notices must be
  retained on any copies of the Software. Except as otherwise expressly
  provided, this License grants no express or implied rights under the
  respective patents, copyrights, trademarks or other intellectual property
  rights of SUPERMICRO or its licensors.

  5. Termination: This License is effective until terminated. This License
  will terminate immediately without notice from SUPERMICRO if the Licensee
  fails to comply with any of its provisions. Upon termination the Licensee
  must destroy the Software and all copies thereof, and the Licensee may
  terminate this License at any time by doing so.

  6. No Warranty: THE SOFTWARE IS DELIVERED TO LICENSEE "AS-IS". SUPERMICRO
  AND ITS SUPPLIERS AND RESELLERS MAKE NO WARRANTY AS TO THE USE OR
  PERFORMANCE OF THE SOFTWARE OF ANY KIND. SUPERMICRO AND ITS SUPPLIERS AND
  RESELLERS DO NOT WARRANT THAT THE SOFTWARE IS FREE OF DEFECTS,
  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING OF THIRD
  PARTY RIGHTS, AND DISCLAIM AND EXCLUDE ALL WARRANTIES, EXPRESS OR IMPLIED,
  WITH RESPECT TO THE SOFTWARE, ITS USE, PERFORMANCE OR APPLICATION, THE
  DISKETTE OR OTHER TANGIBLE MEDIA ON WHICH THE SOFTWARE IS DELIVERED, OR
  ANY INFORMATION PROVIDED REGARDING THE SOFTWARE.

  7. Limitation of Liability: IN NO EVENT WILL SUPERMICRO OR ITS LICENSORS
  BE LIABLE TO LICENSEE FOR ANY DAMAGES INCLUDING ANY LOST PROFITS, LOST
  SAVINGS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF SUPERMICRO
  OR ITS LICENSORS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR
  FOR ANY CLAIM BY ANY OTHER PARTY. IN NO EVENT WILL THE LIABILITY OF
  SUPERMICRO OR ITS LICENSORS, WHETHER IN CONTRACT, TORT (INCLUDING
  NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EXCEED THE AMOUNT PAID BY YOU
  UNDER THIS LICENSE.

  8. General: California law, except as to copyright matters, which are
  covered by Federal law, and its principals of conflict of laws, shall
  govern this Agreement. This Agreement will not be governed by the conflict
  of law rules of any jurisdiction or the United Nations Convention of
  Contracts for the Sale of Goods. The parties hereby consent to the
  exclusive personal jurisdiction of and venue in a court of competent
  jurisdiction located in Santa Clara County is the State of California. Any
  cause of action or claim with respect to the Software provided under this
  Agreement must be commenced within one (1) year after the claim or cause
  of action arises or such claim or cause of action is barred. Should any
  provision of this Agreement be declared unenforceable by a court of
  competent jurisdiction, then such provision shall be deemed severable from
  this Agreement and changed and interpreted so as to best accomplish the
  objectives of the original provision to the fullest extent allowed by law.
  Such an event shall not affect the remainder hereof and the remaining
  provisions shall remain in full force and effect. SUPERMICRO reserves all
  rights in the Software not specifically granted in this Agreement. The
  Licensee agrees to indemnify, defend and hold SUPERMICRO harmless from any
  and all expenses, judgments, penalties, or other liabilities by reason of
  its failure to comply with any provisions under this Agreement.

  9. Export Regulations. All Software and technical data delivered under
  this License are subject to U.S. export control laws and may be subject to
  export or import regulations in other countries. You may not use or
  otherwise export or re-export the Software except as authorized by U.S.
  law and the laws of the jurisdiction in which the Software was obtained.
  You agree to comply strictly with all such laws and regulations and
  acknowledge that the Software may not be exported or re-exported (i) into
  (or to a national or resident of) any U.S. embargoed country or (ii) to
  anyone on the U.S. Treasury Department's list of Specially Designated
  Nationals or the U.S. Commerce Department's Table of Denial Orders (each,
  a "List"). By using the Software, you represent and warranty that you are
  not located in, under the control of, or a national or resident of any
  such country or on any such List.

  10. Acknowledgment and Exclusivity. LICENSEE ACKNOWLEDGES THAT IT HAS READ
  THIS AGREEMENT, UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS TERMS AND
  CONDITIONS. LICENSEE FURTHER AGREES THAT IT IS THE COMPLETE AND EXCLUSIVE
  STATEMENT OF THE AGREEMENT BETWEEN US WHICH SUPERCEDES ANY PROPOSAL OR
  PRIOR AGREEMENT, ORAL OR WRITTEN, AND ANY OTHER COMMUNICATIONS BETWEEN THE
  PARTIES RELATING TO THE SUBJECT MATTER OF THIS AGREEMENT. No provision
  appearing on any form originated by Licensee shall be applicable or have
  any force or effect unless such provision is expressly accepted in writing
  by an officer of SUPERMICRO. This Agreement cannot be modified by purchase
  orders or other forms, advertisements, or oral or written representations
  of representatives of Licensee or SUPERMICRO, or anyone else, unless a
  written amendment has been signed by a SUPERMICRO officer.
