(cherry picked from commit 835ccef59868fd1096ab6d03aee05547575ab14a)
(cherry picked from commit c72e16b576835b7748e20ab3e5cce5e1f505a65f)