@Override
	public void mergeConflicts(ListingMergePanel listingPanel, Address addr,
			int chosenConflictOption, TaskMonitor monitor) throws CancelledException,
			MemoryAccessException {
		if (!hasConflict(addr)) {
			return;
		}
		monitor.setMessage("Resolving Equate conflicts.");
		boolean askUser = chosenConflictOption == ASK_USER;

		// At address get the equate conflict ArrayList.
		ArrayList<EquateConflict> list = conflicts.get(addr);
		if (list != null) {
			int len = list.size();
			// merge each conflict at this address.
			for (int i = 0; i < len; i++) {
				EquateConflict equateConflict = list.get(i);
				// If we have a equate choice then a "Use For All" has already occurred.
				if (equateChoice != ASK_USER) {
					merge(equateConflict.address, equateConflict.opIndex, equateConflict.scalar,
						equateChoice);
				}
				else {
					if (askUser && mergeManager != null) {
						setupConflictPanel(listingPanel, equateConflict);
						monitor.checkCancelled();
					}
					else {
						merge(equateConflict.address, equateConflict.opIndex,
							equateConflict.scalar, chosenConflictOption);
					}
				}
			}
		}
	}
Merges all the equates for the address set. It merges into the result version from the
version indicated by the conflict option.
@param addressSet the address set
@param chosenConflictOption conflict option indicating whether to keep the latest, my, or original version.
@param monitor task monitor providing user with status or allowing merge to be canceled.
@throws CancelledException
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/EquateMerger.java