This file contains the list of individuals with write access to the OpenTitan
repository, who are responsible for the final approval and merge of
contributions. See doc/project/committers.md for more information.

Committers are listed alphabetically by surname in the format:
* Full Name (GitHubID)

Committer list:
* Mark Branstad (mwbranstad)
* Greg Chadwick (GregAC)
* Cindy Chen (cindychip)
* Timothy Chen (tjaychen)
* Jon Flatley (jon-flatley)
* Chris Frantz (cfrantz)
* Srikrishna Iyer (sriyerg)
* Eli Kim (eunchan)
* Jaedon Kim (jdonjdon)
* Martin Lueker-Boden (martin-lueker)
* Rasmus Madsen (rasmus-madsen)
* Guillermo Maturana (matutem)
* Drew Macrae (drewmacrae)
* Felix Miller (felixmiller)
* Michael Munday (mundaym)
* Miguel Osorio (moidx)
* Jade Philipoom (jadephilipoom)
* Douglas Reis (engdoreis)
* Dominic Rizzo (domrizz0)
* Michael Schaffner (msfschaffner)
* Rupert Swarbrick (rswarbrick)
* Canberk Topal (ctopal)
* Timothy Trippel (timothytrippel)
* Alphan Ulusoy (alphan)
* Pirmin Vogel (vogelpi)
* Alex Williams (a-will)
* Weicai Yang (weicaiyang)
