# Below is a list of people and organizations that have contributed source
# code to the Native Client SDK project.  Names should be added to the list
# like this:
#
#   Name/Organization <email address>

Google Inc.  native-client-discuss@google.com
Daiwei Li <daiweili@suitabletech.com>
Eduardo Lima (Etrunko) <eblima@gmail.com>
Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
Matthew Turk <matthewturk@gmail.com>
Soeren Balko <soeren@zfaas.com>
anatoly techtonik <techtonik@gmail.com>
