@Override
	public void autoMerge(int progressMinimum, int progressMaximum, TaskMonitor monitor)
			throws ProgramConflictException, MemoryAccessException, CancelledException {

		initializeAutoMerge("Auto-merging Symbols and determining conflicts.", progressMinimum,
			progressMaximum, monitor);

		// The ExternalFunctionMerger has external symbols that have been mapped so add them
		// to what the SymbolMerger already may have from calls to its resolve methods.
		if (mergeManager != null) {
			// Get the symbols that have already been resolved by the ExternalFunctionMerger.
			loadSymbolMapInfo(MergeConstants.RESOLVED_LATEST_SYMBOLS, latestHash);
			loadSymbolMapInfo(MergeConstants.RESOLVED_MY_SYMBOLS, myHash);
			loadSymbolMapInfo(MergeConstants.RESOLVED_ORIGINAL_SYMBOLS, originalHash);
		}

		if (currentMonitor != monitor) {
			currentMonitor = monitor;
		}
		monitor.checkCancelled();

		setupSymbolChanges(monitor); // Creates ID arrays used by processing methods.

		totalChanges =
			myRemoveIDs.length + myModifiedIDs.length + myAddIDs.length + myAnchorChangeIDs.length +
				mySetPrimary.getNumAddresses() + removeEntryPts.getNumAddresses() +
				addEntryPts.getNumAddresses() + deferredRemoveIDs.size();

		getEntryPtChanges(monitor);
		processRemoves(monitor);
		processModifies(monitor);
		processAdds(monitor);
		processAnchorChanges(monitor);
		processPrimaryChanges(monitor);
		updateEntryPtChanges(monitor);
		processDeferredRemoves(monitor);

		updateProgress(100, "Done auto-merging Symbols and determining conflicts.");
		cleanupIdArrays(); // Removes ID arrays used by processing methods.

		monitor.setMessage("Auto-merging Symbols completed.");
		monitor.setProgress(0);
	}
Determine the type of changes to the symbols in the LATEST and MY (CheckedOut) program.
Changes can be symbol removed, added, changed, renamed, and set to primary.
@param monitor task monitor for displaying progress to the user
@throws CancelledException if the user cancels the merge.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/SymbolMerger.java