(cherry picked from commit 3840e511567172a290886998037b17e2b88db9a5)
(cherry picked from commit 4422c12bf5ab8b5c2448893271e74666f3029c9a)