# This is the official list of Skia authors for copyright purposes.
#
# Names should be added to this file with one of the following patterns:
#
# For individual contributors:
# Name <email address>
#
# For corporate contributors:
# Organization <fnmatch pattern>
# See examples below or python fnmatch module documentation for more information.
#
# Please keep the list sorted alphabetically.

Aaron O'Mullan <aaron.omullan@gmail.com>
ACCESS CO., LTD. <*@access-company.com>
Amazon, Inc <*@amazon.com>
Anthony Catel <paraboul@gmail.com>
ARM <*@arm.com>
Bharat Ahuja <ahujabharat93@gmail.com>
Casey Banner <kcbanner@gmail.com>
Dawson Coleman <dawsonmcoleman@gmail.com>
Deepak Mohan <hop2deep@gmail.com>
Ehsan Akhgari <ehsan.akhgari@gmail.com>
Facebook, Inc. <*fb.com>
George Wright <george@mozilla.com>
GiWan Go <gogil@stealien.com>
Google Inc. <*@google.com>
Herb Derby <herbderby@gmail.com>
Igalia <*@igalia.com>
Intel <*@intel.com>
Ion Rosca <rosca@adobe.com>
Jacek Caban <cjacek@gmail.com>
Jeff Muizelaar <jmuizelaar@mozilla.com>
Jongdeok Kim <jongdeok.kim@navercorp.com>
Lee Salzman <lsalzman@mozilla.com>
Marcin Kazmierczak <mar.kazmierczak@gmail.com>
Matthew Leibowitz <mattleibow@live.com>
Microsoft <*@microsoft.com>
MIPS <*@imgtec.com>
Ning Liu <ningliu@invisionapp.com>
Noah Lavine <noah.b.lavine@gmail.com>
NVIDIA <*@nvidia.com>
Opera Software ASA <*@opera.com>
Pavel Krajcevski <pavel@cs.unc.edu>
Petar Kirov <petar.p.kirov@gmail.com>
Raul Tambre <raul@tambre.ee>
Samsung <*@samsung.com>
Samsung Open Source Group <*@osg.samsung.com>
Sergey Melnikov <Melnikov.Sergey.V@gmail.com>
Shachar Langbeheim <nihohit@gmail.com>
Skia <*@skia.org>
Skia Buildbots <skia.buildbots@gmail.com>
Sony Mobile Communications Inc. <*@sonymobile.com>
Stephan Hartmann <stha09@googlemail.com>
Steve Singer <steve@ssinger.info>
Sylvestre Ledru <sylvestre.ledru@gmail.com>
The Chromium Authors <*@chromium.org>
Thiago Fransosi Farina <thiago.farina@gmail.com>
Jose Mayol <jei.mayol@gmail.com>
Linaro <*@linaro.org>
Christian Plesner Hansen <plesner@t.undra.org>
Marco Alesiani <marco.diiga@gmail.com>
Adobe Systems Incorporated <*@adobe.com>
Yandex LLC <*@yandex-team.ru>
Kaloyan Donev <kdonev@gmail.com>
Yong-Hwan Baek <meisterdevhwan@gmail.com>
Alexander Khovansky <alx.khovansky@gmail.com>
Zhuo Qingliang <zhuo.dev@gmail.com>
Mainframe North <*@mainframe.co.uk>
JetBrains <*@jetbrains.com>
Vibe Inc <*@vibe.us>
Scene Group Ltd. <*@scenegroup.co>
