(cherry picked from commit 78d67cd70845d715e5d37ad493ae548a71d62be0)
(cherry picked from commit e510009e798b775e318e4a9580c4fab370e8e1ef)