Synced with the source at 4f6f9d9315a6fc58eff2676b89126565a7fdea01.