(cherry picked from commit dd050420) (cherry picked from commit 4804ce14) (cherry picked from commit 4db76e17) (cherry picked from commit 6ab20e9f)