# Names should be added to this file like so:
# Name or Organization <email address>

Google Inc.
Mozilla Foundation
Ben Strong <bstrong@gmail.com>
Petar Jovanovic <petarj@mips.com>
Martin Storsjo <martin@martin.st>
