(cherry picked from commit 42bbe3794e4a8edef020e08111dbd7f1058938e2) (cherry picked from commit a3496b7e01d2c7a928170b94ce0b763e63e64e98)
(cherry picked from commit 42bbe3794e4a8edef020e08111dbd7f1058938e2) (cherry picked from commit a3496b7e01d2c7a928170b94ce0b763e63e64e98)