Synced with the source at ba75928c0f0a952bf32ed645ab3c21d450af9b95.