# Default owners are top 3 active developers of the past 1 or 2 years
# or people with more than 10 commits last year.
# Please update this list if you find better owner candidates.
acourbot@google.com
akahuang@google.com
dstaessens@google.com
lajos@google.com
