Automatic Software Repair: A Survey