(cherry picked from commit d7966659a6d7f3480297d969f3afef389a2c2c54)
(cherry picked from commit c2e5d7cd96d619d0dbb2453b4bf70c286d5cd3e3)