(cherry picked from commit 23e29a5074f01cbb781f7e76b0c17ad2b6797af0) (cherry picked from commit ce5437f0677966c15d2946bc7c068975aa6bfd83)