<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[175124] branches/safari-600.3-branch/Source/WebKit2</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/175124">175124</a></dd>
<dt>Author</dt> <dd>matthew_hanson@apple.com</dd>
<dt>Date</dt> <dd>2014-10-23 09:19:53 -0700 (Thu, 23 Oct 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/175075">r175075</a>. <rdar://problem/18717767></pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#branchessafari6003branchSourceWebKit2ChangeLog">branches/safari-600.3-branch/Source/WebKit2/ChangeLog</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2SharedAPIcWKActionMenuItemTypesh">branches/safari-600.3-branch/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessAPImacWKViewmm">branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessAPImacWKViewInternalh">branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessPageClienth">branches/safari-600.3-branch/Source/WebKit2/UIProcess/PageClient.h</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessWebPageProxycpp">branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessWebPageProxyh">branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessWebPageProxymessagesin">branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessiosPageClientImplIOSh">branches/safari-600.3-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessiosPageClientImplIOSmm">branches/safari-600.3-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessmacPageClientImplh">branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.h</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2UIProcessmacPageClientImplmm">branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.mm</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2WebKit2xcodeprojprojectpbxproj">branches/safari-600.3-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2WebProcessWebPageWebPagecpp">branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2WebProcessWebPageWebPageh">branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.h</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2WebProcessWebPageWebPagemessagesin">branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#branchessafari6003branchSourceWebKit2ResourcesAddImageToPhotosTemplatepdf">branches/safari-600.3-branch/Source/WebKit2/Resources/AddImageToPhotosTemplate.pdf</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2ResourcesCopyImageTemplatepdf">branches/safari-600.3-branch/Source/WebKit2/Resources/CopyImageTemplate.pdf</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2ResourcesSaveImageToDownloadsTemplatepdf">branches/safari-600.3-branch/Source/WebKit2/Resources/SaveImageToDownloadsTemplate.pdf</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2ResourcesShareImageTemplatepdf">branches/safari-600.3-branch/Source/WebKit2/Resources/ShareImageTemplate.pdf</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2SharedmacActionMenuHitTestResultcpp">branches/safari-600.3-branch/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp</a></li>
<li><a href="#branchessafari6003branchSourceWebKit2SharedmacActionMenuHitTestResulth">branches/safari-600.3-branch/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="branchessafari6003branchSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/ChangeLog (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/ChangeLog        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/ChangeLog        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -1,5 +1,101 @@
</span><span class="cx"> 2014-10-23 Matthew Hanson <matthew_hanson@apple.com>
</span><span class="cx">
</span><ins>+ Merge r175075. <rdar://problem/18717767>
+
+ 2014-10-22 Tim Horton <timothy_horton@apple.com>
+
+ Add action menu support for images
+ https://bugs.webkit.org/show_bug.cgi?id=137987
+ <rdar://problem/18717767>
+
+ Reviewed by Anders Carlsson, Sam Weinig, and Beth Dakin.
+
+ * Resources/AddImageToPhotos.pdf: Added.
+ * Resources/CopyImage.pdf: Added.
+ * Resources/SaveImageToDownloads.pdf: Added.
+ * Resources/ShareImage.pdf: Added.
+ Add some temporary artwork.
+
+ * Scripts/webkit/messages.py:
+ (struct_or_class):
+ ActionMenuHitTestResult is a struct.
+
+ * Shared/API/c/WKActionMenuItemTypes.h:
+ Add new items for image menus.
+
+ * Shared/mac/ActionMenuHitTestResult.cpp:
+ (WebKit::ActionMenuHitTestResult::encode):
+ (WebKit::ActionMenuHitTestResult::decode):
+ For now, pass the hit image data across to the UI process as a ShareableBitmap.
+
+ * Shared/mac/ActionMenuHitTestResult.h:
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView _createActionMenuItemForTag:]):
+ Refactor action menu item creation into a single function, so that
+ callers can share code and be much simpler.
+
+ (webKitBundleImageNamed):
+ Add a helper to acquire an image from the WebKit2 bundle.
+
+ (-[WKView _copyImage:]):
+ (-[WKView _saveImageToDownloads:]):
+ (temporaryPhotosDirectoryPath):
+ (pathToPhotoOnDisk):
+ (-[WKView _addImageToPhotos:]):
+ Add rudimentary implementations of image actions.
+
+ (-[WKView _defaultMenuItemsForImage]):
+ Support the image menu, plus a submenu acquired from NSSharingServicePicker
+ for the Share menu.
+
+ (-[WKView _defaultMenuItems]):
+ Call _defaultMenuItemsForImage if needed.
+
+ (-[WKView _updateActionMenu]):
+ Refactor _updateActionMenu out of prepareForMenu:withEvent:.
+
+ (-[WKView prepareForMenu:withEvent:]):
+ Ask the Web process to re-hit-test under the location that the menu
+ will appear. Mark the menu as pending.
+
+ (-[WKView _didPerformActionMenuHitTest:]):
+ When we get the hit test reply, record the result for future use.
+
+ (-[WKView willOpenMenu:withEvent:]):
+ If we got a hit test reply, rebuild the menu immediately. If not, wait
+ up to 500ms for the reply to come in. This eventually needs to be
+ cancellable if the menu is rejected in the interim.
+
+ (-[WKView didCloseMenu:withEvent:]):
+ Clear all state when the menu closes.
+
+ * UIProcess/API/mac/WKViewInternal.h:
+ * UIProcess/PageClient.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::performActionMenuHitTestAtLocation):
+ (WebKit::WebPageProxy::didPerformActionMenuHitTest):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/mac/PageClientImpl.h:
+ * UIProcess/mac/PageClientImpl.mm:
+ (WebKit::PageClientImpl::didPerformActionMenuHitTest):
+ * UIProcess/ios/PageClientImplIOS.h:
+ * UIProcess/ios/PageClientImplIOS.mm:
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+ Plumb didPerformActionMenuHitTest back from WebPageProxy to WKView.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::performActionMenuHitTestAtLocation):
+ Hit test at the given location, recording the image data if there is any,
+ and return the result to the UI process.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ Add the PDFs.
+
+2014-10-23 Matthew Hanson <matthew_hanson@apple.com>
+
</ins><span class="cx"> Merge r175016. <rdar://problem/18731860>
</span><span class="cx">
</span><span class="cx"> 2014-10-21 Tim Horton <timothy_horton@apple.com>
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2ResourcesAddImageToPhotosTemplatepdffromrev175075trunkSourceWebKit2ResourcesAddImageToPhotosTemplatepdf"></a>
<div class="copfile"><h4>Copied: branches/safari-600.3-branch/Source/WebKit2/Resources/AddImageToPhotosTemplate.pdf (from rev 175075, trunk/Source/WebKit2/Resources/AddImageToPhotosTemplate.pdf) (0 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/Resources/AddImageToPhotosTemplate.pdf         (rev 0)
+++ branches/safari-600.3-branch/Source/WebKit2/Resources/AddImageToPhotosTemplate.pdf        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -0,0 +1,201 @@
</span><ins>+%PDF-1.5+%\xE2\xE3\xCF\xD3
+1 0 obj+<</Metadata 2 0 R/Pages 3 0 R/Type/Catalog>>+endobj+2 0 obj+<</Length 16948/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
+ xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <xmp:CreatorTool>Adobe Illustrator CC (Macintosh)</xmp:CreatorTool>
+ <xmp:CreateDate>2014-10-21T13:16:05-07:00</xmp:CreateDate>
+ <xmp:MetadataDate>2014-10-21T13:16:05-07:00</xmp:MetadataDate>
+ <xmp:ModifyDate>2014-10-21T13:16:05-07:00</xmp:ModifyDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>244</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA9AEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucn
Z6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq/Ov8/v/JyebP8AmOb/AIiuKvP8VfpV+U//AJKzyb/2w9N/6g48VZVirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir86/z+/wDJyebP&#xA;+Y5v+Irirz/FX6VflP8A+Ss8m/8AbD03/qDjxVlWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvzr/P7/ycnmz/AJjm/wCIrirz/FX6VflP/wCSs8m/&#xA;9sPTf+oOPFWVYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq/Ov8/v8Aycnmz/mOb/iK4q8/xV+lX5T/APkrPJv/AGw9N/6g48VZVirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir86/z+/8nJ5s/wCY5v8A&#xA;iK4q8/xV+lX5T/8AkrPJv/bD03/qDjxVlWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KpN5w816X5T8u3fmDVBK1jZen6wgUPJ+9lWJeKkqPtSDvirzX/oav8sf99al/0jx/9VcVd/0N&#xA;X+WP++tS/wCkeP8A6q4q7/oav8sf99al/wBI8f8A1VxV3/Q1f5Y/761L/pHj/wCquKu/6Gr/ACx/&#xA;31qX/SPH/wBVcVd/0NX+WP8AvrUv+keP/qrirv8Aoav8sf8AfWpf9I8f/VXFXoPkTz3on
nbRG1nR&#xA;lmW0WZ7ci4QI/NArHZWfb4x3xVkWKvzr/P7/AMnJ5s/5jm/4iuKvP8VfpV+U/wD5Kzyb/wBsPTf+&#xA;oOPFWTzSrDDJM9eEal2p1ooqcVeP/wDQ1f5Y/wC+tS/6R4/+quKu/wChq/yx/wB9al/0jx/9VcVd&#xA;/wBDV/lj/vrUv+keP/qrirv+hq/yx/31qX/SPH/1VxV3/Q1f5Y/761L/AKR4/wDqrirv+hq/yx/3&#xA;1qX/AEjx/wDVXFXf9DV/lj/vrUv+keP/AKq4q7/oav8ALH/fWpf9I8f/AFVxV3/Q1f5Y/wC+tS/6&#xA;R4/+quKu/wChq/yx/wB9al/0jx/9VcVd/wBDV/lj/vrUv+keP/qrirv+hq/yx/31qX/SPH/1VxV3&#xA;/Q1f5Y/761L/AKR4/wDqrirv+hq/yx/31qX/AEjx/wDVXFXf9DV/lj/vrUv+keP/AKq4q9jxV2Ku&#xA;xV5v/wA5F/8Akm/MP/Rn/wBR0GKvibFXYq7FXYq7FXYq7FX19/zip/5LGX/tpXH/ACbixV7Hir86&#xA;/wA/v/JyebP+Y5v+Irirz/FX6VflP/5Kzyb/ANsPTf8AqDjxVkOp/wDHNu/+MMn/ABE4q/OfFXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX6Q4q7FXYq83/wCci/8AyTfmH/oz/wCo6DFXxNirsVdi&#xA;rsVdirsVdir6+/5xU/8AJYy/9tK4/wCTcWKvY8VfnX+f3/k5PNn/ADHN/wARXFXn+Kv0q/Kf/wAl&#xA;Z5N/7Yem/wDUHHirIdT/AOObd/8AGGT/AIicVfnPirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;r9IcVdirsVeb/wDORf8A5JvzD/0Z/wDUdBir4m
xV2KuxV2KuxV2KuxV9ff8AOKn/AJLGX/tpXH/J&#xA;uLFXseKvzr/P7/ycnmz/AJjm/wCIrirz/FX6VflP/wCSs8m/9sPTf+oOPFWQ6n/xzbv/AIwyf8RO&#xA;KvznxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV7//ANDe+ZP+pfs/+RsuKu/6G98yf9S/Z/8A&#xA;I2XFXf8AQ3vmT/qX7P8A5Gy4qx/z7/zkdrfnDynfeXLnR7a1gvvS5zxySM6+jMkwoG23MdMVeQYq&#xA;7FXYq7FXYq7FXYq+vv8AnFT/AMljL/20rj/k3Fir2PFX51/n9/5OTzZ/zHN/xFcVef4q/Sr8p/8A&#xA;yVnk3/th6b/1Bx4qyHU/+Obd/wDGGT/iJxV+c+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV9ff84qf+Sxl/7aVx/ybixV7Hir86/z+/8AJyebP+Y5v+Irirz/&#xA;ABV+lX5T/wDkrPJv/bD03/qDjxVkOp/8c27/AOMMn/ETir858VdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdiqZeWtPg1LzHpWnXHIW97eW9vMUNG4SyqjcSa70OKvqz/oVT8sf9+6l/0kR/8AVLFX&#xA;f9Cqflj/AL91L/pIj/6pYq7/AKFU/LH/AH7qX/SRH/1SxV3/AEKp+WP+/dS/6SI/+qWKu/6FU/LH&#xA;/fupf9JEf/VLFXf9Cqflj/v3Uv8ApIj/AOqWKu/6FU/LH/fupf8ASRH/ANUsVd/0Kp+WP+/dS/6S&#xA;I/8Aqlirv+hVPyx/37qX/SRH/wBUsVeg+RPImieSdEbRtGaZrRpnuCbhw783Cqd1VNvgHbFWRYq/&#xA;Ov8AP7/
ycnmz/mOb/iK4q8/xV+lX5T/+Ss8m/wDbD03/AKg48VZPNEs0MkL14SKUanWjChxV4/8A&#xA;9Cqflj/v3Uv+kiP/AKpYq7/oVT8sf9+6l/0kR/8AVLFXf9Cqflj/AL91L/pIj/6pYq7/AKFU/LH/&#xA;AH7qX/SRH/1SxV3/AEKp+WP+/dS/6SI/+qWKu/6FU/LH/fupf9JEf/VLFXf9Cqflj/v3Uv8ApIj/&#xA;AOqWKu/6FU/LH/fupf8ASRH/ANUsVd/0Kp+WP+/dS/6SI/8AqlirwL88PImieSfOaaNozTNaNZxX&#xA;BNw4d+bu6ndVTb4B2xV59irsVdirsVdirsVTvyN/ymvl/wD7aVn/AMn0xV+g2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2Kvzr/P7/ycnmz/AJjm/wCIrirz/FX6VflP/wCSs8m/9sPTf+oOPFWVYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXyD/AM5V/wDkzov+2bb/APJyXFXjmKuxV2KuxV2KuxVO/I3/ACmvl/8A7aVn/wAn&#xA;0xV+g2KuxV2KuxV2KuxV2KuxV2KuxV2Kvzr/AD+/8nJ5s/5jm/4iuKvP8VfpV+U//krPJv8A2w9N&#xA;/wCoOPFWVYq7FXYq7FXYq7FXYq7FXYq7FXyD/wA5V/8Akzov+2bb/wDJyXFXjmKuxV2KuxV2KuxV&#xA;O/I3/Ka+X/8AtpWf/J9MVfoNirsVdirsVdirsVdirsVdirsVdir86/z+/wDJyebP+Y5v+Irirz/F&#xA;X6VflP8A+Ss8m/8AbD03/qDjxVlWKuxV2KuxV2KuxV2KuxV2KuxV8g/85V/+TOi/7Ztv/wAnJcVe&#xA;OYq7FXYq7FXYq7FU78jf8pr5f/7aVn/yfTFX6DYq7FXYq7FXYq8f/wCcmfzX1
XyB5Ntl0RvS1vWZ&#xA;mgtboqGEEcShpZAGBUv8SqtR3r2xV8d6Z+cH5o6bqyarb+adSa7RuZ9e5lnjfepWSKVnjdT4FaYq&#xA;+4PyV/OHSPzJ8tLdIUttds1VNX04HdJKf3sYJLGKQ/ZPb7J6Yq9ExV2KuxV+df5/f+Tk82f8xzf8&#xA;RXFXn+Kv0q/Kf/yVnk3/ALYem/8AUHHirKsVdiqA1/XtI8v6Pd6zq9ylpp1lGZbieQ0AA7DxZjso&#xA;G5OwxV8J/mt/zkT54846/NJpWpXeieX4WK6fYWsrQOUHSSdoiC7t1pUqvQeJVZ7/AM4u/nl5un85&#xA;WvkzzFqE+q6dqaSLYzXTNNNBPFGZAPVarmNlQrxJNDSlBXFX19irsVdirsVdir5B/wCcq/8AyZ0X&#xA;/bNt/wDk5LirxzFXYq7FXYq7FXYqnfkb/lNfL/8A20rP/k+mKv0GxV2KuxV2KuxV41/zlD+V2q+e&#xA;PJEFzoqGbV9BkkuorQVLTwulJo4wOsnwqyjvSg3OKvhFlZWKsCrKaMp2IIxVP/InnnX/ACT5ltfM&#xA;GhzendW5pJExPpTRH7cMqgjkjU/iNwMVfoT+Wn5kaB+YHleDXdIfiT+7vbNiDLbzgfFG4H3qe43x&#xA;VleKuxV+df5/f+Tk82f8xzf8RXFXn+Kv0q/Kf/yVnk3/ALYem/8AUHHirKsVUry7tbK0mvLuVYLW&#xA;3RpZ55CFREQcmZiegAFcVfCX/OQv57Xf5hawdL0mR4fKOnyH6rHupupBt9ZlU0/55qeg36nZV47i&#xA;r6G/5xG/KzV9U83QeerqMwaHo/qraOwINzdPG0VE6VSIOSzfzUXfeir7OxV2KuxV2KuxV8g/85V/&#xA;+TOi/wC2bb/8nJcVeOYq7FXYq7FXYq
7FU78jf8pr5f8A+2lZ/wDJ9MVfoNirsVdirsVdirsVfKv/&#xA;ADlJ+QP+9Pn/AMq2380vmHT4l+lruNVHzM3/AAX82KvlXFWbflL+amu/lx5oj1fTyZrKakeqacWI&#xA;juIQeh8HSpKN2PsSCq/Qbyl5s0LzZ5ftNe0O4Fzp94nJG6MjDZo5F34uh2YYqnGKvzr/AD+/8nJ5&#xA;s/5jm/4iuKvP8VfpV+U//krPJv8A2w9N/wCoOPFWUsyqpZiFVRVmOwAHc4q+Lv8AnJf/AJyAbzXd&#xA;zeUPLNx/zrNq9L67jO17NG3RWB3gQj4f5jv044q+fcVenfkX+S2p/mV5h4y87Xy1YMDquoKKE13W&#xA;CEkUMj/8KNz2BVffekaRpmjaZbaXpdslnp9nGIra2iFERF6AfxJ3OKovFXYq7FXYq7FXyD/zlX/5&#xA;M6L/ALZtv/yclxV45irsVdirsVdirsVTvyN/ymvl/wD7aVn/AMn0xV+g2KuxV2KuxV2KuxVplVlK&#xA;sAysKMp3BB7HFXxT/wA5MfkG3lC+k82eW7c/4XvZK3lsg2sZ3OwA7QyMfg/lPw/y4q8CxV6j+RH5&#xA;16j+W/mEJcF7jyvqDqNUsRuUOy/WYR/vxB1H7Y2PYhV986Vqunatpttqem3CXVheRrNbXEZqrxuK&#xA;qwxV+ev5/f8Ak5PNn/Mc3/EVxV5/ir9Kvyn/APJWeTf+2Hpv/UHHir58/wCcof8AnIEyG68g+VLm&#xA;iDlD5g1KIkEncPZxsO3+/SOv2f5sVfLGKsy/Kr8sNd/MXzTDoumgxWyUk1PUGFY7a3rQufFz0RP2&#xA;j4CpCr9CPJvk/QvKHl2z0DQ4BBYWa0Hd5HP25ZG25O53J/hiqdYq7FXYq7FXYq7FXyD/AM5V/wDk&#xA
;zov+2bb/APJyXFXjmKuxV2KuxV2KuxVO/I3/ACmvl/8A7aVn/wAn0xV+g2KuxV2KuxV2KuxV2Kof&#xA;UNPstRsLiwv4EubK7jaG5t5ByR43HFlYeBBxV8Ffn9+SN9+XGv8A1myV5/KmoyMdNujVjC32jbSn&#xA;f4lH2WP2l36hqKvKMVe5f843/n1J5H1JfLuvzFvKV9JUSNU/Upn6yrQEmNj9te32h3qqwv8APmWK&#xA;X84PNMsTrJFJelo5FIZWVkUggjYgjFWA4q+ofzB/5yBHlv8AKLyn5M8rXI/xBc6Bpq6nfREH6nE9&#xA;lHWNCOk7j/gBv1Ioq+XySTU7k4qnfkryZr3nLzHaeX9Dg9e+um6mojijH25ZWAPFEHU/QKkgYq/Q&#xA;n8rvyz0H8vPK8OiaUvqSmkmoX7KBJczkbu3WgHRVr8I96kqsvxV2KuxV2KuxV2KuxV8g/wDOVf8A&#xA;5M6L/tm2/wDyclxV45irsVdirsVdirsVTvyN/wApr5f/AO2lZ/8AJ9MVfoNirsVdirsVdirsVdir&#xA;sVSnzV5W0TzVoF5oOt24udOvU4SxnYg9VdG/ZdG+JT2OKvz5/Nz8qtc/LjzRJpV8DPp83KTStRAI&#xA;S4grt7CRNg69j7EEqsHxVtmZjViSaAVO+wFB+GKtYq2ST1xVGaLo2qa3q1rpOlWz3eo3siw21vGK&#xA;szt+oDqSdgNzir79/I78mdL/AC18tiJuFz5ivlV9XvwP2qVEERO/pRn/AII/EewCr0rFXYq7FXYq&#xA;7FXYq7FXYq+Qf+cq/wDyZ0X/AGzbf/k5LirxzFXYq7FXYq7FXYqnfkb/AJTXy/8A9tKz/wCT6Yq/&#xA;QbFXYq7FXYq7FXYq7FXYq7FWKfmZ+XGgfmB5WuNC1dOJb47K9VQZb
acD4ZEJ+5h+0u2Kvz189eSN&#xA;e8leZbvy/rcPp3dsapItfTmiJPCaJiByR6bfcdwRiqQYq7FVSCCa4mjggjaWeVgkUSAs7Oxoqqo3&#xA;JJ2AGKvuX/nHP8h4fIWlDXNciWTzdqEdJAaMLKFt/QQ/ztt6jD/VGwqyr2vFXYq7FXYq7FXYq7FX&#xA;Yq7FXyD/AM5V/wDkzov+2bb/APJyXFXjmKuxV2KuxV2KuxVO/I3/ACmvl/8A7aVn/wAn0xV+g2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV5z+d35OaV+ZXlo254W2v2QZ9I1Ej7LHdoZKbmKSlD4H4h0oVX5/wCt&#xA;6Lqmh6td6Rq1u1pqNjI0Nzbv9pXX5VBHcEbEbjFUDir7C/5xg/ID9CwW/nnzVbU1ideejafKN7aJ&#xA;xtPIp6TOD8K/sD/KPwqvpLFXYq7FXYq7FXYq7FXYq7FXYq+Qf+cq/wDyZ0X/AGzbf/k5LirxzFXY&#xA;q7FXYq7FXYqnfkb/AJTXy/8A9tKz/wCT6Yq/QbFXYq7FXYq7FXYq7FXYq7FXYq7FXln5yf8AOPvl&#xA;j8y2hvpbh9J163T0k1KFBKHjBqEmiJTmFqeJDKR402xViP5af84h+XPLGuwa1r+qHzBPaMJLSy+r&#xA;iC2WRT8LyAvKZeOxA2FetcVfQOKuxV2KuxV2KuxV2KuxV2KuxV2KvkH/AJyr/wDJnRf9s23/AOTk&#xA;uKvHMVdirsVdirsVdiqd+Rv+U18v/wDbSs/+T6Yq/QbFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq+Qf+cq/wDyZ0X/AGzbf/k5LirxzFXYq7FXYq7FXYqnfkb/AJTX&#xA;y/8A9tKz/wCT6Yq/QbFXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q+Qf+cq//JnRf9s23/5OS4q8cxV2KuxV2KuxV2Kp35G/5TXy/wD9tKz/AOT6Yq/QbFXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq+Qf+cq//ACZ0X/bNt/8Ak5LirxzF&#xA;X0D+Vn/OOnlfzh5D0zzFfanfW91fev6kMHo+mvo3EkI48kY7iMHrirK/+hRvJX/V51L74P8Aqnir&#xA;v+hRvJX/AFedS++D/qnirv8AoUbyV/1edS++D/qnir5TxVO/I3/Ka+X/APtpWf8AyfTFX6DYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXyD/zlX/5M6L/tm2//ACcl&#xA;xV45ir7Z/wCcdP8AyTfl7/o8/wCo6fFXpGKuxV2KvzexVXsb25sb23vrV/TurWVJ4JKBuMkbBlaj&#xA;Ag0I7jFXoP8A0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMV&#xA;d/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/U&#xA;w/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBU&#xA;MVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn&#xA;/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/
&#xA;9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+&#xA;cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj&#xA;/wBUMVYh5r84eYvNmqDVPMF39dvliWATenFF+7QkqvGJY16se2KpNir7Z/5x0/8AJN+Xv+jz/qOn&#xA;xV6RirsVdir83sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdir7Z/5x0/8AJN+Xv+jz/qOnxV6RirsVdirxP/rFT/tT/wDJTFXf9Yqf9qf/AJKYq7/rFT/t&#xA;T/8AJTFXf9Yqf9qf/kpirv8ArFT/ALU//JTFXf8AWKn/AGp/+SmKu/6xU/7U/wDyUxV3/WKn/an/&#xA;AOSmKu/6xU/7U/8AyUxV3/WKn/an/wCSmKu/6xU/7U//ACUxV3/WKn/an/5KYq7/AKxU/wC1P/yU&#xA;xV3/AFip/wBqf/kpirv+sVP+1P8A8lMVd/1ip/2p/wDkpirv+sVP+1P/AMlMVd/1ip/2p/8Akpir&#xA;v+sVP+1P/wAlMVd/1ip/2p/+SmKu/wCsVP8AtT/8lMVd/wBYqf8Aan/5KYq7/rFT/tT/APJTFXf9&#xA;Yqf9qf8A5KYq7/rFT/tT/wDJTFXf9Yqf9qf/AJKYq7/rFT/tT/8AJTFXf9Yqf9qf/kpir1HyX/hT&#xA;/DNn/hP0f8P/ALz6l9Wr6X96/qca7/3vKvviqd4q7FXYq//Z</xmpGImg:image>
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>True</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>17.000000</stDim:w>
+ <stDim:h>16.000000</stDim:h>
+ <stDim:unit>Points</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">add to photos (edited)</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>xmp.did:4007e621-9c7d-4ade-bdfa-2f9dc7c9b390</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:87caf6f1-ce3c-9d45-a07d-358e43ce26da</xmpMM:InstanceID>
+ <xmpMM:OriginalDocumentID>xmp.did:0335b8c8-558b-4706-8ecb-4aa27ac8cb55</xmpMM:OriginalDocumentID>
+ <xmpMM:DerivedFrom rdf:parseType="Resource">
+ <stRef:instanceID>xmp.iid:66917f51-66b2-4e40-b10d-2f774931aa68</stRef:instanceID>
+ <stRef:documentID>xmp.did:66917f51-66b2-4e40-b10d-2f774931aa68</stRef:documentID>
+ <stRef:originalDocumentID>xmp.did:0335b8c8-558b-4706-8ecb-4aa27ac8cb55</stRef:originalDocumentID>
+ <stRef:renditionClass>proof:pdf</stRef:renditionClass>
+ </xmpMM:DerivedFrom>
+ <xmpMM:History>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:0335b8c8-558b-4706-8ecb-4aa27ac8cb55</stEvt:instanceID>
+ <stEvt:when>2014-10-21T13:11:55-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CC (Macintosh)</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:4007e621-9c7d-4ade-bdfa-2f9dc7c9b390</stEvt:instanceID>
+ <stEvt:when>2014-10-21T13:16-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CC (Macintosh)</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpMM:History>
+ <pdf:Producer>Adobe PDF library 11.00</pdf:Producer>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>+endstream+endobj+3 0 obj+<</Count 1/Kids[5 0 R]/Type/Pages>>+endobj+5 0 obj+<</ArtBox[0.0 0.0 17.0 16.0]/BleedBox[0.0 0.0 17.0 16.0]/Contents 6 0 R/Group 7 0 R/MediaBox[0.0 0.0 17.0 16.0]/Parent 3 0 R/Resources<</ExtGState<</GS0 8 0 R/GS1 9 0 R>>/Properties<</MC0 10 0 R>>/XObject<</Fm0 11 0 R>>>>/TrimBox[0.0 0.0 17.0 16.0]/Type/Page>>+endobj+6 0 obj+<</Filter/FlateDecode/Length 258>>stream
+H\x89l\x91\xB1R\xC30\x86w?\x85^ \x8Ed˲\xBC\xB6:\xF4\x98\xB9\\xE9\xD2\xC05L\xBC=\x92\x9B\xC0\xC2y\xB0>\xE9?\xFD\xB25>\xBF}\x9F\x8F{\x84\xDDa\xE1H\x80*v-\xE7\xF0
+\x96\xF2\xB3\\xC2\xF8\xF4\x82p\xF9
+7\xA0\x9E" \x8C*\x89\xA0FU\x98\xE6.\x9EÀ1FY\xABC*\xC2=\x87\xCA0\x85!Ee\xBBJIp\xDDXM̎\xF9?t\xB5\x92\xB3D\xCCm\xEB֙\xB29aV\xB08Iq[L\x8C\xB4\xC2\xE4:n\xED\xAFV:\xA04Qkq\xA9\x85\xC3\xFA
+\x89\x8D\xBA\xDB;\x8D\xAA\xF4\x9ATqm\x8EիI\xF5>h\xE1\xE2\xCC\xC9\xB2\xB5h\xBF\x94bke\xD3N\xC1\x87\xDF:]\x8DR\x96\xCD\xC6?q\xF5\xC7>\xD3{8\xF5\xF5U\x90\xAFb|\x9C\x9F\x968\xDA\xFEN\xE1G\x803\xAAZ\xDD+endstream+endobj+7 0 obj+<</CS/DeviceRGB/I false/K false/S/Transparency>>+endobj+11 0 obj+<</BBox[0.0 12.9895 17.0 -0.010498]/Group 12 0 R/Length 222/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 8 0 R>>>>/Subtype/Form>>stream
+0 0 0 rg
+/GS0 gs
+q 1 0 0 1 9.0171 12.9895 cm
+0 0 m
+0 -3 l
+4.983 -3 l
+4.983 -12 l
+-8.017 -12 l
+-8.017 -3 l
+-3 -3 l
+-3 0 l
+-7.017 0 l
+-7.017 -2 l
+-9.017 -2 l
+-9.017 -13 l
+5.983 -13 l
+5.983 -11 l
+7.983 -11 l
+7.983 0 l
+h
+f*
+Q
++endstream+endobj+12 0 obj+<</I false/K false/S/Transparency/Type/Group>>+endobj+8 0 obj+<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>+endobj+10 0 obj+<</Color[20224 32768 65535]/Dimmed false/Editable true/Preview true/Printed true/Title(Layer 1)/Visible true>>+endobj+9 0 obj+<</AIS false/BM/Normal/CA 0.850006/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.850006/op false>>+endobj+13 0 obj+<</CreationDate(D:20141021131605-07'00')/Creator(Adobe Illustrator CC \(Macintosh\))/ModDate(D:20141021131605-07'00')/Producer(Adobe PDF library 11.00)/Title(add to photos \(edited\))>>+endobj+xref+0 14+0000000000 65535 f
+0000000016 00000 n
+0000000076 00000 n
+0000017101 00000 n
+0000000000 00000 f
+0000017152 00000 n
+0000017428 00000 n
+0000017754 00000 n
+0000018282 00000 n
+0000018521 00000 n
+0000018394 00000 n
+0000017818 00000 n
+0000018219 00000 n
+0000018643 00000 n
+trailer+<</Size 14/Root 1 0 R/Info 13 0 R/ID[<E2D69684B34C45FEB09C4F193E6EF111><C1B05E620DF14586A358D34222A98938>]>>+startxref+18845+%%EOF
</ins></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2ResourcesCopyImageTemplatepdffromrev175075trunkSourceWebKit2ResourcesCopyImageTemplatepdf"></a>
<div class="copfile"><h4>Copied: branches/safari-600.3-branch/Source/WebKit2/Resources/CopyImageTemplate.pdf (from rev 175075, trunk/Source/WebKit2/Resources/CopyImageTemplate.pdf) (0 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/Resources/CopyImageTemplate.pdf         (rev 0)
+++ branches/safari-600.3-branch/Source/WebKit2/Resources/CopyImageTemplate.pdf        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -0,0 +1,206 @@
</span><ins>+%PDF-1.5+%\xE2\xE3\xCF\xD3
+1 0 obj+<</Metadata 2 0 R/Pages 3 0 R/Type/Catalog>>+endobj+2 0 obj+<</Length 12806/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <xmp:CreatorTool>Adobe Illustrator CC (Macintosh)</xmp:CreatorTool>
+ <xmp:CreateDate>2014-10-21T13:01:37-07:00</xmp:CreateDate>
+ <xmp:ModifyDate>2014-10-21T13:01:37-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2014-10-21T13:01:37-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>256</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucn
Z6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq8&#xA;i/O389bfyQP0Loyx3fmWVAz894rVHFVeQD7TsN1Tw3O1Ayr5W8yedfNnmW4efXNVuL5nNfTkc+ku&#xA;9aJEtI0HsqjFUkxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVlHlP8AM3zz&#xA;5Unjk0bVp44UIJspGMtsw7hoXqu/iKHwOKvrj8ofze0v8wdLk/diz1uzC/XrHlUEHb1Yq7mMnbfd&#xA;TsexKr0HFXYq7FXYq7FXYqgdd1aHR9E1DVpxWHT7aa6kUdSsMZkI+5cVfnzrWr3+s6tearfyGW9v&#xA;pXnnkPdnNTTwA6AdhiqCxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;VlH5ZebJ/KnnnSdZjkKQxzrHegHZraU8JlI7/Caj3AOKvvnFXYq7FXYq7FXYqxL82/8AyWPmj/tm&#xA;3P8AybOKvgvFXYq9e/Jb8hpvPMD61q9xJY+Xo3McXo09e4dftCMsGVUXoWod9h3oq9oH/OL35VAA&#xA;GC8NO5uW3+4Yq3/0K/8AlV/vi8/6SW/pirv+hX/yq/3xef8ASS39MVd/0K/+VX++Lz/pJb+mKu/6&#xA;Ff8Ayq/3xef9JLf0xV3/AEK/+VX++Lz/AKSW/pirv+hX/wAqv98Xn/SS39MVd/0K/wDlV/vi8/6S&#xA;W/pirv8AoV/8qv8AfF5/0kt/TFXf9Cv/AJVf74vP+klv6Yq7/oV/8qv98Xn/AEkt/TFXf9Cv/lV/&#xA;vi8/6SW/pirv+hX/AMqv98Xn/SS39MVd/wBCv/lV/vi8/wCklv6Yq7/oV/8AKr/fF5/0k
t/TFXf9&#xA;Cv8A5Vf74vP+klv6Yq7/AKFf/Kr/AHxef9JLf0xV3/Qr/wCVX++Lz/pJb+mKrJf+cXPyseNkWO+i&#xA;ZhQSJc1ZfcclZfvGKvn/APOD8n9R/L3UYGWc32iXxYWV6V4sGXcxSgbBwNwRsw+kBV53irsVfpDi&#xA;rsVdirsVdirsVYl+bf8A5LHzR/2zbn/k2cVfBeKuxV94fk7bwwfld5YSJQimwhkIH80g5ufpZicV&#xA;ZjirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiryL/AJyjijf8rJGdQzRX1s8ZP7LH&#xA;ktR/sWIxV8d4q7FX6Q4q7FXYq7FXYq7FUk87aFca/wCUdY0S2kSK41G0ltopJK8FaRSoLcQTT6MV&#xA;fN3/AEKN51/6vOm/fP8A9U8Vd/0KN51/6vOm/fP/ANU8VfSPknQrjQPKOj6JcyJLcadaRW0skdeD&#xA;NGoUleQBp9GKp3irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiryX/AJyg/wDJVT/8&#xA;xlt/xI4q+OMVdir9IcVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVeS/85Qf+Sqn/wCYy2/4kcVfHGKuxV+kOKoHVtd0TR4RPq2oW2nwnZZLqaOFSfYy&#xA;FRiqQf8AK2/yx/6mjTf+kmP+uKu/5W3+WP8A1NGm/wDSTH/XFXf8rb/LH/qaNN/6SY/64q7/AJW3&#xA;+WP/AFNGm/8ASTH/AFxV3/K2/wAsf+po03/pJj/rirv+Vt/lj/1NGm/9JMf9cVd/ytv8sf8AqaNN&#xA;/wCkmP8Arirv+Vt/lj/1NGm/9JMf9cVd/wArb/
LH/qaNN/6SY/64q7/lbf5Y/wDU0ab/ANJMf9cV&#xA;d/ytv8sf+po03/pJj/rirv8Albf5Y/8AU0ab/wBJMf8AXFXf8rb/ACx/6mjTf+kmP+uKu/5W3+WP&#xA;/U0ab/0kx/1xVluKuxVTjubeWSWKOVXlgYJOikFkZlDgMB0JVgd+2KqmKuxV2KuxV2KuxV2KuxV2&#xA;KuxV5L/zlB/5Kqf/AJjLb/iRxV8cYq7FX2J+ev52jyRbro2i8JfMt3Hz5sA6WsR2Ejqdmdv2FO3c&#xA;7UDKvkjV9a1bWb+S/wBVvJb69lNZJ53Lsfap6AdgNhiqCxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2Kv0hxV2Kvln80vzG8weRPz41PUtJcPDJDZpe2MhPozxiBNmA6MP2WG4+VQVX0J5E896D510GLW&#xA;NHlqh+G5tmp6sEtKmOQDv4HoRuMVZFirsVdirsVdirsVdirsVdiryX/nKD/yVU//ADGW3/Ejir44&#xA;xV2Kp3518yXHmXzZquuTuXa+uHkjrX4Yq8YkFeyRhVHyxVJMVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVfpDirsVfF/8Azkt/5N3VP+MNp/1DpirFPy+/MHXvI+vR6tpMlUNEvLNyfSuIq7o48f5W&#xA;6g/SMVfbPkTz3oPnXQYtY0eWqH4bm2anqwS0qY5AO/gehG4xVkWKuxV2KuxV2KuxV2KuxV5L/wA5&#xA;Qf8Akqp/+Yy2/wCJHFXxxirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpDirsVfF//&#xA;ADkt/wCTd1T/AIw2n/UOmKvLsVZJ5D8/+YfJOtpqujTca0W7tX3hnjBrwkX9RG47Yq+1/wAvvzB0&#xA;HzxoMer
aTJRxRL2ycj1beWm6OPD+VuhH0jFWTYq7FXYq7FXYq7FXYq8l/wCcoP8AyVU//MZbf8SO&#xA;KvjjFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq/SHFXYq+L/8AnJb/AMm7qn/GG0/6&#xA;h0xV5dirsVZF5E89695K16LWNHlo4+G5tmr6U8VamOQDt4HqDuMVfbP5ffmDoPnjQY9W0mSjiiXt&#xA;k5Hq28tN0ceH8rdCPpGKsmxV2KuxV2KuxV2KvJf+coP/ACVU/wDzGW3/ABI4q+OMVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdir9IcVdir4v/5yW/8AJu6p/wAYbT/qHTFXl2KuxV2Kp95K&#xA;87a/5O12HWNGnMc0ZpNC1TFNH+1HKo+0p+8dRvir7Y/Lj8x9B896Cupaa3p3EdEv7ByDLbykdD4q&#xA;f2W7/OoCrK8VdirsVdirsVeS/wDOUH/kqp/+Yy2/4kcVfHGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV+kOKuxV8X/wDOS3/k3dU/4w2n/UOmKvLsVdirsVdiqfeSvOuveTteh1nRpvTn&#xA;j+GWJqmKaIn4opV7qfw6jfFX2v8Alx+ZOgee9DTUdNcR3UYC3+nuwMsEh7H+ZD+y/Q/OoCrLMVdi&#xA;rsVdiryX/nKD/wAlVP8A8xlt/wASOKvjjFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q/SHFXYq+avzs/JP8w/NP5h32taLYxz6fPHbrHI1xDGSY4VRvhdgeoxVgn/QtP5u/wDVrh/6S7f/&#xA;AJrxV3/QtP5u/wDVrh/6S7f/AJrxV3/QtP5u/wDVrh/6S7f/AJrxV3/QtP5u/
wDVrh/6S7f/AJrx&#xA;V3/QtP5u/wDVrh/6S7f/AJrxVOvKH5Mfn15S12DWtFsoobuE0ZTdQGOWM/ailXmOSNT+I3ocVfVm&#xA;lz38+m2s2oWws76SJGurRXEojkI+NA67MAe+KorFXYq7FXkv/OUH/kqp/wDmMtv+JHFXxxirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpDirsVdirsVdirsVdirsVdirsVdirsVdiryX/&#xA;AJyg/wDJVT/8xlt/xI4q+OMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir9GP0npv8A&#xA;y1w/8jF/rirv0npv/LXD/wAjF/rirv0npv8Ay1w/8jF/rirv0npv/LXD/wAjF/rirv0npv8Ay1w/&#xA;8jF/rirv0npv/LXD/wAjF/rirv0npv8Ay1w/8jF/rirv0npv/LXD/wAjF/rirv0npv8Ay1w/8jF/&#xA;riqIR0dQ6MGRhVWBqCPYjFW8VdirsVeS/wDOUH/kqp/+Yy2/4kcVfHGKuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP/ACWPlf8A7Ztt/wAmxirLcVdi&#xA;rsVeS/8AOUH/AJKqf/mMtv8AiRxV8cYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq+9Pyk/8lj5X/wC2bbf8mxirLcVdirsVeS/85Qf+Sqn/AOYy2/4kcVfH&#xA;GKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP/JY&#xA;+V/+2bbf8mxirLcVdirsVeS/85Qf+S
qn/wCYy2/4kcVfHGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP8AyWPlf/tm23/JsYqy3FXYq7FXkv8AzlB/&#xA;5Kqf/mMtv+JHFXxxirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdir70/KT/wAlj5X/AO2bbf8AJsYqy3FXYq7FXkv/ADlB/wCSqn/5jLb/AIkcVfHGKuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP/JY+V/8Atm23&#xA;/JsYqy3FXYq7FXkn/OUJA/KqcE0reWwHv8ROKvjnFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX3p+Un/ksfK/8A2zbb/k2MVZbiqSa7528o6BcR22t6xaad&#xA;cSp6kcVzKsbMlSvIBj0qDiqU3H5xfldBC0r+Z7AqgqRHMJG+hE5MfoGKvm38+fzpg88zW+kaKjx+&#xA;XrGT1vVkHF7iehUSFf2UVWPEHfep8Aq8hxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV96flJ/5LHyv/ANs22/5NjFWW4q+U/wDnLn/lNdG/7Zo/5PyYq8Kx&#xA;V2KuxVO/JXlu48y+bNK0OBC7X1wkclK/DFXlK5p2SMMx+WKpJirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdir70/KT/wAlj5X/AO2bbf8AJsYqy3FXyn/zlz/ymujf&#xA
;9s0f8n5MVeFYq7FUbpGi6trN/HYaVZy317KaRwQIXY+9B0A7k7DFX1v+RX5JDyRbtrOtcJfMt3Hw&#xA;4KQ6WsR3MaMNmdv22G3YbVLKvjvFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FX3p+Un/ksfK//bNtv+TYxVluKpJrvknyjr9xHc63o9pqNxEnpxy3MSyMqVLcQWHS&#xA;pOKpb/yqT8sf+pX03/pGj/pirv8AlUn5Y/8AUr6b/wBI0f8ATFU/0rQtE0eEwaTp9tp8J6x2sKQq&#xA;aeIQLiqOxV+b2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvv&#xA;T8pP/JY+V/8Atm23/JsYqy3FXYq7FXYq7FXYq/N7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FX3p+Un/AJLHyv8A9s22/wCTYxVluKuxV2KuxV2KuxV+b2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP/JY+V/+2bbf8mxi&#xA;rLcVdirsVdirsVdir83sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVfen5Sf+Sx8r/wDbNtv+TYxVluKuxV2KuxV2KuxV8Dfmb5Tn8qeedW0aSMpDHO0lkSNmtpTz&#xA;hYHv8JofcEYqxfFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUboukX&#xA;+s6tZ6VYRmW9vpUggjHdnNBXwA6k9hir9BtC0qHR9E0/SYDWHT7aG
1jPSqwoEB/4XFUdirsVdirs&#xA;VdirsVeffm9+UOl/mDpcf7wWet2Yb6jfcagg7+lLTcxk77bqdx3BVfI/mz8svPPlSeSPWdJnjhQk&#xA;C9jUy2zDsVmSq7+BofEYqxfFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FU7&#xA;8t+SvNnmW4SDQ9KuL5nNPUjQ+ku9KvK1I0HuzDFX1T+SX5FW/kgfprWWju/MsqFU4bxWqOKMkZP2&#xA;nYbM/hsNqllXruKuxV2KuxV2KuxV2Kv/2Q==</xmpGImg:image>
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>True</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>16.000000</stDim:w>
+ <stDim:h>16.000000</stDim:h>
+ <stDim:unit>Points</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">copy</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>uuid:0e2273b0-3d45-fc45-a7a2-95f229b83686</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:e711f8ac-ac9c-4b48-9451-813e4e11f555</xmpMM:InstanceID>
+ <pdf:Producer>Adobe PDF library 11.00</pdf:Producer>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>+endstream+endobj+3 0 obj+<</Count 1/Kids[5 0 R]/Type/Pages>>+endobj+5 0 obj+<</ArtBox[1.0 1.0 15.0 15.0]/BleedBox[0.0 0.0 16.0 16.0]/Contents 6 0 R/Group 7 0 R/MediaBox[0.0 0.0 16.0 16.0]/Parent 3 0 R/Resources<</ExtGState<</GS0 8 0 R/GS1 9 0 R>>/Properties<</MC0 10 0 R>>/XObject<</Fm0 11 0 R/Fm1 12 0 R>>>>/TrimBox[0.0 0.0 16.0 16.0]/Type/Page>>+endobj+6 0 obj+<</Filter/FlateDecode/Length 107>>stream
+H\x89\xD2\xF7I\xACL-R\xD0\xF7u6PprqV\xE0*\xE42P04!] .J\xE5
+W\xC8
+\xEA\xBB(\xA4s\xE9\xBB\xE5(\xB8\xE4s\xA2\x8AB\xC4@\xB0($e\x92*T0*\x98\xE8\x99*($\xE7\x82\xE5r\xA5iջ\xFAm\xE40\xCFM+endstream+endobj+7 0 obj+<</CS/DeviceRGB/I false/K false/S/Transparency>>+endobj+11 0 obj+<</BBox[4.0 15.0 15.0 4.0]/Group 13 0 R/Length 281/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 9 0 R>>>>/Subtype/Form>>stream
+0 0 0 rg
+/GS0 gs
+q 1 0 0 1 14 4 cm
+0 0 m
+-1 0 l
+-1 1 l
+-0.5 1 l
+-0.224 1 0 1.224 0 1.5 c
+0 9.5 l
+0 9.776 -0.224 10 -0.5 10 c
+-8.5 10 l
+-8.776 10 -9 9.776 -9 9.5 c
+-9 9 l
+-10 9 l
+-10 10 l
+-10 10.552 -9.552 11 -9 11 c
+0 11 l
+0.552 11 1 10.552 1 10 c
+1 1 l
+1 0.448 0.552 0 0 0 c
+f*
+Q
++endstream+endobj+12 0 obj+<</BBox[1.0 12.0 12.0 1.0]/Group 14 0 R/Length 210/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 9 0 R>>>>/Subtype/Form>>stream
+0 0 0 rg
+/GS0 gs
+q 1 0 0 1 9 9 cm
+0 0 m
+3 0 l
+3 0.05 l
+0 3 l
+h
+f*
+Q
+q 1 0 0 1 8 8 cm
+0 0 m
+0 4 l
+-6 4 l
+-6.552 4 -7 3.552 -7 3 c
+-7 -6 l
+-7 -6.552 -6.552 -7 -6 -7 c
+3 -7 l
+3.552 -7 4 -6.552 4 -6 c
+4 0 l
+h
+f*
+Q
++endstream+endobj+14 0 obj+<</I false/K false/S/Transparency/Type/Group>>+endobj+9 0 obj+<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>+endobj+13 0 obj+<</I false/K false/S/Transparency/Type/Group>>+endobj+10 0 obj+<</Color[20224 32768 65535]/Dimmed false/Editable true/Preview true/Printed true/Title(Layer 1)/Visible true>>+endobj+8 0 obj+<</AIS false/BM/Normal/CA 0.850006/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.850006/op false>>+endobj+15 0 obj+<</CreationDate(D:20141021130137-07'00')/Creator(Adobe Illustrator CC \(Macintosh\))/ModDate(D:20141021130137-07'00')/Producer(Adobe PDF library 11.00)/Title(copy)>>+endobj+xref+0 16+0000000000 65535 f
+0000000016 00000 n
+0000000076 00000 n
+0000012959 00000 n
+0000000000 00000 f
+0000013010 00000 n
+0000013297 00000 n
+0000013472 00000 n
+0000014732 00000 n
+0000014430 00000 n
+0000014605 00000 n
+0000013536 00000 n
+0000013987 00000 n
+0000014542 00000 n
+0000014367 00000 n
+0000014854 00000 n
+trailer+<</Size 16/Root 1 0 R/Info 15 0 R/ID[<C077BE5010DF4E929DC46952A2AEFB7B><2CCABCCA8F1C4885A81B634350A83CD5>]>>+startxref+15036+%%EOF
</ins></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2ResourcesSaveImageToDownloadsTemplatepdffromrev175075trunkSourceWebKit2ResourcesSaveImageToDownloadsTemplatepdf"></a>
<div class="copfile"><h4>Copied: branches/safari-600.3-branch/Source/WebKit2/Resources/SaveImageToDownloadsTemplate.pdf (from rev 175075, trunk/Source/WebKit2/Resources/SaveImageToDownloadsTemplate.pdf) (0 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/Resources/SaveImageToDownloadsTemplate.pdf         (rev 0)
+++ branches/safari-600.3-branch/Source/WebKit2/Resources/SaveImageToDownloadsTemplate.pdf        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -0,0 +1,133 @@
</span><ins>+%PDF-1.5+%\xE2\xE3\xCF\xD3
+1 0 obj+<</Metadata 2 0 R/Pages 3 0 R/Type/Catalog>>+endobj+2 0 obj+<</Length 19798/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <xmp:CreatorTool>Adobe Illustrator CC (Macintosh)</xmp:CreatorTool>
+ <xmp:CreateDate>2014-10-21T13:06:20-07:00</xmp:CreateDate>
+ <xmp:ModifyDate>2014-10-21T13:06:20-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2014-10-21T13:06:20-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>256</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucn
Z6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FUm8y+cvKnle1F15h1a10uEglPrMqoz06iNCebn2UHFXjHmr/nMz8u9NLxaBY3mvTLXjJQW&#xA;du3+zlDS/wDJLFXlHmH/AJzM/M2/Zk0iz0/R4T9hlja5mHzeVvTP/IvFXn+r/nz+cWqkm682agnL&#xA;qLSQWY616WwhxVit75n8y3zcr3Vr26Y9TNcSyHpT9pj2xVLMVdiqZ2XmfzLYtystWvbVh0MNxLGe&#xA;lP2WHbFWVaR+fP5xaUQbXzZqD8egu5BeDrXpcibFXoHl7/nMz8zbBlTV7PT9YhH22aNraY/J4m9M&#xA;f8i8Ver+Vf8AnMz8u9SKRa/Y3mgzNTlJQXluv+ziCy/8ksVez+WvOXlTzRam68vata6pCAC/1aVX&#xA;ZK9BIgPND7MBiqc4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWC/mN+dX5f+QIGGt6&#xA;gJNRpWLSbWkt21RUVSoEYP8ANIVGKvl/8wP+cvfP2utJa+Wo08t6cagSR0mvHXp8UzDinj8Cgj+Y&#xA;4q8O1DUtR1K8kvdRupr28mNZbm4kaWVz4s7lmP0nFUNirsVdirsVXxxSSuI4kZ5G+yigkn5AYq6S&#xA;KSJzHKjJIv2kYEEfMHFVmKuxV2KuxVE6fqWo6beR3unXU1leQmsVzbyNFKh8VdCrD6Dir3H8v/8A&#xA;nL3z9oTR2vmWNPMmnCgMklIbxF6fDMo4v4/GpJ/mGKvqD8ufzq/L/wA/wKNE1AR6jSsuk3VIrtaC&#xA;polSJAP5oywxVnWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVL9f8w6J5e0qfVtbvYrDT
rZeU1zM&#xA;3FR4Ad2Y9Ao3J2GKvkr82v8AnLzW9WabSfIavpOm7o+ryAfXJR0rEu4gU+O79/hO2KvnS4uLi5nk&#xA;uLiV5p5WLyyyMXdmO5ZmNSScVU8VVILee4mSC3jaaeVgscUalnZjsAqipJOKvWfJv/OLf5t+ZFjn&#xA;m09NCsn3E+qMYXp/xgUPOD/rIPnir2Xy1/zhN5VtgknmPXrvUZBQtDZolpFX+Ul/Xdh7jjir0vRf&#xA;+cdPyY0gL6Hli2uXWlZL1pLvkR3Kzs6fctMVZhp/k/ylpyhNP0Sws1AoFt7WGIUoB0RR4DFU3AAF&#xA;BsB0GKuIBFDuD1GKpRqHk/ylqKlNQ0SwvFIoVuLWGUUoR0dT4nFWH61/zjp+TGrhvX8sW1s7VpJZ&#xA;NJacSe4WBkT71pirzTzL/wA4TeVbkPJ5c16706Q1Kw3iJdxV/lBT0HUe55Yq8a85f84t/m35bWSe&#xA;HT012yTcz6Wxmen/ABgYJOT/AKqH54q8mnt57eZ4LiNoZ4mKyRSKVdWGxDKaEEYqp4qqW9xcW08d&#xA;xbyvDPEweKWNijqw3DKwoQRir6L/ACl/5y81vSWh0nz4r6tpuyJq8YH1yIdKyrsJ1Hjs/f4jtir6&#xA;10DzDonmHSoNW0S9iv8ATrleUNzC3JT4g91YdCp3B2OKphirsVdirsVdirsVdirsVdirsVdirCPz&#xA;U/N3yr+XGjfXdXk9a/nDfo7SomHr3DD7+EYP2nIoPc0GKvhX8zPzY83fmHq5vtcuONrGx+paZCSL&#xA;a3Xp8Kk7tTq7bn5bYqwzFVa0s7u9uorSzgkubqdgkMEKtJI7HoqqoJJPgMVfQ/5Zf84d+YtWEWoe&#xA;d7ltEsWow02Di966nf42PKOH6QzeIGKvp3yR+V
3kPyTbiLy5pENpLx4yXhHqXMn+vO/Jz8q08Bir&#xA;KsVdirsVdirsVdirsVdirsVdirFfO/5XeQ/O1uYvMekQ3cvHjHeAencx/wCpOnFx8q08Rir5i/M3&#xA;/nDzzDpCy6j5IuW1uxWrHTZ+KXqKN/gYcY5voCt2AOKvni7s7uyupbS8gktrqBik0EytHIjDqrKw&#xA;BBHgcVUcVZn+Wf5sebvy81cX2h3HK1kYfXdMmJNtcL0+JQdmp0ddx8tsVfdX5V/m75V/MfRvrukS&#xA;ejfwBf0jpUrD17dj93OMn7LgUPsajFWb4q7FXYq7FXYq7FXYq7FXYq82/Oz87NF/LPRUd0W+8wXy&#xA;t+jNM5UrTYzTEbrEp+ljsO5VV8F+avNeveatcudc127e81G6aryN0Vf2UReiIvRVGwxVKMVZ5+Vf&#xA;5NecPzH1Iw6TD9X0uFgt9rE4It4u5UU/vJKdEX6aDfFX2z+V35J+SPy7s1/RVsLnV2Xjc6zcANcP&#xA;X7QQ9IkP8qfTU74qz/FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwD80fyT8kfmJZt+lbYW2rqvG&#xA;21m3AW4Sn2Q56SoP5X+ih3xV8Tfmp+TXnD8uNSEOrQ/WNLmYrY6xACbeXuFNf7uSnVG+io3xVgeK&#xA;pv5V81695V1y21zQrt7PUbVqpIvRl/aR16OjdGU7HFX3p+Sf52aL+Zmiu6Itj5gsVX9J6ZyrSuwm&#xA;hJ3aJj9KnY9iyr0nFXYq7FXYq7FXYq7FWEfm7+amjflx5Vk1e9pPfzcotK07lRrien3iNKgu3Ye5&#xA;AxV+fPmvzVrnmrXrvXdcuWutRvH5SOfsqP2URf2UQbKo6DFUoxV7R+Qn/OPGpfmBcLrWtepY+UYH&#xA;oZAOMt4
yneOAnog6PJ9A3rxVfb2iaHpGhaXb6Vo9pHY6darwgtoV4oo6/SSdyTuT1xVHYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUDreh6Rrul3GlaxaR32nXS8J7aZeSMOv0EHcEbg9MVfEP&#xA;59/848al+X9w2taL6l95RnegkI5S2bMdo5yOqHokn0HenJV4viqb+VPNWueVdetNd0O5a11GzflG&#xA;4+yw/aR1/aRxsynqMVfoN+UX5qaN+Y/lWPV7KkF/Dxi1XTuVWt56feY3oSjdx7gjFWb4q7FXYq7F&#xA;XYql/mHX9K8vaJe63q0622nWETTXMzdlXsB3ZjsoG5OwxV+d35sfmZq/5h+brjXL4tHarWHTLKvw&#xA;29sCSq7bcj9pz3PtTFWGYq9o/wCcePyEuPzA1L9Na0rweUbGQCQiqteSruYIz2Qf7scfIb7qq+57&#xA;W1trS2itbWJILaBFjggjUIiIgoqqooAABQAYqq4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FVK6tba7tpbW6iSe2nRo54JFDo6OKMrKaggg0IOKvhj/nIf8hLj8v8AUv01oqvP5RvpCIya&#xA;s1nK24gkPdD/ALrc/I77sq8XxVmf5T/mZq/5eebrfXLEtJatSHU7Kvw3FsSCy77ch9pD2PtXFX6I&#xA;+Xtf0rzDollrekzrc6dfxLNbTL3VuxHZlOzA7g7HFUwxV2KuxV2Kvjr/AJy8/NptW1tfIekzf7jd&#xA;JcSau6HaW8p8MRp1WAHf/LO+6jFXzhirPPya/KvUvzH84Q6TCWh0u3pPrF8o/urcGlFJ29ST7KD6&#xA;egOKv0K0PRNL0LSLTR9Kt1tdOsY1htoE6Ki/Pck9STuTviqOxV2KuxV2KuxV2
KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KoHXNE0vXdIu9H1W3W606+jaG5gfoyN8twR1BG4O+Kvz1/OX8q9S/Ljz&#xA;hNpMxabS7is+j3zD+9tyaUYjb1I/suPp6EYqwPFX0f8A84h/m02k623kPVpv9xurOZNIdztFeU+K&#xA;IV6LOBt/ljbdjir7FxV2KuxVgv51fmNB5A/L/UNbDD9IyD6rpMRoeV3KDwND1EYBkb2XFX503FxP&#xA;c3EtxcSNLPM7SSyuaszuaszE9SScVXWdpdXt3BZ2kTT3VzIsMEKCrPJIwVVUdySaDFX6H/kn+V1n&#xA;+Xfki20riravcgXGs3K787hhugbukQ+Bfv6k4qz/ABV2KuxV2KuxV2KuxV2KuxV+VeKuxV2KuxV+&#xA;qmKuxV2KuxV2KuxV2KuxV2KsA/Oz8rrP8xPJFzpXFV1e2BuNGuW24XCjZC3ZJR8Dff1AxV+eF5aX&#xA;Vldz2d3E0F1bSNDPC4oySRsVZWHYgihxVbb3E9tcRXFvI0U8LrJFKhoyuhqrKR0IIxV+i35K/mNB&#xA;5/8Ay/0/Wyw/SMY+q6tEKDjdxAczQdBICJF9mxVnWKuxV8S/85e/mA2u+fo/LVrJXTvLaenIAfhe&#xA;8mAaZtv5F4pv0IbxxV4Lir6N/wCcO/yyGreYrnzvqEXKx0RvQ00MKq9661Z9/wDfMbA/6zA9sVfY&#xA;+KuxV2KuxV2KuxV2KuxV2KuxV+VeKuxV2KuxV+qmKuxV2KuxV2KuxV2KuxV2KuxV8cf85iflkNJ8&#xA;xW3nfT4uNjrbehqQUUVL1Fqr7f7+jUn/AFlJ74q+csVe9f8AOIX5gNoXn6Ty1dSU07zInpxgn4Uv&#xA;IQWhbf8AnXkm3UlfDFX21iqTecvMtr
5X8qat5hugDDpdrLc8Cac2RSUjB8Xeij54q/M3UtQvNS1G&#xA;61G9kM15ezSXFzKeryysXdj82YnFVK3gmuJ47eBGlnmZY4o1FWZ2NFUAdSScVfpN+V3ki38k+Q9I&#xA;8uRBfVtIQbyRf92XMnxzv9Lsae1BirKsVdirsVdirsVdirsVdirsVdir8q8VdirsVdir9VMVdirs&#xA;VdirsVdirsVdirsVdirFfzR8kW/nbyHq/lyUL6t3CTZyN/uu5j+OB/odRX2qMVfmzcQTW88lvOjR&#xA;Tws0csbCjK6mjKQehBGKqum6heabqNrqNlIYbyymjuLaUdUliYOjD5MoOKv0y8m+ZbXzR5U0nzDa&#xA;gCHVLWK54A14M6gvGT4o9VPyxV4x/wA5meajpv5d2OgRPxm168HqLX7VvZgSv/yVaLFXxXir13/n&#xA;FvyavmT829Pmnj52WhI2qTg9OcJCwfSJ3RvoOKvvfFXYq7FXYq7FXYq7FXYq7FXYq7FX5V4q7FXY&#xA;q7FX6qYq7FXYq7FXYq7FXYq7FXYq7FXYq+CP+cpPJq+W/wA29Qmgj4WWuouqQAdOcxKz/SZ0dvpG&#xA;KvIsVfan/OGfmo6l+Xd9oEr8ptBvD6a1+zb3gMqf8lVlxV5R/wA5meYWv/zNs9IRqw6Pp8asnhNc&#xA;s0rn6Y/TxV4Fir7C/wCcJvLQtvKuveY5EpJqN2lnCxG/pWicyV9meeh/1cVfSWKuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KvyrxV2KuxV2Kv1UxV2KuxV2KuxV2KuxV2KuxV2KuxV82/wDObPloXPlXQfMcaVk0&#xA;67ezmYDf0rtOYLeyvBQf62Kvj3FXvv8Azhn5haw/M280h2pDrGnyKqeM1syyofoj9TFXn/586udV&#xA
;/OLzZdE8uGoSWgO/SzAth1/4w4qwLFX6G/8AOOmijSPyY8sQceL3Ns17IaULfW5GnUn/AGDqPlir&#xA;0fFXYq7FXYq7FXYq7FXYq7FXYq7FX5V4q7FXYq7FX6qYq7FXYq7FXYq7FXYq7FXYq7FXYq84/wCc&#xA;i9FGr/kx5ng48ntrZb2M0qV+qSLOxH+wRh8sVfnlirPfyG1c6V+cXlO6B489QjtCd+l4DbHp/wAZ&#xA;sVYr5nvWvvMurXrbtdXtxMTt1klZu23fFUsxV+nvk/T107ylomnoAFs7C1t1ApSkUKoOgHh4Yqm+&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KvyrxV2KuxV2Kv1UxV2KuxV2KuxV2KuxV2KuxV2KuxVKPOGnrqP&#xA;lLW9PcAreWF1bsDSlJYWQ9QfHwxV+YWKpn5YvWsfMuk3q7Na3tvMDt1jlVu+3bFUsxVfFG8siRRj&#xA;lI7BUXxJNAMVfqiAAKDYDoMVdirsVdirsVdirsVdirsVdirsVdir8q8VdirsVdir9VMVdirsVdir&#xA;sVdirsVdirsVdirsVcQCKHcHqMVfldLG8UjxSDjIjFXXwINCMVWYq7FV8UjxSJLGeMiMGRvAg1Bx&#xA;V+qIIIqNwehxV2KuxV2KuxV2KuxV8Tf85P8A5HHyhq7ea9At6eWdTl/0mCMfDZ3TmvGg+zFJ1TsD&#xA;8O3w1VeCYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXvf/OMH5HHzfq6+a9ft6+WdMl/0aCQfDeXSGvGh&#xA;+1FH1fsT8O/xUVfbOKuxV2KuxV2KuxVxIAqdgOpxV+V0sjyyPLIeUjsWdvEk1JxVZiqZ+Z7JrHzL&#xA;q1k2zWt7cQkbdY5WXtt2xVLMVfp75P1BdR8paJqCEFbywtbhSKUpL
CrjoT4+OKpvirsVdirsVdir&#xA;sVQOuaJpeu6Rd6Pqtut1p19G0NzA/Rkb5bgjqCNwd8Vfnt+cv5U6p+W/m2XS5+U+lXPKbR78jaaC&#xA;v2Wpt6kdeLj6ehGKsCxV2KuxV2KuxV2KuxV2KuxV2Ks9/Jr8qdU/MjzbFpcHKDSrbjNrF+BtDBX7&#xA;K129SSnFB9PQHFX6E6Homl6FpFpo+lW62unWMaw20CdFRfnuSepJ3J3xVHYq7FXYq7FXYq7FUo84&#xA;aguneUtb1ByAtnYXVwxNKUihZz1I8PHFX5hYqmfliya+8y6TZLu11e28IG3WSVV77d8VZV+fOkHS&#xA;vzi82WpHHnqEl2Bv0vALkdf+M2KsCxV+hv8AzjprQ1f8mPLE/Lk9tbNZSCtSv1SRoFB/2CKflir0&#xA;fFXYq7FXYq7FXYq7FWHfmt+Wmj/mH5RuNCv6RXArLpt7SrW9yoIRx4qa0de496HFX54+Z/LOs+WN&#xA;fvdB1mA22o2EhinjPQ03V0P7SOtGVu4OKpVirsVdirsVdirsVdirsVTXyx5Z1nzPr9loOjQG51G/&#xA;kEUEY6Cu7O5/ZRFqzN2AxV+h35U/lpo/5eeUbfQrCktwaS6le0o1xcsAHc+CilEXsPepxVmOKuxV&#xA;2KuxV2KuxV2KvOP+ci9aGkfkx5nn5cXubZbKMVoW+tyLAwH+wdj8sVfnlirPfyG0g6r+cXlO1A5c&#xA;NQjuyN+lmDcnp/xhxV6B/wA5meXmsPzNs9XRaQ6xp8bM/jNbM0Tj6I/TxV4Fir7C/wCcJvMoufKu&#xA;veXJHrJp12l5CpO/pXacCF9leCp/1sVfSWKuxV2KuxV2KuxV2KuxV4r/AM5J/kivnvQf03o0I/xZ&#xA;pMZ9FVABu7cfEbcn+YbtH7
1H7VQq+F3R0dkdSrqSGUihBHUEYqtxV2KuxV2KuxV2KrkR3dURSzsQ&#xA;FUCpJPQAYq+6P+cbPyRXyJoP6b1mEf4s1aMesrAE2lufiFuD/Mdmk96D9mpVe1Yq7FXYq7FXYq7F&#xA;XYq7FXzb/wA5s+ZRbeVdB8uRvSTUbt7yZQd/StE4AN7M89R/q4q+PcVe+/8AOGfl5r/8zbzV3WsO&#xA;j6fIyv4TXLLEg+mP1MVer/8AOZnlU6l+Xdjr8ScptBvB6jU+zb3gET/8lVixV8V4q9d/5xb85L5b&#xA;/NvT4Z5OFlrqNpc5PTnMQ0H0mdEX6Tir73xV2KuxV2KuxV2KuxV2KuxV8l/85X/kd9Vmm/MLy7b/&#xA;AOjTNXzDaRj7EjGn1tVH7LnaT3+LuxCr5fxV2KuxV2KuxV2KvqD/AJxQ/I761ND+YXmK3/0aFq+X&#xA;rSQfbkU0+tsp/ZQ7R+/xdlJVfWmKuxV2KuxV2KuxV2KuxV2Kvgj/AJyk85L5k/NvUIYJOdloSLpc&#xA;BHTnCS0/0id3X6BiryLFX2p/zhn5VOm/l3fa/KnGbXrw+m1PtW9mDEn/ACVaXFXs/nLy1a+aPKmr&#xA;eXrogQ6pay23MivBnUhJAPFHow+WKvzN1LT7zTdRutOvYzDeWU0lvcxHqksTFHU/JlIxVSt55ree&#xA;O4gdop4WWSKRTRldTVWBHQgjFX6Tfld53t/O3kPSPMcRX1buEC8jX/ddzH8E6fQ6mntQ4qyrFXYq&#xA;7FXYq7FXYq7FXYqp3Ntb3VvLbXMSzW86NHNDIAyOjjiysp2IINCMVfBH/OQv5L3H5d+ZvrFhGz+V&#xA;tVdn0yY1b0X+01q7eKfsE/aXxIbFXk2KuxV2KuxV6z/zj1+S9x+Ynmb6xfxsnlbSnV9TmFV9Z/tL
&#xA;ao3i/wC2R9lfAlcVfe9tbW9rbxW1tEsNvAixwwxgKiIg4qqqNgABQDFVTFXYq7FXYq7FXYq7FXYq&#xA;xX80fO9v5J8h6v5jlK+raQkWcbf7suZPggT6XYV9qnFX5s3E81xPJcTu0s8zNJLIxqzOxqzEnqST&#xA;iqrpun3mpaja6dZRma8vZo7e2iHV5ZWCIo+bMBir9MvJvlq18r+VNJ8vWpBh0u1ituYFObIoDyEe&#xA;LvVj88VTnFXxL/zl7+X7aF5+j8y2sdNO8yJ6khA+FLyEBZl2/nXi+/UlvDFXguKvo3/nDv8AM0aT&#xA;5iufJGoS8bHW29fTSxoqXqLRk3/39GoH+soHfFX2PirsVdirsVdirsVdirsVdiqR+dvJuh+cvLN7&#xA;5e1qL1bK8SnIUDxSDdJYz2dG3H3HauKvzt/MTyDrfkTzXd+XtXWssB5W1yARHcQMT6c0dezU6djU&#xA;dRirGcVdirJvy78g6357812nl7SFpLOeVzckEx28CkepNJTstenc0HU4q/RLyT5N0Pyb5ZsvL2ix&#xA;elZWaU5GheWQ7vLIe7u25+4bUxVPMVdirsVdirsVdirsVdirsVfHH/OYf5mrq/mG28kadLysdEb1&#xA;9SKmqveutFTb/fMbEf6zEHpir5yxV71/ziF+X7a75+k8y3UddO8tp6kZI+F7yYFYV3/kXk+3QhfH&#xA;FX21irsVYL+dX5cwef8A8v8AUNECj9Ixj61pMpoON3EDwFT0EgJjb2bFX503FvPbXEtvcRtFPC7R&#xA;yxOKMroaMrA9CCMVXWd3dWV3BeWkrQXVtIs0EyGjJJGwZWU9iCKjFX6H/kn+aNn+Ynki21Xkq6vb&#xA;AW+s2y7cLhRu4Xsko+Nfu6g4qz/FXYq7FXYq7FXYq7FXY
q7FXmv57fk9Y/mR5VaCIJD5i08NLo94&#xA;2w5kfFBIf99y03/lNG7UKr8/dQ0+906+uLC+he2vbWRobm3kHF0kQ8WVh4gjFXafp97qN9b2FjC9&#xA;ze3Uiw21vGOTvI54qqjxJOKv0C/In8nrH8t/KqwShJvMWoBZdYvF3HMD4YIz/vuKu38xq3egVelY&#xA;q7FXYq7FXYq7FXYq7FXYqwD87PzRs/y78kXOq8lbV7kG30a2bfncMNnK90iHxt93UjFX54Xl3dXt&#xA;3PeXcrT3VzI008zmrPJIxZmY9ySanFVtvbz3NxFb28bSzzOscUSCrM7miqoHUknFX6Lfkr+XMHkD&#xA;8v8AT9EKj9IyD61q0ooeV3KBzFR1EYAjX2XFWdYq7FXYq+Ov+cvPylbSdbXz5pMP+43VnEerog2i&#xA;vKfDKadFnA3/AMsb7sMVfOGKs8/Jr81NS/LjzhDq0IabS7ikGsWKn+9tya1UHb1I/tIfo6E4q/Qr&#xA;Q9b0vXdItNY0q4W606+jWa2nToyN89wR0IO4O2Ko7FXYq7FXYq7FXYq7FXYq7FXzj/zlV+R36csZ&#xA;fPfl63rrNjHXWbWMb3NvGP75QOskKjf+ZPdQCq7/AJxV/I79B2MXnvzDb01m+jro1rIN7a3kH98w&#xA;PSSZTt/KnuxAVfR2KuxV2KuxV2KuxV2KuxV2KoHXNb0vQtIu9Y1W4W106xjaa5nfoqL8tyT0AG5O&#xA;2Kvz1/OX81NS/MfzhNq0waHS7esGj2LH+6twa1YDb1JPtOfo6AYqwPFX0f8A84h/lK2ra23nzVof&#xA;9xukuY9IRxtLeU+KUV6rADt/lnbdTir7FxV2KuxV2Kpf5h0DSvMOiXuiatAtzp1/E0NzC3dW7g9m&#xA;U7qRuDuMVfnd+b
H5Z6v+Xnm640O+DSWrVm0y9p8NxbEkK223IfZcdj7UxVhmKvaP+cePz7uPy/1L&#xA;9C60zz+Ub6QGQCrNZytsZ4x3Q/7sQfMb7Mq+57W6tru2iurWVJ7adFkgnjYOjo4qrKwqCCDUEYqq&#xA;4q7FXYq7FXYq7FXYq7FXEAih3B6jFXAACg2A6DFXYq7FXYq7FXYq7FXYq7FVK6ura0tpbq6lSC2g&#xA;RpJ55GCIiIKszMaAAAVJOKvhj/nIf8+7j8wNS/Quis8HlGxkJjBqrXkq7CeQdkH+60PzO+yqvF8V&#xA;Zn+U/wCWer/mH5ut9DsQ0dqtJtTvafDb2wIDNvtyP2UHc+1cVfoj5e0DSvL2iWWiaTAttp1hEsNt&#xA;CvZV7k92Y7sTuTucVTDFXYq7FXYq7FWEfm7+VejfmP5Vk0i9pBfw8pdK1HjVreen3mN6AOvce4Bx&#xA;V+fPmvyrrnlXXrvQtctmtdRs34yIfssP2XRv2kcbqw6jFUoxV7R+Qn/OQ+pfl/cLoutepfeUZ3qY&#xA;weUtmzHeSAHqh6vH9I3ryVfb2ia5pGu6Xb6ro93HfaddLzguYW5Iw6fQQdiDuD1xVHYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FUDreuaRoWl3Gq6xdx2OnWq857mZuKKOn0knYAbk9MVfEP59&#xA;/wDOQ+pfmBcNoui+pY+UYHqIyeMt4ynaScDog6pH9J3pxVeL4qm/lTyrrnmrXrTQtDtmutRvH4xo&#xA;PsqP2ndv2UQbsx6DFX6DflF+Vejflx5Vj0iypPfzcZdV1HjRrien3iNKkIvYe5JxVm+KuxV2KuxV&#xA;2KuxV2KvNvzs/JPRfzM0VEd1sfMFirfozU+NaV3MMwG7RMfpU7juGVfBfmrypr3lXXLn
Q9dtHs9R&#xA;tWo8bdGX9l0bo6N1VhscVSjFWeflX+cvnD8uNSM2kzfWNLmYNfaPOSbeXsWFP7uSnR1+mo2xV9s/&#xA;ld+dnkj8xLNf0Vci21dV5XOjXBC3CU+0UHSVB/Mn00O2Ks/xV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KsA/NH87PJH5d2bfpW5Fzq7LyttGtyGuHr9kuOkSH+Z/oqdsVfE35qfnL5w/MfUhNq031fS4&#xA;WLWOjwEi3i7BjX+8kp1dvooNsVYHiqb+VfKmveatcttD0K0e81G6aiRr0Vf2nduiIvVmOwxV96fk&#xA;n+Sei/lnorojrfeYL5V/Sep8aVpuIYQd1iU/Sx3PYKq9JxV2KuxV2KuxV2KuxV2KuxVhH5qflF5V&#xA;/MfRvqWrx+jfwBv0dqsSj17dj93OMn7SE0PsaHFXwr+Zn5T+bvy81c2OuW/K1kY/UtThBNtcL1+F&#xA;iNmp1Rtx8t8VYZiqtaXl3ZXUV3ZzyW11AweGeFmjkRh0ZWUggjxGKvof8sv+cw/MOkLFp3ne2bW7&#xA;FaKNSg4peoo2+NTxjm+kq3ck4q+nfJH5o+Q/O1uJfLmrw3cvHlJZk+ncx/68D8XHzpTwOKsqxV2K&#xA;uxV2KuxV2KuxV2KuxV2KsV87/mj5D8k25l8x6vDaS8eUdmD6lzJ/qQJyc/OlPE4q+YvzN/5zD8w6&#xA;usuneSLZtEsWqp1Kfi966nb4FHKOH6CzdwRir54u7y7vbqW7vJ5Lm6nYvNPMzSSOx6szMSST4nFV&#xA;HFWZ/ln+U/m78w9XFjodvxtY2H13U5gRbW69fiYDdqdEXc/LfFX3V+Vf5ReVfy40b6lpEfrX84X9&#xA;I6rKo9e4YffwjB+ygNB7mpxVm+KuxV2KuxV2K
uxV2KuxV2KuxV2Kpfr/AJe0TzDpU+k63ZRX+nXK&#xA;8ZraZeSnwI7qw6hhuDuMVfJX5tf84h63pLTat5DZ9W03d30iQj65EOtIm2E6jw2ft8R3xV86XFvc&#xA;W08lvcRPDPExSWKRSjqw2KspoQRiqniqpBcT28yT28jQzxMGjljYq6sNwVYUIIxV6z5N/wCcpPzb&#xA;8trHBNqCa7ZJsINUUzPT/jOpScn/AFnPyxV7L5a/5zZ8q3ISPzHoN3p0hoGms3S7ir/MQ/oOo9hy&#xA;xV6Xov8AzkX+TGrhfQ8z21s7UrHerJacSexadUT7mpirMNP84eUtRUPp+t2F4pFQ1vdQyilAeqMf&#xA;EYqm4IIqNwehxVxIAqdgOpxVKNQ84eUtOUvqGt2FmoFS1xdQxClCersPA4qw/Wv+ci/yY0gN6/me&#xA;2uXWtI7JZLvkR2DQK6fe1MVeaeZf+c2fKtsHj8uaDd6jIKhZrx0tIq/zAJ67sPY8cVeNecv+cpPz&#xA;b8yLJBDqCaFZPsYNLUwvT/jOxecH/VcfLFXk09xPcTPPcSNNPKxaSWRizsx3JZjUknFVPFVS3t7i&#xA;5njt7eJ5p5WCRRRqXdmOwVVFSScVfRf5S/8AOIet6s0OrefGfSdN2dNIjI+uSjrSVtxAp8N37fCd&#xA;8VfWugeXtE8vaVBpOiWUVhp1svGG2hXio8Se7MepY7k7nFUwxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KsF/Mb8lfy/8/wMdb08R6jSkWrWtIrtaCgq9CJAP5ZAwxV8v/mB/wA4heftCaS68tSJ5k04&#xA;VIjjpDeIvX4oWPF/D4GJP8oxV4dqGm6jpt5JZajazWV5CaS21xG0UqHwZHCsPpGKobFXYq7FXYqv&#xA;jlkicS
ROySL9l1JBHyIxV0kskrmSV2eRvtOxJJ+ZOKrMVdirsVdiqJ0/TdR1K8jstOtZr28mNIra&#xA;3jaWVz4KiBmP0DFXuP5f/wDOIXn7XWjuvMsieW9ONCY5KTXjr1+GFTxTw+NgR/KcVfUH5c/kr+X/&#xA;AJAgU6Jp4k1GlJdWuqS3bVFDR6ARg/yxhRirOsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdiqTeZfJvlTzRai18w6Ta6pCAQn1mJXZK9TG5HND7qRirxjzV/wA4Z/l3qReXQL680GZq8Y6i&#xA;8t1/2EpWX/kriryjzD/zhn+ZtgzPpF5p+sQj7CrI1tMfmkq+mP8AkZirz/V/yG/OLSiRdeU9Qfj1&#xA;NpGLwdadbYzYqxW98seZbFuN7pN7asOomt5Yz0r+0o7YqlmKuxVM7Lyx5lvm42Wk3t0x6CG3lkPS&#xA;v7KntirKtI/Ib84tVIFr5T1BOXQ3cYsx1p1uTDir0Dy9/wA4Z/mbfsr6veafo8J+2rSNczD5JEvp&#xA;n/kZir1fyr/zhn+XemlJdfvrzXplpyjqLO3b/YRFpf8Akrir2fy15N8qeV7U2vl7SbXS4SAH+rRK&#xA;jPToZHA5ufdicVTnFXYq7FXYq7FXYq7FXYq7FXYq/wD/2Q==</xmpGImg:image>
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>16.000000</stDim:w>
+ <stDim:h>16.000000</stDim:h>
+ <stDim:unit>Points</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">save to downloads</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>uuid:9136618f-5953-6248-ba3d-5f8c0fda7220</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:45b75117-5981-534c-a785-ff7840262c69</xmpMM:InstanceID>
+ <pdf:Producer>Adobe PDF library 11.00</pdf:Producer>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>+endstream+endobj+3 0 obj+<</Count 1/Kids[5 0 R]/Type/Pages>>+endobj+5 0 obj+<</ArtBox[0.0 0.0 16.0 16.0]/BleedBox[0.0 0.0 16.0 16.0]/Contents 6 0 R/MediaBox[0.0 0.0 16.0 16.0]/Parent 3 0 R/Resources<</ExtGState<</GS0 7 0 R>>/Properties<</MC0 8 0 R>>>>/TrimBox[0.0 0.0 16.0 16.0]/Type/Page>>+endobj+6 0 obj+<</Filter/FlateDecode/Length 223>>stream
+H\x89TQ=o!\xDD\xFD+<G\xC2g\xD0\xE3\xD6&U\x97f\x882d\xAEP>\x86\xA4R.S\xFE}\xD7 \xBE\x9E\xF6\xB3+\xDD\xCF\xEF\xF38a\xB7]3~n\xD6w`\x94\x8F4\x8D\xAE\xE9\xFCS*\x8D\xE9\xDD\xF7\x9E\xF1\xFC\x80;J\xA62\x8D\xC1z\x8C\xB7\xECvc)^\xA1\x88e@K\xE2\xA4e\x8F0\x9B\xC2\xC6\xE7q\xC4\xD6&\xD9"4|\xD2ʽg\xAA\xE9ӈ\xA9\x9F/\xB50GNB\xB5\x8D"!\xA7\x95+Z\xCA
+ؓξ&7\x97z) B\xC3W\xEF\x81E\xB4ɵᴂ\xDD\xDB\xF3\x8D\xBB\xBC\xA3\xC3+\x98\xBE\x9CG\xBE\xC1\x8C\xAF\xD0\xCF̥\x88}m\xF5\xDBv\xF0`\x89%W\xD0+endstream+endobj+8 0 obj+<</Color[20224 32768 65535]/Dimmed false/Editable true/Preview true/Printed true/Title(Layer 1)/Visible true>>+endobj+7 0 obj+<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>+endobj+9 0 obj+<</CreationDate(D:20141021130620-07'00')/Creator(Adobe Illustrator CC \(Macintosh\))/ModDate(D:20141021130620-07'00')/Producer(Adobe PDF library 11.00)/Title(save to downloads)>>+endobj+xref+0 10+0000000000 65535 f
+0000000016 00000 n
+0000000076 00000 n
+0000019951 00000 n
+0000000000 00000 f
+0000020002 00000 n
+0000020232 00000 n
+0000020649 00000 n
+0000020523 00000 n
+0000020761 00000 n
+trailer+<</Size 10/Root 1 0 R/Info 9 0 R/ID[<D37224960EED4540861D3932BC44E457><56658A77C5754A34BFB896834B48AC10>]>>+startxref+20955+%%EOF
</ins></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2ResourcesShareImageTemplatepdffromrev175075trunkSourceWebKit2ResourcesShareImageTemplatepdf"></a>
<div class="copfile"><h4>Copied: branches/safari-600.3-branch/Source/WebKit2/Resources/ShareImageTemplate.pdf (from rev 175075, trunk/Source/WebKit2/Resources/ShareImageTemplate.pdf) (0 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/Resources/ShareImageTemplate.pdf         (rev 0)
+++ branches/safari-600.3-branch/Source/WebKit2/Resources/ShareImageTemplate.pdf        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -0,0 +1,134 @@
</span><ins>+%PDF-1.5+%\xE2\xE3\xCF\xD3
+1 0 obj+<</Metadata 2 0 R/Pages 3 0 R/Type/Catalog>>+endobj+2 0 obj+<</Length 11864/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <xmp:CreatorTool>Adobe Illustrator CC (Macintosh)</xmp:CreatorTool>
+ <xmp:CreateDate>2014-10-21T13:04:02-07:00</xmp:CreateDate>
+ <xmp:ModifyDate>2014-10-21T13:04:02-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2014-10-21T13:04:02-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>176</xmpGImg:width>
+ <xmpGImg:height>256</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAACwAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucn
Z6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYqgdc1vStC0i71jVrlLTTbKMy3NxJ9lVHy3JPQAbk7DFXwN+dX536/+YuuzBJZrPyxA3HTtKDE&#xA;KVX/AHdOF2eRuu/2eg8SqlX5V/m35o/LvXob/TZ3m01mA1DSXc+hPGT8Xw9FkA+y4FQfEVBVfoF5&#xA;N84aF5w8uWfmDRJ/XsbxOQBoHjcfbikUE8XQ7MPu23xVOsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVU7i4gtreW5uJFht4UaSaZyFREQVZmY7AACpOKvhf/AJyK/Pefz/q50bRpGj8o6fIf&#xA;RG6m8mWo+sODQhf99qfmdzQKvF8Vdir0/wDIn86NR/LbzFWYvc+WtQZV1WxBqR2FxED0kT/hhsex&#xA;Cr770nVdO1fTLXU9NuEurC9jWa1uIzVXjcVUjFUVirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVfHP8Azk9+f/6euJ/JHla5rodu/HV7+M7XcqEfuYz/AL6jYbn9s/5I+JV844q7FXYq7FXuf/ON&#xA;v58yeSNTXy3r8xbynfyfDK2/1Gd/92j/AIqc/wB4O32h3DKvt+OSOWNZI2DxuAyOpBVlIqCCOoOK&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdir5k/5yi/P/wDR8dz5C8q3P+nyAxa9qER/uUYENaxn&#xA;/fjD+8YfZHw/aJ4qvkbFUbo+japrOpQaZpds93fXLcYYIxUmgqT7BQCWJ2A3OKoLFXYqnnnPybr3&#xA;k7zFd6BrkBgvrRqVFfTlQ/YliYgckcbg/wAcVSPFX09/zi5+f31J7byD5quaWTkR6DqMr
UETHpay&#xA;Mx+wekR7H4elKKvrbFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXhn/ADkj+fkfkjTn8t+Xpg3m2+j+&#xA;OZSD9QhcCkjf8Wup/dr2+0f2Qyr4gkkklkaSRi8jks7sSWLE1JJPUnFVSzs7u9u4LOzhe4u7mRYr&#xA;eCMFneRzxVVUbkkmgxV9x/kj+RVp+XnlG81PVUSbzdqFpJ9bl2YWsTJX6tGwJHUfGw+0fYDFXwti&#xA;rsVfoT+eX5MaX+ZPlwogS28yWKs2k6gRTfc+hMQCTE5/4E7juCq+A9Z0bVNF1W60nVbZ7TUbKQxX&#xA;NvIKMrr/AA7gjYjcYqgwSDUbEYq+y/8AnGL8/v8AElrD5L80XNfMFsnHS72U73kKL/dux6zoB1/b&#xA;XfqCSq+iMVdirsVdirsVdirsVdirsVdirsVeXfnz+den/lt5e4WxS480agjDS7I7hBuDczD/AH2h&#xA;6D9pthtyIVfA2qapqGq6jc6lqVw91f3kjTXNxKeTu7mpYnFUMqszBVBZmNFUbkk4q+0v+caPyAXy&#xA;paReb/M1v/zst1HWxtJBvZQuOrKRtO4+1/KNupbFXu+rf8cq9/4wS/8AEDir8tcVdir9VMVeK/8A&#xA;ORn5DQ+fdKOuaHEsfm+wjpGNlF7Cu/oyMdg6/wC62P8AqnY1VV8MzwTW80kE8bRTxMUlicFXV1NG&#xA;VlO4IOxBxVdaXd1Z3UN3aSvBdW7rLBPGSro6HkrKw3BBFRir7u/5x6/PO2/MPRP0bqrpF5u06MfX&#xA;IhRRcxCgFzGAABUmjqOh9iMVewYq7FXYq7FXYq7FXYq7FXYqwr82fzT0P8ufK0mr6gRNey1j0vTg&#xA;1JLmenQeCJWrt2HuQCq/Pjzb5s1zzZ5gu9e1y4
NzqF4/KRuiqo2WONd+KINlGKpPir6v/wCcXv8A&#xA;nH70ha+f/Ndt+9PGby/p0o+yNmS8kHj/AL6B6fa/loq+pcVQurf8cq9/4wS/8QOKvy1xV2Kv1UxV&#xA;2Kvm/wD5ye/ID9OQXHnjytb/AO5qBOesWEY/3qjQbzoP9+oo+ID7Y/yh8Sr47xVMvLvmHWPLutWm&#xA;t6NctaalYyCS3nTqD0IIOzKwJDA7EbHFX6B/k1+bujfmT5YW/t+NvrFrxj1fTQd4pSNnSu5ikpVD&#xA;9HUHFWf4q7FXYq7FXYq7FXYqtllSKJ5ZDxjjUs7eAAqTir83PzS/MjWvzA83XWuajIwg5NHptpX4&#xA;Le2DH041HjTdz3bfFWIYq+iv+cZf+cfz5juYfOnmm2/51+2flpdhKCPrkqEESOpHxQIe37bbfZBB&#xA;VfZQAAoNgOgxV2KoXVv+OVe/8YJf+IHFX5a4q7FX6qYq7FXYq+Rv+cofyA/R0lz598q23+gSMZde&#xA;0+Mf3LsSWuox/vtifjUfZPxfZrxVfMmKsm/Lvz/rvkTzTaeYNHkIkhIW6tiSI7iAkGSGQfytT6DQ&#xA;jcYq/SewvIb6xt72Cvo3USTRchQ8ZFDLUfI4qr4q7FXYq7FXYq7FWnRJEaNwGRwVZT0IOxBxV+fH&#xA;5p/kT528leYrq3h0y61DQ3lY6bqVtE8yNETVFkKBuEgGxDUqQaVGKsp/In/nG3X/ADVrUOq+bdPu&#xA;NN8rWpErRXCNDLesCCIUVuLrGf23p02Xc1VV9t2trbWltFa2sSQW1uixQQRqFRI0HFUVRsAoFABi&#xA;qpirsVQurf8AHKvf+MEv/EDir8tcVdir9VMVdirsVWyRxyxtHIoeNwVdGAKspFCCD1BxV8Xfn/8A&#xA;842ax5e
1eXXvJmnzX/ly7YvJY2yNLLZSHdl4KCzQnqrD7PQ9iVWBflt+R3nrzr5gt7FdMurDSw6n&#xA;UNUuYniiiiB+PiXA5yU+yg79aCpxV+hdnawWdpBaQLxgt41iiWtaIihVFT7DFVXFXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYqhdW/45V7/wAYJf8AiBxV+WuKuxV+qmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KoXVv+OVe/wDGCX/iBxV+WuKuxV+qmKuxV2KuxV2KuxV2KuxV2KuxV2KrJp4I&#xA;E9SaRYk6cnIUVPucVUP0tpX/AC2wf8jU/rirv0tpX/LbB/yNT+uKu/S2lf8ALbB/yNT+uKu/S2lf&#xA;8tsH/I1P64q79LaV/wAtsH/I1P64q79LaV/y2wf8jU/riqKxVC6t/wAcq9/4wS/8QOKvy1xV2Kv1&#xA;UxV2KuxV2KuxV2KuxV2KuxV2KvB/+ci/+ciH8isPLPlr05fNE0Ye5uXAdLKNwCh4H4WldTyUNsBQ&#xA;kGoxV8ba95m8w+Yb1r7XNRuNSu2JJluZGkIr2XkaKPYbYqlmKuxV2KuxV2KuxV+qmKoXVv8AjlXv&#xA;/GCX/iBxV+WuKuxV+qmKoXVv+OVe/wDGCX/iBxV+WuKuxV2KuxV2KuxVPPLXnjzh5XuVuPL+sXem&#xA;yKa8YJWWNvZ46mNx7MpxV9l/849/85CRfmDE2g68sdr5rtYzIDGOMV5Ev2pI1/ZkX9tP9ku1Qqr4&#xA;v82+YrvzJ5n1TXrtma41O6luW5dVEjEqnyRaKB2AxVKMVdirsVdirsVdirsVfqpiqF1b/jlXv/GC&#xA;X/iBxV+WuKuxV+qmKoXVv+OVe/8AGCX/AIgcVflrirsVdirsVdirsVdiqd+Sv
Mt15Y826R5gtWKy&#xA;6bdRTmn7SK37xD7OlVPscVSTFXYq/Qr8k/yd8t+RPK1gy2UUvmO5hjm1PUpFDTes68mjjY14RpXi&#xA;AtK0qd8VelYq7FXYq7FXYq7FULq3/HKvf+MEv/EDir8tcVdir9VMVcQCKHcHqMVQv6J0r/lig/5F&#xA;J/TFXfonSv8Alig/5FJ/TFXfonSv+WKD/kUn9MVd+idK/wCWKD/kUn9MVd+idK/5YoP+RSf0xV5f&#xA;+eH5G+U/OPlXULuz0+Cy8zWcMlxY39uixNI8alvRn4gc0elN91O47gqvgXFXYq7FXYq/VTFXYq7F&#xA;XYq7FXYq7FULq3/HKvf+MEv/ABA4q/LXFXYq/VTFXYq7FXYq7FXYq7FULq3/AByr3/jBL/xA4q/L&#xA;XFXYq7FXYq/VTFXYq7FXYq7FXYq7FULq3/HKvf8AjBL/AMQOKvy1xV2Kv1UxV2KuxV2KuxV2KuxV&#xA;C6t/xyr3/jBL/wAQOKvy1xV2KuxV2Kv1UxV2KuxV2KuxV2KuxVC6t/xyr3/jBL/xA4q/LXFXYq/V&#xA;TFXYq7FXYq7FXYq7FULq3/HKvf8AjBL/AMQOKvy1xV2KuxV2Kv1UxV2KuxV2KuxV2KuxVC6t/wAc&#xA;q9/4wS/8QOKvy1xV2Kv1UxV2KuxV2KuxV2KuxVC6t/xyr3/jBL/xA4q/LXFXYq7FXYq/VTFXYq7F&#xA;XYq7FXYq7FULq3/HKvf+MEv/ABA4q/LXFXYq/VTFXYq7FXYq7FXYq7FULq3/AByr3/jBL/xA4q/L&#xA;XFXYq7FXYq/VTFXYq7FXYq7FXYq7FULqoJ0u8A3JgkoP9gcVfmB+idV/5Y5/+Rb/ANMVd+idV/5Y&#xA;5/8AkW/9MVfqTirsVdirsVdirsVdiq
F1b/jlXv8Axgl/4gcVflrirsVdirsVfqpirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdiqF1b/jlXv/GCX/iBxV+WuKuxV2KuxV+qmKuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KoXVv8AjlXv/GCX/iBxV+WuKuxV2KuxV+qmKuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KoXVv+OVe/8AGCX/AIgcVflrirsVdirsVfqpirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdiqF1b/jlXv8Axgl/4gcVflrirsVdirsVfqpirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdiqF1b/jlXv/GCX/iBxV+WuKuxV2KuxV+qmKuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KoXVv8AjlXv/GCX/iBxV+WuKuxV2KuxV+qmKuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KoXVv+OVe/8AGCX/AIgcVflrirsVdirsVfqpirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdiqF1b/jlXv8Axgl/4gcVflrirsVdirsVfoF+Sn52+VfOvlWwin1CC18y&#xA;WsCRalp0zrHI0kahWliViOcb05fDXjWhxV6lirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVe&#xA;U/nd+d3lXyZ5Uv7e2v4LzzJeQvBp+nwSLI6PIpUTTBeXBEry+L7XQeyr4BxV2Kpx5v8ALl35a806&#xA;roF2CJ9MupbYltuSoxCv8nWjD2OKpPirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA
;rsVTnyZ5au/M/mvSfL9opabU7qK3qorxRm+Nz7IlWPsMVfZH/OQ//OPA8/AeYvLpjt/NNvGI5YpC&#xA;EjvY0Hwqzfsyr0VjsRsdqEKvjbzH5Q80+Wrs2mv6VdaZODxAuYmRWp/IxHFx7qSMVSfFXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqnPlryd5p8z3i2fl/SrnUp2biRbxsyqT/O/wBhB7sQ&#xA;MVfZP/OPH/OPC+QVPmHzCY7jzVcRmOKKM847KN/tqr9HlcbMw2A+Fdqkqv8A/9k=</xmpGImg:image>
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>15.000000</stDim:w>
+ <stDim:h>16.000000</stDim:h>
+ <stDim:unit>Points</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">share</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>uuid:42c140d4-f642-884f-b34a-56e3afadf921</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:5f7017f2-83e4-ac46-9ee9-dceaa24ec9fa</xmpMM:InstanceID>
+ <pdf:Producer>Adobe PDF library 11.00</pdf:Producer>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>+endstream+endobj+3 0 obj+<</Count 1/Kids[5 0 R]/Type/Pages>>+endobj+5 0 obj+<</ArtBox[2.0 0.0 13.0 15.9964]/BleedBox[0.0 0.0 15.0 16.0]/Contents 6 0 R/MediaBox[0.0 0.0 15.0 16.0]/Parent 3 0 R/Resources<</ExtGState<</GS0 7 0 R>>/Properties<</MC0 8 0 R>>>>/TrimBox[0.0 0.0 15.0 16.0]/Type/Page>>+endobj+6 0 obj+<</Filter/FlateDecode/Length 395>>stream
+H\x89lS\xBB\x8E1\xEC\xF5\xFC\x81\xA5I\x8A\Im.A\x9A\qH\x91:X\\xAE\xF18\xA7\xCA߇\xA2\xA4\xB5\x8B\xC0\x805Cq\xF8\xD4^\xBE\xFD\xFC\xFBz\x83\xCB\xF3\xC1\xA7\xCFO\x90>\xEF\xC0\x9B\xB7\xD7\xF4~\xBB\xA9\xFFno\xE9\xF2\xF5;\xC1۟\xF4&h\xD8jip\xBC\x87\xDF{ڲ\xD7~l\xDCOBm\xF5\xC4"a'\xFF\xA0;.ߪ\xC3\xDD\x96"
+\xED\xAC\xF9\x853[\xF8H\x8C\xF2\xE2\xD7\x92z\xFA\xB6#O\xA4\xADuM\x8B|^\xEFub!\x83\xA5$o%\xE9b\xAE\xD9\xBEvLH\\x86\xFC\xD1L&ݘ\xBA\xBFf^p\x86az\xA8\xB5Wi\x85)\xF6c\x95\xDDf\x83\xB4\xA0\xE4ч\x97\x94\xEF\xC3\xE01a\x8E\xD4~5csG\xFA\x95^\x96\xA6XY0ca\x9F\xF1\xB99A\xAE\x82j\xE6\xA1\xDBv\xE4\xA8 \xFF\x8F
+\x{1F41B9}Y\xAC\xDDPk̋E\xC0p\x97\xA8\x88\xDDfX\xAC,r\xB8c\xF54\xE7]\x9B\xC42\xECH\xB9uBU\xDDqG\xC91\xEA\xEA7R<+\xE6*\x8E\x99\xBBٚw\xE0\xE5\x90\xDF(\xB2/\xAE\x97ި\xB7\x99s\xED%\x8A\x9D8O\xAF\xA3\xBF\xC6\xE2ok\x84\x88\xC7Y\xEBޱ\xEAH\xEAxW\xBD\xD7.ZG\xCDіP{\x98\xF6\x97g\xFF\x9A^\xD2?V+\xA4\xA9+endstream+endobj+8 0 obj+<</Color[20224 32768 65535]/Dimmed false/Editable true/Preview true/Printed true/Title(Layer 1)/Visible true>>+endobj+7 0 obj+<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>+endobj+9 0 obj+<</CreationDate(D:20141021130402-07'00')/Creator(Adobe Illustrator CC \(Macintosh\))/ModDate(D:20141021130402-07'00')/Producer(Adobe PDF library 11.00)/Title(share)>>+endobj+xref+0 10+0000000000 65535 f
+0000000016 00000 n
+0000000076 00000 n
+0000012017 00000 n
+0000000000 00000 f
+0000012068 00000 n
+0000012301 00000 n
+0000012890 00000 n
+0000012764 00000 n
+0000013002 00000 n
+trailer+<</Size 10/Root 1 0 R/Info 9 0 R/ID[<10653919F0F842C9B46E02AC68A34D9E><EE98C966F3AD4F9286B1727CFEE75677>]>>+startxref+13184+%%EOF
</ins></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2SharedAPIcWKActionMenuItemTypesh"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -36,7 +36,11 @@
</span><span class="cx"> kWKContextActionItemTagNoAction = 0,
</span><span class="cx"> kWKContextActionItemTagOpenLinkInDefaultBrowser,
</span><span class="cx"> kWKContextActionItemTagPreviewLink,
</span><del>- kWKContextActionItemTagAddLinkToSafariReadingList
</del><ins>+ kWKContextActionItemTagAddLinkToSafariReadingList,
+ kWKContextActionItemTagCopyImage,
+ kWKContextActionItemTagAddImageToPhotos,
+ kWKContextActionItemTagSaveImageToDownloads,
+ kWKContextActionItemTagShareImage
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> #ifdef __cplusplus
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2SharedmacActionMenuHitTestResultcppfromrev175075trunkSourceWebKit2SharedmacActionMenuHitTestResultcpp"></a>
<div class="copfile"><h4>Copied: branches/safari-600.3-branch/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp (from rev 175075, trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp) (0 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp         (rev 0)
+++ branches/safari-600.3-branch/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -0,0 +1,57 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ActionMenuHitTestResult.h"
+
+#include "ArgumentDecoder.h"
+#include "ArgumentEncoder.h"
+
+namespace WebKit {
+
+void ActionMenuHitTestResult::encode(IPC::ArgumentEncoder& encoder) const
+{
+ ShareableBitmap::Handle handle;
+
+ // FIXME: We should consider sharing the raw original resource data so that metadata and whatnot are preserved.
+ if (image)
+ image->createHandle(handle, SharedMemory::ReadOnly);
+
+ encoder << handle;
+}
+
+bool ActionMenuHitTestResult::decode(IPC::ArgumentDecoder& decoder, ActionMenuHitTestResult& actionMenuHitTestResult)
+{
+ ShareableBitmap::Handle handle;
+ if (!decoder.decode(handle))
+ return false;
+
+ if (!handle.isNull())
+ actionMenuHitTestResult.image = ShareableBitmap::create(handle, SharedMemory::ReadOnly);
+
+ return true;
+}
+
+} // namespace WebKit
</ins></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2SharedmacActionMenuHitTestResulthfromrev175075trunkSourceWebKit2SharedmacActionMenuHitTestResulth"></a>
<div class="copfile"><h4>Copied: branches/safari-600.3-branch/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.h (from rev 175075, trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.h) (0 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.h         (rev 0)
+++ branches/safari-600.3-branch/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.h        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -0,0 +1,47 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ActionMenuHitTestResult_h
+#define ActionMenuHitTestResult_h
+
+#include "ShareableBitmap.h"
+
+namespace IPC {
+class ArgumentDecoder;
+class ArgumentEncoder;
+}
+
+namespace WebKit {
+
+struct ActionMenuHitTestResult {
+ void encode(IPC::ArgumentEncoder&) const;
+ static bool decode(IPC::ArgumentDecoder&, ActionMenuHitTestResult&);
+
+ RefPtr<ShareableBitmap> image;
+};
+
+} // namespace WebKit
+
+#endif // ActionMenuHitTestResult_h
</ins></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #import "APIHistoryClient.h"
</span><ins>+#import "ActionMenuHitTestResult.h"
</ins><span class="cx"> #import "AttributedString.h"
</span><span class="cx"> #import "ColorSpaceData.h"
</span><span class="cx"> #import "DataReference.h"
</span><span class="lines">@@ -75,6 +76,9 @@
</span><span class="cx"> #import "WebProcessProxy.h"
</span><span class="cx"> #import "WebSystemInterface.h"
</span><span class="cx"> #import "_WKThumbnailViewInternal.h"
</span><ins>+#import <AppKit/NSSharingService.h>
+#import <ImageIO/ImageIO.h>
+#import <ImageKit/ImageKit.h>
</ins><span class="cx"> #import <QuartzCore/QuartzCore.h>
</span><span class="cx"> #import <WebCore/AXObjectCache.h>
</span><span class="cx"> #import <WebCore/ColorMac.h>
</span><span class="lines">@@ -91,6 +95,7 @@
</span><span class="cx"> #import <WebCore/PlatformScreen.h>
</span><span class="cx"> #import <WebCore/Region.h>
</span><span class="cx"> #import <WebCore/SharedBuffer.h>
</span><ins>+#import <WebCore/SoftLinking.h>
</ins><span class="cx"> #import <WebCore/TextAlternativeWithRange.h>
</span><span class="cx"> #import <WebCore/TextUndoInsertionMarkupMac.h>
</span><span class="cx"> #import <WebCore/WebActionDisablingCALayerDelegate.h>
</span><span class="lines">@@ -148,6 +153,14 @@
</span><span class="cx"> CGError CGSGetScreenRectForWindow(CGSConnectionID cid, CGSWindowID wid, CGRect *rect);
</span><span class="cx"> };
</span><span class="cx">
</span><ins>+// FIXME: This needs to be in an SPI header.
+@interface NSSharingServicePicker (WKNSSharingServicePickerDetails)
+- (NSMenu *)menu;
+@end
+
+SOFT_LINK_FRAMEWORK(ImageKit)
+SOFT_LINK_CLASS(ImageKit, IKSlideshow)
+
</ins><span class="cx"> using namespace WebKit;
</span><span class="cx"> using namespace WebCore;
</span><span class="cx">
</span><span class="lines">@@ -168,6 +181,13 @@
</span><span class="cx"> };
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+// FIXME: This and all action menu related code should move to its own file.
+enum class ActionMenuState {
+ None = 0,
+ Pending,
+ Ready
+};
+
</ins><span class="cx"> @interface WKViewData : NSObject {
</span><span class="cx"> @public
</span><span class="cx"> std::unique_ptr<PageClientImpl> _pageClient;
</span><span class="lines">@@ -263,6 +283,10 @@
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx"> _WKThumbnailView *_thumbnailView;
</span><span class="cx"> #endif
</span><ins>+
+ ActionMenuState _actionMenuState;
+ ActionMenuHitTestResult _actionMenuHitTestResult;
+ RetainPtr<NSSharingServicePicker> _actionMenuSharingServicePicker;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> @end
</span><span class="lines">@@ -3682,56 +3706,226 @@
</span><span class="cx"> [bubble showPreviewItem:[NSURL URLWithString:hitTestResult->absoluteLinkURL()] itemFrame:itemFrame];
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+- (RetainPtr<NSMenuItem>)_createActionMenuItemForTag:(uint32_t)tag
+{
+ SEL selector = nil;
+ NSString *title = nil;
+ NSImage *image = nil;
+
+ switch (tag) {
+ case kWKContextActionItemTagOpenLinkInDefaultBrowser:
+ selector = @selector(_openURLFromActionMenu:);
+ title = @"Open";
+ image = webKitBundleImageNamed(@"OpenInNewWindowTemplate");
+ break;
+
+ case kWKContextActionItemTagPreviewLink:
+ selector = @selector(_quickLookURLFromActionMenu:);
+ title = @"Preview";
+ image = [NSImage imageNamed:NSImageNameQuickLookTemplate];
+ break;
+
+ case kWKContextActionItemTagAddLinkToSafariReadingList:
+ selector = @selector(_addToReadingListFromActionMenu:);
+ title = @"Add to Safari Reading List";
+ image = [NSImage imageNamed:NSImageNameBookmarksTemplate];
+ break;
+
+ case kWKContextActionItemTagCopyImage:
+ selector = @selector(_copyImage:);
+ title = @"Copy";
+ image = webKitBundleImageNamed(@"CopyImageTemplate");
+ break;
+
+ case kWKContextActionItemTagAddImageToPhotos:
+ selector = @selector(_addImageToPhotos:);
+ title = @"Add to Photos";
+ image = webKitBundleImageNamed(@"AddImageToPhotosTemplate");
+ break;
+
+ case kWKContextActionItemTagSaveImageToDownloads:
+ selector = @selector(_saveImageToDownloads:);
+ title = @"Save to Downloads";
+ image = webKitBundleImageNamed(@"SaveImageToDownloadsTemplate");
+ break;
+
+ case kWKContextActionItemTagShareImage:
+ title = @"Share";
+ image = webKitBundleImageNamed(@"ShareImageTemplate");
+ break;
+
+ default:
+ ASSERT_NOT_REACHED();
+ return nil;
+ }
+
+ RetainPtr<NSMenuItem> item = adoptNS([[NSMenuItem alloc] initWithTitle:title action:selector keyEquivalent:@""]);
+ [item setImage:image];
+ [item setTarget:self];
+ [item setTag:tag];
+ return item;
+}
+
+static NSImage *webKitBundleImageNamed(NSString *name)
+{
+ return [[NSBundle bundleForClass:[WKView class]] imageForResource:name];
+}
+
</ins><span class="cx"> - (NSArray *)_defaultMenuItemsForLink
</span><span class="cx"> {
</span><del>- NSMutableArray *menuItems = [NSMutableArray array];
-
</del><span class="cx"> WebHitTestResult* hitTestResult = _data->_page->activeActionMenuHitTestResult();
</span><span class="cx"> if (!hitTestResult)
</span><del>- return menuItems;
</del><ins>+ return @[ ];
</ins><span class="cx">
</span><span class="cx"> if (!WebCore::protocolIsInHTTPFamily(hitTestResult->absoluteLinkURL()))
</span><del>- return menuItems;
</del><ins>+ return @[ ];
</ins><span class="cx">
</span><del>- RetainPtr<NSMenuItem> openLinkItem = adoptNS([[NSMenuItem alloc] initWithTitle:@"Open" action:@selector(_openURLFromActionMenu:) keyEquivalent:@""]);
- [openLinkItem setImage:[[NSBundle bundleForClass:[WKView class]] imageForResource:@"OpenInNewWindowTemplate"]];
- [openLinkItem setTarget:self];
- [openLinkItem setTag:kWKContextActionItemTagOpenLinkInDefaultBrowser];
- [menuItems addObject:openLinkItem.get()];
</del><ins>+ RetainPtr<NSMenuItem> openLinkItem = [self _createActionMenuItemForTag:kWKContextActionItemTagOpenLinkInDefaultBrowser];
+ RetainPtr<NSMenuItem> previewLinkItem = [self _createActionMenuItemForTag:kWKContextActionItemTagPreviewLink];
+ RetainPtr<NSMenuItem> readingListItem = [self _createActionMenuItemForTag:kWKContextActionItemTagAddLinkToSafariReadingList];
</ins><span class="cx">
</span><del>- RetainPtr<NSMenuItem> previewLinkItem = adoptNS([[NSMenuItem alloc] initWithTitle:@"Preview" action:@selector(_quickLookURLFromActionMenu:) keyEquivalent:@""]);
- [previewLinkItem setImage:[NSImage imageNamed:NSImageNameQuickLookTemplate]];
- [previewLinkItem setTarget:self];
- [previewLinkItem setTag:kWKContextActionItemTagPreviewLink];
- [menuItems addObject:previewLinkItem.get()];
</del><ins>+ // FIXME: The separator item is required to work around <rdar://18684207>.
+ return @[openLinkItem.get(), previewLinkItem.get(), [NSMenuItem separatorItem], readingListItem.get()];
+}
</ins><span class="cx">
</span><del>- RetainPtr<NSMenuItem> readingListItem = adoptNS([[NSMenuItem alloc] initWithTitle:@"Add to Safari Reading List" action:@selector(_addToReadingListFromActionMenu:) keyEquivalent:@""]);
- [readingListItem setImage:[NSImage imageNamed:NSImageNameBookmarksTemplate]];
- [readingListItem setTarget:self];
- [readingListItem setTag:kWKContextActionItemTagAddLinkToSafariReadingList];
- [menuItems addObject:readingListItem.get()];
</del><ins>+- (void)_copyImage:(id)sender
+{
+ WebHitTestResult* hitTestResult = _data->_page->activeActionMenuHitTestResult();
+ if (!hitTestResult)
+ return;
</ins><span class="cx">
</span><del>- // FIXME: Required to work around <rdar://18684207>.
- [menuItems addObject:[NSMenuItem separatorItem]];
</del><ins>+ RefPtr<ShareableBitmap> bitmap = _data->_actionMenuHitTestResult.image;
+ if (!bitmap)
+ return;
</ins><span class="cx">
</span><del>- return menuItems;
</del><ins>+ RetainPtr<CGImageRef> image = bitmap->makeCGImage();
+ RetainPtr<NSImage> nsImage = adoptNS([[NSImage alloc] initWithCGImage:image.get() size:NSZeroSize]);
+ [[NSPasteboard generalPasteboard] clearContents];
+ [[NSPasteboard generalPasteboard] writeObjects:@[ nsImage.get() ]];
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+- (void)_saveImageToDownloads:(id)sender
+{
+ WebHitTestResult* hitTestResult = _data->_page->activeActionMenuHitTestResult();
+ if (!hitTestResult)
+ return;
+
+ _data->_page->process().context().download(_data->_page.get(), URL(URL(), hitTestResult->absoluteImageURL()));
+}
+
+static NSString *temporaryPhotosDirectoryPath()
+{
+ static NSString *temporaryPhotosDirectoryPath;
+
+ if (!temporaryPhotosDirectoryPath) {
+ NSString *temporaryDirectoryTemplate = [NSTemporaryDirectory() stringByAppendingPathComponent:@"WebKitPhotos-XXXXXX"];
+ CString templateRepresentation = [temporaryDirectoryTemplate fileSystemRepresentation];
+
+ if (mkdtemp(templateRepresentation.mutableData()))
+ temporaryPhotosDirectoryPath = [[[NSFileManager defaultManager] stringWithFileSystemRepresentation:templateRepresentation.data() length:templateRepresentation.length()] copy];
+ }
+
+ return temporaryPhotosDirectoryPath;
+}
+
+static NSString *pathToPhotoOnDisk(NSString *suggestedFilename)
+{
+ NSString *photoDirectoryPath = temporaryPhotosDirectoryPath();
+ if (!photoDirectoryPath) {
+ WTFLogAlways("Cannot create temporary photo download directory.");
+ return nil;
+ }
+
+ NSString *path = [photoDirectoryPath stringByAppendingPathComponent:suggestedFilename];
+
+ NSFileManager *fileManager = [NSFileManager defaultManager];
+ if ([fileManager fileExistsAtPath:path]) {
+ NSString *pathTemplatePrefix = [photoDirectoryPath stringByAppendingPathComponent:@"XXXXXX-"];
+ NSString *pathTemplate = [pathTemplatePrefix stringByAppendingString:suggestedFilename];
+ CString pathTemplateRepresentation = [pathTemplate fileSystemRepresentation];
+
+ int fd = mkstemps(pathTemplateRepresentation.mutableData(), pathTemplateRepresentation.length() - strlen([pathTemplatePrefix fileSystemRepresentation]) + 1);
+ if (fd < 0) {
+ WTFLogAlways("Cannot create photo file in the temporary directory (%@).", suggestedFilename);
+ return nil;
+ }
+
+ close(fd);
+ path = [fileManager stringWithFileSystemRepresentation:pathTemplateRepresentation.data() length:pathTemplateRepresentation.length()];
+ }
+
+ return path;
+}
+
+- (void)_addImageToPhotos:(id)sender
+{
+ // FIXME: We shouldn't even add the button if this is the case, for now.
+ if (![getIKSlideshowClass() canExportToApplication:(@"com.apple.Photos")])
+ return;
+
+ WebHitTestResult* hitTestResult = _data->_page->activeActionMenuHitTestResult();
+ if (!hitTestResult)
+ return;
+
+ RefPtr<ShareableBitmap> bitmap = _data->_actionMenuHitTestResult.image;
+ if (!bitmap)
+ return;
+ RetainPtr<CGImageRef> image = bitmap->makeCGImage();
+
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+ NSString * const suggestedFilename = @"image.jpg";
+
+ NSString *filePath = pathToPhotoOnDisk(suggestedFilename);
+ if (!filePath)
+ return;
+
+ NSURL *fileURL = [NSURL fileURLWithPath:filePath];
+ auto dest = adoptCF(CGImageDestinationCreateWithURL((CFURLRef)fileURL, kUTTypeJPEG, 1, nullptr));
+ CGImageDestinationAddImage(dest.get(), image.get(), nullptr);
+ CGImageDestinationFinalize(dest.get());
+
+ dispatch_async(dispatch_get_main_queue(), ^{
+ // This API provides no way to report failure, but if 18420778 is fixed so that it does, we should handle this.
+ [getIKSlideshowClass() exportSlideshowItem:filePath toApplication:(@"com.apple.Photos")];
+ });
+ });
+}
+
+- (NSArray *)_defaultMenuItemsForImage
+{
+ WebHitTestResult* hitTestResult = _data->_page->activeActionMenuHitTestResult();
+ if (!hitTestResult)
+ return @[ ];
+
+ RetainPtr<NSMenuItem> copyImageItem = [self _createActionMenuItemForTag:kWKContextActionItemTagCopyImage];
+ RetainPtr<NSMenuItem> addToPhotosItem = [self _createActionMenuItemForTag:kWKContextActionItemTagAddImageToPhotos];
+ RetainPtr<NSMenuItem> saveToDownloadsItem = [self _createActionMenuItemForTag:kWKContextActionItemTagSaveImageToDownloads];
+ RetainPtr<NSMenuItem> shareItem = [self _createActionMenuItemForTag:kWKContextActionItemTagShareImage];
+
+ if (RefPtr<ShareableBitmap> bitmap = _data->_actionMenuHitTestResult.image) {
+ RetainPtr<CGImageRef> image = bitmap->makeCGImage();
+ RetainPtr<NSImage> nsImage = adoptNS([[NSImage alloc] initWithCGImage:image.get() size:NSZeroSize]);
+ _data->_actionMenuSharingServicePicker = adoptNS([[NSSharingServicePicker alloc] initWithItems:@[ nsImage.get() ]]);
+ [shareItem setSubmenu:[_data->_actionMenuSharingServicePicker menu]];
+ }
+
+ return @[copyImageItem.get(), addToPhotosItem.get(), saveToDownloadsItem.get(), shareItem.get()];
+}
+
</ins><span class="cx"> - (NSArray *)_defaultMenuItems
</span><span class="cx"> {
</span><span class="cx"> if (WebHitTestResult* hitTestResult = _data->_page->activeActionMenuHitTestResult()) {
</span><ins>+ if (!hitTestResult->absoluteImageURL().isEmpty())
+ return [self _defaultMenuItemsForImage];
</ins><span class="cx"> if (!hitTestResult->absoluteLinkURL().isEmpty())
</span><span class="cx"> return [self _defaultMenuItemsForLink];
</span><span class="cx"> }
</span><span class="cx">
</span><del>- return @[];
</del><ins>+ return @[ ];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)prepareForMenu:(NSMenu *)menu withEvent:(NSEvent *)event
</del><ins>+- (void)_updateActionMenu
</ins><span class="cx"> {
</span><del>- if (menu != self.actionMenu)
- return;
-
</del><span class="cx"> [[self actionMenu] removeAllItems];
</span><span class="cx">
</span><span class="cx"> NSArray *menuItems = [self _actionMenuItemsForHitTestResult:toAPI(_data->_page->activeActionMenuHitTestResult()) defaultActionMenuItems:[self _defaultMenuItems]];
</span><span class="lines">@@ -3740,6 +3934,53 @@
</span><span class="cx"> [[self actionMenu] addItem:item];
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+- (void)prepareForMenu:(NSMenu *)menu withEvent:(NSEvent *)event
+{
+ if (menu != self.actionMenu)
+ return;
+
+ [self _updateActionMenu];
+
+ _data->_page->performActionMenuHitTestAtLocation([self convertPoint:[event locationInWindow] fromView:nil]);
+
+ _data->_actionMenuState = ActionMenuState::Pending;
+}
+
+- (void)_didPerformActionMenuHitTest:(const ActionMenuHitTestResult&)hitTestResult
+{
+ // FIXME: This needs to use the WebKit2 callback mechanism to avoid out-of-order replies.
+ _data->_actionMenuState = ActionMenuState::Ready;
+ _data->_actionMenuHitTestResult = hitTestResult;
+}
+
+- (void)willOpenMenu:(NSMenu *)menu withEvent:(NSEvent *)event
+{
+ if (menu != self.actionMenu)
+ return;
+
+ ASSERT(_data->_actionMenuState != ActionMenuState::None);
+
+ // FIXME: We need to be able to cancel this if the menu goes away.
+ // FIXME: Connection can be null if the process is closed; we should clean up better in that case.
+ if (_data->_actionMenuState == ActionMenuState::Pending) {
+ if (auto* connection = _data->_page->process().connection())
+ connection->waitForAndDispatchImmediately<Messages::WebPageProxy::DidPerformActionMenuHitTest>(_data->_page->pageID(), std::chrono::milliseconds(500));
+ }
+
+ if (_data->_actionMenuState == ActionMenuState::Ready)
+ [self _updateActionMenu];
+}
+
+- (void)didCloseMenu:(NSMenu *)menu withEvent:(NSEvent *)event
+{
+ if (menu != self.actionMenu)
+ return;
+
+ _data->_actionMenuState = ActionMenuState::None;
+ _data->_actionMenuHitTestResult = ActionMenuHitTestResult();
+ _data->_actionMenuSharingServicePicker = nil;
+}
+
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> @implementation WKView (Private)
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessAPImacWKViewInternalh"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -50,6 +50,7 @@
</span><span class="cx"> class LayerTreeContext;
</span><span class="cx"> class ViewSnapshot;
</span><span class="cx"> class WebContext;
</span><ins>+struct ActionMenuHitTestResult;
</ins><span class="cx"> struct ColorSpaceData;
</span><span class="cx"> struct EditorState;
</span><span class="cx"> struct WebPageConfiguration;
</span><span class="lines">@@ -124,4 +125,6 @@
</span><span class="cx"> @property (readonly) WKFullScreenWindowController *_fullScreenWindowController;
</span><span class="cx"> - (void)_closeFullScreenWindowController;
</span><span class="cx">
</span><ins>+- (void)_didPerformActionMenuHitTest:(const WebKit::ActionMenuHitTestResult&)hitTestResult;
+
</ins><span class="cx"> @end
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessPageClienth"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/PageClient.h (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/PageClient.h        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/PageClient.h        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -61,6 +61,7 @@
</span><span class="cx"> class WebContextMenuProxy;
</span><span class="cx"> class WebEditCommandProxy;
</span><span class="cx"> class WebPopupMenuProxy;
</span><ins>+struct ActionMenuHitTestResult;
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><span class="cx"> class NativeWebTouchEvent;
</span><span class="lines">@@ -308,6 +309,8 @@
</span><span class="cx"> virtual void didFirstVisuallyNonEmptyLayoutForMainFrame() = 0;
</span><span class="cx"> virtual void didFinishLoadForMainFrame() = 0;
</span><span class="cx"> virtual void didSameDocumentNavigationForMainFrame(SameDocumentNavigationType) = 0;
</span><ins>+
+ virtual void didPerformActionMenuHitTest(const ActionMenuHitTestResult&) = 0;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -5195,4 +5195,14 @@
</span><span class="cx"> m_pageClient.removeNavigationGestureSnapshot();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void WebPageProxy::performActionMenuHitTestAtLocation(FloatPoint point)
+{
+ m_process->send(Messages::WebPage::PerformActionMenuHitTestAtLocation(point), m_pageID);
+}
+
+void WebPageProxy::didPerformActionMenuHitTest(const ActionMenuHitTestResult& result)
+{
+ m_pageClient.didPerformActionMenuHitTest(result);
+}
+
</ins><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.h (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.h        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.h        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -167,6 +167,7 @@
</span><span class="cx"> class WebProcessProxy;
</span><span class="cx"> class WebUserContentControllerProxy;
</span><span class="cx"> class WebWheelEvent;
</span><ins>+struct ActionMenuHitTestResult;
</ins><span class="cx"> struct AttributedString;
</span><span class="cx"> struct ColorSpaceData;
</span><span class="cx"> struct DictionaryPopupInfo;
</span><span class="lines">@@ -912,6 +913,7 @@
</span><span class="cx"> void removeNavigationGestureSnapshot();
</span><span class="cx">
</span><span class="cx"> WebHitTestResult* activeActionMenuHitTestResult() const { return m_activeActionMenuHitTestResult.get(); }
</span><ins>+ void performActionMenuHitTestAtLocation(WebCore::FloatPoint);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> WebPageProxy(PageClient&, WebProcessProxy&, uint64_t pageID, const WebPageConfiguration&);
</span><span class="lines">@@ -1289,6 +1291,8 @@
</span><span class="cx"> void viewDidLeaveWindow();
</span><span class="cx"> void viewDidEnterWindow();
</span><span class="cx">
</span><ins>+ void didPerformActionMenuHitTest(const ActionMenuHitTestResult&);
+
</ins><span class="cx"> PageClient& m_pageClient;
</span><span class="cx"> std::unique_ptr<API::LoaderClient> m_loaderClient;
</span><span class="cx"> std::unique_ptr<API::PolicyClient> m_policyClient;
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessWebPageProxymessagesin"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -409,4 +409,8 @@
</span><span class="cx"> #if USE(CONTENT_FILTERING)
</span><span class="cx"> ContentFilterDidBlockLoadForFrame(WebCore::ContentFilter contentFilter, uint64_t frameID)
</span><span class="cx"> #endif
</span><ins>+
+ IsPlayingAudioDidChange(bool newIsPlayingAudio)
+
+ DidPerformActionMenuHitTest(WebKit::ActionMenuHitTestResult result)
</ins><span class="cx"> }
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessiosPageClientImplIOSh"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -179,6 +179,8 @@
</span><span class="cx"> virtual void didFinishLoadForMainFrame() override;
</span><span class="cx"> virtual void didSameDocumentNavigationForMainFrame(SameDocumentNavigationType) override;
</span><span class="cx">
</span><ins>+ virtual void didPerformActionMenuHitTest(const ActionMenuHitTestResult&) override;
+
</ins><span class="cx"> WKContentView *m_contentView;
</span><span class="cx"> WKWebView *m_webView;
</span><span class="cx"> RetainPtr<WKEditorUndoTargetObjC> m_undoTarget;
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessiosPageClientImplIOSmm"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -694,6 +694,10 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void PageClientImpl::didPerformActionMenuHitTest(const ActionMenuHitTestResult&)
+{
+}
+
</ins><span class="cx"> } // namespace WebKit
</span><span class="cx">
</span><span class="cx"> #endif // PLATFORM(IOS)
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessmacPageClientImplh"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.h (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.h        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.h        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -186,6 +186,8 @@
</span><span class="cx"> virtual void didSameDocumentNavigationForMainFrame(SameDocumentNavigationType) override;
</span><span class="cx"> virtual void removeNavigationGestureSnapshot() override;
</span><span class="cx">
</span><ins>+ virtual void didPerformActionMenuHitTest(const ActionMenuHitTestResult&) override;
+
</ins><span class="cx"> WKView *m_wkView;
</span><span class="cx"> WKWebView *m_webView;
</span><span class="cx"> RetainPtr<WKEditorUndoTargetObjC> m_undoTarget;
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2UIProcessmacPageClientImplmm"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.mm (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.mm        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.mm        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -750,6 +750,11 @@
</span><span class="cx"> return [windowContentLayer convertRect:layer.bounds fromLayer:layer];
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void PageClientImpl::didPerformActionMenuHitTest(const ActionMenuHitTestResult& result)
+{
+ [m_wkView _didPerformActionMenuHitTest:result];
+}
+
</ins><span class="cx"> } // namespace WebKit
</span><span class="cx">
</span><span class="cx"> #endif // PLATFORM(MAC)
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -579,6 +579,8 @@
</span><span class="cx">                 2D2ADF0916362DD500197E47 /* PDFPluginTextAnnotation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D2ADF0616362DC700197E47 /* PDFPluginTextAnnotation.mm */; };
</span><span class="cx">                 2D2ADF0B16362DDB00197E47 /* PDFPluginAnnotation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D2ADF031636243500197E47 /* PDFPluginAnnotation.mm */; };
</span><span class="cx">                 2D2ADF1016364D8200197E47 /* PDFPluginChoiceAnnotation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D2ADF0E16364D8200197E47 /* PDFPluginChoiceAnnotation.mm */; };
</span><ins>+                2D353B1219F8305D000EEACD /* ActionMenuHitTestResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D353B1019F8305D000EEACD /* ActionMenuHitTestResult.cpp */; };
+                2D353B1319F8305D000EEACD /* ActionMenuHitTestResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D353B1119F8305D000EEACD /* ActionMenuHitTestResult.h */; };
</ins><span class="cx">                 2D3EF4421917646300034184 /* WebMemoryPressureHandlerIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D3EF4401917646300034184 /* WebMemoryPressureHandlerIOS.mm */; };
</span><span class="cx">                 2D3EF4431917646300034184 /* WebMemoryPressureHandlerIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D3EF4411917646300034184 /* WebMemoryPressureHandlerIOS.h */; };
</span><span class="cx">                 2D429BFD1721E2C700EC681F /* PDFPluginPasswordField.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D429BFB1721E2BA00EC681F /* PDFPluginPasswordField.mm */; };
</span><span class="lines">@@ -1097,6 +1099,10 @@
</span><span class="cx">                 935EEBA2127761D0003322B8 /* InjectedBundleBackForwardList.h in Headers */ = {isa = PBXBuildFile; fileRef = 935EEB901277615D003322B8 /* InjectedBundleBackForwardList.h */; };
</span><span class="cx">                 935EEBA3127761D3003322B8 /* InjectedBundleBackForwardListItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 935EEB911277615D003322B8 /* InjectedBundleBackForwardListItem.cpp */; };
</span><span class="cx">                 935EEBA4127761D6003322B8 /* InjectedBundleBackForwardListItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 935EEB921277615D003322B8 /* InjectedBundleBackForwardListItem.h */; };
</span><ins>+                9369104219F711810021D470 /* CopyImageTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 9369104119F711810021D470 /* CopyImageTemplate.pdf */; };
+                9369104419F711910021D470 /* AddImageToPhotosTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 9369104319F711910021D470 /* AddImageToPhotosTemplate.pdf */; };
+                9369104619F7119E0021D470 /* SaveImageToDownloadsTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 9369104519F7119E0021D470 /* SaveImageToDownloadsTemplate.pdf */; };
+                9369104819F711A70021D470 /* ShareImageTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 9369104719F711A70021D470 /* ShareImageTemplate.pdf */; };
</ins><span class="cx">                 9391F2CA121B679A00EBF7E8 /* WebFrameNetworkingContext.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9391F284121B38F500EBF7E8 /* WebFrameNetworkingContext.mm */; };
</span><span class="cx">                 9391F2CB121B67AD00EBF7E8 /* WebFrameNetworkingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 9391F283121B38F500EBF7E8 /* WebFrameNetworkingContext.h */; };
</span><span class="cx">                 939AE7661316E99C00AE06A6 /* WebCoreArgumentCoders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 939AE7651316E99C00AE06A6 /* WebCoreArgumentCoders.cpp */; };
</span><span class="lines">@@ -2583,6 +2589,8 @@
</span><span class="cx">                 2D2ADF0C16363DEC00197E47 /* PDFLayerControllerDetails.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PDFLayerControllerDetails.h; path = PDF/PDFLayerControllerDetails.h; sourceTree = "<group>"; };
</span><span class="cx">                 2D2ADF0D16364D8200197E47 /* PDFPluginChoiceAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PDFPluginChoiceAnnotation.h; path = PDF/PDFPluginChoiceAnnotation.h; sourceTree = "<group>"; };
</span><span class="cx">                 2D2ADF0E16364D8200197E47 /* PDFPluginChoiceAnnotation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PDFPluginChoiceAnnotation.mm; path = PDF/PDFPluginChoiceAnnotation.mm; sourceTree = "<group>"; };
</span><ins>+                2D353B1019F8305D000EEACD /* ActionMenuHitTestResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ActionMenuHitTestResult.cpp; sourceTree = "<group>"; };
+                2D353B1119F8305D000EEACD /* ActionMenuHitTestResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActionMenuHitTestResult.h; sourceTree = "<group>"; };
</ins><span class="cx">                 2D3EF4401917646300034184 /* WebMemoryPressureHandlerIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WebMemoryPressureHandlerIOS.mm; path = ios/WebMemoryPressureHandlerIOS.mm; sourceTree = "<group>"; };
</span><span class="cx">                 2D3EF4411917646300034184 /* WebMemoryPressureHandlerIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebMemoryPressureHandlerIOS.h; path = ios/WebMemoryPressureHandlerIOS.h; sourceTree = "<group>"; };
</span><span class="cx">                 2D429BFA1721E2BA00EC681F /* PDFPluginPasswordField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PDFPluginPasswordField.h; path = PDF/PDFPluginPasswordField.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -3157,6 +3165,10 @@
</span><span class="cx">                 935EEB961277616D003322B8 /* WKBundleBackForwardList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleBackForwardList.h; sourceTree = "<group>"; };
</span><span class="cx">                 935EEB971277616D003322B8 /* WKBundleBackForwardListItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKBundleBackForwardListItem.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 935EEB981277616D003322B8 /* WKBundleBackForwardListItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleBackForwardListItem.h; sourceTree = "<group>"; };
</span><ins>+                9369104119F711810021D470 /* CopyImageTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = CopyImageTemplate.pdf; path = Resources/CopyImageTemplate.pdf; sourceTree = "<group>"; };
+                9369104319F711910021D470 /* AddImageToPhotosTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = AddImageToPhotosTemplate.pdf; path = Resources/AddImageToPhotosTemplate.pdf; sourceTree = "<group>"; };
+                9369104519F7119E0021D470 /* SaveImageToDownloadsTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = SaveImageToDownloadsTemplate.pdf; path = Resources/SaveImageToDownloadsTemplate.pdf; sourceTree = "<group>"; };
+                9369104719F711A70021D470 /* ShareImageTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = ShareImageTemplate.pdf; path = Resources/ShareImageTemplate.pdf; sourceTree = "<group>"; };
</ins><span class="cx">                 9391F283121B38F500EBF7E8 /* WebFrameNetworkingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFrameNetworkingContext.h; sourceTree = "<group>"; };
</span><span class="cx">                 9391F284121B38F500EBF7E8 /* WebFrameNetworkingContext.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebFrameNetworkingContext.mm; sourceTree = "<group>"; };
</span><span class="cx">                 939AE7651316E99C00AE06A6 /* WebCoreArgumentCoders.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreArgumentCoders.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -4004,6 +4016,8 @@
</span><span class="cx">                                 A78CCDD5193AC9E3005ECC25 /* SandboxProfiles */,
</span><span class="cx">                                 7CB16FE11724B9B5007A0A95 /* PlugInSandboxProfiles */,
</span><span class="cx">                                 6D8A91A511F0EFD100DD01FE /* com.apple.WebProcess.sb.in */,
</span><ins>+                                9369104319F711910021D470 /* AddImageToPhotosTemplate.pdf */,
+                                9369104119F711810021D470 /* CopyImageTemplate.pdf */,
</ins><span class="cx">                                 1CBC945D16515ED200D68AAE /* DockBottom.pdf */,
</span><span class="cx">                                 1CB75C931701E880009F809F /* DockRight.pdf */,
</span><span class="cx">                                 1C8AE75F1992F62F00ABF6EC /* DockBottomLegacy.pdf */,
</span><span class="lines">@@ -4011,6 +4025,8 @@
</span><span class="cx">                                 8DC2EF5A0486A6940098B216 /* Info.plist */,
</span><span class="cx">                                 089C1666FE841158C02AAC07 /* InfoPlist.strings */,
</span><span class="cx">                                 9348427C19F19BD00009D5AE /* OpenInNewWindowTemplate.pdf */,
</span><ins>+                                9369104519F7119E0021D470 /* SaveImageToDownloadsTemplate.pdf */,
+                                9369104719F711A70021D470 /* ShareImageTemplate.pdf */,
</ins><span class="cx">                                 E1D26A4C1759634E0095BFD1 /* WebContentProcess.xib */,
</span><span class="cx">                                 E133FD891423DD7F00FC7BFB /* WebKit.icns */,
</span><span class="cx">                         );
</span><span class="lines">@@ -6109,6 +6125,8 @@
</span><span class="cx">                 BC111B5A112F628200337BAB /* mac */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                2D353B1019F8305D000EEACD /* ActionMenuHitTestResult.cpp */,
+                                2D353B1119F8305D000EEACD /* ActionMenuHitTestResult.h */,
</ins><span class="cx">                                 E179FD9B134D38060015B883 /* ArgumentCodersMac.h */,
</span><span class="cx">                                 E179FD9E134D38250015B883 /* ArgumentCodersMac.mm */,
</span><span class="cx">                                 E1A31731134CEA6C007C9A4F /* AttributedString.h */,
</span><span class="lines">@@ -7365,6 +7383,7 @@
</span><span class="cx">                                 BC2D021712AC41CB00E732A3 /* SameDocumentNavigationType.h in Headers */,
</span><span class="cx">                                 1AAB4A8D1296F0A20023952F /* SandboxExtension.h in Headers */,
</span><span class="cx">                                 1AB8A1F218400B6200E9AE69 /* WKPageUIClient.h in Headers */,
</span><ins>+                                2D353B1319F8305D000EEACD /* ActionMenuHitTestResult.h in Headers */,
</ins><span class="cx">                                 E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */,
</span><span class="cx">                                 51D130541382EAC000351EDD /* SecItemRequestData.h in Headers */,
</span><span class="cx">                                 51D130561382EAC000351EDD /* SecItemResponseData.h in Headers */,
</span><span class="lines">@@ -8308,11 +8327,15 @@
</span><span class="cx">                         isa = PBXResourcesBuildPhase;
</span><span class="cx">                         buildActionMask = 2147483647;
</span><span class="cx">                         files = (
</span><ins>+                                9369104619F7119E0021D470 /* SaveImageToDownloadsTemplate.pdf in Resources */,
</ins><span class="cx">                                 E17AE2C316B9C63A001C42F1 /* com.apple.WebKit.NetworkProcess.sb in Resources */,
</span><span class="cx">                                 E11D35AE16B63D1B006D23D7 /* com.apple.WebProcess.sb in Resources */,
</span><ins>+                                9369104419F711910021D470 /* AddImageToPhotosTemplate.pdf in Resources */,
</ins><span class="cx">                                 1CBC945E16515ED200D68AAE /* DockBottom.pdf in Resources */,
</span><span class="cx">                                 E115C716190F8A2500ECC516 /* com.apple.WebKit.Databases.sb in Resources */,
</span><span class="cx">                                 9348427D19F19BD10009D5AE /* OpenInNewWindowTemplate.pdf in Resources */,
</span><ins>+                                9369104219F711810021D470 /* CopyImageTemplate.pdf in Resources */,
+                                9369104819F711A70021D470 /* ShareImageTemplate.pdf in Resources */,
</ins><span class="cx">                                 1CB75C941701E880009F809F /* DockRight.pdf in Resources */,
</span><span class="cx">                                 1C8AE7611992F63A00ABF6EC /* DockBottomLegacy.pdf in Resources */,
</span><span class="cx">                                 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */,
</span><span class="lines">@@ -9284,6 +9307,7 @@
</span><span class="cx">                                 1AE00D5C182DADE100087DD7 /* KeyedEncoder.cpp in Sources */,
</span><span class="cx">                                 1AC8702E130B49A2002C1257 /* WebPluginSiteDataManager.cpp in Sources */,
</span><span class="cx">                                 BC5744EF12638FB3006F0F12 /* WebPopupItem.cpp in Sources */,
</span><ins>+                                2D353B1219F8305D000EEACD /* ActionMenuHitTestResult.cpp in Sources */,
</ins><span class="cx">                                 0F931C1D18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.mm in Sources */,
</span><span class="cx">                                 D3B9484611FF4B6500032B39 /* WebPopupMenu.cpp in Sources */,
</span><span class="cx">                                 1AAF08A1192681D100B6390C /* WebUserContentControllerProxy.cpp in Sources */,
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "WebPage.h"
</span><span class="cx">
</span><ins>+#include "ActionMenuHitTestResult.h"
</ins><span class="cx"> #include "Arguments.h"
</span><span class="cx"> #include "DataReference.h"
</span><span class="cx"> #include "DragControllerAction.h"
</span><span class="lines">@@ -4810,4 +4811,31 @@
</span><span class="cx"> send(Messages::WebPageProxy::WillChangeCurrentHistoryItemForMainFrame());
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void WebPage::performActionMenuHitTestAtLocation(WebCore::FloatPoint locationInViewCooordinates)
+{
+ layoutIfNeeded();
+
+ MainFrame& mainFrame = corePage()->mainFrame();
+ if (!mainFrame.view() || !mainFrame.view()->renderView()) {
+ send(Messages::WebPageProxy::DidPerformActionMenuHitTest(ActionMenuHitTestResult()));
+ return;
+ }
+
+ RenderView& mainRenderView = *mainFrame.view()->renderView();
+
+ HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::AllowChildFrameContent | HitTestRequest::IgnoreClipping | HitTestRequest::DisallowShadowContent);
+
+ HitTestResult hitTestResult(mainFrame.view()->rootViewToContents(roundedIntPoint(locationInViewCooordinates)));
+ mainRenderView.hitTest(request, hitTestResult);
+
+ ActionMenuHitTestResult actionMenuResult;
+
+ if (Image* image = hitTestResult.image()) {
+ actionMenuResult.image = ShareableBitmap::createShareable(IntSize(image->size()), ShareableBitmap::SupportsAlpha);
+ actionMenuResult.image->createGraphicsContext()->drawImage(image, ColorSpaceDeviceRGB, IntPoint());
+ }
+
+ send(Messages::WebPageProxy::DidPerformActionMenuHitTest(actionMenuResult));
+}
+
</ins><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2WebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.h (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.h        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.h        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -1048,6 +1048,8 @@
</span><span class="cx">
</span><span class="cx"> void reportUsedFeatures();
</span><span class="cx">
</span><ins>+ void performActionMenuHitTestAtLocation(WebCore::FloatPoint);
+
</ins><span class="cx"> uint64_t m_pageID;
</span><span class="cx">
</span><span class="cx"> std::unique_ptr<WebCore::Page> m_page;
</span></span></pre></div>
<a id="branchessafari6003branchSourceWebKit2WebProcessWebPageWebPagemessagesin"></a>
<div class="modfile"><h4>Modified: branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (175123 => 175124)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2014-10-23 16:14:25 UTC (rev 175123)
+++ branches/safari-600.3-branch/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2014-10-23 16:19:53 UTC (rev 175124)
</span><span class="lines">@@ -382,4 +382,5 @@
</span><span class="cx"> GetBytecodeProfile(uint64_t callbackID)
</span><span class="cx">
</span><span class="cx"> TakeSnapshot(WebCore::IntRect snapshotRect, WebCore::IntSize bitmapSize, uint32_t options, uint64_t callbackID)
</span><ins>+ PerformActionMenuHitTestAtLocation(WebCore::FloatPoint location)
</ins><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>