(cherry picked from commit be5a757096246d5c4ef73da9d233adda67bd3d69)
(cherry picked from commit da074771977fe3de8acea441b096291c96cf59d9)