# 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.
# Owners must be registered in AOSP gerrit.
# songy23@users.noreply.github.com
# sebright@google.com
# bdrutu@google.com
# matt.ho@gmail.com
# youxiabsyw@gmail.com
# mayurkale@google.com
jdesprez@google.com
ipalant@google.com
