merge with latest from upstream/master.