(cherry picked from commit 50c1d95a) (cherry picked from commit 82e674f7) (cherry picked from commit 0e792483) (cherry picked from commit 123e68c3)