<!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>[175075] trunk/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/175075">175075</a></dd>
<dt>Author</dt> <dd>timothy_horton@apple.com</dd>
<dt>Date</dt> <dd>2014-10-22 16:48:38 -0700 (Wed, 22 Oct 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add action menu support for images
https://bugs.webkit.org/show_bug.cgi?id=137987
&lt;rdar://problem/18717767&gt;

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.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2Scriptswebkitmessagespy">trunk/Source/WebKit2/Scripts/webkit/messages.py</a></li>
<li><a href="#trunkSourceWebKit2SharedAPIcWKActionMenuItemTypesh">trunk/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewmm">trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewInternalh">trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPageClienth">trunk/Source/WebKit2/UIProcess/PageClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxyh">trunk/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxymessagesin">trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosPageClientImplIOSh">trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosPageClientImplIOSmm">trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacPageClientImplh">trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacPageClientImplmm">trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.mm</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPageh">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagemessagesin">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ResourcesAddImageToPhotosTemplatepdf">trunk/Source/WebKit2/Resources/AddImageToPhotosTemplate.pdf</a></li>
<li><a href="#trunkSourceWebKit2ResourcesCopyImageTemplatepdf">trunk/Source/WebKit2/Resources/CopyImageTemplate.pdf</a></li>
<li><a href="#trunkSourceWebKit2ResourcesSaveImageToDownloadsTemplatepdf">trunk/Source/WebKit2/Resources/SaveImageToDownloadsTemplate.pdf</a></li>
<li><a href="#trunkSourceWebKit2ResourcesShareImageTemplatepdf">trunk/Source/WebKit2/Resources/ShareImageTemplate.pdf</a></li>
<li><a href="#trunkSourceWebKit2SharedmacActionMenuHitTestResultcpp">trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedmacActionMenuHitTestResulth">trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/ChangeLog        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -1,3 +1,95 @@
</span><ins>+2014-10-22  Tim Horton  &lt;timothy_horton@apple.com&gt;
+
+        Add action menu support for images
+        https://bugs.webkit.org/show_bug.cgi?id=137987
+        &lt;rdar://problem/18717767&gt;
+
+        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.
+
</ins><span class="cx"> 2014-10-22  Gyuyoung Kim  &lt;gyuyoung.kim@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove WidgetBackingStoreCairo::create() factory function
</span></span></pre></div>
<a id="trunkSourceWebKit2ResourcesAddImageToPhotosTemplatepdf"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/Resources/AddImageToPhotosTemplate.pdf (0 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Resources/AddImageToPhotosTemplate.pdf                                (rev 0)
+++ trunk/Source/WebKit2/Resources/AddImageToPhotosTemplate.pdf        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -0,0 +1,201 @@
</span><ins>+%PDF-1.5+%\xE2\xE3\xCF\xD3
+1 0 obj+&lt;&lt;/Metadata 2 0 R/Pages 3 0 R/Type/Catalog&gt;&gt;+endobj+2 0 obj+&lt;&lt;/Length 16948/Subtype/XML/Type/Metadata&gt;&gt;stream
+&lt;?xpacket begin=&quot;&quot; id=&quot;W5M0MpCehiHzreSzNTczkc9d&quot;?&gt;
+&lt;x:xmpmeta xmlns:x=&quot;adobe:ns:meta/&quot; x:xmptk=&quot;Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15        &quot;&gt;
+   &lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
+      &lt;rdf:Description rdf:about=&quot;&quot;
+            xmlns:xmp=&quot;http://ns.adobe.com/xap/1.0/&quot;
+            xmlns:xmpGImg=&quot;http://ns.adobe.com/xap/1.0/g/img/&quot;
+            xmlns:xmpTPg=&quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;
+            xmlns:stDim=&quot;http://ns.adobe.com/xap/1.0/sType/Dimensions#&quot;
+            xmlns:xmpG=&quot;http://ns.adobe.com/xap/1.0/g/&quot;
+            xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;
+            xmlns:xmpMM=&quot;http://ns.adobe.com/xap/1.0/mm/&quot;
+            xmlns:stRef=&quot;http://ns.adobe.com/xap/1.0/sType/ResourceRef#&quot;
+            xmlns:stEvt=&quot;http://ns.adobe.com/xap/1.0/sType/ResourceEvent#&quot;
+            xmlns:pdf=&quot;http://ns.adobe.com/pdf/1.3/&quot;&gt;
+         &lt;xmp:CreatorTool&gt;Adobe Illustrator CC (Macintosh)&lt;/xmp:CreatorTool&gt;
+         &lt;xmp:CreateDate&gt;2014-10-21T13:16:05-07:00&lt;/xmp:CreateDate&gt;
+         &lt;xmp:MetadataDate&gt;2014-10-21T13:16:05-07:00&lt;/xmp:MetadataDate&gt;
+         &lt;xmp:ModifyDate&gt;2014-10-21T13:16:05-07:00&lt;/xmp:ModifyDate&gt;
+         &lt;xmp:Thumbnails&gt;
+            &lt;rdf:Alt&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;xmpGImg:width&gt;256&lt;/xmpGImg:width&gt;
+                  &lt;xmpGImg:height&gt;244&lt;/xmpGImg:height&gt;
+                  &lt;xmpGImg:format&gt;JPEG&lt;/xmpGImg:format&gt;
+                  &lt;xmpGImg:image&gt;/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&amp;#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&amp;#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&amp;#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA9AEAAwER&amp;#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&amp;#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&amp;#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&amp;#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&amp;#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&amp;#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&amp;#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&amp;#xA;+DlJWWl5iZmpucn
 Z6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&amp;#xA;FXYq7FXYq7FXYq/Ov8/v/JyebP8AmOb/AIiuKvP8VfpV+U//AJKzyb/2w9N/6g48VZVirsVdirsV&amp;#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir86/z+/wDJyebP&amp;#xA;+Y5v+Irirz/FX6VflP8A+Ss8m/8AbD03/qDjxVlWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&amp;#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvzr/P7/ycnmz/AJjm/wCIrirz/FX6VflP/wCSs8m/&amp;#xA;9sPTf+oOPFWVYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&amp;#xA;XYq7FXYq/Ov8/v8Aycnmz/mOb/iK4q8/xV+lX5T/APkrPJv/AGw9N/6g48VZVirsVdirsVdirsVd&amp;#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir86/z+/8nJ5s/wCY5v8A&amp;#xA;iK4q8/xV+lX5T/8AkrPJv/bD03/qDjxVlWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&amp;#xA;xV2KpN5w816X5T8u3fmDVBK1jZen6wgUPJ+9lWJeKkqPtSDvirzX/oav8sf99al/0jx/9VcVd/0N&amp;#xA;X+WP++tS/wCkeP8A6q4q7/oav8sf99al/wBI8f8A1VxV3/Q1f5Y/761L/pHj/wCquKu/6Gr/ACx/&amp;#xA;31qX/SPH/wBVcVd/0NX+WP8AvrUv+keP/qrirv8Aoav8sf8AfWpf9I8f/VXFXoPkTz3on
 nbRG1nR&amp;#xA;lmW0WZ7ci4QI/NArHZWfb4x3xVkWKvzr/P7/AMnJ5s/5jm/4iuKvP8VfpV+U/wD5Kzyb/wBsPTf+&amp;#xA;oOPFWTzSrDDJM9eEal2p1ooqcVeP/wDQ1f5Y/wC+tS/6R4/+quKu/wChq/yx/wB9al/0jx/9VcVd&amp;#xA;/wBDV/lj/vrUv+keP/qrirv+hq/yx/31qX/SPH/1VxV3/Q1f5Y/761L/AKR4/wDqrirv+hq/yx/3&amp;#xA;1qX/AEjx/wDVXFXf9DV/lj/vrUv+keP/AKq4q7/oav8ALH/fWpf9I8f/AFVxV3/Q1f5Y/wC+tS/6&amp;#xA;R4/+quKu/wChq/yx/wB9al/0jx/9VcVd/wBDV/lj/vrUv+keP/qrirv+hq/yx/31qX/SPH/1VxV3&amp;#xA;/Q1f5Y/761L/AKR4/wDqrirv+hq/yx/31qX/AEjx/wDVXFXf9DV/lj/vrUv+keP/AKq4q9jxV2Ku&amp;#xA;xV5v/wA5F/8Akm/MP/Rn/wBR0GKvibFXYq7FXYq7FXYq7FX19/zip/5LGX/tpXH/ACbixV7Hir86&amp;#xA;/wA/v/JyebP+Y5v+Irirz/FX6VflP/5Kzyb/ANsPTf8AqDjxVkOp/wDHNu/+MMn/ABE4q/OfFXYq&amp;#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX6Q4q7FXYq83/wCci/8AyTfmH/oz/wCo6DFXxNirsVdi&amp;#xA;rsVdirsVdir6+/5xU/8AJYy/9tK4/wCTcWKvY8VfnX+f3/k5PNn/ADHN/wARXFXn+Kv0q/Kf/wAl&amp;#xA;Z5N/7Yem/wDUHHirIdT/AOObd/8AGGT/AIicVfnPirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&amp;#xA;r9IcVdirsVeb/wDORf8A5JvzD/0Z/wDUdBir4m
 xV2KuxV2KuxV2KuxV9ff8AOKn/AJLGX/tpXH/J&amp;#xA;uLFXseKvzr/P7/ycnmz/AJjm/wCIrirz/FX6VflP/wCSs8m/9sPTf+oOPFWQ6n/xzbv/AIwyf8RO&amp;#xA;KvznxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV7//ANDe+ZP+pfs/+RsuKu/6G98yf9S/Z/8A&amp;#xA;I2XFXf8AQ3vmT/qX7P8A5Gy4qx/z7/zkdrfnDynfeXLnR7a1gvvS5zxySM6+jMkwoG23MdMVeQYq&amp;#xA;7FXYq7FXYq7FXYq+vv8AnFT/AMljL/20rj/k3Fir2PFX51/n9/5OTzZ/zHN/xFcVef4q/Sr8p/8A&amp;#xA;yVnk3/th6b/1Bx4qyHU/+Obd/wDGGT/iJxV+c+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&amp;#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV9ff84qf+Sxl/7aVx/ybixV7Hir86/z+/8AJyebP+Y5v+Irirz/&amp;#xA;ABV+lX5T/wDkrPJv/bD03/qDjxVkOp/8c27/AOMMn/ETir858VdirsVdirsVdirsVdirsVdirsVd&amp;#xA;irsVdirsVdiqZeWtPg1LzHpWnXHIW97eW9vMUNG4SyqjcSa70OKvqz/oVT8sf9+6l/0kR/8AVLFX&amp;#xA;f9Cqflj/AL91L/pIj/6pYq7/AKFU/LH/AH7qX/SRH/1SxV3/AEKp+WP+/dS/6SI/+qWKu/6FU/LH&amp;#xA;/fupf9JEf/VLFXf9Cqflj/v3Uv8ApIj/AOqWKu/6FU/LH/fupf8ASRH/ANUsVd/0Kp+WP+/dS/6S&amp;#xA;I/8Aqlirv+hVPyx/37qX/SRH/wBUsVeg+RPImieSdEbRtGaZrRpnuCbhw783Cqd1VNvgHbFWRYq/&amp;#xA;Ov8AP7/
 ycnmz/mOb/iK4q8/xV+lX5T/+Ss8m/wDbD03/AKg48VZPNEs0MkL14SKUanWjChxV4/8A&amp;#xA;9Cqflj/v3Uv+kiP/AKpYq7/oVT8sf9+6l/0kR/8AVLFXf9Cqflj/AL91L/pIj/6pYq7/AKFU/LH/&amp;#xA;AH7qX/SRH/1SxV3/AEKp+WP+/dS/6SI/+qWKu/6FU/LH/fupf9JEf/VLFXf9Cqflj/v3Uv8ApIj/&amp;#xA;AOqWKu/6FU/LH/fupf8ASRH/ANUsVd/0Kp+WP+/dS/6SI/8AqlirwL88PImieSfOaaNozTNaNZxX&amp;#xA;BNw4d+bu6ndVTb4B2xV59irsVdirsVdirsVTvyN/ymvl/wD7aVn/AMn0xV+g2KuxV2KuxV2KuxV2&amp;#xA;KuxV2KuxV2Kvzr/P7/ycnmz/AJjm/wCIrirz/FX6VflP/wCSs8m/9sPTf+oOPFWVYq7FXYq7FXYq&amp;#xA;7FXYq7FXYq7FXyD/AM5V/wDkzov+2bb/APJyXFXjmKuxV2KuxV2KuxVO/I3/ACmvl/8A7aVn/wAn&amp;#xA;0xV+g2KuxV2KuxV2KuxV2KuxV2KuxV2Kvzr/AD+/8nJ5s/5jm/4iuKvP8VfpV+U//krPJv8A2w9N&amp;#xA;/wCoOPFWVYq7FXYq7FXYq7FXYq7FXYq7FXyD/wA5V/8Akzov+2bb/wDJyXFXjmKuxV2KuxV2KuxV&amp;#xA;O/I3/Ka+X/8AtpWf/J9MVfoNirsVdirsVdirsVdirsVdirsVdir86/z+/wDJyebP+Y5v+Irirz/F&amp;#xA;X6VflP8A+Ss8m/8AbD03/qDjxVlWKuxV2KuxV2KuxV2KuxV2KuxV8g/85V/+TOi/7Ztv/wAnJcVe&amp;#xA;OYq7FXYq7FXYq7FU78jf8pr5f/7aVn/yfTFX6DYq7FXYq7FXYq8f/wCcmfzX1
 XyB5Ntl0RvS1vWZ&amp;#xA;mgtboqGEEcShpZAGBUv8SqtR3r2xV8d6Z+cH5o6bqyarb+adSa7RuZ9e5lnjfepWSKVnjdT4FaYq&amp;#xA;+4PyV/OHSPzJ8tLdIUttds1VNX04HdJKf3sYJLGKQ/ZPb7J6Yq9ExV2KuxV+df5/f+Tk82f8xzf8&amp;#xA;RXFXn+Kv0q/Kf/yVnk3/ALYem/8AUHHirKsVdiqA1/XtI8v6Pd6zq9ylpp1lGZbieQ0AA7DxZjso&amp;#xA;G5OwxV8J/mt/zkT54846/NJpWpXeieX4WK6fYWsrQOUHSSdoiC7t1pUqvQeJVZ7/AM4u/nl5un85&amp;#xA;WvkzzFqE+q6dqaSLYzXTNNNBPFGZAPVarmNlQrxJNDSlBXFX19irsVdirsVdir5B/wCcq/8AyZ0X&amp;#xA;/bNt/wDk5LirxzFXYq7FXYq7FXYqnfkb/lNfL/8A20rP/k+mKv0GxV2KuxV2KuxV41/zlD+V2q+e&amp;#xA;PJEFzoqGbV9BkkuorQVLTwulJo4wOsnwqyjvSg3OKvhFlZWKsCrKaMp2IIxVP/InnnX/ACT5ltfM&amp;#xA;GhzendW5pJExPpTRH7cMqgjkjU/iNwMVfoT+Wn5kaB+YHleDXdIfiT+7vbNiDLbzgfFG4H3qe43x&amp;#xA;VleKuxV+df5/f+Tk82f8xzf8RXFXn+Kv0q/Kf/yVnk3/ALYem/8AUHHirKsVUry7tbK0mvLuVYLW&amp;#xA;3RpZ55CFREQcmZiegAFcVfCX/OQv57Xf5hawdL0mR4fKOnyH6rHupupBt9ZlU0/55qeg36nZV47i&amp;#xA;r6G/5xG/KzV9U83QeerqMwaHo/qraOwINzdPG0VE6VSIOSzfzUXfeir7OxV2KuxV2KuxV8g/85V/&amp;#xA;+TOi/wC2bb/8nJcVeOYq7FXYq7FXYq
 7FU78jf8pr5f8A+2lZ/wDJ9MVfoNirsVdirsVdirsVfKv/&amp;#xA;ADlJ+QP+9Pn/AMq2380vmHT4l+lruNVHzM3/AAX82KvlXFWbflL+amu/lx5oj1fTyZrKakeqacWI&amp;#xA;juIQeh8HSpKN2PsSCq/Qbyl5s0LzZ5ftNe0O4Fzp94nJG6MjDZo5F34uh2YYqnGKvzr/AD+/8nJ5&amp;#xA;s/5jm/4iuKvP8VfpV+U//krPJv8A2w9N/wCoOPFWUsyqpZiFVRVmOwAHc4q+Lv8AnJf/AJyAbzXd&amp;#xA;zeUPLNx/zrNq9L67jO17NG3RWB3gQj4f5jv044q+fcVenfkX+S2p/mV5h4y87Xy1YMDquoKKE13W&amp;#xA;CEkUMj/8KNz2BVffekaRpmjaZbaXpdslnp9nGIra2iFERF6AfxJ3OKovFXYq7FXYq7FXyD/zlX/5&amp;#xA;M6L/ALZtv/yclxV45irsVdirsVdirsVTvyN/ymvl/wD7aVn/AMn0xV+g2KuxV2KuxV2KuxVplVlK&amp;#xA;sAysKMp3BB7HFXxT/wA5MfkG3lC+k82eW7c/4XvZK3lsg2sZ3OwA7QyMfg/lPw/y4q8CxV6j+RH5&amp;#xA;16j+W/mEJcF7jyvqDqNUsRuUOy/WYR/vxB1H7Y2PYhV986Vqunatpttqem3CXVheRrNbXEZqrxuK&amp;#xA;qwxV+ev5/f8Ak5PNn/Mc3/EVxV5/ir9Kvyn/APJWeTf+2Hpv/UHHir58/wCcof8AnIEyG68g+VLm&amp;#xA;iDlD5g1KIkEncPZxsO3+/SOv2f5sVfLGKsy/Kr8sNd/MXzTDoumgxWyUk1PUGFY7a3rQufFz0RP2&amp;#xA;j4CpCr9CPJvk/QvKHl2z0DQ4BBYWa0Hd5HP25ZG25O53J/hiqdYq7FXYq7FXYq7FXyD/AM5V/wDk&amp;#xA
 ;zov+2bb/APJyXFXjmKuxV2KuxV2KuxVO/I3/ACmvl/8A7aVn/wAn0xV+g2KuxV2KuxV2KuxV2Kof&amp;#xA;UNPstRsLiwv4EubK7jaG5t5ByR43HFlYeBBxV8Ffn9+SN9+XGv8A1myV5/KmoyMdNujVjC32jbSn&amp;#xA;f4lH2WP2l36hqKvKMVe5f843/n1J5H1JfLuvzFvKV9JUSNU/Upn6yrQEmNj9te32h3qqwv8APmWK&amp;#xA;X84PNMsTrJFJelo5FIZWVkUggjYgjFWA4q+ofzB/5yBHlv8AKLyn5M8rXI/xBc6Bpq6nfREH6nE9&amp;#xA;lHWNCOk7j/gBv1Ioq+XySTU7k4qnfkryZr3nLzHaeX9Dg9e+um6mojijH25ZWAPFEHU/QKkgYq/Q&amp;#xA;n8rvyz0H8vPK8OiaUvqSmkmoX7KBJczkbu3WgHRVr8I96kqsvxV2KuxV2KuxV2KuxV8g/wDOVf8A&amp;#xA;5M6L/tm2/wDyclxV45irsVdirsVdirsVTvyN/wApr5f/AO2lZ/8AJ9MVfoNirsVdirsVdirsVdir&amp;#xA;sVSnzV5W0TzVoF5oOt24udOvU4SxnYg9VdG/ZdG+JT2OKvz5/Nz8qtc/LjzRJpV8DPp83KTStRAI&amp;#xA;S4grt7CRNg69j7EEqsHxVtmZjViSaAVO+wFB+GKtYq2ST1xVGaLo2qa3q1rpOlWz3eo3siw21vGK&amp;#xA;szt+oDqSdgNzir79/I78mdL/AC18tiJuFz5ivlV9XvwP2qVEERO/pRn/AII/EewCr0rFXYq7FXYq&amp;#xA;7FXYq7FXYq+Qf+cq/wDyZ0X/AGzbf/k5LirxzFXYq7FXYq7FXYqnfkb/AJTXy/8A9tKz/wCT6Yq/&amp;#xA;QbFXYq7FXYq7FXYq7FXYq7FWKfmZ+XGgfmB5WuNC1dOJb47K9VQZb
 acD4ZEJ+5h+0u2Kvz189eSN&amp;#xA;e8leZbvy/rcPp3dsapItfTmiJPCaJiByR6bfcdwRiqQYq7FVSCCa4mjggjaWeVgkUSAs7Oxoqqo3&amp;#xA;JJ2AGKvuX/nHP8h4fIWlDXNciWTzdqEdJAaMLKFt/QQ/ztt6jD/VGwqyr2vFXYq7FXYq7FXYq7FX&amp;#xA;Yq7FXyD/AM5V/wDkzov+2bb/APJyXFXjmKuxV2KuxV2KuxVO/I3/ACmvl/8A7aVn/wAn0xV+g2Ku&amp;#xA;xV2KuxV2KuxV2KuxV2KuxV5z+d35OaV+ZXlo254W2v2QZ9I1Ej7LHdoZKbmKSlD4H4h0oVX5/wCt&amp;#xA;6Lqmh6td6Rq1u1pqNjI0Nzbv9pXX5VBHcEbEbjFUDir7C/5xg/ID9CwW/nnzVbU1ideejafKN7aJ&amp;#xA;xtPIp6TOD8K/sD/KPwqvpLFXYq7FXYq7FXYq7FXYq7FXYq+Qf+cq/wDyZ0X/AGzbf/k5LirxzFXY&amp;#xA;q7FXYq7FXYqnfkb/AJTXy/8A9tKz/wCT6Yq/QbFXYq7FXYq7FXYq7FXYq7FXYq7FXln5yf8AOPvl&amp;#xA;j8y2hvpbh9J163T0k1KFBKHjBqEmiJTmFqeJDKR402xViP5af84h+XPLGuwa1r+qHzBPaMJLSy+r&amp;#xA;iC2WRT8LyAvKZeOxA2FetcVfQOKuxV2KuxV2KuxV2KuxV2KuxV2KvkH/AJyr/wDJnRf9s23/AOTk&amp;#xA;uKvHMVdirsVdirsVdiqd+Rv+U18v/wDbSs/+T6Yq/QbFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&amp;#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq+Qf+cq/wDyZ0X/AGzbf/k5LirxzFXYq7FXYq7FXYqnfkb/AJTX&amp;#xA;y/8A9tKz/wCT6Yq/QbFXYq
 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&amp;#xA;q+Qf+cq//JnRf9s23/5OS4q8cxV2KuxV2KuxV2Kp35G/5TXy/wD9tKz/AOT6Yq/QbFXYq7FXYq7F&amp;#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq+Qf+cq//ACZ0X/bNt/8Ak5LirxzF&amp;#xA;X0D+Vn/OOnlfzh5D0zzFfanfW91fev6kMHo+mvo3EkI48kY7iMHrirK/+hRvJX/V51L74P8Aqnir&amp;#xA;v+hRvJX/AFedS++D/qnirv8AoUbyV/1edS++D/qnir5TxVO/I3/Ka+X/APtpWf8AyfTFX6DYq7FX&amp;#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXyD/zlX/5M6L/tm2//ACcl&amp;#xA;xV45ir7Z/wCcdP8AyTfl7/o8/wCo6fFXpGKuxV2KvzexVXsb25sb23vrV/TurWVJ4JKBuMkbBlaj&amp;#xA;Ag0I7jFXoP8A0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMV&amp;#xA;d/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/U&amp;#xA;w/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBU&amp;#xA;MVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn&amp;#xA;/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/
 &amp;#xA;9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+&amp;#xA;cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj/wBUMVd/0MX+cn/Uw/8ATnY/9UMVd/0MX+cn/Uw/9Odj&amp;#xA;/wBUMVYh5r84eYvNmqDVPMF39dvliWATenFF+7QkqvGJY16se2KpNir7Z/5x0/8AJN+Xv+jz/qOn&amp;#xA;xV6RirsVdir83sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&amp;#xA;irsVdir7Z/5x0/8AJN+Xv+jz/qOnxV6RirsVdirxP/rFT/tT/wDJTFXf9Yqf9qf/AJKYq7/rFT/t&amp;#xA;T/8AJTFXf9Yqf9qf/kpirv8ArFT/ALU//JTFXf8AWKn/AGp/+SmKu/6xU/7U/wDyUxV3/WKn/an/&amp;#xA;AOSmKu/6xU/7U/8AyUxV3/WKn/an/wCSmKu/6xU/7U//ACUxV3/WKn/an/5KYq7/AKxU/wC1P/yU&amp;#xA;xV3/AFip/wBqf/kpirv+sVP+1P8A8lMVd/1ip/2p/wDkpirv+sVP+1P/AMlMVd/1ip/2p/8Akpir&amp;#xA;v+sVP+1P/wAlMVd/1ip/2p/+SmKu/wCsVP8AtT/8lMVd/wBYqf8Aan/5KYq7/rFT/tT/APJTFXf9&amp;#xA;Yqf9qf8A5KYq7/rFT/tT/wDJTFXf9Yqf9qf/AJKYq7/rFT/tT/8AJTFXf9Yqf9qf/kpir1HyX/hT&amp;#xA;/DNn/hP0f8P/ALz6l9Wr6X96/qca7/3vKvviqd4q7FXYq//Z&lt;/xmpGImg:image&gt;
+               &lt;/rdf:li&gt;
+            &lt;/rdf:Alt&gt;
+         &lt;/xmp:Thumbnails&gt;
+         &lt;xmpTPg:NPages&gt;1&lt;/xmpTPg:NPages&gt;
+         &lt;xmpTPg:HasVisibleTransparency&gt;True&lt;/xmpTPg:HasVisibleTransparency&gt;
+         &lt;xmpTPg:HasVisibleOverprint&gt;False&lt;/xmpTPg:HasVisibleOverprint&gt;
+         &lt;xmpTPg:MaxPageSize rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;stDim:w&gt;17.000000&lt;/stDim:w&gt;
+            &lt;stDim:h&gt;16.000000&lt;/stDim:h&gt;
+            &lt;stDim:unit&gt;Points&lt;/stDim:unit&gt;
+         &lt;/xmpTPg:MaxPageSize&gt;
+         &lt;xmpTPg:PlateNames&gt;
+            &lt;rdf:Seq&gt;
+               &lt;rdf:li&gt;Cyan&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Magenta&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Yellow&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Black&lt;/rdf:li&gt;
+            &lt;/rdf:Seq&gt;
+         &lt;/xmpTPg:PlateNames&gt;
+         &lt;xmpTPg:SwatchGroups&gt;
+            &lt;rdf:Seq&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;xmpG:groupName&gt;Default Swatch Group&lt;/xmpG:groupName&gt;
+                  &lt;xmpG:groupType&gt;0&lt;/xmpG:groupType&gt;
+               &lt;/rdf:li&gt;
+            &lt;/rdf:Seq&gt;
+         &lt;/xmpTPg:SwatchGroups&gt;
+         &lt;dc:format&gt;application/pdf&lt;/dc:format&gt;
+         &lt;dc:title&gt;
+            &lt;rdf:Alt&gt;
+               &lt;rdf:li xml:lang=&quot;x-default&quot;&gt;add to photos (edited)&lt;/rdf:li&gt;
+            &lt;/rdf:Alt&gt;
+         &lt;/dc:title&gt;
+         &lt;xmpMM:RenditionClass&gt;proof:pdf&lt;/xmpMM:RenditionClass&gt;
+         &lt;xmpMM:DocumentID&gt;xmp.did:4007e621-9c7d-4ade-bdfa-2f9dc7c9b390&lt;/xmpMM:DocumentID&gt;
+         &lt;xmpMM:InstanceID&gt;uuid:87caf6f1-ce3c-9d45-a07d-358e43ce26da&lt;/xmpMM:InstanceID&gt;
+         &lt;xmpMM:OriginalDocumentID&gt;xmp.did:0335b8c8-558b-4706-8ecb-4aa27ac8cb55&lt;/xmpMM:OriginalDocumentID&gt;
+         &lt;xmpMM:DerivedFrom rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;stRef:instanceID&gt;xmp.iid:66917f51-66b2-4e40-b10d-2f774931aa68&lt;/stRef:instanceID&gt;
+            &lt;stRef:documentID&gt;xmp.did:66917f51-66b2-4e40-b10d-2f774931aa68&lt;/stRef:documentID&gt;
+            &lt;stRef:originalDocumentID&gt;xmp.did:0335b8c8-558b-4706-8ecb-4aa27ac8cb55&lt;/stRef:originalDocumentID&gt;
+            &lt;stRef:renditionClass&gt;proof:pdf&lt;/stRef:renditionClass&gt;
+         &lt;/xmpMM:DerivedFrom&gt;
+         &lt;xmpMM:History&gt;
+            &lt;rdf:Seq&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;stEvt:action&gt;saved&lt;/stEvt:action&gt;
+                  &lt;stEvt:instanceID&gt;xmp.iid:0335b8c8-558b-4706-8ecb-4aa27ac8cb55&lt;/stEvt:instanceID&gt;
+                  &lt;stEvt:when&gt;2014-10-21T13:11:55-07:00&lt;/stEvt:when&gt;
+                  &lt;stEvt:softwareAgent&gt;Adobe Illustrator CC (Macintosh)&lt;/stEvt:softwareAgent&gt;
+                  &lt;stEvt:changed&gt;/&lt;/stEvt:changed&gt;
+               &lt;/rdf:li&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;stEvt:action&gt;saved&lt;/stEvt:action&gt;
+                  &lt;stEvt:instanceID&gt;xmp.iid:4007e621-9c7d-4ade-bdfa-2f9dc7c9b390&lt;/stEvt:instanceID&gt;
+                  &lt;stEvt:when&gt;2014-10-21T13:16-07:00&lt;/stEvt:when&gt;
+                  &lt;stEvt:softwareAgent&gt;Adobe Illustrator CC (Macintosh)&lt;/stEvt:softwareAgent&gt;
+                  &lt;stEvt:changed&gt;/&lt;/stEvt:changed&gt;
+               &lt;/rdf:li&gt;
+            &lt;/rdf:Seq&gt;
+         &lt;/xmpMM:History&gt;
+         &lt;pdf:Producer&gt;Adobe PDF library 11.00&lt;/pdf:Producer&gt;
+      &lt;/rdf:Description&gt;
+   &lt;/rdf:RDF&gt;
+&lt;/x:xmpmeta&gt;
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+&lt;?xpacket end=&quot;w&quot;?&gt;+endstream+endobj+3 0 obj+&lt;&lt;/Count 1/Kids[5 0 R]/Type/Pages&gt;&gt;+endobj+5 0 obj+&lt;&lt;/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&lt;&lt;/ExtGState&lt;&lt;/GS0 8 0 R/GS1 9 0 R&gt;&gt;/Properties&lt;&lt;/MC0 10 0 R&gt;&gt;/XObject&lt;&lt;/Fm0 11 0 R&gt;&gt;&gt;&gt;/TrimBox[0.0 0.0 17.0 16.0]/Type/Page&gt;&gt;+endobj+6 0 obj+&lt;&lt;/Filter/FlateDecode/Length 258&gt;&gt;stream
+H\x89l\x91\xB1R\xC30 \x86w?\x85^ \x8Ed˲\xBC\xB6:\xF4\x98\xB9\\xE9\xD2\xC05L\xBC=\x92\x9B\xC0\xC2y\xB0&gt;\xE9?\xFD\xB25&gt;\xBF}\x9F\x8F{\x84\xDDa\xE1H\x80* v-\xE7\xF0
+\x96\xF2\xB3\\xC2\xF8\xF4\x82p\xF9
+7\xA0\x9E&quot; \x8C*\x89\xA0FU\x98\xE6.\x9EÀ1F Y\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&gt;h\xE1\xE2\xCC\xC9\xB2\xB5h\xBF\x94bke\xD3N\xC1\x87\xDF:]\x8DR\x96\xCD\xC6?q\xF5\xC7&gt;\xD3{8\xF5\xF5U\x90\xAFb|\x9C\x9F\x968\xDA\xFEN\xE1G\x803\xAAZ\xDD+endstream+endobj+7 0 obj+&lt;&lt;/CS/DeviceRGB/I false/K false/S/Transparency&gt;&gt;+endobj+11 0 obj+&lt;&lt;/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&lt;&lt;/ExtGState&lt;&lt;/GS0 8 0 R&gt;&gt;&gt;&gt;/Subtype/Form&gt;&gt;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+&lt;&lt;/I false/K false/S/Transparency/Type/Group&gt;&gt;+endobj+8 0 obj+&lt;&lt;/AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false&gt;&gt;+endobj+10 0 obj+&lt;&lt;/Color[20224 32768 65535]/Dimmed false/Editable true/Preview true/Printed true/Title(Layer 1)/Visible true&gt;&gt;+endobj+9 0 obj+&lt;&lt;/AIS false/BM/Normal/CA 0.850006/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.850006/op false&gt;&gt;+endobj+13 0 obj+&lt;&lt;/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\))&gt;&gt;+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+&lt;&lt;/Size 14/Root 1 0 R/Info 13 0 R/ID[&lt;E2D69684B34C45FEB09C4F193E6EF111&gt;&lt;C1B05E620DF14586A358D34222A98938&gt;]&gt;&gt;+startxref+18845+%%EOF
</ins></span></pre></div>
<a id="trunkSourceWebKit2ResourcesCopyImageTemplatepdf"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/Resources/CopyImageTemplate.pdf (0 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Resources/CopyImageTemplate.pdf                                (rev 0)
+++ trunk/Source/WebKit2/Resources/CopyImageTemplate.pdf        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -0,0 +1,206 @@
</span><ins>+%PDF-1.5+%\xE2\xE3\xCF\xD3
+1 0 obj+&lt;&lt;/Metadata 2 0 R/Pages 3 0 R/Type/Catalog&gt;&gt;+endobj+2 0 obj+&lt;&lt;/Length 12806/Subtype/XML/Type/Metadata&gt;&gt;stream
+&lt;?xpacket begin=&quot;&quot; id=&quot;W5M0MpCehiHzreSzNTczkc9d&quot;?&gt;
+&lt;x:xmpmeta xmlns:x=&quot;adobe:ns:meta/&quot; x:xmptk=&quot;Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15        &quot;&gt;
+   &lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
+      &lt;rdf:Description rdf:about=&quot;&quot;
+            xmlns:xmp=&quot;http://ns.adobe.com/xap/1.0/&quot;
+            xmlns:xmpGImg=&quot;http://ns.adobe.com/xap/1.0/g/img/&quot;
+            xmlns:xmpTPg=&quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;
+            xmlns:stDim=&quot;http://ns.adobe.com/xap/1.0/sType/Dimensions#&quot;
+            xmlns:xmpG=&quot;http://ns.adobe.com/xap/1.0/g/&quot;
+            xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;
+            xmlns:xmpMM=&quot;http://ns.adobe.com/xap/1.0/mm/&quot;
+            xmlns:pdf=&quot;http://ns.adobe.com/pdf/1.3/&quot;&gt;
+         &lt;xmp:CreatorTool&gt;Adobe Illustrator CC (Macintosh)&lt;/xmp:CreatorTool&gt;
+         &lt;xmp:CreateDate&gt;2014-10-21T13:01:37-07:00&lt;/xmp:CreateDate&gt;
+         &lt;xmp:ModifyDate&gt;2014-10-21T13:01:37-07:00&lt;/xmp:ModifyDate&gt;
+         &lt;xmp:MetadataDate&gt;2014-10-21T13:01:37-07:00&lt;/xmp:MetadataDate&gt;
+         &lt;xmp:Thumbnails&gt;
+            &lt;rdf:Alt&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;xmpGImg:width&gt;256&lt;/xmpGImg:width&gt;
+                  &lt;xmpGImg:height&gt;256&lt;/xmpGImg:height&gt;
+                  &lt;xmpGImg:format&gt;JPEG&lt;/xmpGImg:format&gt;
+                  &lt;xmpGImg:image&gt;/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&amp;#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&amp;#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&amp;#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&amp;#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&amp;#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&amp;#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&amp;#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&amp;#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&amp;#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&amp;#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&amp;#xA;+DlJWWl5iZmpucn
 Z6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq8&amp;#xA;i/O389bfyQP0Loyx3fmWVAz894rVHFVeQD7TsN1Tw3O1Ayr5W8yedfNnmW4efXNVuL5nNfTkc+ku&amp;#xA;9aJEtI0HsqjFUkxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVlHlP8AM3zz&amp;#xA;5Unjk0bVp44UIJspGMtsw7hoXqu/iKHwOKvrj8ofze0v8wdLk/diz1uzC/XrHlUEHb1Yq7mMnbfd&amp;#xA;TsexKr0HFXYq7FXYq7FXYqgdd1aHR9E1DVpxWHT7aa6kUdSsMZkI+5cVfnzrWr3+s6tearfyGW9v&amp;#xA;pXnnkPdnNTTwA6AdhiqCxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&amp;#xA;VlH5ZebJ/KnnnSdZjkKQxzrHegHZraU8JlI7/Caj3AOKvvnFXYq7FXYq7FXYqxL82/8AyWPmj/tm&amp;#xA;3P8AybOKvgvFXYq9e/Jb8hpvPMD61q9xJY+Xo3McXo09e4dftCMsGVUXoWod9h3oq9oH/OL35VAA&amp;#xA;GC8NO5uW3+4Yq3/0K/8AlV/vi8/6SW/pirv+hX/yq/3xef8ASS39MVd/0K/+VX++Lz/pJb+mKu/6&amp;#xA;Ff8Ayq/3xef9JLf0xV3/AEK/+VX++Lz/AKSW/pirv+hX/wAqv98Xn/SS39MVd/0K/wDlV/vi8/6S&amp;#xA;W/pirv8AoV/8qv8AfF5/0kt/TFXf9Cv/AJVf74vP+klv6Yq7/oV/8qv98Xn/AEkt/TFXf9Cv/lV/&amp;#xA;vi8/6SW/pirv+hX/AMqv98Xn/SS39MVd/wBCv/lV/vi8/wCklv6Yq7/oV/8AKr/fF5/0k
 t/TFXf9&amp;#xA;Cv8A5Vf74vP+klv6Yq7/AKFf/Kr/AHxef9JLf0xV3/Qr/wCVX++Lz/pJb+mKrJf+cXPyseNkWO+i&amp;#xA;ZhQSJc1ZfcclZfvGKvn/APOD8n9R/L3UYGWc32iXxYWV6V4sGXcxSgbBwNwRsw+kBV53irsVfpDi&amp;#xA;rsVdirsVdirsVYl+bf8A5LHzR/2zbn/k2cVfBeKuxV94fk7bwwfld5YSJQimwhkIH80g5ufpZicV&amp;#xA;ZjirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiryL/AJyjijf8rJGdQzRX1s8ZP7LH&amp;#xA;ktR/sWIxV8d4q7FX6Q4q7FXYq7FXYq7FUk87aFca/wCUdY0S2kSK41G0ltopJK8FaRSoLcQTT6MV&amp;#xA;fN3/AEKN51/6vOm/fP8A9U8Vd/0KN51/6vOm/fP/ANU8VfSPknQrjQPKOj6JcyJLcadaRW0skdeD&amp;#xA;NGoUleQBp9GKp3irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiryX/AJyg/wDJVT/8&amp;#xA;xlt/xI4q+OMVdir9IcVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&amp;#xA;rsVdirsVdirsVeS/85Qf+Sqn/wCYy2/4kcVfHGKuxV+kOKoHVtd0TR4RPq2oW2nwnZZLqaOFSfYy&amp;#xA;FRiqQf8AK2/yx/6mjTf+kmP+uKu/5W3+WP8A1NGm/wDSTH/XFXf8rb/LH/qaNN/6SY/64q7/AJW3&amp;#xA;+WP/AFNGm/8ASTH/AFxV3/K2/wAsf+po03/pJj/rirv+Vt/lj/1NGm/9JMf9cVd/ytv8sf8AqaNN&amp;#xA;/wCkmP8Arirv+Vt/lj/1NGm/9JMf9cVd/wArb/
 LH/qaNN/6SY/64q7/lbf5Y/wDU0ab/ANJMf9cV&amp;#xA;d/ytv8sf+po03/pJj/rirv8Albf5Y/8AU0ab/wBJMf8AXFXf8rb/ACx/6mjTf+kmP+uKu/5W3+WP&amp;#xA;/U0ab/0kx/1xVluKuxVTjubeWSWKOVXlgYJOikFkZlDgMB0JVgd+2KqmKuxV2KuxV2KuxV2KuxV2&amp;#xA;KuxV5L/zlB/5Kqf/AJjLb/iRxV8cYq7FX2J+ev52jyRbro2i8JfMt3Hz5sA6WsR2Ejqdmdv2FO3c&amp;#xA;7UDKvkjV9a1bWb+S/wBVvJb69lNZJ53Lsfap6AdgNhiqCxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&amp;#xA;V2Kv0hxV2Kvln80vzG8weRPz41PUtJcPDJDZpe2MhPozxiBNmA6MP2WG4+VQVX0J5E896D510GLW&amp;#xA;NHlqh+G5tmp6sEtKmOQDv4HoRuMVZFirsVdirsVdirsVdirsVdiryX/nKD/yVU//ADGW3/Ejir44&amp;#xA;xV2Kp3518yXHmXzZquuTuXa+uHkjrX4Yq8YkFeyRhVHyxVJMVdirsVdirsVdirsVdirsVdirsVdi&amp;#xA;rsVdirsVfpDirsVfF/8Azkt/5N3VP+MNp/1DpirFPy+/MHXvI+vR6tpMlUNEvLNyfSuIq7o48f5W&amp;#xA;6g/SMVfbPkTz3oPnXQYtY0eWqH4bm2anqwS0qY5AO/gehG4xVkWKuxV2KuxV2KuxV2KuxV5L/wA5&amp;#xA;Qf8Akqp/+Yy2/wCJHFXxxirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpDirsVfF//&amp;#xA;ADkt/wCTd1T/AIw2n/UOmKvLsVZJ5D8/+YfJOtpqujTca0W7tX3hnjBrwkX9RG47Yq+1/wAvvzB0&amp;#xA;HzxoMer
 aTJRxRL2ycj1beWm6OPD+VuhH0jFWTYq7FXYq7FXYq7FXYq8l/wCcoP8AyVU//MZbf8SO&amp;#xA;KvjjFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq/SHFXYq+L/8AnJb/AMm7qn/GG0/6&amp;#xA;h0xV5dirsVZF5E89695K16LWNHlo4+G5tmr6U8VamOQDt4HqDuMVfbP5ffmDoPnjQY9W0mSjiiXt&amp;#xA;k5Hq28tN0ceH8rdCPpGKsmxV2KuxV2KuxV2KvJf+coP/ACVU/wDzGW3/ABI4q+OMVdirsVdirsVd&amp;#xA;irsVdirsVdirsVdirsVdirsVdirsVdir9IcVdir4v/5yW/8AJu6p/wAYbT/qHTFXl2KuxV2Kp95K&amp;#xA;87a/5O12HWNGnMc0ZpNC1TFNH+1HKo+0p+8dRvir7Y/Lj8x9B896Cupaa3p3EdEv7ByDLbykdD4q&amp;#xA;f2W7/OoCrK8VdirsVdirsVeS/wDOUH/kqp/+Yy2/4kcVfHGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV&amp;#xA;2KuxV2KuxV2KuxV+kOKuxV8X/wDOS3/k3dU/4w2n/UOmKvLsVdirsVdiqfeSvOuveTteh1nRpvTn&amp;#xA;j+GWJqmKaIn4opV7qfw6jfFX2v8Alx+ZOgee9DTUdNcR3UYC3+nuwMsEh7H+ZD+y/Q/OoCrLMVdi&amp;#xA;rsVdiryX/nKD/wAlVP8A8xlt/wASOKvjjFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&amp;#xA;q/SHFXYq+avzs/JP8w/NP5h32taLYxz6fPHbrHI1xDGSY4VRvhdgeoxVgn/QtP5u/wDVrh/6S7f/&amp;#xA;AJrxV3/QtP5u/wDVrh/6S7f/AJrxV3/QtP5u/wDVrh/6S7f/AJrxV3/QtP5u/
 wDVrh/6S7f/AJrx&amp;#xA;V3/QtP5u/wDVrh/6S7f/AJrxVOvKH5Mfn15S12DWtFsoobuE0ZTdQGOWM/ailXmOSNT+I3ocVfVm&amp;#xA;lz38+m2s2oWws76SJGurRXEojkI+NA67MAe+KorFXYq7FXkv/OUH/kqp/wDmMtv+JHFXxxirsVdi&amp;#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpDirsVdirsVdirsVdirsVdirsVdirsVdiryX/&amp;#xA;AJyg/wDJVT/8xlt/xI4q+OMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir9GP0npv8A&amp;#xA;y1w/8jF/rirv0npv/LXD/wAjF/rirv0npv8Ay1w/8jF/rirv0npv/LXD/wAjF/rirv0npv8Ay1w/&amp;#xA;8jF/rirv0npv/LXD/wAjF/rirv0npv8Ay1w/8jF/rirv0npv/LXD/wAjF/rirv0npv8Ay1w/8jF/&amp;#xA;riqIR0dQ6MGRhVWBqCPYjFW8VdirsVeS/wDOUH/kqp/+Yy2/4kcVfHGKuxV2KuxV2KuxV2KuxV2K&amp;#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP/ACWPlf8A7Ztt/wAmxirLcVdi&amp;#xA;rsVeS/8AOUH/AJKqf/mMtv8AiRxV8cYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&amp;#xA;q7FXYq7FXYq7FXYq7FXYq+9Pyk/8lj5X/wC2bbf8mxirLcVdirsVeS/85Qf+Sqn/AOYy2/4kcVfH&amp;#xA;GKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP/JY&amp;#xA;+V/+2bbf8mxirLcVdirsVeS/85Qf+S
 qn/wCYy2/4kcVfHGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&amp;#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP8AyWPlf/tm23/JsYqy3FXYq7FXkv8AzlB/&amp;#xA;5Kqf/mMtv+JHFXxxirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&amp;#xA;irsVdir70/KT/wAlj5X/AO2bbf8AJsYqy3FXYq7FXkv/ADlB/wCSqn/5jLb/AIkcVfHGKuxV2Kux&amp;#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP/JY+V/8Atm23&amp;#xA;/JsYqy3FXYq7FXkn/OUJA/KqcE0reWwHv8ROKvjnFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&amp;#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX3p+Un/ksfK/8A2zbb/k2MVZbiqSa7528o6BcR22t6xaad&amp;#xA;cSp6kcVzKsbMlSvIBj0qDiqU3H5xfldBC0r+Z7AqgqRHMJG+hE5MfoGKvm38+fzpg88zW+kaKjx+&amp;#xA;XrGT1vVkHF7iehUSFf2UVWPEHfep8Aq8hxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&amp;#xA;KuxV2KuxV2KuxV2KuxV2KuxV96flJ/5LHyv/ANs22/5NjFWW4q+U/wDnLn/lNdG/7Zo/5PyYq8Kx&amp;#xA;V2KuxVO/JXlu48y+bNK0OBC7X1wkclK/DFXlK5p2SMMx+WKpJirsVdirsVdirsVdirsVdirsVdir&amp;#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdir70/KT/wAlj5X/AO2bbf8AJsYqy3FXyn/zlz/ymujf&amp;#xA
 ;9s0f8n5MVeFYq7FUbpGi6trN/HYaVZy317KaRwQIXY+9B0A7k7DFX1v+RX5JDyRbtrOtcJfMt3Hw&amp;#xA;4KQ6WsR3MaMNmdv22G3YbVLKvjvFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&amp;#xA;7FXYq7FXYq7FX3p+Un/ksfK//bNtv+TYxVluKpJrvknyjr9xHc63o9pqNxEnpxy3MSyMqVLcQWHS&amp;#xA;pOKpb/yqT8sf+pX03/pGj/pirv8AlUn5Y/8AUr6b/wBI0f8ATFU/0rQtE0eEwaTp9tp8J6x2sKQq&amp;#xA;aeIQLiqOxV+b2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvv&amp;#xA;T8pP/JY+V/8Atm23/JsYqy3FXYq7FXYq7FXYq/N7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&amp;#xA;XYq7FXYq7FXYq7FXYq7FXYq7FX3p+Un/AJLHyv8A9s22/wCTYxVluKuxV2KuxV2KuxV+b2KuxV2K&amp;#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvvT8pP/JY+V/+2bbf8mxi&amp;#xA;rLcVdirsVdirsVdir83sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&amp;#xA;dirsVfen5Sf+Sx8r/wDbNtv+TYxVluKuxV2KuxV2KuxV8Dfmb5Tn8qeedW0aSMpDHO0lkSNmtpTz&amp;#xA;hYHv8JofcEYqxfFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUboukX&amp;#xA;+s6tZ6VYRmW9vpUggjHdnNBXwA6k9hir9BtC0qHR9E0/SYDWHT7aG
 1jPSqwoEB/4XFUdirsVdirs&amp;#xA;VdirsVeffm9+UOl/mDpcf7wWet2Yb6jfcagg7+lLTcxk77bqdx3BVfI/mz8svPPlSeSPWdJnjhQk&amp;#xA;C9jUy2zDsVmSq7+BofEYqxfFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FU7&amp;#xA;8t+SvNnmW4SDQ9KuL5nNPUjQ+ku9KvK1I0HuzDFX1T+SX5FW/kgfprWWju/MsqFU4bxWqOKMkZP2&amp;#xA;nYbM/hsNqllXruKuxV2KuxV2KuxV2Kv/2Q==&lt;/xmpGImg:image&gt;
+               &lt;/rdf:li&gt;
+            &lt;/rdf:Alt&gt;
+         &lt;/xmp:Thumbnails&gt;
+         &lt;xmpTPg:NPages&gt;1&lt;/xmpTPg:NPages&gt;
+         &lt;xmpTPg:HasVisibleTransparency&gt;True&lt;/xmpTPg:HasVisibleTransparency&gt;
+         &lt;xmpTPg:HasVisibleOverprint&gt;False&lt;/xmpTPg:HasVisibleOverprint&gt;
+         &lt;xmpTPg:MaxPageSize rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;stDim:w&gt;16.000000&lt;/stDim:w&gt;
+            &lt;stDim:h&gt;16.000000&lt;/stDim:h&gt;
+            &lt;stDim:unit&gt;Points&lt;/stDim:unit&gt;
+         &lt;/xmpTPg:MaxPageSize&gt;
+         &lt;xmpTPg:PlateNames&gt;
+            &lt;rdf:Seq&gt;
+               &lt;rdf:li&gt;Cyan&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Magenta&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Yellow&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Black&lt;/rdf:li&gt;
+            &lt;/rdf:Seq&gt;
+         &lt;/xmpTPg:PlateNames&gt;
+         &lt;xmpTPg:SwatchGroups&gt;
+            &lt;rdf:Seq&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;xmpG:groupName&gt;Default Swatch Group&lt;/xmpG:groupName&gt;
+                  &lt;xmpG:groupType&gt;0&lt;/xmpG:groupType&gt;
+               &lt;/rdf:li&gt;
+            &lt;/rdf:Seq&gt;
+         &lt;/xmpTPg:SwatchGroups&gt;
+         &lt;dc:format&gt;application/pdf&lt;/dc:format&gt;
+         &lt;dc:title&gt;
+            &lt;rdf:Alt&gt;
+               &lt;rdf:li xml:lang=&quot;x-default&quot;&gt;copy&lt;/rdf:li&gt;
+            &lt;/rdf:Alt&gt;
+         &lt;/dc:title&gt;
+         &lt;xmpMM:RenditionClass&gt;proof:pdf&lt;/xmpMM:RenditionClass&gt;
+         &lt;xmpMM:DocumentID&gt;uuid:0e2273b0-3d45-fc45-a7a2-95f229b83686&lt;/xmpMM:DocumentID&gt;
+         &lt;xmpMM:InstanceID&gt;uuid:e711f8ac-ac9c-4b48-9451-813e4e11f555&lt;/xmpMM:InstanceID&gt;
+         &lt;pdf:Producer&gt;Adobe PDF library 11.00&lt;/pdf:Producer&gt;
+      &lt;/rdf:Description&gt;
+   &lt;/rdf:RDF&gt;
+&lt;/x:xmpmeta&gt;
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+&lt;?xpacket end=&quot;w&quot;?&gt;+endstream+endobj+3 0 obj+&lt;&lt;/Count 1/Kids[5 0 R]/Type/Pages&gt;&gt;+endobj+5 0 obj+&lt;&lt;/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&lt;&lt;/ExtGState&lt;&lt;/GS0 8 0 R/GS1 9 0 R&gt;&gt;/Properties&lt;&lt;/MC0 10 0 R&gt;&gt;/XObject&lt;&lt;/Fm0 11 0 R/Fm1 12 0 R&gt;&gt;&gt;&gt;/TrimBox[0.0 0.0 16.0 16.0]/Type/Page&gt;&gt;+endobj+6 0 obj+&lt;&lt;/Filter/FlateDecode/Length 107&gt;&gt;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+&lt;&lt;/CS/DeviceRGB/I false/K false/S/Transparency&gt;&gt;+endobj+11 0 obj+&lt;&lt;/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&lt;&lt;/ExtGState&lt;&lt;/GS0 9 0 R&gt;&gt;&gt;&gt;/Subtype/Form&gt;&gt;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+&lt;&lt;/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&lt;&lt;/ExtGState&lt;&lt;/GS0 9 0 R&gt;&gt;&gt;&gt;/Subtype/Form&gt;&gt;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+&lt;&lt;/I false/K false/S/Transparency/Type/Group&gt;&gt;+endobj+9 0 obj+&lt;&lt;/AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false&gt;&gt;+endobj+13 0 obj+&lt;&lt;/I false/K false/S/Transparency/Type/Group&gt;&gt;+endobj+10 0 obj+&lt;&lt;/Color[20224 32768 65535]/Dimmed false/Editable true/Preview true/Printed true/Title(Layer 1)/Visible true&gt;&gt;+endobj+8 0 obj+&lt;&lt;/AIS false/BM/Normal/CA 0.850006/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.850006/op false&gt;&gt;+endobj+15 0 obj+&lt;&lt;/CreationDate(D:20141021130137-07'00')/Creator(Adobe Illustrator CC \(Macintosh\))/ModDate(D:20141021130137-07'00')/Producer(Adobe PDF library 11.00)/Title(copy)&gt;&gt;+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+&lt;&lt;/Size 16/Root 1 0 R/Info 15 0 R/ID[&lt;C077BE5010DF4E929DC46952A2AEFB7B&gt;&lt;2CCABCCA8F1C4885A81B634350A83CD5&gt;]&gt;&gt;+startxref+15036+%%EOF
</ins></span></pre></div>
<a id="trunkSourceWebKit2ResourcesSaveImageToDownloadsTemplatepdf"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/Resources/SaveImageToDownloadsTemplate.pdf (0 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Resources/SaveImageToDownloadsTemplate.pdf                                (rev 0)
+++ trunk/Source/WebKit2/Resources/SaveImageToDownloadsTemplate.pdf        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -0,0 +1,133 @@
</span><ins>+%PDF-1.5+%\xE2\xE3\xCF\xD3
+1 0 obj+&lt;&lt;/Metadata 2 0 R/Pages 3 0 R/Type/Catalog&gt;&gt;+endobj+2 0 obj+&lt;&lt;/Length 19798/Subtype/XML/Type/Metadata&gt;&gt;stream
+&lt;?xpacket begin=&quot;&quot; id=&quot;W5M0MpCehiHzreSzNTczkc9d&quot;?&gt;
+&lt;x:xmpmeta xmlns:x=&quot;adobe:ns:meta/&quot; x:xmptk=&quot;Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15        &quot;&gt;
+   &lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
+      &lt;rdf:Description rdf:about=&quot;&quot;
+            xmlns:xmp=&quot;http://ns.adobe.com/xap/1.0/&quot;
+            xmlns:xmpGImg=&quot;http://ns.adobe.com/xap/1.0/g/img/&quot;
+            xmlns:xmpTPg=&quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;
+            xmlns:stDim=&quot;http://ns.adobe.com/xap/1.0/sType/Dimensions#&quot;
+            xmlns:xmpG=&quot;http://ns.adobe.com/xap/1.0/g/&quot;
+            xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;
+            xmlns:xmpMM=&quot;http://ns.adobe.com/xap/1.0/mm/&quot;
+            xmlns:pdf=&quot;http://ns.adobe.com/pdf/1.3/&quot;&gt;
+         &lt;xmp:CreatorTool&gt;Adobe Illustrator CC (Macintosh)&lt;/xmp:CreatorTool&gt;
+         &lt;xmp:CreateDate&gt;2014-10-21T13:06:20-07:00&lt;/xmp:CreateDate&gt;
+         &lt;xmp:ModifyDate&gt;2014-10-21T13:06:20-07:00&lt;/xmp:ModifyDate&gt;
+         &lt;xmp:MetadataDate&gt;2014-10-21T13:06:20-07:00&lt;/xmp:MetadataDate&gt;
+         &lt;xmp:Thumbnails&gt;
+            &lt;rdf:Alt&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;xmpGImg:width&gt;256&lt;/xmpGImg:width&gt;
+                  &lt;xmpGImg:height&gt;256&lt;/xmpGImg:height&gt;
+                  &lt;xmpGImg:format&gt;JPEG&lt;/xmpGImg:format&gt;
+                  &lt;xmpGImg:image&gt;/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&amp;#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&amp;#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&amp;#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&amp;#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&amp;#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&amp;#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&amp;#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&amp;#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&amp;#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&amp;#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&amp;#xA;+DlJWWl5iZmpucn
 Z6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&amp;#xA;FXYq7FUm8y+cvKnle1F15h1a10uEglPrMqoz06iNCebn2UHFXjHmr/nMz8u9NLxaBY3mvTLXjJQW&amp;#xA;du3+zlDS/wDJLFXlHmH/AJzM/M2/Zk0iz0/R4T9hlja5mHzeVvTP/IvFXn+r/nz+cWqkm682agnL&amp;#xA;qLSQWY616WwhxVit75n8y3zcr3Vr26Y9TNcSyHpT9pj2xVLMVdiqZ2XmfzLYtystWvbVh0MNxLGe&amp;#xA;lP2WHbFWVaR+fP5xaUQbXzZqD8egu5BeDrXpcibFXoHl7/nMz8zbBlTV7PT9YhH22aNraY/J4m9M&amp;#xA;f8i8Ver+Vf8AnMz8u9SKRa/Y3mgzNTlJQXluv+ziCy/8ksVez+WvOXlTzRam68vata6pCAC/1aVX&amp;#xA;ZK9BIgPND7MBiqc4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWC/mN+dX5f+QIGGt6&amp;#xA;gJNRpWLSbWkt21RUVSoEYP8ANIVGKvl/8wP+cvfP2utJa+Wo08t6cagSR0mvHXp8UzDinj8Cgj+Y&amp;#xA;4q8O1DUtR1K8kvdRupr28mNZbm4kaWVz4s7lmP0nFUNirsVdirsVXxxSSuI4kZ5G+yigkn5AYq6S&amp;#xA;KSJzHKjJIv2kYEEfMHFVmKuxV2KuxVE6fqWo6beR3unXU1leQmsVzbyNFKh8VdCrD6Dir3H8v/8A&amp;#xA;nL3z9oTR2vmWNPMmnCgMklIbxF6fDMo4v4/GpJ/mGKvqD8ufzq/L/wA/wKNE1AR6jSsuk3VIrtaC&amp;#xA;polSJAP5oywxVnWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVL9f8w6J5e0qfVtbvYrDT
 rZeU1zM&amp;#xA;3FR4Ad2Y9Ao3J2GKvkr82v8AnLzW9WabSfIavpOm7o+ryAfXJR0rEu4gU+O79/hO2KvnS4uLi5nk&amp;#xA;uLiV5p5WLyyyMXdmO5ZmNSScVU8VVILee4mSC3jaaeVgscUalnZjsAqipJOKvWfJv/OLf5t+ZFjn&amp;#xA;m09NCsn3E+qMYXp/xgUPOD/rIPnir2Xy1/zhN5VtgknmPXrvUZBQtDZolpFX+Ul/Xdh7jjir0vRf&amp;#xA;+cdPyY0gL6Hli2uXWlZL1pLvkR3Kzs6fctMVZhp/k/ylpyhNP0Sws1AoFt7WGIUoB0RR4DFU3AAF&amp;#xA;BsB0GKuIBFDuD1GKpRqHk/ylqKlNQ0SwvFIoVuLWGUUoR0dT4nFWH61/zjp+TGrhvX8sW1s7VpJZ&amp;#xA;NJacSe4WBkT71pirzTzL/wA4TeVbkPJ5c16706Q1Kw3iJdxV/lBT0HUe55Yq8a85f84t/m35bWSe&amp;#xA;HT012yTcz6Wxmen/ABgYJOT/AKqH54q8mnt57eZ4LiNoZ4mKyRSKVdWGxDKaEEYqp4qqW9xcW08d&amp;#xA;xbyvDPEweKWNijqw3DKwoQRir6L/ACl/5y81vSWh0nz4r6tpuyJq8YH1yIdKyrsJ1Hjs/f4jtir6&amp;#xA;10DzDonmHSoNW0S9iv8ATrleUNzC3JT4g91YdCp3B2OKphirsVdirsVdirsVdirsVdirsVdirCPz&amp;#xA;U/N3yr+XGjfXdXk9a/nDfo7SomHr3DD7+EYP2nIoPc0GKvhX8zPzY83fmHq5vtcuONrGx+paZCSL&amp;#xA;a3Xp8Kk7tTq7bn5bYqwzFVa0s7u9uorSzgkubqdgkMEKtJI7HoqqoJJPgMVfQ/5Zf84d+YtWEWoe&amp;#xA;d7ltEsWow02Di966nf42PKOH6QzeIGKvp3yR+V
 3kPyTbiLy5pENpLx4yXhHqXMn+vO/Jz8q08Bir&amp;#xA;KsVdirsVdirsVdirsVdirsVdirFfO/5XeQ/O1uYvMekQ3cvHjHeAencx/wCpOnFx8q08Rir5i/M3&amp;#xA;/nDzzDpCy6j5IuW1uxWrHTZ+KXqKN/gYcY5voCt2AOKvni7s7uyupbS8gktrqBik0EytHIjDqrKw&amp;#xA;BBHgcVUcVZn+Wf5sebvy81cX2h3HK1kYfXdMmJNtcL0+JQdmp0ddx8tsVfdX5V/m75V/MfRvrukS&amp;#xA;ejfwBf0jpUrD17dj93OMn7LgUPsajFWb4q7FXYq7FXYq7FXYq7FXYq82/Oz87NF/LPRUd0W+8wXy&amp;#xA;t+jNM5UrTYzTEbrEp+ljsO5VV8F+avNeveatcudc127e81G6aryN0Vf2UReiIvRVGwxVKMVZ5+Vf&amp;#xA;5NecPzH1Iw6TD9X0uFgt9rE4It4u5UU/vJKdEX6aDfFX2z+V35J+SPy7s1/RVsLnV2Xjc6zcANcP&amp;#xA;X7QQ9IkP8qfTU74qz/FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwD80fyT8kfmJZt+lbYW2rqvG&amp;#xA;21m3AW4Sn2Q56SoP5X+ih3xV8Tfmp+TXnD8uNSEOrQ/WNLmYrY6xACbeXuFNf7uSnVG+io3xVgeK&amp;#xA;pv5V81695V1y21zQrt7PUbVqpIvRl/aR16OjdGU7HFX3p+Sf52aL+Zmiu6Itj5gsVX9J6ZyrSuwm&amp;#xA;hJ3aJj9KnY9iyr0nFXYq7FXYq7FXYq7FWEfm7+amjflx5Vk1e9pPfzcotK07lRrien3iNKgu3Ye5&amp;#xA;AxV+fPmvzVrnmrXrvXdcuWutRvH5SOfsqP2URf2UQbKo6DFUoxV7R+Qn/OPGpfmBcLrWtepY+UYH&amp;#xA;oZAOMt4
 yneOAnog6PJ9A3rxVfb2iaHpGhaXb6Vo9pHY6darwgtoV4oo6/SSdyTuT1xVHYq7FXYq7&amp;#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUDreh6Rrul3GlaxaR32nXS8J7aZeSMOv0EHcEbg9MVfEP&amp;#xA;59/848al+X9w2taL6l95RnegkI5S2bMdo5yOqHokn0HenJV4viqb+VPNWueVdetNd0O5a11GzflG&amp;#xA;4+yw/aR1/aRxsynqMVfoN+UX5qaN+Y/lWPV7KkF/Dxi1XTuVWt56feY3oSjdx7gjFWb4q7FXYq7F&amp;#xA;XYql/mHX9K8vaJe63q0622nWETTXMzdlXsB3ZjsoG5OwxV+d35sfmZq/5h+brjXL4tHarWHTLKvw&amp;#xA;29sCSq7bcj9pz3PtTFWGYq9o/wCcePyEuPzA1L9Na0rweUbGQCQiqteSruYIz2Qf7scfIb7qq+57&amp;#xA;W1trS2itbWJILaBFjggjUIiIgoqqooAABQAYqq4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&amp;#xA;FXYq7FVK6tba7tpbW6iSe2nRo54JFDo6OKMrKaggg0IOKvhj/nIf8hLj8v8AUv01oqvP5RvpCIya&amp;#xA;s1nK24gkPdD/ALrc/I77sq8XxVmf5T/mZq/5eebrfXLEtJatSHU7Kvw3FsSCy77ch9pD2PtXFX6I&amp;#xA;+Xtf0rzDollrekzrc6dfxLNbTL3VuxHZlOzA7g7HFUwxV2KuxV2Kvjr/AJy8/NptW1tfIekzf7jd&amp;#xA;JcSau6HaW8p8MRp1WAHf/LO+6jFXzhirPPya/KvUvzH84Q6TCWh0u3pPrF8o/urcGlFJ29ST7KD6&amp;#xA;egOKv0K0PRNL0LSLTR9Kt1tdOsY1htoE6Ki/Pck9STuTviqOxV2KuxV2KuxV2
 KuxV2KuxV2KuxV2&amp;#xA;KuxV2KuxV2KuxV2KuxV2KoHXNE0vXdIu9H1W3W606+jaG5gfoyN8twR1BG4O+Kvz1/OX8q9S/Ljz&amp;#xA;hNpMxabS7is+j3zD+9tyaUYjb1I/suPp6EYqwPFX0f8A84h/m02k623kPVpv9xurOZNIdztFeU+K&amp;#xA;IV6LOBt/ljbdjir7FxV2KuxVgv51fmNB5A/L/UNbDD9IyD6rpMRoeV3KDwND1EYBkb2XFX503FxP&amp;#xA;c3EtxcSNLPM7SSyuaszuaszE9SScVXWdpdXt3BZ2kTT3VzIsMEKCrPJIwVVUdySaDFX6H/kn+V1n&amp;#xA;+Xfki20riravcgXGs3K787hhugbukQ+Bfv6k4qz/ABV2KuxV2KuxV2KuxV2KuxV+VeKuxV2KuxV+&amp;#xA;qmKuxV2KuxV2KuxV2KuxV2KsA/Oz8rrP8xPJFzpXFV1e2BuNGuW24XCjZC3ZJR8Dff1AxV+eF5aX&amp;#xA;Vldz2d3E0F1bSNDPC4oySRsVZWHYgihxVbb3E9tcRXFvI0U8LrJFKhoyuhqrKR0IIxV+i35K/mNB&amp;#xA;5/8Ay/0/Wyw/SMY+q6tEKDjdxAczQdBICJF9mxVnWKuxV8S/85e/mA2u+fo/LVrJXTvLaenIAfhe&amp;#xA;8mAaZtv5F4pv0IbxxV4Lir6N/wCcO/yyGreYrnzvqEXKx0RvQ00MKq9661Z9/wDfMbA/6zA9sVfY&amp;#xA;+KuxV2KuxV2KuxV2KuxV2KuxV+VeKuxV2KuxV+qmKuxV2KuxV2KuxV2KuxV2KuxV8cf85iflkNJ8&amp;#xA;xW3nfT4uNjrbehqQUUVL1Fqr7f7+jUn/AFlJ74q+csVe9f8AOIX5gNoXn6Ty1dSU07zInpxgn4Uv&amp;#xA;IQWhbf8AnXkm3UlfDFX21iqTecvMtr
 5X8qat5hugDDpdrLc8Cac2RSUjB8Xeij54q/M3UtQvNS1G&amp;#xA;61G9kM15ezSXFzKeryysXdj82YnFVK3gmuJ47eBGlnmZY4o1FWZ2NFUAdSScVfpN+V3ki38k+Q9I&amp;#xA;8uRBfVtIQbyRf92XMnxzv9Lsae1BirKsVdirsVdirsVdirsVdirsVdir8q8VdirsVdir9VMVdirs&amp;#xA;VdirsVdirsVdirsVdirFfzR8kW/nbyHq/lyUL6t3CTZyN/uu5j+OB/odRX2qMVfmzcQTW88lvOjR&amp;#xA;Tws0csbCjK6mjKQehBGKqum6heabqNrqNlIYbyymjuLaUdUliYOjD5MoOKv0y8m+ZbXzR5U0nzDa&amp;#xA;gCHVLWK54A14M6gvGT4o9VPyxV4x/wA5meajpv5d2OgRPxm168HqLX7VvZgSv/yVaLFXxXir13/n&amp;#xA;FvyavmT829Pmnj52WhI2qTg9OcJCwfSJ3RvoOKvvfFXYq7FXYq7FXYq7FXYq7FXYq7FX5V4q7FXY&amp;#xA;q7FX6qYq7FXYq7FXYq7FXYq7FXYq7FXYq+CP+cpPJq+W/wA29Qmgj4WWuouqQAdOcxKz/SZ0dvpG&amp;#xA;KvIsVfan/OGfmo6l+Xd9oEr8ptBvD6a1+zb3gMqf8lVlxV5R/wA5meYWv/zNs9IRqw6Pp8asnhNc&amp;#xA;s0rn6Y/TxV4Fir7C/wCcJvLQtvKuveY5EpJqN2lnCxG/pWicyV9meeh/1cVfSWKuxV2KuxV2KuxV&amp;#xA;2KuxV2KuxV2KvyrxV2KuxV2Kv1UxV2KuxV2KuxV2KuxV2KuxV2KuxV82/wDObPloXPlXQfMcaVk0&amp;#xA;67ezmYDf0rtOYLeyvBQf62Kvj3FXvv8Azhn5haw/M280h2pDrGnyKqeM1syyofoj9TFXn/586udV&amp;#xA
 ;/OLzZdE8uGoSWgO/SzAth1/4w4qwLFX6G/8AOOmijSPyY8sQceL3Ns17IaULfW5GnUn/AGDqPlir&amp;#xA;0fFXYq7FXYq7FXYq7FXYq7FXYq7FX5V4q7FXYq7FX6qYq7FXYq7FXYq7FXYq7FXYq7FXYq84/wCc&amp;#xA;i9FGr/kx5ng48ntrZb2M0qV+qSLOxH+wRh8sVfnlirPfyG1c6V+cXlO6B489QjtCd+l4DbHp/wAZ&amp;#xA;sVYr5nvWvvMurXrbtdXtxMTt1klZu23fFUsxV+nvk/T107ylomnoAFs7C1t1ApSkUKoOgHh4Yqm+&amp;#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KvyrxV2KuxV2Kv1UxV2KuxV2KuxV2KuxV2KuxV2KuxVKPOGnrqP&amp;#xA;lLW9PcAreWF1bsDSlJYWQ9QfHwxV+YWKpn5YvWsfMuk3q7Na3tvMDt1jlVu+3bFUsxVfFG8siRRj&amp;#xA;lI7BUXxJNAMVfqiAAKDYDoMVdirsVdirsVdirsVdirsVdirsVdir8q8VdirsVdir9VMVdirsVdir&amp;#xA;sVdirsVdirsVdirsVcQCKHcHqMVfldLG8UjxSDjIjFXXwINCMVWYq7FV8UjxSJLGeMiMGRvAg1Bx&amp;#xA;V+qIIIqNwehxV2KuxV2KuxV2KuxV8Tf85P8A5HHyhq7ea9At6eWdTl/0mCMfDZ3TmvGg+zFJ1TsD&amp;#xA;8O3w1VeCYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXvf/OMH5HHzfq6+a9ft6+WdMl/0aCQfDeXSGvGh&amp;#xA;+1FH1fsT8O/xUVfbOKuxV2KuxV2KuxVxIAqdgOpxV+V0sjyyPLIeUjsWdvEk1JxVZiqZ+Z7JrHzL&amp;#xA;q1k2zWt7cQkbdY5WXtt2xVLMVfp75P1BdR8paJqCEFbywtbhSKUpL
 CrjoT4+OKpvirsVdirsVdir&amp;#xA;sVQOuaJpeu6Rd6Pqtut1p19G0NzA/Rkb5bgjqCNwd8Vfnt+cv5U6p+W/m2XS5+U+lXPKbR78jaaC&amp;#xA;v2Wpt6kdeLj6ehGKsCxV2KuxV2KuxV2KuxV2KuxV2Ks9/Jr8qdU/MjzbFpcHKDSrbjNrF+BtDBX7&amp;#xA;K129SSnFB9PQHFX6E6Homl6FpFpo+lW62unWMaw20CdFRfnuSepJ3J3xVHYq7FXYq7FXYq7FUo84&amp;#xA;aguneUtb1ByAtnYXVwxNKUihZz1I8PHFX5hYqmfliya+8y6TZLu11e28IG3WSVV77d8VZV+fOkHS&amp;#xA;vzi82WpHHnqEl2Bv0vALkdf+M2KsCxV+hv8AzjprQ1f8mPLE/Lk9tbNZSCtSv1SRoFB/2CKflir0&amp;#xA;fFXYq7FXYq7FXYq7FWHfmt+Wmj/mH5RuNCv6RXArLpt7SrW9yoIRx4qa0de496HFX54+Z/LOs+WN&amp;#xA;fvdB1mA22o2EhinjPQ03V0P7SOtGVu4OKpVirsVdirsVdirsVdirsVTXyx5Z1nzPr9loOjQG51G/&amp;#xA;kEUEY6Cu7O5/ZRFqzN2AxV+h35U/lpo/5eeUbfQrCktwaS6le0o1xcsAHc+CilEXsPepxVmOKuxV&amp;#xA;2KuxV2KuxV2KvOP+ci9aGkfkx5nn5cXubZbKMVoW+tyLAwH+wdj8sVfnlirPfyG0g6r+cXlO1A5c&amp;#xA;NQjuyN+lmDcnp/xhxV6B/wA5meXmsPzNs9XRaQ6xp8bM/jNbM0Tj6I/TxV4Fir7C/wCcJvMoufKu&amp;#xA;veXJHrJp12l5CpO/pXacCF9leCp/1sVfSWKuxV2KuxV2KuxV2KuxV4r/AM5J/kivnvQf03o0I/xZ&amp;#xA;pMZ9FVABu7cfEbcn+YbtH7
 1H7VQq+F3R0dkdSrqSGUihBHUEYqtxV2KuxV2KuxV2KrkR3dURSzsQ&amp;#xA;FUCpJPQAYq+6P+cbPyRXyJoP6b1mEf4s1aMesrAE2lufiFuD/Mdmk96D9mpVe1Yq7FXYq7FXYq7F&amp;#xA;XYq7FXzb/wA5s+ZRbeVdB8uRvSTUbt7yZQd/StE4AN7M89R/q4q+PcVe+/8AOGfl5r/8zbzV3WsO&amp;#xA;j6fIyv4TXLLEg+mP1MVer/8AOZnlU6l+Xdjr8ScptBvB6jU+zb3gET/8lVixV8V4q9d/5xb85L5b&amp;#xA;/NvT4Z5OFlrqNpc5PTnMQ0H0mdEX6Tir73xV2KuxV2KuxV2KuxV2KuxV8l/85X/kd9Vmm/MLy7b/&amp;#xA;AOjTNXzDaRj7EjGn1tVH7LnaT3+LuxCr5fxV2KuxV2KuxV2KvqD/AJxQ/I761ND+YXmK3/0aFq+X&amp;#xA;rSQfbkU0+tsp/ZQ7R+/xdlJVfWmKuxV2KuxV2KuxV2KuxV2Kvgj/AJyk85L5k/NvUIYJOdloSLpc&amp;#xA;BHTnCS0/0id3X6BiryLFX2p/zhn5VOm/l3fa/KnGbXrw+m1PtW9mDEn/ACVaXFXs/nLy1a+aPKmr&amp;#xA;eXrogQ6pay23MivBnUhJAPFHow+WKvzN1LT7zTdRutOvYzDeWU0lvcxHqksTFHU/JlIxVSt55ree&amp;#xA;O4gdop4WWSKRTRldTVWBHQgjFX6Tfld53t/O3kPSPMcRX1buEC8jX/ddzH8E6fQ6mntQ4qyrFXYq&amp;#xA;7FXYq7FXYq7FXYqp3Ntb3VvLbXMSzW86NHNDIAyOjjiysp2IINCMVfBH/OQv5L3H5d+ZvrFhGz+V&amp;#xA;tVdn0yY1b0X+01q7eKfsE/aXxIbFXk2KuxV2KuxV6z/zj1+S9x+Ynmb6xfxsnlbSnV9TmFV9Z/tL
 &amp;#xA;ao3i/wC2R9lfAlcVfe9tbW9rbxW1tEsNvAixwwxgKiIg4qqqNgABQDFVTFXYq7FXYq7FXYq7FXYq&amp;#xA;xX80fO9v5J8h6v5jlK+raQkWcbf7suZPggT6XYV9qnFX5s3E81xPJcTu0s8zNJLIxqzOxqzEnqST&amp;#xA;iqrpun3mpaja6dZRma8vZo7e2iHV5ZWCIo+bMBir9MvJvlq18r+VNJ8vWpBh0u1ituYFObIoDyEe&amp;#xA;LvVj88VTnFXxL/zl7+X7aF5+j8y2sdNO8yJ6khA+FLyEBZl2/nXi+/UlvDFXguKvo3/nDv8AM0aT&amp;#xA;5iufJGoS8bHW29fTSxoqXqLRk3/39GoH+soHfFX2PirsVdirsVdirsVdirsVdiqR+dvJuh+cvLN7&amp;#xA;5e1qL1bK8SnIUDxSDdJYz2dG3H3HauKvzt/MTyDrfkTzXd+XtXWssB5W1yARHcQMT6c0dezU6djU&amp;#xA;dRirGcVdirJvy78g6357812nl7SFpLOeVzckEx28CkepNJTstenc0HU4q/RLyT5N0Pyb5ZsvL2ix&amp;#xA;elZWaU5GheWQ7vLIe7u25+4bUxVPMVdirsVdirsVdirsVdirsVfHH/OYf5mrq/mG28kadLysdEb1&amp;#xA;9SKmqveutFTb/fMbEf6zEHpir5yxV71/ziF+X7a75+k8y3UddO8tp6kZI+F7yYFYV3/kXk+3QhfH&amp;#xA;FX21irsVYL+dX5cwef8A8v8AUNECj9Ixj61pMpoON3EDwFT0EgJjb2bFX503FvPbXEtvcRtFPC7R&amp;#xA;yxOKMroaMrA9CCMVXWd3dWV3BeWkrQXVtIs0EyGjJJGwZWU9iCKjFX6H/kn+aNn+Ynki21Xkq6vb&amp;#xA;AW+s2y7cLhRu4Xsko+Nfu6g4qz/FXYq7FXYq7FXYq7FXY
 q7FXmv57fk9Y/mR5VaCIJD5i08NLo94&amp;#xA;2w5kfFBIf99y03/lNG7UKr8/dQ0+906+uLC+he2vbWRobm3kHF0kQ8WVh4gjFXafp97qN9b2FjC9&amp;#xA;ze3Uiw21vGOTvI54qqjxJOKv0C/In8nrH8t/KqwShJvMWoBZdYvF3HMD4YIz/vuKu38xq3egVelY&amp;#xA;q7FXYq7FXYq7FXYq7FXYqwD87PzRs/y78kXOq8lbV7kG30a2bfncMNnK90iHxt93UjFX54Xl3dXt&amp;#xA;3PeXcrT3VzI008zmrPJIxZmY9ySanFVtvbz3NxFb28bSzzOscUSCrM7miqoHUknFX6Lfkr+XMHkD&amp;#xA;8v8AT9EKj9IyD61q0ooeV3KBzFR1EYAjX2XFWdYq7FXYq+Ov+cvPylbSdbXz5pMP+43VnEerog2i&amp;#xA;vKfDKadFnA3/AMsb7sMVfOGKs8/Jr81NS/LjzhDq0IabS7ikGsWKn+9tya1UHb1I/tIfo6E4q/Qr&amp;#xA;Q9b0vXdItNY0q4W606+jWa2nToyN89wR0IO4O2Ko7FXYq7FXYq7FXYq7FXYq7FXzj/zlV+R36csZ&amp;#xA;fPfl63rrNjHXWbWMb3NvGP75QOskKjf+ZPdQCq7/AJxV/I79B2MXnvzDb01m+jro1rIN7a3kH98w&amp;#xA;PSSZTt/KnuxAVfR2KuxV2KuxV2KuxV2KuxV2KoHXNb0vQtIu9Y1W4W106xjaa5nfoqL8tyT0AG5O&amp;#xA;2Kvz1/OX81NS/MfzhNq0waHS7esGj2LH+6twa1YDb1JPtOfo6AYqwPFX0f8A84h/lK2ra23nzVof&amp;#xA;9xukuY9IRxtLeU+KUV6rADt/lnbdTir7FxV2KuxV2Kpf5h0DSvMOiXuiatAtzp1/E0NzC3dW7g9m&amp;#xA;U7qRuDuMVfnd+b
 H5Z6v+Xnm640O+DSWrVm0y9p8NxbEkK223IfZcdj7UxVhmKvaP+cePz7uPy/1L&amp;#xA;9C60zz+Ub6QGQCrNZytsZ4x3Q/7sQfMb7Mq+57W6tru2iurWVJ7adFkgnjYOjo4qrKwqCCDUEYqq&amp;#xA;4q7FXYq7FXYq7FXYq7FXEAih3B6jFXAACg2A6DFXYq7FXYq7FXYq7FXYq7FVK6ura0tpbq6lSC2g&amp;#xA;RpJ55GCIiIKszMaAAAVJOKvhj/nIf8+7j8wNS/Quis8HlGxkJjBqrXkq7CeQdkH+60PzO+yqvF8V&amp;#xA;Zn+U/wCWer/mH5ut9DsQ0dqtJtTvafDb2wIDNvtyP2UHc+1cVfoj5e0DSvL2iWWiaTAttp1hEsNt&amp;#xA;CvZV7k92Y7sTuTucVTDFXYq7FXYq7FWEfm7+VejfmP5Vk0i9pBfw8pdK1HjVreen3mN6AOvce4Bx&amp;#xA;V+fPmvyrrnlXXrvQtctmtdRs34yIfssP2XRv2kcbqw6jFUoxV7R+Qn/OQ+pfl/cLoutepfeUZ3qY&amp;#xA;weUtmzHeSAHqh6vH9I3ryVfb2ia5pGu6Xb6ro93HfaddLzguYW5Iw6fQQdiDuD1xVHYq7FXYq7FX&amp;#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FUDreuaRoWl3Gq6xdx2OnWq857mZuKKOn0knYAbk9MVfEP59&amp;#xA;/wDOQ+pfmBcNoui+pY+UYHqIyeMt4ynaScDog6pH9J3pxVeL4qm/lTyrrnmrXrTQtDtmutRvH4xo&amp;#xA;PsqP2ndv2UQbsx6DFX6DflF+Vejflx5Vj0iypPfzcZdV1HjRrien3iNKkIvYe5JxVm+KuxV2KuxV&amp;#xA;2KuxV2KvNvzs/JPRfzM0VEd1sfMFirfozU+NaV3MMwG7RMfpU7juGVfBfmrypr3lXXLn
 Q9dtHs9R&amp;#xA;tWo8bdGX9l0bo6N1VhscVSjFWeflX+cvnD8uNSM2kzfWNLmYNfaPOSbeXsWFP7uSnR1+mo2xV9s/&amp;#xA;ld+dnkj8xLNf0Vci21dV5XOjXBC3CU+0UHSVB/Mn00O2Ks/xV2KuxV2KuxV2KuxV2KuxV2KuxV2K&amp;#xA;uxV2KsA/NH87PJH5d2bfpW5Fzq7LyttGtyGuHr9kuOkSH+Z/oqdsVfE35qfnL5w/MfUhNq031fS4&amp;#xA;WLWOjwEi3i7BjX+8kp1dvooNsVYHiqb+VfKmveatcttD0K0e81G6aiRr0Vf2nduiIvVmOwxV96fk&amp;#xA;n+Sei/lnorojrfeYL5V/Sep8aVpuIYQd1iU/Sx3PYKq9JxV2KuxV2KuxV2KuxV2KuxVhH5qflF5V&amp;#xA;/MfRvqWrx+jfwBv0dqsSj17dj93OMn7SE0PsaHFXwr+Zn5T+bvy81c2OuW/K1kY/UtThBNtcL1+F&amp;#xA;iNmp1Rtx8t8VYZiqtaXl3ZXUV3ZzyW11AweGeFmjkRh0ZWUggjxGKvof8sv+cw/MOkLFp3ne2bW7&amp;#xA;FaKNSg4peoo2+NTxjm+kq3ck4q+nfJH5o+Q/O1uJfLmrw3cvHlJZk+ncx/68D8XHzpTwOKsqxV2K&amp;#xA;uxV2KuxV2KuxV2KuxV2KsV87/mj5D8k25l8x6vDaS8eUdmD6lzJ/qQJyc/OlPE4q+YvzN/5zD8w6&amp;#xA;usuneSLZtEsWqp1Kfi966nb4FHKOH6CzdwRir54u7y7vbqW7vJ5Lm6nYvNPMzSSOx6szMSST4nFV&amp;#xA;HFWZ/ln+U/m78w9XFjodvxtY2H13U5gRbW69fiYDdqdEXc/LfFX3V+Vf5ReVfy40b6lpEfrX84X9&amp;#xA;I6rKo9e4YffwjB+ygNB7mpxVm+KuxV2KuxV2K
 uxV2KuxV2KuxV2Kpfr/AJe0TzDpU+k63ZRX+nXK&amp;#xA;8ZraZeSnwI7qw6hhuDuMVfJX5tf84h63pLTat5DZ9W03d30iQj65EOtIm2E6jw2ft8R3xV86XFvc&amp;#xA;W08lvcRPDPExSWKRSjqw2KspoQRiqniqpBcT28yT28jQzxMGjljYq6sNwVYUIIxV6z5N/wCcpPzb&amp;#xA;8trHBNqCa7ZJsINUUzPT/jOpScn/AFnPyxV7L5a/5zZ8q3ISPzHoN3p0hoGms3S7ir/MQ/oOo9hy&amp;#xA;xV6Xov8AzkX+TGrhfQ8z21s7UrHerJacSexadUT7mpirMNP84eUtRUPp+t2F4pFQ1vdQyilAeqMf&amp;#xA;EYqm4IIqNwehxVxIAqdgOpxVKNQ84eUtOUvqGt2FmoFS1xdQxClCersPA4qw/Wv+ci/yY0gN6/me&amp;#xA;2uXWtI7JZLvkR2DQK6fe1MVeaeZf+c2fKtsHj8uaDd6jIKhZrx0tIq/zAJ67sPY8cVeNecv+cpPz&amp;#xA;b8yLJBDqCaFZPsYNLUwvT/jOxecH/VcfLFXk09xPcTPPcSNNPKxaSWRizsx3JZjUknFVPFVS3t7i&amp;#xA;5njt7eJ5p5WCRRRqXdmOwVVFSScVfRf5S/8AOIet6s0OrefGfSdN2dNIjI+uSjrSVtxAp8N37fCd&amp;#xA;8VfWugeXtE8vaVBpOiWUVhp1svGG2hXio8Se7MepY7k7nFUwxV2KuxV2KuxV2KuxV2KuxV2KuxV2&amp;#xA;KuxV2KsF/Mb8lfy/8/wMdb08R6jSkWrWtIrtaCgq9CJAP5ZAwxV8v/mB/wA4heftCaS68tSJ5k04&amp;#xA;VIjjpDeIvX4oWPF/D4GJP8oxV4dqGm6jpt5JZajazWV5CaS21xG0UqHwZHCsPpGKobFXYq7FXYqv&amp;#xA;jlkicS
 ROySL9l1JBHyIxV0kskrmSV2eRvtOxJJ+ZOKrMVdirsVdiqJ0/TdR1K8jstOtZr28mNIra&amp;#xA;3jaWVz4KiBmP0DFXuP5f/wDOIXn7XWjuvMsieW9ONCY5KTXjr1+GFTxTw+NgR/KcVfUH5c/kr+X/&amp;#xA;AJAgU6Jp4k1GlJdWuqS3bVFDR6ARg/yxhRirOsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&amp;#xA;rsVdiqTeZfJvlTzRai18w6Ta6pCAQn1mJXZK9TG5HND7qRirxjzV/wA4Z/l3qReXQL680GZq8Y6i&amp;#xA;8t1/2EpWX/kriryjzD/zhn+ZtgzPpF5p+sQj7CrI1tMfmkq+mP8AkZirz/V/yG/OLSiRdeU9Qfj1&amp;#xA;NpGLwdadbYzYqxW98seZbFuN7pN7asOomt5Yz0r+0o7YqlmKuxVM7Lyx5lvm42Wk3t0x6CG3lkPS&amp;#xA;v7KntirKtI/Ib84tVIFr5T1BOXQ3cYsx1p1uTDir0Dy9/wA4Z/mbfsr6veafo8J+2rSNczD5JEvp&amp;#xA;n/kZir1fyr/zhn+XemlJdfvrzXplpyjqLO3b/YRFpf8Akrir2fy15N8qeV7U2vl7SbXS4SAH+rRK&amp;#xA;jPToZHA5ufdicVTnFXYq7FXYq7FXYq7FXYq7FXYq/wD/2Q==&lt;/xmpGImg:image&gt;
+               &lt;/rdf:li&gt;
+            &lt;/rdf:Alt&gt;
+         &lt;/xmp:Thumbnails&gt;
+         &lt;xmpTPg:NPages&gt;1&lt;/xmpTPg:NPages&gt;
+         &lt;xmpTPg:HasVisibleTransparency&gt;False&lt;/xmpTPg:HasVisibleTransparency&gt;
+         &lt;xmpTPg:HasVisibleOverprint&gt;False&lt;/xmpTPg:HasVisibleOverprint&gt;
+         &lt;xmpTPg:MaxPageSize rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;stDim:w&gt;16.000000&lt;/stDim:w&gt;
+            &lt;stDim:h&gt;16.000000&lt;/stDim:h&gt;
+            &lt;stDim:unit&gt;Points&lt;/stDim:unit&gt;
+         &lt;/xmpTPg:MaxPageSize&gt;
+         &lt;xmpTPg:PlateNames&gt;
+            &lt;rdf:Seq&gt;
+               &lt;rdf:li&gt;Cyan&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Magenta&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Yellow&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Black&lt;/rdf:li&gt;
+            &lt;/rdf:Seq&gt;
+         &lt;/xmpTPg:PlateNames&gt;
+         &lt;xmpTPg:SwatchGroups&gt;
+            &lt;rdf:Seq&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;xmpG:groupName&gt;Default Swatch Group&lt;/xmpG:groupName&gt;
+                  &lt;xmpG:groupType&gt;0&lt;/xmpG:groupType&gt;
+               &lt;/rdf:li&gt;
+            &lt;/rdf:Seq&gt;
+         &lt;/xmpTPg:SwatchGroups&gt;
+         &lt;dc:format&gt;application/pdf&lt;/dc:format&gt;
+         &lt;dc:title&gt;
+            &lt;rdf:Alt&gt;
+               &lt;rdf:li xml:lang=&quot;x-default&quot;&gt;save to downloads&lt;/rdf:li&gt;
+            &lt;/rdf:Alt&gt;
+         &lt;/dc:title&gt;
+         &lt;xmpMM:RenditionClass&gt;proof:pdf&lt;/xmpMM:RenditionClass&gt;
+         &lt;xmpMM:DocumentID&gt;uuid:9136618f-5953-6248-ba3d-5f8c0fda7220&lt;/xmpMM:DocumentID&gt;
+         &lt;xmpMM:InstanceID&gt;uuid:45b75117-5981-534c-a785-ff7840262c69&lt;/xmpMM:InstanceID&gt;
+         &lt;pdf:Producer&gt;Adobe PDF library 11.00&lt;/pdf:Producer&gt;
+      &lt;/rdf:Description&gt;
+   &lt;/rdf:RDF&gt;
+&lt;/x:xmpmeta&gt;
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+&lt;?xpacket end=&quot;w&quot;?&gt;+endstream+endobj+3 0 obj+&lt;&lt;/Count 1/Kids[5 0 R]/Type/Pages&gt;&gt;+endobj+5 0 obj+&lt;&lt;/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&lt;&lt;/ExtGState&lt;&lt;/GS0 7 0 R&gt;&gt;/Properties&lt;&lt;/MC0 8 0 R&gt;&gt;&gt;&gt;/TrimBox[0.0 0.0 16.0 16.0]/Type/Page&gt;&gt;+endobj+6 0 obj+&lt;&lt;/Filter/FlateDecode/Length 223&gt;&gt;stream
+H\x89TQ=o! \xDD\xFD+&lt;G\xC2g\xD0\xE3\xD6&amp;U\x97f\x882d\xAEP&gt;\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&amp;\xD9&quot;4|\xD2ʽg\xAA\xE9ӈ\xA9\x9F/\xB50GNB\xB5\x8D&quot;!\xA7\x95+Z\xCA
+ؓξ&amp;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+&lt;&lt;/Color[20224 32768 65535]/Dimmed false/Editable true/Preview true/Printed true/Title(Layer 1)/Visible true&gt;&gt;+endobj+7 0 obj+&lt;&lt;/AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false&gt;&gt;+endobj+9 0 obj+&lt;&lt;/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)&gt;&gt;+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+&lt;&lt;/Size 10/Root 1 0 R/Info 9 0 R/ID[&lt;D37224960EED4540861D3932BC44E457&gt;&lt;56658A77C5754A34BFB896834B48AC10&gt;]&gt;&gt;+startxref+20955+%%EOF
</ins></span></pre></div>
<a id="trunkSourceWebKit2ResourcesShareImageTemplatepdf"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/Resources/ShareImageTemplate.pdf (0 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Resources/ShareImageTemplate.pdf                                (rev 0)
+++ trunk/Source/WebKit2/Resources/ShareImageTemplate.pdf        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -0,0 +1,134 @@
</span><ins>+%PDF-1.5+%\xE2\xE3\xCF\xD3
+1 0 obj+&lt;&lt;/Metadata 2 0 R/Pages 3 0 R/Type/Catalog&gt;&gt;+endobj+2 0 obj+&lt;&lt;/Length 11864/Subtype/XML/Type/Metadata&gt;&gt;stream
+&lt;?xpacket begin=&quot;&quot; id=&quot;W5M0MpCehiHzreSzNTczkc9d&quot;?&gt;
+&lt;x:xmpmeta xmlns:x=&quot;adobe:ns:meta/&quot; x:xmptk=&quot;Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15        &quot;&gt;
+   &lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
+      &lt;rdf:Description rdf:about=&quot;&quot;
+            xmlns:xmp=&quot;http://ns.adobe.com/xap/1.0/&quot;
+            xmlns:xmpGImg=&quot;http://ns.adobe.com/xap/1.0/g/img/&quot;
+            xmlns:xmpTPg=&quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;
+            xmlns:stDim=&quot;http://ns.adobe.com/xap/1.0/sType/Dimensions#&quot;
+            xmlns:xmpG=&quot;http://ns.adobe.com/xap/1.0/g/&quot;
+            xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;
+            xmlns:xmpMM=&quot;http://ns.adobe.com/xap/1.0/mm/&quot;
+            xmlns:pdf=&quot;http://ns.adobe.com/pdf/1.3/&quot;&gt;
+         &lt;xmp:CreatorTool&gt;Adobe Illustrator CC (Macintosh)&lt;/xmp:CreatorTool&gt;
+         &lt;xmp:CreateDate&gt;2014-10-21T13:04:02-07:00&lt;/xmp:CreateDate&gt;
+         &lt;xmp:ModifyDate&gt;2014-10-21T13:04:02-07:00&lt;/xmp:ModifyDate&gt;
+         &lt;xmp:MetadataDate&gt;2014-10-21T13:04:02-07:00&lt;/xmp:MetadataDate&gt;
+         &lt;xmp:Thumbnails&gt;
+            &lt;rdf:Alt&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;xmpGImg:width&gt;176&lt;/xmpGImg:width&gt;
+                  &lt;xmpGImg:height&gt;256&lt;/xmpGImg:height&gt;
+                  &lt;xmpGImg:format&gt;JPEG&lt;/xmpGImg:format&gt;
+                  &lt;xmpGImg:image&gt;/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&amp;#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&amp;#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&amp;#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAACwAwER&amp;#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&amp;#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&amp;#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&amp;#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&amp;#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&amp;#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&amp;#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&amp;#xA;+DlJWWl5iZmpucn
 Z6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&amp;#xA;FXYqgdc1vStC0i71jVrlLTTbKMy3NxJ9lVHy3JPQAbk7DFXwN+dX536/+YuuzBJZrPyxA3HTtKDE&amp;#xA;KVX/AHdOF2eRuu/2eg8SqlX5V/m35o/LvXob/TZ3m01mA1DSXc+hPGT8Xw9FkA+y4FQfEVBVfoF5&amp;#xA;N84aF5w8uWfmDRJ/XsbxOQBoHjcfbikUE8XQ7MPu23xVOsVdirsVdirsVdirsVdirsVdirsVdirs&amp;#xA;VdirsVdirsVU7i4gtreW5uJFht4UaSaZyFREQVZmY7AACpOKvhf/AJyK/Pefz/q50bRpGj8o6fIf&amp;#xA;RG6m8mWo+sODQhf99qfmdzQKvF8Vdir0/wDIn86NR/LbzFWYvc+WtQZV1WxBqR2FxED0kT/hhsex&amp;#xA;Cr770nVdO1fTLXU9NuEurC9jWa1uIzVXjcVUjFUVirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&amp;#xA;rsVfHP8Azk9+f/6euJ/JHla5rodu/HV7+M7XcqEfuYz/AL6jYbn9s/5I+JV844q7FXYq7FXuf/ON&amp;#xA;v58yeSNTXy3r8xbynfyfDK2/1Gd/92j/AIqc/wB4O32h3DKvt+OSOWNZI2DxuAyOpBVlIqCCOoOK&amp;#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdir5k/5yi/P/wDR8dz5C8q3P+nyAxa9qER/uUYENaxn&amp;#xA;/fjD+8YfZHw/aJ4qvkbFUbo+japrOpQaZpds93fXLcYYIxUmgqT7BQCWJ2A3OKoLFXYqnnnPybr3&amp;#xA;k7zFd6BrkBgvrRqVFfTlQ/YliYgckcbg/wAcVSPFX09/zi5+f31J7byD5quaWTkR6DqMr
 UETHpay&amp;#xA;Mx+wekR7H4elKKvrbFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXhn/ADkj+fkfkjTn8t+Xpg3m2+j+&amp;#xA;OZSD9QhcCkjf8Wup/dr2+0f2Qyr4gkkklkaSRi8jks7sSWLE1JJPUnFVSzs7u9u4LOzhe4u7mRYr&amp;#xA;eCMFneRzxVVUbkkmgxV9x/kj+RVp+XnlG81PVUSbzdqFpJ9bl2YWsTJX6tGwJHUfGw+0fYDFXwti&amp;#xA;rsVfoT+eX5MaX+ZPlwogS28yWKs2k6gRTfc+hMQCTE5/4E7juCq+A9Z0bVNF1W60nVbZ7TUbKQxX&amp;#xA;NvIKMrr/AA7gjYjcYqgwSDUbEYq+y/8AnGL8/v8AElrD5L80XNfMFsnHS72U73kKL/dux6zoB1/b&amp;#xA;XfqCSq+iMVdirsVdirsVdirsVdirsVdirsVeXfnz+den/lt5e4WxS480agjDS7I7hBuDczD/AH2h&amp;#xA;6D9pthtyIVfA2qapqGq6jc6lqVw91f3kjTXNxKeTu7mpYnFUMqszBVBZmNFUbkk4q+0v+caPyAXy&amp;#xA;paReb/M1v/zst1HWxtJBvZQuOrKRtO4+1/KNupbFXu+rf8cq9/4wS/8AEDir8tcVdir9VMVeK/8A&amp;#xA;ORn5DQ+fdKOuaHEsfm+wjpGNlF7Cu/oyMdg6/wC62P8AqnY1VV8MzwTW80kE8bRTxMUlicFXV1NG&amp;#xA;VlO4IOxBxVdaXd1Z3UN3aSvBdW7rLBPGSro6HkrKw3BBFRir7u/5x6/PO2/MPRP0bqrpF5u06MfX&amp;#xA;IhRRcxCgFzGAABUmjqOh9iMVewYq7FXYq7FXYq7FXYq7FXYqwr82fzT0P8ufK0mr6gRNey1j0vTg&amp;#xA;1JLmenQeCJWrt2HuQCq/Pjzb5s1zzZ5gu9e1y4
 NzqF4/KRuiqo2WONd+KINlGKpPir6v/wCcXv8A&amp;#xA;nH70ha+f/Ndt+9PGby/p0o+yNmS8kHj/AL6B6fa/loq+pcVQurf8cq9/4wS/8QOKvy1xV2Kv1UxV&amp;#xA;2Kvm/wD5ye/ID9OQXHnjytb/AO5qBOesWEY/3qjQbzoP9+oo+ID7Y/yh8Sr47xVMvLvmHWPLutWm&amp;#xA;t6NctaalYyCS3nTqD0IIOzKwJDA7EbHFX6B/k1+bujfmT5YW/t+NvrFrxj1fTQd4pSNnSu5ikpVD&amp;#xA;9HUHFWf4q7FXYq7FXYq7FXYqtllSKJ5ZDxjjUs7eAAqTir83PzS/MjWvzA83XWuajIwg5NHptpX4&amp;#xA;Le2DH041HjTdz3bfFWIYq+iv+cZf+cfz5juYfOnmm2/51+2flpdhKCPrkqEESOpHxQIe37bbfZBB&amp;#xA;VfZQAAoNgOgxV2KoXVv+OVe/8YJf+IHFX5a4q7FX6qYq7FXYq+Rv+cofyA/R0lz598q23+gSMZde&amp;#xA;0+Mf3LsSWuox/vtifjUfZPxfZrxVfMmKsm/Lvz/rvkTzTaeYNHkIkhIW6tiSI7iAkGSGQfytT6DQ&amp;#xA;jcYq/SewvIb6xt72Cvo3USTRchQ8ZFDLUfI4qr4q7FXYq7FXYq7FWnRJEaNwGRwVZT0IOxBxV+fH&amp;#xA;5p/kT528leYrq3h0y61DQ3lY6bqVtE8yNETVFkKBuEgGxDUqQaVGKsp/In/nG3X/ADVrUOq+bdPu&amp;#xA;NN8rWpErRXCNDLesCCIUVuLrGf23p02Xc1VV9t2trbWltFa2sSQW1uixQQRqFRI0HFUVRsAoFABi&amp;#xA;qpirsVQurf8AHKvf+MEv/EDir8tcVdir9VMVdirsVWyRxyxtHIoeNwVdGAKspFCCD1BxV8Xfn/8A&amp;#xA;842ax5e
 1eXXvJmnzX/ly7YvJY2yNLLZSHdl4KCzQnqrD7PQ9iVWBflt+R3nrzr5gt7FdMurDSw6n&amp;#xA;UNUuYniiiiB+PiXA5yU+yg79aCpxV+hdnawWdpBaQLxgt41iiWtaIihVFT7DFVXFXYq7FXYq7FXY&amp;#xA;q7FXYq7FXYq7FXYqhdW/45V7/wAYJf8AiBxV+WuKuxV+qmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&amp;#xA;KuxV2KuxV2KuxV2KoXVv+OVe/wDGCX/iBxV+WuKuxV+qmKuxV2KuxV2KuxV2KuxV2KuxV2KrJp4I&amp;#xA;E9SaRYk6cnIUVPucVUP0tpX/AC2wf8jU/rirv0tpX/LbB/yNT+uKu/S2lf8ALbB/yNT+uKu/S2lf&amp;#xA;8tsH/I1P64q79LaV/wAtsH/I1P64q79LaV/y2wf8jU/riqKxVC6t/wAcq9/4wS/8QOKvy1xV2Kv1&amp;#xA;UxV2KuxV2KuxV2KuxV2KuxV2KvB/+ci/+ciH8isPLPlr05fNE0Ye5uXAdLKNwCh4H4WldTyUNsBQ&amp;#xA;kGoxV8ba95m8w+Yb1r7XNRuNSu2JJluZGkIr2XkaKPYbYqlmKuxV2KuxV2KuxV+qmKoXVv8AjlXv&amp;#xA;/GCX/iBxV+WuKuxV+qmKoXVv+OVe/wDGCX/iBxV+WuKuxV2KuxV2KuxVPPLXnjzh5XuVuPL+sXem&amp;#xA;yKa8YJWWNvZ46mNx7MpxV9l/849/85CRfmDE2g68sdr5rtYzIDGOMV5Ev2pI1/ZkX9tP9ku1Qqr4&amp;#xA;v82+YrvzJ5n1TXrtma41O6luW5dVEjEqnyRaKB2AxVKMVdirsVdirsVdirsVfqpiqF1b/jlXv/GC&amp;#xA;X/iBxV+WuKuxV+qmKoXVv+OVe/8AGCX/AIgcVflrirsVdirsVdirsVdiqd+Sv
 Mt15Y826R5gtWKy&amp;#xA;6bdRTmn7SK37xD7OlVPscVSTFXYq/Qr8k/yd8t+RPK1gy2UUvmO5hjm1PUpFDTes68mjjY14RpXi&amp;#xA;AtK0qd8VelYq7FXYq7FXYq7FULq3/HKvf+MEv/EDir8tcVdir9VMVcQCKHcHqMVQv6J0r/lig/5F&amp;#xA;J/TFXfonSv8Alig/5FJ/TFXfonSv+WKD/kUn9MVd+idK/wCWKD/kUn9MVd+idK/5YoP+RSf0xV5f&amp;#xA;+eH5G+U/OPlXULuz0+Cy8zWcMlxY39uixNI8alvRn4gc0elN91O47gqvgXFXYq7FXYq/VTFXYq7F&amp;#xA;XYq7FXYq7FULq3/HKvf+MEv/ABA4q/LXFXYq/VTFXYq7FXYq7FXYq7FULq3/AByr3/jBL/xA4q/L&amp;#xA;XFXYq7FXYq/VTFXYq7FXYq7FXYq7FULq3/HKvf8AjBL/AMQOKvy1xV2Kv1UxV2KuxV2KuxV2KuxV&amp;#xA;C6t/xyr3/jBL/wAQOKvy1xV2KuxV2Kv1UxV2KuxV2KuxV2KuxVC6t/xyr3/jBL/xA4q/LXFXYq/V&amp;#xA;TFXYq7FXYq7FXYq7FULq3/HKvf8AjBL/AMQOKvy1xV2KuxV2Kv1UxV2KuxV2KuxV2KuxVC6t/wAc&amp;#xA;q9/4wS/8QOKvy1xV2Kv1UxV2KuxV2KuxV2KuxVC6t/xyr3/jBL/xA4q/LXFXYq7FXYq/VTFXYq7F&amp;#xA;XYq7FXYq7FULq3/HKvf+MEv/ABA4q/LXFXYq/VTFXYq7FXYq7FXYq7FULq3/AByr3/jBL/xA4q/L&amp;#xA;XFXYq7FXYq/VTFXYq7FXYq7FXYq7FULqoJ0u8A3JgkoP9gcVfmB+idV/5Y5/+Rb/ANMVd+idV/5Y&amp;#xA;5/8AkW/9MVfqTirsVdirsVdirsVdiq
 F1b/jlXv8Axgl/4gcVflrirsVdirsVfqpirsVdirsVdirs&amp;#xA;VdirsVdirsVdirsVdirsVdirsVdiqF1b/jlXv/GCX/iBxV+WuKuxV2KuxV+qmKuxV2KuxV2KuxV2&amp;#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KoXVv8AjlXv/GCX/iBxV+WuKuxV2KuxV+qmKuxV2KuxV2KuxV2K&amp;#xA;uxV2KuxV2KuxV2KuxV2KuxV2KoXVv+OVe/8AGCX/AIgcVflrirsVdirsVfqpirsVdirsVdirsVdi&amp;#xA;rsVdirsVdirsVdirsVdirsVdiqF1b/jlXv8Axgl/4gcVflrirsVdirsVfqpirsVdirsVdirsVdir&amp;#xA;sVdirsVdirsVdirsVdirsVdiqF1b/jlXv/GCX/iBxV+WuKuxV2KuxV+qmKuxV2KuxV2KuxV2KuxV&amp;#xA;2KuxV2KuxV2KuxV2KuxV2KoXVv8AjlXv/GCX/iBxV+WuKuxV2KuxV+qmKuxV2KuxV2KuxV2KuxV2&amp;#xA;KuxV2KuxV2KuxV2KuxV2KoXVv+OVe/8AGCX/AIgcVflrirsVdirsVfqpirsVdirsVdirsVdirsVd&amp;#xA;irsVdirsVdirsVdirsVdiqF1b/jlXv8Axgl/4gcVflrirsVdirsVfoF+Sn52+VfOvlWwin1CC18y&amp;#xA;WsCRalp0zrHI0kahWliViOcb05fDXjWhxV6lirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVe&amp;#xA;U/nd+d3lXyZ5Uv7e2v4LzzJeQvBp+nwSLI6PIpUTTBeXBEry+L7XQeyr4BxV2Kpx5v8ALl35a806&amp;#xA;roF2CJ9MupbYltuSoxCv8nWjD2OKpPirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&amp;#xA
 ;rsVTnyZ5au/M/mvSfL9opabU7qK3qorxRm+Nz7IlWPsMVfZH/OQ//OPA8/AeYvLpjt/NNvGI5YpC&amp;#xA;EjvY0Hwqzfsyr0VjsRsdqEKvjbzH5Q80+Wrs2mv6VdaZODxAuYmRWp/IxHFx7qSMVSfFXYq7FXYq&amp;#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqnPlryd5p8z3i2fl/SrnUp2biRbxsyqT/O/wBhB7sQ&amp;#xA;MVfZP/OPH/OPC+QVPmHzCY7jzVcRmOKKM847KN/tqr9HlcbMw2A+Fdqkqv8A/9k=&lt;/xmpGImg:image&gt;
+               &lt;/rdf:li&gt;
+            &lt;/rdf:Alt&gt;
+         &lt;/xmp:Thumbnails&gt;
+         &lt;xmpTPg:NPages&gt;1&lt;/xmpTPg:NPages&gt;
+         &lt;xmpTPg:HasVisibleTransparency&gt;False&lt;/xmpTPg:HasVisibleTransparency&gt;
+         &lt;xmpTPg:HasVisibleOverprint&gt;False&lt;/xmpTPg:HasVisibleOverprint&gt;
+         &lt;xmpTPg:MaxPageSize rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;stDim:w&gt;15.000000&lt;/stDim:w&gt;
+            &lt;stDim:h&gt;16.000000&lt;/stDim:h&gt;
+            &lt;stDim:unit&gt;Points&lt;/stDim:unit&gt;
+         &lt;/xmpTPg:MaxPageSize&gt;
+         &lt;xmpTPg:PlateNames&gt;
+            &lt;rdf:Seq&gt;
+               &lt;rdf:li&gt;Cyan&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Magenta&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Yellow&lt;/rdf:li&gt;
+               &lt;rdf:li&gt;Black&lt;/rdf:li&gt;
+            &lt;/rdf:Seq&gt;
+         &lt;/xmpTPg:PlateNames&gt;
+         &lt;xmpTPg:SwatchGroups&gt;
+            &lt;rdf:Seq&gt;
+               &lt;rdf:li rdf:parseType=&quot;Resource&quot;&gt;
+                  &lt;xmpG:groupName&gt;Default Swatch Group&lt;/xmpG:groupName&gt;
+                  &lt;xmpG:groupType&gt;0&lt;/xmpG:groupType&gt;
+               &lt;/rdf:li&gt;
+            &lt;/rdf:Seq&gt;
+         &lt;/xmpTPg:SwatchGroups&gt;
+         &lt;dc:format&gt;application/pdf&lt;/dc:format&gt;
+         &lt;dc:title&gt;
+            &lt;rdf:Alt&gt;
+               &lt;rdf:li xml:lang=&quot;x-default&quot;&gt;share&lt;/rdf:li&gt;
+            &lt;/rdf:Alt&gt;
+         &lt;/dc:title&gt;
+         &lt;xmpMM:RenditionClass&gt;proof:pdf&lt;/xmpMM:RenditionClass&gt;
+         &lt;xmpMM:DocumentID&gt;uuid:42c140d4-f642-884f-b34a-56e3afadf921&lt;/xmpMM:DocumentID&gt;
+         &lt;xmpMM:InstanceID&gt;uuid:5f7017f2-83e4-ac46-9ee9-dceaa24ec9fa&lt;/xmpMM:InstanceID&gt;
+         &lt;pdf:Producer&gt;Adobe PDF library 11.00&lt;/pdf:Producer&gt;
+      &lt;/rdf:Description&gt;
+   &lt;/rdf:RDF&gt;
+&lt;/x:xmpmeta&gt;
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+&lt;?xpacket end=&quot;w&quot;?&gt;+endstream+endobj+3 0 obj+&lt;&lt;/Count 1/Kids[5 0 R]/Type/Pages&gt;&gt;+endobj+5 0 obj+&lt;&lt;/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&lt;&lt;/ExtGState&lt;&lt;/GS0 7 0 R&gt;&gt;/Properties&lt;&lt;/MC0 8 0 R&gt;&gt;&gt;&gt;/TrimBox[0.0 0.0 15.0 16.0]/Type/Page&gt;&gt;+endobj+6 0 obj+&lt;&lt;/Filter/FlateDecode/Length 395&gt;&gt;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&gt;\xEF\xC0\x9B\xB7\xD7\xF4~\xBB\xA9\xFFno\xE9\xF2\xF5;\xC1۟\xF4&amp;h\xD8jip\xBC\x87\xDF{ڲ\xD7~l\xDCOBm\xF5\xC4&quot;a'\xFF \xA0;.ߪ\xC3\xDD\x96&quot;
+\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&amp;ݘ\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\xA6XY 0ca\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&lt;+\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+&lt;&lt;/Color[20224 32768 65535]/Dimmed false/Editable true/Preview true/Printed true/Title(Layer 1)/Visible true&gt;&gt;+endobj+7 0 obj+&lt;&lt;/AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false&gt;&gt;+endobj+9 0 obj+&lt;&lt;/CreationDate(D:20141021130402-07'00')/Creator(Adobe Illustrator CC \(Macintosh\))/ModDate(D:20141021130402-07'00')/Producer(Adobe PDF library 11.00)/Title(share)&gt;&gt;+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+&lt;&lt;/Size 10/Root 1 0 R/Info 9 0 R/ID[&lt;10653919F0F842C9B46E02AC68A34D9E&gt;&lt;EE98C966F3AD4F9286B1727CFEE75677&gt;]&gt;&gt;+startxref+13184+%%EOF
</ins></span></pre></div>
<a id="trunkSourceWebKit2Scriptswebkitmessagespy"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Scripts/webkit/messages.py (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Scripts/webkit/messages.py        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/Scripts/webkit/messages.py        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -191,6 +191,7 @@
</span><span class="cx">         'WebCore::ViewportArguments',
</span><span class="cx">         'WebCore::ViewportAttributes',
</span><span class="cx">         'WebCore::WindowFeatures',
</span><ins>+        'WebKit::ActionMenuHitTestResult',
</ins><span class="cx">         'WebKit::AssistedNodeInformation',
</span><span class="cx">         'WebKit::AttributedString',
</span><span class="cx">         'WebKit::BackForwardListItemState',
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPIcWKActionMenuItemTypesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h        2014-10-22 23:48:38 UTC (rev 175075)
</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="trunkSourceWebKit2SharedmacActionMenuHitTestResultcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp (0 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp                                (rev 0)
+++ trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp        2014-10-22 23:48:38 UTC (rev 175075)
</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 &quot;config.h&quot;
+#include &quot;ActionMenuHitTestResult.h&quot;
+
+#include &quot;ArgumentDecoder.h&quot;
+#include &quot;ArgumentEncoder.h&quot;
+
+namespace WebKit {
+
+void ActionMenuHitTestResult::encode(IPC::ArgumentEncoder&amp; 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-&gt;createHandle(handle, SharedMemory::ReadOnly);
+
+    encoder &lt;&lt; handle;
+}
+
+bool ActionMenuHitTestResult::decode(IPC::ArgumentDecoder&amp; decoder, ActionMenuHitTestResult&amp; 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="trunkSourceWebKit2SharedmacActionMenuHitTestResulth"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.h (0 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.h                                (rev 0)
+++ trunk/Source/WebKit2/Shared/mac/ActionMenuHitTestResult.h        2014-10-22 23:48:38 UTC (rev 175075)
</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 &quot;ShareableBitmap.h&quot;
+
+namespace IPC {
+class ArgumentDecoder;
+class ArgumentEncoder;
+}
+
+namespace WebKit {
+
+struct ActionMenuHitTestResult {
+    void encode(IPC::ArgumentEncoder&amp;) const;
+    static bool decode(IPC::ArgumentDecoder&amp;, ActionMenuHitTestResult&amp;);
+
+    RefPtr&lt;ShareableBitmap&gt; image;
+};
+
+} // namespace WebKit
+
+#endif // ActionMenuHitTestResult_h
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #import &quot;APIHistoryClient.h&quot;
</span><ins>+#import &quot;ActionMenuHitTestResult.h&quot;
</ins><span class="cx"> #import &quot;AttributedString.h&quot;
</span><span class="cx"> #import &quot;ColorSpaceData.h&quot;
</span><span class="cx"> #import &quot;DataReference.h&quot;
</span><span class="lines">@@ -75,6 +76,9 @@
</span><span class="cx"> #import &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #import &quot;WebSystemInterface.h&quot;
</span><span class="cx"> #import &quot;_WKThumbnailViewInternal.h&quot;
</span><ins>+#import &lt;AppKit/NSSharingService.h&gt;
+#import &lt;ImageIO/ImageIO.h&gt;
+#import &lt;ImageKit/ImageKit.h&gt;
</ins><span class="cx"> #import &lt;QuartzCore/QuartzCore.h&gt;
</span><span class="cx"> #import &lt;WebCore/AXObjectCache.h&gt;
</span><span class="cx"> #import &lt;WebCore/ColorMac.h&gt;
</span><span class="lines">@@ -91,6 +95,7 @@
</span><span class="cx"> #import &lt;WebCore/PlatformScreen.h&gt;
</span><span class="cx"> #import &lt;WebCore/Region.h&gt;
</span><span class="cx"> #import &lt;WebCore/SharedBuffer.h&gt;
</span><ins>+#import &lt;WebCore/SoftLinking.h&gt;
</ins><span class="cx"> #import &lt;WebCore/TextAlternativeWithRange.h&gt;
</span><span class="cx"> #import &lt;WebCore/TextUndoInsertionMarkupMac.h&gt;
</span><span class="cx"> #import &lt;WebCore/WebActionDisablingCALayerDelegate.h&gt;
</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&lt;PageClientImpl&gt; _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&lt;NSSharingServicePicker&gt; _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-&gt;absoluteLinkURL()] itemFrame:itemFrame];
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (RetainPtr&lt;NSMenuItem&gt;)_createActionMenuItemForTag:(uint32_t)tag
+{
+    SEL selector = nil;
+    NSString *title = nil;
+    NSImage *image = nil;
+
+    switch (tag) {
+    case kWKContextActionItemTagOpenLinkInDefaultBrowser:
+        selector = @selector(_openURLFromActionMenu:);
+        title = @&quot;Open&quot;;
+        image = webKitBundleImageNamed(@&quot;OpenInNewWindowTemplate&quot;);
+        break;
+
+    case kWKContextActionItemTagPreviewLink:
+        selector = @selector(_quickLookURLFromActionMenu:);
+        title = @&quot;Preview&quot;;
+        image = [NSImage imageNamed:NSImageNameQuickLookTemplate];
+        break;
+
+    case kWKContextActionItemTagAddLinkToSafariReadingList:
+        selector = @selector(_addToReadingListFromActionMenu:);
+        title = @&quot;Add to Safari Reading List&quot;;
+        image = [NSImage imageNamed:NSImageNameBookmarksTemplate];
+        break;
+
+    case kWKContextActionItemTagCopyImage:
+        selector = @selector(_copyImage:);
+        title = @&quot;Copy&quot;;
+        image = webKitBundleImageNamed(@&quot;CopyImageTemplate&quot;);
+        break;
+
+    case kWKContextActionItemTagAddImageToPhotos:
+        selector = @selector(_addImageToPhotos:);
+        title = @&quot;Add to Photos&quot;;
+        image = webKitBundleImageNamed(@&quot;AddImageToPhotosTemplate&quot;);
+        break;
+
+    case kWKContextActionItemTagSaveImageToDownloads:
+        selector = @selector(_saveImageToDownloads:);
+        title = @&quot;Save to Downloads&quot;;
+        image = webKitBundleImageNamed(@&quot;SaveImageToDownloadsTemplate&quot;);
+        break;
+
+    case kWKContextActionItemTagShareImage:
+        title = @&quot;Share&quot;;
+        image = webKitBundleImageNamed(@&quot;ShareImageTemplate&quot;);
+        break;
+
+    default:
+        ASSERT_NOT_REACHED();
+        return nil;
+    }
+
+    RetainPtr&lt;NSMenuItem&gt; item = adoptNS([[NSMenuItem alloc] initWithTitle:title action:selector keyEquivalent:@&quot;&quot;]);
+    [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-&gt;_page-&gt;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-&gt;absoluteLinkURL()))
</span><del>-        return menuItems;
</del><ins>+        return @[ ];
</ins><span class="cx"> 
</span><del>-    RetainPtr&lt;NSMenuItem&gt; openLinkItem = adoptNS([[NSMenuItem alloc] initWithTitle:@&quot;Open&quot; action:@selector(_openURLFromActionMenu:) keyEquivalent:@&quot;&quot;]);
-    [openLinkItem setImage:[[NSBundle bundleForClass:[WKView class]] imageForResource:@&quot;OpenInNewWindowTemplate&quot;]];
-    [openLinkItem setTarget:self];
-    [openLinkItem setTag:kWKContextActionItemTagOpenLinkInDefaultBrowser];
-    [menuItems addObject:openLinkItem.get()];
</del><ins>+    RetainPtr&lt;NSMenuItem&gt; openLinkItem = [self _createActionMenuItemForTag:kWKContextActionItemTagOpenLinkInDefaultBrowser];
+    RetainPtr&lt;NSMenuItem&gt; previewLinkItem = [self _createActionMenuItemForTag:kWKContextActionItemTagPreviewLink];
+    RetainPtr&lt;NSMenuItem&gt; readingListItem = [self _createActionMenuItemForTag:kWKContextActionItemTagAddLinkToSafariReadingList];
</ins><span class="cx"> 
</span><del>-    RetainPtr&lt;NSMenuItem&gt; previewLinkItem = adoptNS([[NSMenuItem alloc] initWithTitle:@&quot;Preview&quot; action:@selector(_quickLookURLFromActionMenu:) keyEquivalent:@&quot;&quot;]);
-    [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 &lt;rdar://18684207&gt;.
+    return @[openLinkItem.get(), previewLinkItem.get(), [NSMenuItem separatorItem], readingListItem.get()];
+}
</ins><span class="cx"> 
</span><del>-    RetainPtr&lt;NSMenuItem&gt; readingListItem = adoptNS([[NSMenuItem alloc] initWithTitle:@&quot;Add to Safari Reading List&quot; action:@selector(_addToReadingListFromActionMenu:) keyEquivalent:@&quot;&quot;]);
-    [readingListItem setImage:[NSImage imageNamed:NSImageNameBookmarksTemplate]];
-    [readingListItem setTarget:self];
-    [readingListItem setTag:kWKContextActionItemTagAddLinkToSafariReadingList];
-    [menuItems addObject:readingListItem.get()];
</del><ins>+- (void)_copyImage:(id)sender
+{
+    WebHitTestResult* hitTestResult = _data-&gt;_page-&gt;activeActionMenuHitTestResult();
+    if (!hitTestResult)
+        return;
</ins><span class="cx"> 
</span><del>-    // FIXME: Required to work around &lt;rdar://18684207&gt;.
-    [menuItems addObject:[NSMenuItem separatorItem]];
</del><ins>+    RefPtr&lt;ShareableBitmap&gt; bitmap = _data-&gt;_actionMenuHitTestResult.image;
+    if (!bitmap)
+        return;
</ins><span class="cx"> 
</span><del>-    return menuItems;
</del><ins>+    RetainPtr&lt;CGImageRef&gt; image = bitmap-&gt;makeCGImage();
+    RetainPtr&lt;NSImage&gt; 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-&gt;_page-&gt;activeActionMenuHitTestResult();
+    if (!hitTestResult)
+        return;
+
+    _data-&gt;_page-&gt;process().context().download(_data-&gt;_page.get(), URL(URL(), hitTestResult-&gt;absoluteImageURL()));
+}
+
+static NSString *temporaryPhotosDirectoryPath()
+{
+    static NSString *temporaryPhotosDirectoryPath;
+
+    if (!temporaryPhotosDirectoryPath) {
+        NSString *temporaryDirectoryTemplate = [NSTemporaryDirectory() stringByAppendingPathComponent:@&quot;WebKitPhotos-XXXXXX&quot;];
+        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(&quot;Cannot create temporary photo download directory.&quot;);
+        return nil;
+    }
+
+    NSString *path = [photoDirectoryPath stringByAppendingPathComponent:suggestedFilename];
+
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+    if ([fileManager fileExistsAtPath:path]) {
+        NSString *pathTemplatePrefix = [photoDirectoryPath stringByAppendingPathComponent:@&quot;XXXXXX-&quot;];
+        NSString *pathTemplate = [pathTemplatePrefix stringByAppendingString:suggestedFilename];
+        CString pathTemplateRepresentation = [pathTemplate fileSystemRepresentation];
+
+        int fd = mkstemps(pathTemplateRepresentation.mutableData(), pathTemplateRepresentation.length() - strlen([pathTemplatePrefix fileSystemRepresentation]) + 1);
+        if (fd &lt; 0) {
+            WTFLogAlways(&quot;Cannot create photo file in the temporary directory (%@).&quot;, 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:(@&quot;com.apple.Photos&quot;)])
+        return;
+
+    WebHitTestResult* hitTestResult = _data-&gt;_page-&gt;activeActionMenuHitTestResult();
+    if (!hitTestResult)
+        return;
+
+    RefPtr&lt;ShareableBitmap&gt; bitmap = _data-&gt;_actionMenuHitTestResult.image;
+    if (!bitmap)
+        return;
+    RetainPtr&lt;CGImageRef&gt; image = bitmap-&gt;makeCGImage();
+
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+        NSString * const suggestedFilename = @&quot;image.jpg&quot;;
+
+        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:(@&quot;com.apple.Photos&quot;)];
+        });
+    });
+}
+
+- (NSArray *)_defaultMenuItemsForImage
+{
+    WebHitTestResult* hitTestResult = _data-&gt;_page-&gt;activeActionMenuHitTestResult();
+    if (!hitTestResult)
+        return @[ ];
+
+    RetainPtr&lt;NSMenuItem&gt; copyImageItem = [self _createActionMenuItemForTag:kWKContextActionItemTagCopyImage];
+    RetainPtr&lt;NSMenuItem&gt; addToPhotosItem = [self _createActionMenuItemForTag:kWKContextActionItemTagAddImageToPhotos];
+    RetainPtr&lt;NSMenuItem&gt; saveToDownloadsItem = [self _createActionMenuItemForTag:kWKContextActionItemTagSaveImageToDownloads];
+    RetainPtr&lt;NSMenuItem&gt; shareItem = [self _createActionMenuItemForTag:kWKContextActionItemTagShareImage];
+
+    if (RefPtr&lt;ShareableBitmap&gt; bitmap = _data-&gt;_actionMenuHitTestResult.image) {
+        RetainPtr&lt;CGImageRef&gt; image = bitmap-&gt;makeCGImage();
+        RetainPtr&lt;NSImage&gt; nsImage = adoptNS([[NSImage alloc] initWithCGImage:image.get() size:NSZeroSize]);
+        _data-&gt;_actionMenuSharingServicePicker = adoptNS([[NSSharingServicePicker alloc] initWithItems:@[ nsImage.get() ]]);
+        [shareItem setSubmenu:[_data-&gt;_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-&gt;_page-&gt;activeActionMenuHitTestResult()) {
</span><ins>+        if (!hitTestResult-&gt;absoluteImageURL().isEmpty())
+            return [self _defaultMenuItemsForImage];
</ins><span class="cx">         if (!hitTestResult-&gt;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-&gt;_page-&gt;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-&gt;_page-&gt;performActionMenuHitTestAtLocation([self convertPoint:[event locationInWindow] fromView:nil]);
+
+    _data-&gt;_actionMenuState = ActionMenuState::Pending;
+}
+
+- (void)_didPerformActionMenuHitTest:(const ActionMenuHitTestResult&amp;)hitTestResult
+{
+    // FIXME: This needs to use the WebKit2 callback mechanism to avoid out-of-order replies.
+    _data-&gt;_actionMenuState = ActionMenuState::Ready;
+    _data-&gt;_actionMenuHitTestResult = hitTestResult;
+}
+
+- (void)willOpenMenu:(NSMenu *)menu withEvent:(NSEvent *)event
+{
+    if (menu != self.actionMenu)
+        return;
+
+    ASSERT(_data-&gt;_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-&gt;_actionMenuState == ActionMenuState::Pending) {
+        if (auto* connection = _data-&gt;_page-&gt;process().connection())
+            connection-&gt;waitForAndDispatchImmediately&lt;Messages::WebPageProxy::DidPerformActionMenuHitTest&gt;(_data-&gt;_page-&gt;pageID(), std::chrono::milliseconds(500));
+    }
+
+    if (_data-&gt;_actionMenuState == ActionMenuState::Ready)
+        [self _updateActionMenu];
+}
+
+- (void)didCloseMenu:(NSMenu *)menu withEvent:(NSEvent *)event
+{
+    if (menu != self.actionMenu)
+        return;
+
+    _data-&gt;_actionMenuState = ActionMenuState::None;
+    _data-&gt;_actionMenuHitTestResult = ActionMenuHitTestResult();
+    _data-&gt;_actionMenuSharingServicePicker = nil;
+}
+
</ins><span class="cx"> @end
</span><span class="cx"> 
</span><span class="cx"> @implementation WKView (Private)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-10-22 23:48:38 UTC (rev 175075)
</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&amp;)hitTestResult;
+
</ins><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPageClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/PageClient.h (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/PageClient.h        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/PageClient.h        2014-10-22 23:48:38 UTC (rev 175075)
</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&amp;) = 0;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -5252,4 +5252,14 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+void WebPageProxy::performActionMenuHitTestAtLocation(FloatPoint point)
+{
+    m_process-&gt;send(Messages::WebPage::PerformActionMenuHitTestAtLocation(point), m_pageID);
+}
+
+void WebPageProxy::didPerformActionMenuHitTest(const ActionMenuHitTestResult&amp; result)
+{
+    m_pageClient.didPerformActionMenuHitTest(result);
+}
+
</ins><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-10-22 23:48:38 UTC (rev 175075)
</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">@@ -923,6 +924,7 @@
</span><span class="cx"> #endif
</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&amp;, WebProcessProxy&amp;, uint64_t pageID, const WebPageConfiguration&amp;);
</span><span class="lines">@@ -1301,6 +1303,8 @@
</span><span class="cx">     void viewDidLeaveWindow();
</span><span class="cx">     void viewDidEnterWindow();
</span><span class="cx"> 
</span><ins>+    void didPerformActionMenuHitTest(const ActionMenuHitTestResult&amp;);
+
</ins><span class="cx">     PageClient&amp; m_pageClient;
</span><span class="cx">     std::unique_ptr&lt;API::LoaderClient&gt; m_loaderClient;
</span><span class="cx">     std::unique_ptr&lt;API::PolicyClient&gt; m_policyClient;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxymessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -408,5 +408,7 @@
</span><span class="cx">     ContentFilterDidBlockLoadForFrame(WebCore::ContentFilter contentFilter, uint64_t frameID)
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    IsPlayingAudioDidChange(bool newIsPlayingAudio);
</del><ins>+    IsPlayingAudioDidChange(bool newIsPlayingAudio)
+
+    DidPerformActionMenuHitTest(WebKit::ActionMenuHitTestResult result)
</ins><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosPageClientImplIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h        2014-10-22 23:48:38 UTC (rev 175075)
</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&amp;) override;
+
</ins><span class="cx">     WKContentView *m_contentView;
</span><span class="cx">     WKWebView *m_webView;
</span><span class="cx">     RetainPtr&lt;WKEditorUndoTargetObjC&gt; m_undoTarget;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosPageClientImplIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -697,6 +697,10 @@
</span><span class="cx">     [m_webView _didSameDocumentNavigationForMainFrame:navigationType];
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void PageClientImpl::didPerformActionMenuHitTest(const ActionMenuHitTestResult&amp;)
+{
+}
+
</ins><span class="cx"> } // namespace WebKit
</span><span class="cx"> 
</span><span class="cx"> #endif // PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacPageClientImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.h (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.h        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.h        2014-10-22 23:48:38 UTC (rev 175075)
</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&amp;) override;
+
</ins><span class="cx">     WKView *m_wkView;
</span><span class="cx">     WKWebView *m_webView;
</span><span class="cx">     RetainPtr&lt;WKEditorUndoTargetObjC&gt; m_undoTarget;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacPageClientImplmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.mm (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.mm        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.mm        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -753,6 +753,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&amp; 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="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -577,6 +577,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">@@ -1087,6 +1089,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">@@ -2572,6 +2578,8 @@
</span><span class="cx">                 2D2ADF0C16363DEC00197E47 /* PDFLayerControllerDetails.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PDFLayerControllerDetails.h; path = PDF/PDFLayerControllerDetails.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2D2ADF0D16364D8200197E47 /* PDFPluginChoiceAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PDFPluginChoiceAnnotation.h; path = PDF/PDFPluginChoiceAnnotation.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2D2ADF0E16364D8200197E47 /* PDFPluginChoiceAnnotation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PDFPluginChoiceAnnotation.mm; path = PDF/PDFPluginChoiceAnnotation.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                2D353B1019F8305D000EEACD /* ActionMenuHitTestResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ActionMenuHitTestResult.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                2D353B1119F8305D000EEACD /* ActionMenuHitTestResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActionMenuHitTestResult.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 2D3EF4401917646300034184 /* WebMemoryPressureHandlerIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WebMemoryPressureHandlerIOS.mm; path = ios/WebMemoryPressureHandlerIOS.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2D3EF4411917646300034184 /* WebMemoryPressureHandlerIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebMemoryPressureHandlerIOS.h; path = ios/WebMemoryPressureHandlerIOS.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2D429BFA1721E2BA00EC681F /* PDFPluginPasswordField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PDFPluginPasswordField.h; path = PDF/PDFPluginPasswordField.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3137,6 +3145,10 @@
</span><span class="cx">                 935EEB961277616D003322B8 /* WKBundleBackForwardList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleBackForwardList.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 935EEB971277616D003322B8 /* WKBundleBackForwardListItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKBundleBackForwardListItem.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 935EEB981277616D003322B8 /* WKBundleBackForwardListItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleBackForwardListItem.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                9369104119F711810021D470 /* CopyImageTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = CopyImageTemplate.pdf; path = Resources/CopyImageTemplate.pdf; sourceTree = &quot;&lt;group&gt;&quot;; };
+                9369104319F711910021D470 /* AddImageToPhotosTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = AddImageToPhotosTemplate.pdf; path = Resources/AddImageToPhotosTemplate.pdf; sourceTree = &quot;&lt;group&gt;&quot;; };
+                9369104519F7119E0021D470 /* SaveImageToDownloadsTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = SaveImageToDownloadsTemplate.pdf; path = Resources/SaveImageToDownloadsTemplate.pdf; sourceTree = &quot;&lt;group&gt;&quot;; };
+                9369104719F711A70021D470 /* ShareImageTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = ShareImageTemplate.pdf; path = Resources/ShareImageTemplate.pdf; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 9391F283121B38F500EBF7E8 /* WebFrameNetworkingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFrameNetworkingContext.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 9391F284121B38F500EBF7E8 /* WebFrameNetworkingContext.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebFrameNetworkingContext.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 939AE7651316E99C00AE06A6 /* WebCoreArgumentCoders.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreArgumentCoders.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3984,6 +3996,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">@@ -3991,6 +4005,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">@@ -6078,6 +6094,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">@@ -7330,6 +7348,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">@@ -8272,11 +8291,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">@@ -9231,6 +9254,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="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;WebPage.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;ActionMenuHitTestResult.h&quot;
</ins><span class="cx"> #include &quot;Arguments.h&quot;
</span><span class="cx"> #include &quot;DataReference.h&quot;
</span><span class="cx"> #include &quot;DragControllerAction.h&quot;
</span><span class="lines">@@ -4795,4 +4796,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&amp; mainFrame = corePage()-&gt;mainFrame();
+    if (!mainFrame.view() || !mainFrame.view()-&gt;renderView()) {
+        send(Messages::WebPageProxy::DidPerformActionMenuHitTest(ActionMenuHitTestResult()));
+        return;
+    }
+
+    RenderView&amp; mainRenderView = *mainFrame.view()-&gt;renderView();
+
+    HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::AllowChildFrameContent | HitTestRequest::IgnoreClipping | HitTestRequest::DisallowShadowContent);
+
+    HitTestResult hitTestResult(mainFrame.view()-&gt;rootViewToContents(roundedIntPoint(locationInViewCooordinates)));
+    mainRenderView.hitTest(request, hitTestResult);
+
+    ActionMenuHitTestResult actionMenuResult;
+
+    if (Image* image = hitTestResult.image()) {
+        actionMenuResult.image = ShareableBitmap::createShareable(IntSize(image-&gt;size()), ShareableBitmap::SupportsAlpha);
+        actionMenuResult.image-&gt;createGraphicsContext()-&gt;drawImage(image, ColorSpaceDeviceRGB, IntPoint());
+    }
+
+    send(Messages::WebPageProxy::DidPerformActionMenuHitTest(actionMenuResult));
+}
+
</ins><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -1044,6 +1044,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&lt;WebCore::Page&gt; m_page;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagemessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (175074 => 175075)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2014-10-22 23:43:11 UTC (rev 175074)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2014-10-22 23:48:38 UTC (rev 175075)
</span><span class="lines">@@ -387,4 +387,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>