(cherry picked from commit e625813aa9f585718e9c7677fc441f1f3ad69c61)
(cherry picked from commit 708e87e17df2b6a03eca3cac026a51beed296b5b)