(cherry picked from commita4e76a630e) (cherry picked from commita71b8efb04) (cherry picked from commit ea401c7295f09ec303d80202a0533dd7a94fcd3b)
(cherry picked from commita4e76a630e) (cherry picked from commita71b8efb04) (cherry picked from commit ea401c7295f09ec303d80202a0533dd7a94fcd3b)