(cherry picked from commit 570be882154e73f8ad1de5b16b957bcb964697fd) (cherry picked from commit 508a15e09ac1b08a90837d371353cdf11cd9ee3c)