# This is the official list of The ANGLE Project Authors
# for copyright purposes.
# This file is distinct from the CONTRIBUTORS files.
# See the latter for an explanation.

# Names should be added to this file as
#	Name or Organization
# Email addresses for individuals are tracked elsewhere to avoid spam.

Google Inc.
TransGaming Inc.
3DLabs Inc. Ltd.

Adobe Systems Inc.
Apple Inc.
Autodesk, Inc.
Cloud Party, Inc.
Intel Corporation
Mozilla Corporation
Turbulenz
Klarälvdalens Datakonsult AB

Jacek Caban
Mark Callow
Ginn Chen
James Hauxwell
Sam Hocevar
Pierre Leveille
Jonathan Liu
Boying Lu
Aitor Moreno
Yuri O'Donnell
Josh Soref
