# 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>

Damien Martin-Guillerez <dmarting@google.com>
David Chen <dzc@google.com>
Florian Weikert <fwe@google.com>
Francois-Rene Rideau <tunes@google.com>
Julio Merino <jmmv@google.com>
Kamal Marhubi <kamal@marhubi.com>
Kristina Chodorow <kchodorow@google.com>
Michael Hackner <mhackner@gmail.com>
Philipp Wollermann <philwo@google.com>
Ulf Adams <ulfjack@google.com>
Justine Alexandra Roberts Tunney <jart@google.com>
John Edmonds <jedmonds@spotify.com>
Ivan Kalchev <kivan@vmware.com>
