(cherry picked from commit 84e31c36d97d5639ed50e302e22bcd4fad7fa72e)
(cherry picked from commit e941d8331ef0c412c2d587eab1955d52df198b1a)