(cherry picked from commitd132f73497) (cherry picked from commitd35f62434a) (cherry picked from commit941946cf14) (cherry picked from commitec55b0136a)
(cherry picked from commitd132f73497) (cherry picked from commitd35f62434a) (cherry picked from commit941946cf14) (cherry picked from commitec55b0136a)