(cherry picked from commit 06d98bdc) (cherry picked from commit 8758580e) (cherry picked from commit 1c12ac48) (cherry picked from commit b80ea9e3)