Get a relatedTarget from the target's `data-clipboard-target` attribute
@private
778704
function(targetEl) {
    var relatedTargetId = targetEl && targetEl.getAttribute && targetEl.getAttribute("data-clipboard-target");
    return relatedTargetId ? _document.getElementById(relatedTargetId) : null;
  }
1060433
function(source, target, key) {
		var desc = Object.getOwnPropertyDescriptor(source, key);
		desc = this._accessor(target, key, desc);
		Object.defineProperty(target, key, desc);
		return target;
	}
741584
function (target) {
		var tab = this.resolveTab(target,'removeTab');
		var tabData = {
			index:   tab.tabIndex,
			caption: tab.content,
			tooltipMsg: tab.tooltipMsg,
			userId:  tab.userId,
			data:    tab.userData
		} ;
		var that = this ;
		if (tab) {
			tabData.next = function (err) {
				if (err) { throw new Error(err);   }
				else     { that.removeTab(target); }
			} ;
			this.doTabRemoveRequested( tabData ) ;
		}
	}
1352673
function(ev) {
                var t = ev.relatedTarget;
                if (!t) {
                    if (ev.type == "mouseout") {
                        t = ev.toElement;
                    } else if (ev.type == "mouseover") {
                        t = ev.fromElement;
                    }
                }

                return this.resolveTextNode(t);
            }
617290
function getClipboardContent(clipboardEvent) {
        var content = getDataTransferItems(clipboardEvent.clipboardData || editor.getDoc().dataTransfer);

        // Edge 15 has a broken HTML Clipboard API see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11877517/
        return Utils.isMsEdge() ? Tools.extend(content, { 'text/html': '' }) : content;
      }
486344
function(targetObj, distObj) {
            var result = false;

            snippet.forEach(targetObj, function(item, key) {
                result = (item === distObj[key]);

                return result;
            });

            return result;
        }
651682
function (e) {
    clipboardData.forEach(function (elem) {
      e.clipboardData.setData(elem.format, elem.data);
    });

    e.preventDefault();
    e.stopPropagation();
    e.stopImmediatePropagation();
    fakeElem.removeEventListener('copy', f);
  }
421000
function(type, target, relatedTarget) {
    var event, canBubble, cancelable;
    if('focusin' === type || 'focusout' === type) {
      canBubble = cancelable = true;
    } else if('blur' === type || 'focus' === type) {
      canBubble = cancelable = false;
    } else {
      throw Error('Unknow focus event type "' + type + '".');
    }
    try {
      // First try to use the constructor
      try {
        var event = new FocusEvent(type, {
          bubbles: canBubble,
          cancelable: cancelable,
          view: window,
          detail: 0,
          relatedTarget: relatedTarget
        });
      } catch(e) {
        // the standard interface is FocusEvent, but not always provided
        if('FocusEvent' in window) {
          event = document.createEvent("FocusEvent");
        } else {
          event = document.createEvent("Event");
        }
        // IE9+ provides a initFocusEvent method
        // http://msdn.microsoft.com/en-us/library/ie/ff974341(v=vs.85).aspx
        if('initFocusEvent' in event) {
          event.initFocusEvent(type, canBubble, cancelable, window, 0,
            relatedTarget);
        } else {
          event.initEvent(type, canBubble, cancelable);
          this.setEventProperty(event, 'relatedTarget', relatedTarget);
        }
        
      }
      return target.dispatchEvent(event);
    } catch(e) {
      // old IE fallback
      event = document.createEventObject();
      event.eventType = type;
      event.relatedTarget = relatedTarget;
      return target.fireEvent('on'+type, event)
    }
  }
1066410
function(f) {
        return function(e) {
            var child = e.relatedTarget;
            if (this === child || $$.isChildElement(this, child)) {
                return;
            }
            f.call(this, e);
        };
    }
