(cherry picked from commit 3f49d1fa) (cherry picked from commit b511a441) (cherry picked from commit cb5564ae) (cherry picked from commit 55f79382)