How to Reverse Engineer a Non-Stated Programmable Logic Device Using Stone Knives and Bear Skins