(cherry picked from commit c770df49b4c9d5ac5ddaa4ff2ec541e4bd1a8e56) (cherry picked from commit 2e509908eed4cf2e365ca1fd94aa2ff3d59193c1)
(cherry picked from commit c770df49b4c9d5ac5ddaa4ff2ec541e4bd1a8e56) (cherry picked from commit 2e509908eed4cf2e365ca1fd94aa2ff3d59193c1)