(cherry picked from commit bc96a25e4401884fe685d0b1c583908825eb07e8)
(cherry picked from commit a5b4f0d904e134dfeff61763b7cc65be3cb55e07)