# People who have agreed to one of the CLAs and can contribute patches.
# The AUTHORS file lists the copyright holders; this file
# lists people.  For example, Google employees are listed here
# but not in AUTHORS, because Google holds the copyright.
#
# https://developers.google.com/open-source/cla/individual
# https://developers.google.com/open-source/cla/corporate
#
# Names should be added to this file as:
#     Name <email address>

Ulf Adams <ulfjack@google.com>
Eddie Aftandilian <eaftan@google.com>
Miguel Alcon Pinto <malcon@google.com>
Michael Beardsworth <beardsworth@google.com>
Anthony Bellissimo <twon33@gmail.com>
Lukacs Berki <lberki@google.com>
Paul Bethe <pbethe@google.com>
Shreya Bhattarai <shreyax@google.com>
Kevin Bierhoff <kmb@google.com>
Klaas Boesche <klaasb@google.com>
Phil Bordelon <sunfall@google.com>
Jon Brandvein <brandjon@google.com>
Volker Braun <vbraun.name@gmail.com>
Thomas Broyer <t.broyer@ltgt.net>
David Chen <dzc@google.com>
Jingwen Chen <jingwen@google.com>
Kristina Chodorow <kchodorow@google.com>
Onath Claridge <claridge@google.com>
Laszlo Csomor <laszlocsomor@google.com>
Steven Dee <steven@choosemuse.com>
Matthew DeVore <matvore@google.com>
Alan Donovan <adonovan@google.com>
Dave Dopson <ddopson@google.com>
Rumou Duan <rduan@google.com>
Greg Estren <gregce@google.com>
Thiago Farina <tfarina@chromium.org>
Eric Fellheimer <felly@google.com>
John Field <jfield@google.com>
Peter Foley <pefoley2@pefoley.com>
Carmi Grushko <carmi@google.com>
Nathan Harmata <nharmata@google.com>
Tom Hennigan <tomhennigan@google.com>
Alex Humesky <ahumesky@google.com>
Roland Huß <roland@jolokia.org>
Kamil Jiwa <kjiwa@google.com>
Anastasios Kakalis <anastasios@google.com>
Danna Kelmer <dannark@google.com>
Manuel Klimek <klimek@google.com>
Erik Kuefler <ekuefler@gmail.com>
Laurent Le Brun <laurentlb@google.com>
Ross Light <light@google.com>
liuhuahang <liuhuahang@zerus.co>
Marian Lobur <loburm@google.com>
Dmitry Lomov <dslomov@google.com>
Dave MacLachlan <dmaclach@google.com>
David Mankin <dmankin@atlassian.com>
Kamal Marhubi <kamal@marhubi.com>
Damien Martin-Guillerez <dmarting@google.com>
Carl Mastrangelo <carl-mastrangelo@users.noreply.github.com>
Michajlo Matijkiw <michajlo@google.com>
Iain McGinniss <iainmcgin@google.com>
Julio Merino <jmmv@google.com>
Adam Michael <ajmichael@google.com>
Liam Miller-Cushon <cushon@google.com>
Noah Misch <nmisch@google.com>
Kyle Moffett <kyle@moffetthome.net>
Nicholas Gorski <nicholasgorski@outlook.com>
Han-Wen Nienhuys <hanwen@google.com>
Gunther Noack <gnoack@google.com>
Chris Parsons <cparsons@google.com>
Andrew Pellegrini <apell@google.com>
Allen Porter <allen.porter@gmail.com>
Doug Rabson <dfr@rabson.org>
Janak Ramakrishnan <janakr@google.com>
Francois-Rene Rideau <tunes@google.com>
Ethan Rublee <rublee@google.com>
David Santiago <david.santiago@gmail.com>
Mark Schaller <mschaller@google.com>
Peter Schmitt <schmitt@google.com>
Cody Schroeder <schroederc@google.com>
Dmitry Shevchenko <dmishe@google.com>
John Shimek <varikin@gmail.com>
Rupert Shuttleworth <ruperts@google.com>
Brian Silverman <bsilver16384@gmail.com>
Marissa Staib <mstaib@google.com>
John Sullivan <john.t.sullivan@gmail.com>
Chengnian Sun <cnsun@google.com>
Keefer Taylor <keefer@google.com>
Michael Thvedt <mthvedt@google.com>
Cristopher Olson <topher.the.geek@gmail.com>
Daniel Wagner-Hall <danielwh@google.com>
Sergio Campamá <kaipi@google.com>
Zhong Wang <linuxerwang@gmail.com>
Kevin Watts <kevinwwatts@gmail.com>
Florian Weikert <fwe@google.com>
Philipp Wollermann <philwo@google.com>
Jie Yu <yujie.jay@gmail.com>
Andrew Z Allen <me@andrewzallen.com>
Ming Zhao <mzhao@luminatewireless.com>
Peter Mounce <pete@neverrunwithscissors.com>
Yue Gan <yueg@google.com>
Yun Peng <pcloudy@google.com>
Dmitry Babkin <dbabkin@google.com>
Klaus Aehlig <aehlig@google.com>
Robin Nabel <rnabel@ucdavis.edu>
Jonathan Dierksen <dierksen@google.com>
Tony Aiuto <aiuto@google.com>
Andy Scott <andy.g.scott@gmail.com>
Jamie Snape <jamie.snape@kitware.com>
Irina Chernushina <ichern@google.com>