(cherry picked from commit 3411ecf28c01651a3747e67dd797885a10b532fe)
(cherry picked from commit 50f0e54b2a47fe2e857372f56293d1c1800ded2b)