(cherry picked from commit bd5e207432c54cc75fd8c040e232241678987e53) (cherry picked from commit e06c291245902a6014770134443140eb78048240)
(cherry picked from commit bd5e207432c54cc75fd8c040e232241678987e53) (cherry picked from commit e06c291245902a6014770134443140eb78048240)