(cherry picked from commit 9560ac7ac318a6aa99fa19a0003b51e10efa38f5)
(cherry picked from commit edf568e3d31dc3b5a31c3f435a3236deaadd746d)