@NonNull
    public Map<String, Pair<String, String>> getVariableDifferencesFromUserNotes() {
        final Map<String, String> noteVars = new CacheArtefactParser(this, "").parse(getAllUserNotes()).getVariables();
        final Map<String, String> cacheVars = getVariables().toMap();
        final Map<String, Pair<String, String>> result = CommonUtils.compare(noteVars, cacheVars);
        final Iterator<Map.Entry<String, Pair<String, String>>> it = result.entrySet().iterator();
        while (it.hasNext()) {
            final Map.Entry<String, Pair<String, String>> entry = it.next();
            if (StringUtils.isBlank(entry.getValue().first)) {
                it.remove();
            }
        }
        return result;
    }
Returns a map of variables which differ from list and parsing user notes
main/src/main/java/cgeo/geocaching/models/Geocache.java