# Names should be added to this file with this pattern:
#
# For individuals:
#   Name <email address>
#
# For organizations:
#   Organization <fnmatch pattern>
#
# See python fnmatch module documentation for more information.

Andrey Khalyavin <halyavin@chromium.org>
Brett Wilson <brettw@chromium.org>
Bruce Dawson <brucedawson@chromium.org>
Chris Palmer <palmer@chromium.org>
Finnur Thorarinsson <finnur@chromium.org>
Jochen Eisinger <jochen@chromium.org>
John Abd-El-Malek <jam@chromium.org>
Julien Tinnes <jln@chromium.org>
Kostya Serebryany <kcc@chromium.org>
Lei Zhang <thestig@chromium.org>
Lucas Nihlen <luken@chromium.org>
Matt Giuca <mgiuca@chromium.org>
Michael Doppler <m.doppler@gmail.com>
Nico Weber <thakis@chromium.org>
Peter Kasting <pkasting@chromium.org>
Raymes Khoury <raymes@chromium.org>
Reid Kleckner <rnk@chromium.org>
Robert Sesek <rsesek@chromium.org>
Thomas Sepez <tsepez@chromium.org>
Jiang Jiang <jiangj@opera.com>

Foxit Software Inc <*@foxitsoftware.com>
Google Inc. <*@google.com>
