(cherry picked from commit 61b2647815450a256e19422d07e6380ecb9d71c9)
(cherry picked from commit 58eb6ae8075ad4a2f644a0a41e75c145217a96f4)