(cherry picked from commit 47c2e7425633ec3e74942f55eafd424d52aa9594)
(cherry picked from commit 5a91eaa5dccad031fd3313be0bc054ca0dc42eba)