(cherry picked from commit bc7aff7cec07bbc3fed63a00c8f1584c34670998) (cherry picked from commit 4f1f16f1a67dcb6db705a73bf7fcf3f0f9d7094c)
(cherry picked from commit bc7aff7cec07bbc3fed63a00c8f1584c34670998) (cherry picked from commit 4f1f16f1a67dcb6db705a73bf7fcf3f0f9d7094c)