(cherry picked from commit 35ec2adc) (cherry picked from commit f52dd530) (cherry picked from commit 54ec6487)