(cherry picked from commit e7f647bf) (cherry picked from commit 3b3ed902) (cherry picked from commit ca6481d1) (cherry picked from commit 501a1d6a)