(cherry picked from commit 0f881bc4) (cherry picked from commit 28ea1d73) (cherry picked from commit b234d36f) (cherry picked from commit ae4e38bc) (cherry picked from commit d0f13284) (cherry picked from commit f783f5c4)