(cherry picked from commit 045439676ee03c51d377d318624d46ff84ae07d8)
(cherry picked from commit e34770d7e5399195b8f762e545eddab8a3c2dd4f)