(cherry picked from commit 3e603e1da45be5aa06c24d943a90e8d4f4214f35)
(cherry picked from commit 402f1a74b41e6d3f0cec75bdfa577d9421a572fe)