1178979
function getActualTarget() {
    var scrollX = window.scrollX,
        scrollY = window.scrollY;

    // IE is stupid and doesn't support scrollX/Y
    if(scrollX === undefined){
        scrollX = d.body.scrollLeft;
        scrollY = d.body.scrollTop;
    }

    return d.elementFromPoint(this.pageX - window.scrollX, this.pageY - window.scrollY);
}
442544
function (pointer, event, eventTarget, curEventTarget, matches, matchElements) {
            var target = this.target;

            if (!this.prepared.name && this.mouse) {

                var action;

                // update pointer coords for defaultActionChecker to use
                this.setEventXY(this.curCoords, [pointer]);

                if (matches) {
                    action = this.validateSelector(pointer, event, matches, matchElements);
                }
                else if (target) {
                    action = validateAction(target.getAction(this.pointers[0], event, this, this.element), this.target);
                }

                if (target && target.options.styleCursor) {
                    if (action) {
                        target._doc.documentElement.style.cursor = getActionCursor(action);
                    }
                    else {
                        target._doc.documentElement.style.cursor = '';
                    }
                }
            }
            else if (this.prepared.name) {
                this.checkAndPreventDefault(event, target, this.element);
            }
        }
1029681
function (clipRect) {
		var wrapper = this,
			clipMembers,
			cssRet;

		if (clipRect) {
			clipMembers = clipRect.members;
			erase(clipMembers, wrapper); // Ensure unique list of elements (#1258)
			clipMembers.push(wrapper);
			wrapper.destroyClip = function () {
				erase(clipMembers, wrapper);
			};
			cssRet = clipRect.getCSS(wrapper);

		} else {
			if (wrapper.destroyClip) {
				wrapper.destroyClip();
			}
			cssRet = { clip: docMode8 ? 'inherit' : 'rect(auto)' }; // #1214
		}

		return wrapper.css(cssRet);

	}
1073732
function(element) {
    var links = element.querySelectorAll('*[href]');
    for (var i = 0; i < links.length; i++) {
      links[i].setAttribute('target', '_blank');
    }
    return element;
  }
914102
async function getWidgetsFromXml(target) {
  const $ = await parseFile(target)
  const widgets = []
  let widget

  $('node').each((i, elem) => {
    const node = $(elem)
    widget = new Widget()
    widget.text = node.attr('text')
    widget.resourceId = node.attr('resource-id')
    widget.className = node.attr('class')
    widget.packageName = node.attr('package')
    widget.contentDesc = node.attr('content-desc')
    widget.checkable = node.attr('checkable')
    widget.checked = node.attr('checked')
    widget.clickable = node.attr('clickable')
    widget.enabled = node.attr('enabled')
    widget.focusable = node.attr('focusable')
    widget.focused = node.attr('focused')
    widget.scrollable = node.attr('scrollable')
    widget.longClickable = node.attr('long-clickable')
    widget.password = node.attr('password')
    widget.selected = node.attr('selected')
    widget.bounds = node.attr('bounds')
    widgets.push(widget)
  })

  return widgets
}
837566
function getElementFromObject(attachTo) {
  const op = attachTo.element;

  if (op instanceof HTMLElement) {
    return op;
  }

  return document.querySelector(op);
}
1301152
function (eventName, delegateId, wrapTarget) {
            if (ariaCoreBrowser.isOldIE) {
                this.getFallbackMarkup = function (eventName, delegateId, wrapTarget) {
                    wrapTarget = wrapTarget ? "true" : "false";
                    return " on" + eventName + "=\"aria.utils.Delegate.directCall(event, '" + delegateId + "', "
                            + wrapTarget + ", this)\"";
                };
            } else {
                this.getFallbackMarkup = function (eventName, delegateId, wrapTarget) {
                    var calledFunction = "directCall";
                    wrapTarget = wrapTarget ? "true" : "false";

                    if ('mouseleave' == eventName || 'mouseenter' == eventName) {
                        // Mouseleave/enter exists only in IE, we can emulate them in all other browsers
                        eventName = 'mouseleave' == eventName ? 'mouseout' : 'mouseover';
                        calledFunction = "mouseMovement";
                    }

                    return " on" + eventName + "=\"aria.utils.Delegate." + calledFunction + "(event, '" + delegateId
                            + "', " + wrapTarget + ", this)\"";
                };
            }
            return this.getFallbackMarkup(eventName, delegateId, wrapTarget);
        }
830572
function (relatedTarget) {

            if (this.callbackID) {
                ariaCoreTimer.cancelCallback(this.callbackID);
            }
            if (this._popup != null) {
                if (!ariaUtilsDom.isAncestor(relatedTarget, this._popup.domElement)) {

                    if (this._popup) {
                        this._popup.closeOnMouseOut();
                    }
                }
            }
            this.callbackID = null;

        }