code: func (it *IPTracker) PredictFullConeNAT() bool {
  	now := it.clock.Now()
  	it.gcContact(now)
  	it.gcStatements(now)
  	for host, st := range it.statements {
  		if c, ok := it.contact[host]; !ok || c > st.time {
  			return true
  		}
  	}
  	return false
  }
docs: // PredictFullConeNAT checks whether the local host is behind full cone NAT. It predicts by
  // checking whether any statement has been received from a node we didn't contact before
  // the statement was made.