(cherry picked from commit dd47b252) (cherry picked from commit 122945f3) (cherry picked from commit 7d250c48) (cherry picked from commit 436872f9)