Microsoft patches 21 security flaws