function $AdfSafariMobileAgent$$($version$$47$$, $domWindow$$52$$) {
  this.Init($version$$47$$, $domWindow$$52$$)
}
$goog$exportSymbol$$("AdfSafariMobileAgent", $AdfSafariMobileAgent$$);
$AdfObject$$.$createSubclass$($AdfSafariMobileAgent$$, $AdfSafariAgent$$);
$AdfSafariMobileAgent$$.prototype.Init = function $$AdfSafariMobileAgent$$$$Init$($version$$48$$, $domWindow$$53$$) {
  $AdfSafariMobileAgent$$.$superclass$.Init.call(this, $version$$48$$, $domWindow$$53$$);
  this.$_isWithinTouchEventsSequence$ = $JSCompiler_alias_TRUE$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.Init", {Init:$AdfSafariMobileAgent$$.prototype.Init});
$AdfSafariMobileAgent$$.prototype.$GetTouchCapability$ = function $$AdfSafariMobileAgent$$$$$GetTouchCapability$$() {
  return this.$getOS$() != $AdfAgent$$.$ANDROID_OS$ ? $AdfAgent$$.$CAP_TOUCH_SCREEN_MULTIPLE$ : $AdfSafariMobileAgent$$.$superclass$.$GetTouchCapability$.call(this)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.GetTouchCapability", {$GetTouchCapability$:$AdfSafariMobileAgent$$.prototype.$GetTouchCapability$});
$AdfSafariMobileAgent$$.prototype.$createTouchMoveManager$ = function $$AdfSafariMobileAgent$$$$$createTouchMoveManager$$($element$$134$$, $handlerCallback$$4$$, $touchCount$$4$$) {
  return new $AdfSafariTouchMoveManager$$($element$$134$$, $handlerCallback$$4$$, $touchCount$$4$$)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.createTouchMoveManager", {$createTouchMoveManager$:$AdfSafariMobileAgent$$.prototype.$createTouchMoveManager$});
$AdfSafariMobileAgent$$.prototype.$getBrowserViewportScrollTop$ = function $$AdfSafariMobileAgent$$$$$getBrowserViewportScrollTop$$() {
  return this.$getDomWindow$().pageYOffset
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.getBrowserViewportScrollTop", {$getBrowserViewportScrollTop$:$AdfSafariMobileAgent$$.prototype.$getBrowserViewportScrollTop$});
$AdfSafariMobileAgent$$.prototype.$getBrowserViewportScrollLeft$ = function $$AdfSafariMobileAgent$$$$$getBrowserViewportScrollLeft$$() {
  return this.$getDomWindow$().pageXOffset
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.getBrowserViewportScrollLeft", {$getBrowserViewportScrollLeft$:$AdfSafariMobileAgent$$.prototype.$getBrowserViewportScrollLeft$});
$AdfSafariMobileAgent$$.prototype.$isInlineDialogRepositioningOnScroll$ = $JSCompiler_returnArg$$($JSCompiler_alias_FALSE$$);
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.isInlineDialogRepositioningOnScroll", {$isInlineDialogRepositioningOnScroll$:$AdfSafariMobileAgent$$.prototype.$isInlineDialogRepositioningOnScroll$});
$AdfSafariMobileAgent$$.prototype.$isSelectionToggle$ = $JSCompiler_returnArg$$($JSCompiler_alias_TRUE$$);
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.isSelectionToggle", {$isSelectionToggle$:$AdfSafariMobileAgent$$.prototype.$isSelectionToggle$});
$AdfSafariMobileAgent$$.prototype.$getMousePosition$ = function $$AdfSafariMobileAgent$$$$$getMousePosition$$($evt$$45_touch$$) {
  if(-1 < $AdfCollections$$.indexOf($AdfAgent$$.$_REDISTRIBUTE_TOUCH_EVENTS$, $evt$$45_touch$$.type)) {
    $evt$$45_touch$$ = $AdfComponentTouchEvent$$.$__getFirstTouch$($evt$$45_touch$$);
    var $scrolltop$$ = this.$getBrowserViewportScrollTop$(), $scrollleft$$ = this.$getBrowserViewportScrollLeft$();
    return{x:$evt$$45_touch$$.clientX + $scrollleft$$, y:$evt$$45_touch$$.clientY + $scrolltop$$}
  }
  return $AdfSafariMobileAgent$$.$superclass$.$getMousePosition$.call(this, $evt$$45_touch$$)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.getMousePosition", {$getMousePosition$:$AdfSafariMobileAgent$$.prototype.$getMousePosition$});
$AdfSafariMobileAgent$$.prototype.$getComponentEvent$ = function $$AdfSafariMobileAgent$$$$$getComponentEvent$$($component$$209$$, $nativeEvent$$21$$, $prevComponent$$9$$) {
  var $type$$102$$ = $AdfSafariMobileAgent$$.$superclass$.$mapNativeToComponentEventType$.call(this, $nativeEvent$$21$$.type);
  if($type$$102$$) {
    switch($type$$102$$) {
      case $AdfComponentTouchEvent$$.$TOUCH_START_EVENT_TYPE$:
        this.$_isWithinTouchEventsSequence$ = $JSCompiler_alias_TRUE$$
    }
    return new $AdfComponentTouchEvent$$($component$$209$$, $type$$102$$, $nativeEvent$$21$$)
  }
  return this.$_isWithinTouchEventsSequence$ ? $AdfSafariMobileAgent$$.$superclass$.$getComponentEvent$.call(this, $component$$209$$, $nativeEvent$$21$$, $prevComponent$$9$$) : $JSCompiler_alias_NULL$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.getComponentEvent", {$getComponentEvent$:$AdfSafariMobileAgent$$.prototype.$getComponentEvent$});
$AdfSafariMobileAgent$$.prototype.preventDefault = function $$AdfSafariMobileAgent$$$$preventDefault$($evt$$46_nativeType$$1$$) {
  $AdfSafariMobileAgent$$.$superclass$.preventDefault.call(this, $evt$$46_nativeType$$1$$);
  $evt$$46_nativeType$$1$$ = $evt$$46_nativeType$$1$$.type;
  if("touchstart" == $evt$$46_nativeType$$1$$ || "touchend" == $evt$$46_nativeType$$1$$) {
    this.$_isWithinTouchEventsSequence$ = $JSCompiler_alias_FALSE$$
  }
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.preventDefault", {preventDefault:$AdfSafariMobileAgent$$.prototype.preventDefault});
$AdfSafariMobileAgent$$.prototype.$getEventTarget$ = function $$AdfSafariMobileAgent$$$$$getEventTarget$$($event$$71$$) {
  var $result$$10$$ = $JSCompiler_alias_NULL$$, $touch$$1_type$$103$$ = $event$$71$$.type;
  if($event$$71$$.$_afrClonedEvent$) {
    $result$$10$$ = $AdfSafariMobileAgent$$.$superclass$.$getEventTarget$.call(this, $event$$71$$)
  }else {
    if(-1 < $AdfCollections$$.indexOf($AdfAgent$$.$_REDISTRIBUTE_TOUCH_EVENTS$, $touch$$1_type$$103$$) && ($touch$$1_type$$103$$ = $AdfComponentTouchEvent$$.$__getFirstTouch$($event$$71$$))) {
      $result$$10$$ = $touch$$1_type$$103$$.target
    }
  }
  $result$$10$$ || ($result$$10$$ = $AdfSafariMobileAgent$$.$superclass$.$getEventTarget$.call(this, $event$$71$$));
  return $result$$10$$ != $JSCompiler_alias_NULL$$ ? $AdfDomUtils$$.$getElement$($result$$10$$) : $JSCompiler_alias_NULL$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.getEventTarget", {$getEventTarget$:$AdfSafariMobileAgent$$.prototype.$getEventTarget$});
$AdfSafariMobileAgent$$.prototype.$isDragPrepEvent$ = function $$AdfSafariMobileAgent$$$$$isDragPrepEvent$$($componentEvent$$9$$) {
  return $componentEvent$$9$$.getType() == $AdfComponentTouchEvent$$.$TOUCH_START_EVENT_TYPE$ && 1 == $componentEvent$$9$$.$getTouchCount$()
};
$goog$exportSymbol$$("AdfSafariMobileAgent.prototype.isDragPrepEvent", $AdfSafariMobileAgent$$.prototype.$isDragPrepEvent$);
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.isDragPrepEvent", {$isDragPrepEvent$:$AdfSafariMobileAgent$$.prototype.$isDragPrepEvent$});
$AdfSafariMobileAgent$$.prototype.$createContextMenuEventGenerator$ = function $$AdfSafariMobileAgent$$$$$createContextMenuEventGenerator$$() {
  return new $AdfSafariTouchContextMenuManager$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.createContextMenuEventGenerator", {$createContextMenuEventGenerator$:$AdfSafariMobileAgent$$.prototype.$createContextMenuEventGenerator$});
$AdfSafariMobileAgent$$.prototype.$createDraggableNode$ = function $$AdfSafariMobileAgent$$$$$createDraggableNode$$($domNode$$15$$) {
  var $dragContent$$1$$ = $domNode$$15$$.ownerDocument.createElement("DIV");
  $AdfDomUtils$$.$addCSSClassName$($dragContent$$1$$, $AdfAgent$$.$DRAG_GHOST_STYLECLASS$);
  this.$CopyDragSize$($domNode$$15$$, $dragContent$$1$$);
  return $dragContent$$1$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.createDraggableNode", {$createDraggableNode$:$AdfSafariMobileAgent$$.prototype.$createDraggableNode$});
$AdfSafariMobileAgent$$.prototype.$isLeftButton$ = function $$AdfSafariMobileAgent$$$$$isLeftButton$$($evt$$47$$) {
  return $AdfSafariMobileAgent$$.$superclass$.$isLeftButton$.call(this, $evt$$47$$) || $AdfSafariMobileAgent$$.$_NATIVE_TO_COMPONENT_MAPPINGS$[$evt$$47$$.type] != $JSCompiler_alias_NULL$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.isLeftButton", {$isLeftButton$:$AdfSafariMobileAgent$$.prototype.$isLeftButton$});
$AdfSafariMobileAgent$$.prototype.$showTooltip$ = function $$AdfSafariMobileAgent$$$$$showTooltip$$($componentEvent$$10$$) {
  var $page$$8_type$$104$$ = $componentEvent$$10$$.getType();
  if($page$$8_type$$104$$ == $AdfComponentTouchEvent$$.$TOUCH_START_EVENT_TYPE$ && !$componentEvent$$10$$.$isCanceled$() && 1 == $componentEvent$$10$$.$getTouchCount$()) {
    $AdfSafariMobileAgent$$.$_hideTooltip$()
  }else {
    if($page$$8_type$$104$$ == $AdfComponentEvent$$.$CONTEXT_MENU_EVENT_TYPE$) {
      var $page$$8_type$$104$$ = $AdfPage$$.$PAGE$, $key$$30$$ = $AdfSafariMobileAgent$$.$_TOOLTIP_PROPERTY_KEY$, $state$$6$$ = $page$$8_type$$104$$.$getPageProperty$($key$$30$$);
      $state$$6$$ || ($state$$6$$ = {}, $state$$6$$.popup = new $AdfDhtmlTooltip$$, $page$$8_type$$104$$.$setPageProperty$($key$$30$$, $state$$6$$));
      $state$$6$$.timer = $page$$8_type$$104$$.$scheduleTimer$($page$$8_type$$104$$, $AdfSafariMobileAgent$$.$_showTooltip$, $componentEvent$$10$$, 1)
    }
  }
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.showTooltip", {$showTooltip$:$AdfSafariMobileAgent$$.prototype.$showTooltip$});
$AdfSafariMobileAgent$$.prototype.$isDefaultPrevented$ = function $$AdfSafariMobileAgent$$$$$isDefaultPrevented$$($evt$$48$$) {
  return!this.$_isWithinTouchEventsSequence$ || $AdfSafariMobileAgent$$.$superclass$.$isDefaultPrevented$.call(this, $evt$$48$$)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.isDefaultPrevented", {$isDefaultPrevented$:$AdfSafariMobileAgent$$.prototype.$isDefaultPrevented$});
$AdfSafariMobileAgent$$.prototype.$disableSelectionToggleOnEditableCell$ = $JSCompiler_returnArg$$($JSCompiler_alias_TRUE$$);
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.disableSelectionToggleOnEditableCell", {$disableSelectionToggleOnEditableCell$:$AdfSafariMobileAgent$$.prototype.$disableSelectionToggleOnEditableCell$});
$AdfSafariMobileAgent$$.prototype.$addBubbleEventListener$ = function $$AdfSafariMobileAgent$$$$$addBubbleEventListener$$($nodeOrWindow$$4$$, $eventType$$30$$, $listener$$74$$) {
  $nodeOrWindow$$4$$ === $AdfPage$$.$PAGE$.$getDomDocument$() && $JSCompiler_StaticMethods__saveEventListener$$(this, $eventType$$30$$, $listener$$74$$, $JSCompiler_alias_FALSE$$);
  $AdfSafariMobileAgent$$.$superclass$.$addBubbleEventListener$.call(this, $nodeOrWindow$$4$$, $eventType$$30$$, $listener$$74$$)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.addBubbleEventListener", {$addBubbleEventListener$:$AdfSafariMobileAgent$$.prototype.$addBubbleEventListener$});
$AdfSafariMobileAgent$$.prototype.$addEventCaptures$ = function $$AdfSafariMobileAgent$$$$$addEventCaptures$$($node$$51$$, $listener$$75$$) {
  if($node$$51$$ === $AdfPage$$.$PAGE$.$getDomDocument$()) {
    for(var $i$$82$$ = 0;$i$$82$$ < $AdfAgent$$.$_REDISTRIBUTE_TOUCH_EVENTS$.length;$i$$82$$++) {
      $JSCompiler_StaticMethods__saveEventListener$$(this, $AdfAgent$$.$_REDISTRIBUTE_TOUCH_EVENTS$[$i$$82$$], $listener$$75$$, $JSCompiler_alias_TRUE$$)
    }
  }
  $AdfSafariMobileAgent$$.$superclass$.$addEventCaptures$.call(this, $node$$51$$, $listener$$75$$)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.addEventCaptures", {$addEventCaptures$:$AdfSafariMobileAgent$$.prototype.$addEventCaptures$});
$AdfSafariMobileAgent$$.prototype.$addEventBubbles$ = function $$AdfSafariMobileAgent$$$$$addEventBubbles$$($node$$52$$, $listener$$76$$) {
  if($node$$52$$ === $AdfPage$$.$PAGE$.$getDomDocument$()) {
    for(var $i$$83$$ = 0;$i$$83$$ < $AdfAgent$$.$_REDISTRIBUTE_TOUCH_EVENTS$.length;$i$$83$$++) {
      $JSCompiler_StaticMethods__saveEventListener$$(this, $AdfAgent$$.$_REDISTRIBUTE_TOUCH_EVENTS$[$i$$83$$], $listener$$76$$, $JSCompiler_alias_FALSE$$)
    }
  }
  $AdfSafariMobileAgent$$.$superclass$.$addEventBubbles$.call(this, $node$$52$$, $listener$$76$$)
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.addEventBubbles", {$addEventBubbles$:$AdfSafariMobileAgent$$.prototype.$addEventBubbles$});
$AdfSafariMobileAgent$$.prototype.$cloneEvent$ = function $$AdfSafariMobileAgent$$$$$cloneEvent$$($event$$72$$, $newTarget$$11$$) {
  var $newEvent$$11$$ = $AdfSafariAgent$$.$superclass$.$cloneEvent$.call(this, $event$$72$$, $newTarget$$11$$);
  $newEvent$$11$$.$_afrClonedEvent$ = $JSCompiler_alias_TRUE$$;
  return $newEvent$$11$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.cloneEvent", {$cloneEvent$:$AdfSafariMobileAgent$$.prototype.$cloneEvent$});
$AdfSafariMobileAgent$$.prototype.$isTouchFirstDevice$ = $JSCompiler_returnArg$$($JSCompiler_alias_TRUE$$);
$AdfObject$$.$exportPrototypeSymbol$("AdfSafariMobileAgent.prototype.isTouchFirstDevice", {$isTouchFirstDevice$:$AdfSafariMobileAgent$$.prototype.$isTouchFirstDevice$});
$AdfSafariMobileAgent$$.prototype.$_getTouchEventListeners$ = $JSCompiler_get$$("$_touchEventListeners$");
function $JSCompiler_StaticMethods__saveEventListener$$($JSCompiler_StaticMethods__saveEventListener$self$$, $eventType$$31$$, $listener$$77$$, $capture$$2$$) {
  $JSCompiler_StaticMethods__saveEventListener$self$$.$_touchEventListeners$ || ($JSCompiler_StaticMethods__saveEventListener$self$$.$_touchEventListeners$ = []);
  for(var $i$$84$$ = 0;$i$$84$$ < $JSCompiler_StaticMethods__saveEventListener$self$$.$_touchEventListeners$.length;$i$$84$$++) {
    if($JSCompiler_StaticMethods__saveEventListener$self$$.$_touchEventListeners$[$i$$84$$].$eventType$ === $eventType$$31$$ && $JSCompiler_StaticMethods__saveEventListener$self$$.$_touchEventListeners$[$i$$84$$].$listener$ === $listener$$77$$ && $JSCompiler_StaticMethods__saveEventListener$self$$.$_touchEventListeners$[$i$$84$$].capture === $capture$$2$$) {
      return
    }
  }
  ("touchstart" == $eventType$$31$$ || "touchmove" == $eventType$$31$$ || "touchend" == $eventType$$31$$ || "touchcancel" == $eventType$$31$$) && $JSCompiler_StaticMethods__saveEventListener$self$$.$_touchEventListeners$.push({$eventType$:$eventType$$31$$, $listener$:$listener$$77$$, capture:$capture$$2$$})
}
$AdfSafariMobileAgent$$.$_showTooltip$ = function $$AdfSafariMobileAgent$$$$_showTooltip$$($componentEvent$$11_title$$7$$) {
  var $page$$9$$ = $AdfPage$$.$PAGE$, $state$$7$$ = $page$$9$$.$getPageProperty$($AdfSafariMobileAgent$$.$_TOOLTIP_PROPERTY_KEY$);
  if($state$$7$$) {
    var $tooltipPopup$$ = $state$$7$$.popup, $nativeTarget_pos$$6$$ = $componentEvent$$11_title$$7$$.$getNativeEventTarget$();
    if($componentEvent$$11_title$$7$$ = $AdfSafariMobileAgent$$.$_getTitle$($nativeTarget_pos$$6$$)) {
      var $positionManager$$ = $page$$9$$.$getPositionManager$(), $alignmentHint$$ = AdfRichPopup.$ALIGN_AFTER_START$, $height$$21$$ = $tooltipPopup$$.getHeight(), $width$$18$$ = $tooltipPopup$$.getWidth(), $nativeTarget_pos$$6$$ = $positionManager$$.$calculatePlacementPosition$($height$$21$$, $width$$18$$, $alignmentHint$$, $nativeTarget_pos$$6$$, $JSCompiler_alias_NULL$$);
      0 < $nativeTarget_pos$$6$$.y && 0 < $nativeTarget_pos$$6$$.x ? ($AdfAgent$$.$AGENT$.$setTextContent$($tooltipPopup$$.$getElement$(), $componentEvent$$11_title$$7$$), $tooltipPopup$$.show($nativeTarget_pos$$6$$.y, $nativeTarget_pos$$6$$.x), $state$$7$$.timer = $page$$9$$.$scheduleTimer$($page$$9$$, $AdfSafariMobileAgent$$.$_hideTooltip$, $JSCompiler_alias_NULL$$, $AdfSafariMobileAgent$$.$_TOOLTIP_HIDE_TIMEOUT$)) : ($state$$7$$.timer = $JSCompiler_alias_NULL$$, $AdfAgent$$.$AGENT$.$setTextContent$($tooltipPopup$$.$getElement$(), 
      ""))
    }else {
      $state$$7$$.timer = $JSCompiler_alias_NULL$$, $AdfAgent$$.$AGENT$.$setTextContent$($tooltipPopup$$.$getElement$(), "")
    }
  }
};
$AdfSafariMobileAgent$$.$_hideTooltip$ = function $$AdfSafariMobileAgent$$$$_hideTooltip$$() {
  var $page$$10$$ = $AdfPage$$.$PAGE$, $state$$8$$ = $page$$10$$.$getPageProperty$($AdfSafariMobileAgent$$.$_TOOLTIP_PROPERTY_KEY$);
  if($state$$8$$) {
    var $timer$$ = $state$$8$$.timer;
    $state$$8$$.timer = $JSCompiler_alias_NULL$$;
    $timer$$ && $page$$10$$.$cancelTimer$($timer$$);
    $state$$8$$.popup.$hide$()
  }
};
$AdfSafariMobileAgent$$.$_getTitle$ = function $$AdfSafariMobileAgent$$$$_getTitle$$($node$$53$$) {
  for(var $i$$85$$ = 0;$node$$53$$ != $JSCompiler_alias_NULL$$ && 20 > $i$$85$$++;) {
    if(1 == $node$$53$$.nodeType) {
      var $title$$8$$ = $node$$53$$.getAttribute("title");
      if($title$$8$$ && 0 < $title$$8$$.length) {
        return $title$$8$$
      }
    }
    $node$$53$$ = $node$$53$$.parentNode
  }
  return $JSCompiler_alias_NULL$$
};
$AdfSafariMobileAgent$$.$_TOOLTIP_HIDE_TIMEOUT$ = 3E3;
$AdfSafariMobileAgent$$.$_TOOLTIP_PROPERTY_KEY$ = "oracle$adfinternal$tooltip";
