private void resolveRemoveVsChange(long originalSymbolID, int chosenConflictOption)
			throws DuplicateNameException, InvalidInputException, CircularDependencyException {
		Symbol latest = latestSymTab.getSymbol(originalSymbolID);
		Symbol my = mySymTab.getSymbol(originalSymbolID);
		long resultID;
		Symbol result = null;
		try {
			resultID = getResultIDFromOriginalID(originalSymbolID);
			if (resultID != -1) {
				result = resultSymTab.getSymbol(resultID);
			}
		}
		catch (NoValueException e) {
			// Leave the result = null to indicate nothing to do if a remove
		}
		boolean latestRemoved = (latest == null);
		boolean myRemoved = (my == null);
		if ((chosenConflictOption & KEEP_LATEST) != 0) {
			if (!latestRemoved) {
				// Changed in LATEST
				if (result == null) {
					Symbol s = createSymbol(resultPgm, latestPgm, latest);
					long newID = s.getID();
					originalHash.put(originalSymbolID, newID);
					latestHash.put(originalSymbolID, newID);
				}
				else {
					replaceSymbol(resultPgm, result, latestPgm, latest);
				}
			}
			else if (result != null) {
				removeSymbol(result, originalSymbolID);
			}
		}
		else if ((chosenConflictOption & KEEP_MY) != 0) {
			if (!myRemoved) {
				if (result == null) {
					Symbol s = createSymbol(resultPgm, myPgm, my);
					long newID = s.getID();
					originalHash.put(originalSymbolID, newID);
					myHash.put(originalSymbolID, newID);
				}
				else {
					replaceSymbol(resultPgm, result, myPgm, my);
				}
			}
			else if (result != null) {
				removeSymbol(result, originalSymbolID);
			}
		}
	}
Checks to see if there is a symbol in the otherProgram that conflicts
with the indicated symbol. A conflict can be one of these types:
1) a symbol other than label or function that has the same name and 
namespace as another non label or function.
2) a symbol at the same address with the same name and namespace.

@param program the program that contains the specified symbol
@param symbol the symbol (Can be original, latest, or my.)
@param otherProgram the program to be checked for a conflicting symbol
@param saveConflict if true this will also save the conflict for processing or in
some cases automatically process the conflict.
@return true if there is a symbol name conflict
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/SymbolMerger.java