merge upstream commits

merge upstream commits.