(cherry picked from commit bfadf11b36e9d97e03d6ed1e71829907c2301412) (cherry picked from commit c887bcd1f03244300a45ff70df9a9c9f2ad5a431)
(cherry picked from commit bfadf11b36e9d97e03d6ed1e71829907c2301412) (cherry picked from commit c887bcd1f03244300a45ff70df9a9c9f2ad5a431)