DeFi Security Part 3: Smart Contract Vulnerabilities