(cherry picked from commit 0b1c2b5fe1b5c225d208936ecb1d3e307a535ee6) (cherry picked from commit 0db6b8c93cd964291707c3ba03bfc63bb65b710a) (cherry picked from commit f3b41bb1ad3e5cd23b2c6b75b3d89358213aa0d4)
(cherry picked from commit 0b1c2b5fe1b5c225d208936ecb1d3e307a535ee6) (cherry picked from commit 0db6b8c93cd964291707c3ba03bfc63bb65b710a) (cherry picked from commit f3b41bb1ad3e5cd23b2c6b75b3d89358213aa0d4)