sync version 1.7 from hg
sync version 1.7 from hg
sync version 1.7 from hg