• data bytes32[3] is stored in storage level 3-4-5.
  • require(_key == bytes16(data[2])); here data[2] belongs to storage 5.
  • Casting to 16 bytes takes first 16 bytes.
  • contract.unlock("0x9822c3f80a13d702dc3c15ebce5ac0c0")
  • https://medium.com/@dariusdev/how-to-read-ethereum-contract-storage-44252c8af925