Chapter 7. Cracking the Perimeter with Python