(cherry picked from commit 405261dd10c2a8204a4041aa8d2d8b4878e6e1ec)
(cherry picked from commit 20908f684234d1793a17256f9cf668421140b8ac)