npn.cpp