(cherry picked from commit 02931fe4)
(cherry picked from commit 2b4ae817)
(cherry picked from commit eaaf9330)