<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>133667</bug_id>
          
          <creation_ts>2014-06-09 17:03:16 -0700</creation_ts>
          <short_desc>Don&apos;t snapshot offscreen plugins that would normally be considered primary plugins after they are moved in view</short_desc>
          <delta_ts>2014-06-11 23:03:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>133786</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Roger Fong">roger_fong</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>ossy</cc>
    
    <cc>roger_fong</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1014284</commentid>
    <comment_count>0</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-06-09 17:03:16 -0700</bug_when>
    <thetext>We&apos;ve run into an issue where some sites (namely youtube) start their plugins offscreen and then move them into view after clicking a video link.
The issue is that by the time the user clicks the video the offscreen plugin has already been snapshotted.
We should make sure to not snapshot said plugin if 
The plugin is the right size to be a primary plugin ADN
1) The maximum number of snapshot retries has been reached and no good snapshot has yet been found
OR
2) The plugin is still trying to snapshot properly and in the process is moved into view.

&lt;rdar://problem/16743250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014294</commentid>
    <comment_count>1</comment_count>
      <attachid>232752</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-06-09 17:33:04 -0700</bug_when>
    <thetext>Created attachment 232752
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014551</commentid>
    <comment_count>2</comment_count>
      <attachid>232752</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-10 15:06:28 -0700</bug_when>
    <thetext>Comment on attachment 232752
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=232752&amp;action=review

&gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1687
&gt; +    WebCore::HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(m_pluginElement.get());

I think there&apos;s no need for the WebCore:: here. Is this always safe or should you check the type?

&gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1706
&gt; +        snapshotFound = snapshotImage &amp;&amp; !isAlmostSolidColor(toBitmapImage(snapshotImage.get()));
&gt;  
&gt;  #if PLATFORM(COCOA)
&gt;          unsigned maximumSnapshotRetries = frame() ? frame()-&gt;settings().maximumPlugInSnapshotAttempts() : 0;
&gt; -        if (snapshotImage &amp;&amp; isAlmostSolidColor(toBitmapImage(snapshotImage.get())) &amp;&amp; m_countSnapshotRetries &lt; maximumSnapshotRetries) {
&gt; +        if (snapshotImage &amp;&amp; isAlmostSolidColor(toBitmapImage(snapshotImage.get())) &amp;&amp; m_countSnapshotRetries &lt; maximumSnapshotRetries &amp;&amp; !plugInCameOnScreen) {

why are we checking isAlmostSolidColor twice in quick succession here? can the if() use snapshotFound?

&gt; Source/WebKit2/WebProcess/Plugins/PluginView.h:278
&gt; +    bool m_didPlugInStartOffScreen;

maybe pack this better, next to other bools? I dunno.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:4466
&gt; +bool WebPage::plugInIntersectsSearchRect(HTMLPlugInImageElement* plugInImageElement)

should this (and plugInIsPrimarySize) take references?

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:4485
&gt; +    if (plugInRectRelativeToTopDocument.intersects(searchRect))
&gt; +        return true;
&gt; +    return false;

Maybe just &quot;return plugInRectRelativeToTopDocument.intersects(searchRect);&quot;?

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:4488
&gt; +bool WebPage::plugInIsPrimarySize(WebCore::HTMLPlugInImageElement *plugInImageElement, unsigned &amp;candidatePlugInArea)

star on the wrong side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014840</commentid>
    <comment_count>3</comment_count>
      <attachid>232882</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-06-11 12:14:32 -0700</bug_when>
    <thetext>Created attachment 232882
patch

With Tim&apos;s changes.
Using commit queue to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014841</commentid>
    <comment_count>4</comment_count>
      <attachid>232882</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-11 12:15:49 -0700</bug_when>
    <thetext>Comment on attachment 232882
patch

Rejecting attachment 232882 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 232882, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Timothy Horton found in /Volumes/Data/EWS/WebKit/Source/WebKit2/ChangeLog does not appear to be a valid reviewer according to contributors.json.
/Volumes/Data/EWS/WebKit/Source/WebKit2/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-queues.appspot.com/results/5021336309071872</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014846</commentid>
    <comment_count>5</comment_count>
      <attachid>232886</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-06-11 12:19:53 -0700</bug_when>
    <thetext>Created attachment 232886
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014865</commentid>
    <comment_count>6</comment_count>
      <attachid>232886</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-11 12:59:55 -0700</bug_when>
    <thetext>Comment on attachment 232886
patch

Clearing flags on attachment: 232886

Committed r169820: &lt;http://trac.webkit.org/changeset/169820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014866</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-11 12:59:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014932</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-06-11 14:48:46 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 232886 [details])
&gt; Clearing flags on attachment: 232886
&gt; 
&gt; Committed r169820: &lt;http://trac.webkit.org/changeset/169820&gt;

It broke the !ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC) builds:

/home/webkit/WebKit/Source/WebKit2/WebProcess/Plugins/PluginView.cpp: In member function &apos;void WebKit::PluginView::pluginSnapshotTimerFired()&apos;:
/home/webkit/WebKit/Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1693:40: error: &apos;class WebKit::WebPage&apos; has no member named &apos;plugInIntersectsSearchRect&apos;
/home/webkit/WebKit/Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1707:96: error: &apos;isAlmostSolidColor&apos; was not declared in this scope
/home/webkit/WebKit/Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1721:20: error: &apos;class WebKit::WebPage&apos; has no member named &apos;plugInIsPrimarySize&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015032</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-06-11 23:03:55 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 232886 [details] [details])
&gt; &gt; Clearing flags on attachment: 232886
&gt; &gt; 
&gt; &gt; Committed r169820: &lt;http://trac.webkit.org/changeset/169820&gt;
&gt; 
&gt; It broke the !ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC) builds:
&gt; 
&gt; /home/webkit/WebKit/Source/WebKit2/WebProcess/Plugins/PluginView.cpp: In member function &apos;void WebKit::PluginView::pluginSnapshotTimerFired()&apos;:
&gt; /home/webkit/WebKit/Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1693:40: error: &apos;class WebKit::WebPage&apos; has no member named &apos;plugInIntersectsSearchRect&apos;
&gt; /home/webkit/WebKit/Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1707:96: error: &apos;isAlmostSolidColor&apos; was not declared in this scope
&gt; /home/webkit/WebKit/Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1721:20: error: &apos;class WebKit::WebPage&apos; has no member named &apos;plugInIsPrimarySize&apos;

I file a bug to fix this error.
https://bugs.webkit.org/show_bug.cgi?id=133786</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232752</attachid>
            <date>2014-06-09 17:33:04 -0700</date>
            <delta_ts>2014-06-11 12:14:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>9912</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTczMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA2LTA5ICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3Qgc25hcHNob3Qgb2Zm
c2NyZWVuIHBsdWdpbnMgdGhhdCB3b3VsZCBub3JtYWxseSBiZSBjb25zaWRlcmVkIHByaW1hcnkg
cGx1Z2lucyBhZnRlciB0aGV5IGFyZSBtb3ZlZCBpbiB2aWV3LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjY3LgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTY3NDMyNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5W
aWV3OjpwbHVnaW5TbmFwc2hvdFRpbWVyRmlyZWQpOgorICAgICAgICBTZXQgdGhlIGRpc3BsYXkg
c3RhdGUgdG8gUGxheWluZyBpZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6CisgICAgICAgIFRoZSBw
bHVnaW4gaW4gcXVlc3Rpb24gaXMgbGFyZ2UgZW5vdWdoIHRvIGJlIGNvbnNpZGVyZWQgdGhlIHBy
aW1hcnkgc25hcHNob3QgYW5kIGVpdGhlcjoKKyAgICAgICAgYSkgVGhlIG1heGltdW0gbnVtYmVy
IG9mIHNuYXBzaG90IHJldHJpZXMgaGFzIGJlZW4gcmVhY2hlZCBhbmQgbm8gZ29vZCBzbmFwc2hv
dCBoYXMgYmVlbiBmb3VuZC4KKyAgICAgICAgYikgVGhlIHBsdWdpbiBpcyBtb3ZlZCB0byBiZSBv
bi1zY3JlZW4gd2hpbGUgdGhlIHNuYXBzaG90IGF0dGVtcHRzIGFyZSBpbiBwcm9ncmVzcy4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGx1
Z0luSW50ZXJzZWN0c1NlYXJjaFJlY3QpOiBSZS1mYWN0b3Igb3V0IGludGVyc2VjdGlvbiBsb2dp
Yy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGx1Z0luSXNQcmltYXJ5U2l6ZSk6IFJlLWZh
Y3RvciBvdXQgcHJpbWFyeSBwbHVnaW4gc2l6ZSBsb2dpYy4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKTogVXNlIHRoZSBhYm92ZSB0
d28gbWV0aG9kcyBoZXJlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisKIDIwMTQtMDYtMDkgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBpT1MgV2ViS2l0OiBDcmFzaCBpbiBjaGFyYWN0ZXJzQXJvdW5kUG9zaXRpb24uCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CShyZXZpc2lvbiAxNjg4ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NSw2ICsyOTUsNyBAQCBQbHVnaW5W
aWV3OjpQbHVnaW5WaWV3KFBhc3NSZWZQdHI8SFRNTFBsCiAgICAgLCBtX2NvdW50U25hcHNob3RS
ZXRyaWVzKDApCiAgICAgLCBtX2RpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oZmFsc2UpCiAgICAg
LCBtX3BhZ2VTY2FsZUZhY3RvcigxKQorICAgICwgbV9kaWRQbHVnSW5TdGFydE9mZlNjcmVlbihm
YWxzZSkKIHsKICAgICBtX3dlYlBhZ2UtPmFkZFBsdWdpblZpZXcodGhpcyk7CiB9CkBAIC0xNjgz
LDYgKzE2ODQsMTQgQEAgdm9pZCBQbHVnaW5WaWV3OjpwbHVnaW5TbmFwc2hvdFRpbWVyRmlyZQog
ewogICAgIEFTU0VSVChtX3BsdWdpbik7CiAKKyAgICBXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50KiBwbHVnSW5JbWFnZUVsZW1lbnQgPSB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQobV9w
bHVnaW5FbGVtZW50LmdldCgpKTsKKyAgICBib29sIGlzUGx1Z0luT25TY3JlZW4gPSBtX3dlYlBh
Z2UtPnBsdWdJbkludGVyc2VjdHNTZWFyY2hSZWN0KHBsdWdJbkltYWdlRWxlbWVudCk7CisgICAg
aWYgKCFtX2NvdW50U25hcHNob3RSZXRyaWVzKQorICAgICAgICBtX2RpZFBsdWdJblN0YXJ0T2Zm
U2NyZWVuID0gIWlzUGx1Z0luT25TY3JlZW47CisKKyAgICBib29sIHBsdWdJbkNhbWVPblNjcmVl
biA9IGlzUGx1Z0luT25TY3JlZW4gJiYgbV9kaWRQbHVnSW5TdGFydE9mZlNjcmVlbjsKKyAgICBi
b29sIHNuYXBzaG90Rm91bmQgPSBmYWxzZTsKKwogICAgIGlmIChtX3BsdWdpbi0+c3VwcG9ydHNT
bmFwc2hvdHRpbmcoKSkgewogICAgICAgICAvLyBTbmFwc2hvdCBtaWdodCBiZSAwIGlmIHBsdWdp
biBzaXplIGlzIDB4MC4KICAgICAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gc25hcHNob3Qg
PSBtX3BsdWdpbi0+c25hcHNob3QoKTsKQEAgLTE2OTAsMTkgKzE2OTksMjQgQEAgdm9pZCBQbHVn
aW5WaWV3OjpwbHVnaW5TbmFwc2hvdFRpbWVyRmlyZQogICAgICAgICBpZiAoc25hcHNob3QpCiAg
ICAgICAgICAgICBzbmFwc2hvdEltYWdlID0gc25hcHNob3QtPmNyZWF0ZUltYWdlKCk7CiAgICAg
ICAgIG1fcGx1Z2luRWxlbWVudC0+dXBkYXRlU25hcHNob3Qoc25hcHNob3RJbWFnZS5nZXQoKSk7
CisgICAgICAgIHNuYXBzaG90Rm91bmQgPSBzbmFwc2hvdEltYWdlICYmICFpc0FsbW9zdFNvbGlk
Q29sb3IodG9CaXRtYXBJbWFnZShzbmFwc2hvdEltYWdlLmdldCgpKSk7CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICAgICAgdW5zaWduZWQgbWF4aW11bVNuYXBzaG90UmV0cmllcyA9IGZyYW1l
KCkgPyBmcmFtZSgpLT5zZXR0aW5ncygpLm1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzKCkg
OiAwOwotICAgICAgICBpZiAoc25hcHNob3RJbWFnZSAmJiBpc0FsbW9zdFNvbGlkQ29sb3IodG9C
aXRtYXBJbWFnZShzbmFwc2hvdEltYWdlLmdldCgpKSkgJiYgbV9jb3VudFNuYXBzaG90UmV0cmll
cyA8IG1heGltdW1TbmFwc2hvdFJldHJpZXMpIHsKKyAgICAgICAgaWYgKHNuYXBzaG90SW1hZ2Ug
JiYgaXNBbG1vc3RTb2xpZENvbG9yKHRvQml0bWFwSW1hZ2Uoc25hcHNob3RJbWFnZS5nZXQoKSkp
ICYmIG1fY291bnRTbmFwc2hvdFJldHJpZXMgPCBtYXhpbXVtU25hcHNob3RSZXRyaWVzICYmICFw
bHVnSW5DYW1lT25TY3JlZW4pIHsKICAgICAgICAgICAgICsrbV9jb3VudFNuYXBzaG90UmV0cmll
czsKICAgICAgICAgICAgIG1fcGx1Z2luU25hcHNob3RUaW1lci5yZXN0YXJ0KCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICNlbmRpZgogICAgIH0KLSAgICAvLyBFdmVuIGlmIHRo
ZXJlIGlzIG5vIHNuYXBzaG90IHdlIHN0aWxsIHNldCB0aGUgc3RhdGUgdG8gRGlzcGxheWluZ1Nu
YXBzaG90Ci0gICAgLy8gc2luY2Ugd2UganVzdCB3YW50IHRvIGRpc3BsYXkgdGhlIGRlZmF1bHQg
ZW1wdHkgYm94LgotICAgIG1fcGx1Z2luRWxlbWVudC0+c2V0RGlzcGxheVN0YXRlKEhUTUxQbHVn
SW5FbGVtZW50OjpEaXNwbGF5aW5nU25hcHNob3QpOworICAgIHVuc2lnbmVkIGNhbmRpZGF0ZUFy
ZWEgPSAwOworICAgIGJvb2wgbm9TbmFwc2hvdEZvdW5kQWZ0ZXJNYXhSZXRyaWVzID0gbV9jb3Vu
dFNuYXBzaG90UmV0cmllcyA9PSBmcmFtZSgpLT5zZXR0aW5ncygpLm1heGltdW1QbHVnSW5TbmFw
c2hvdEF0dGVtcHRzKCkgJiYgIWlzUGx1Z0luT25TY3JlZW4gJiYgIXNuYXBzaG90Rm91bmQ7Cisg
ICAgaWYgKG1fd2ViUGFnZS0+cGx1Z0luSXNQcmltYXJ5U2l6ZShwbHVnSW5JbWFnZUVsZW1lbnQs
IGNhbmRpZGF0ZUFyZWEpCisgICAgICAgICYmIChub1NuYXBzaG90Rm91bmRBZnRlck1heFJldHJp
ZXMgfHwgcGx1Z0luQ2FtZU9uU2NyZWVuKSkKKyAgICAgICAgbV9wbHVnaW5FbGVtZW50LT5zZXRE
aXNwbGF5U3RhdGUoSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcpOworICAgIGVsc2UKKyAgICAg
ICAgbV9wbHVnaW5FbGVtZW50LT5zZXREaXNwbGF5U3RhdGUoSFRNTFBsdWdJbkVsZW1lbnQ6OkRp
c3BsYXlpbmdTbmFwc2hvdCk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6YmVnaW5TbmFwc2hvdHRp
bmdSdW5uaW5nUGx1Z2luKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gMTY4ODgwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjc1LDYg
KzI3NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb247
CiAKICAgICBkb3VibGUgbV9wYWdlU2NhbGVGYWN0b3I7CisgICAgYm9vbCBtX2RpZFBsdWdJblN0
YXJ0T2ZmU2NyZWVuOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxNjg4
ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQzOTQsMTQgKzQzOTQsMTIgQEAgdm9pZCBXZWJQYWdlOjpkZXRlcm1p
bmVQcmltYXJ5U25hcHNob3R0ZQogICAgICAgICAgICAgaWYgKCFwbHVnaW5SZW5kZXJlciB8fCAh
cGx1Z2luUmVuZGVyZXItPmlzQm94KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICBhdXRvJiBwbHVnaW5SZW5kZXJCb3ggPSB0b1JlbmRlckJveCgqcGx1Z2luUmVuZGVy
ZXIpOwotICAgICAgICAgICAgSW50UmVjdCBwbHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcgPSBwbHVn
SW5JbWFnZUVsZW1lbnQuY2xpZW50UmVjdCgpOwotICAgICAgICAgICAgaWYgKHBsdWdJblJlY3RS
ZWxhdGl2ZVRvVmlldy5pc0VtcHR5KCkpCisgICAgICAgICAgICBpZiAoIXBsdWdJbkludGVyc2Vj
dHNTZWFyY2hSZWN0KCZwbHVnSW5JbWFnZUVsZW1lbnQpKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICBJbnRSZWN0IHBsdWdJblJlY3RSZWxhdGl2ZVRvVmlldyA9IHBs
dWdJbkltYWdlRWxlbWVudC5jbGllbnRSZWN0KCk7CiAgICAgICAgICAgICBJbnRTaXplIHNjcm9s
bE9mZnNldCA9IG1haW5GcmFtZS52aWV3KCktPmRvY3VtZW50U2Nyb2xsT2Zmc2V0UmVsYXRpdmVU
b1ZpZXdPcmlnaW4oKTsKICAgICAgICAgICAgIEludFJlY3QgcGx1Z0luUmVjdFJlbGF0aXZlVG9U
b3BEb2N1bWVudChwbHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcubG9jYXRpb24oKSArIHNjcm9sbE9m
ZnNldCwgcGx1Z0luUmVjdFJlbGF0aXZlVG9WaWV3LnNpemUoKSk7Ci0gICAgICAgICAgICBpZiAo
IXBsdWdJblJlY3RSZWxhdGl2ZVRvVG9wRG9jdW1lbnQuaW50ZXJzZWN0cyhzZWFyY2hSZWN0KSkK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQogICAgICAgICAgICAgSGl0VGVzdFJlc3VsdCBo
aXRUZXN0UmVzdWx0KHBsdWdJblJlY3RSZWxhdGl2ZVRvVG9wRG9jdW1lbnQuY2VudGVyKCkpOwog
ICAgICAgICAgICAgbWFpblJlbmRlclZpZXcuaGl0VGVzdChyZXF1ZXN0LCBoaXRUZXN0UmVzdWx0
KTsKIApAQCAtNDQyNiwxNCArNDQyNCw5IEBAIHZvaWQgV2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFy
eVNuYXBzaG90dGUKICAgICAgICAgICAgICAgICBMT0coUGx1Z2lucywgIlByaW1hcnkgUGx1Zy1J
biBEZXRlY3Rpb246IFBsdWctaW4gaXMgaGlkZGVuIGJ5IGFuIGltYWdlIHRoYXQgaXMgcm91Z2hs
eSBhbGlnbmVkIHdpdGggaXQsIGF1dG9wbGF5aW5nIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBu
b3QgaXQncyBhY3R1YWxseSB0aGUgcHJpbWFyeSBwbHVnLWluLiIpOwogICAgICAgICAgICAgICAg
IHBsdWdJbkltYWdlRWxlbWVudC5yZXN0YXJ0U25hcHNob3R0ZWRQbHVnSW4oKTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmIChwbHVnaW5SZW5kZXJCb3guY29udGVudFdpZHRoKCkgPCBw
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVtV2lkdGggfHwgcGx1Z2luUmVuZGVyQm94LmNv
bnRlbnRIZWlnaHQoKSA8IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbk1pbmltdW1IZWlnaHQpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIExheW91dFVuaXQgY29udGVu
dEFyZWEgPSBwbHVnaW5SZW5kZXJCb3guY29udGVudFdpZHRoKCkgKiBwbHVnaW5SZW5kZXJCb3gu
Y29udGVudEhlaWdodCgpOwotICAgICAgICAgICAgaWYgKGNvbnRlbnRBcmVhID4gY2FuZGlkYXRl
UGx1Z0luQXJlYSAqIHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJjaEJ1Y2tldFNpemUpIHsK
KyAgICAgICAgICAgIGlmIChwbHVnSW5Jc1ByaW1hcnlTaXplKCZwbHVnSW5JbWFnZUVsZW1lbnQs
IGNhbmRpZGF0ZVBsdWdJbkFyZWEpKQogICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVBsdWdJbiA9
ICZwbHVnSW5JbWFnZUVsZW1lbnQ7Ci0gICAgICAgICAgICAgICAgY2FuZGlkYXRlUGx1Z0luQXJl
YSA9IGNvbnRlbnRBcmVhOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGlm
ICghY2FuZGlkYXRlUGx1Z0luKSB7CkBAIC00NDY5LDYgKzQ0NjIsNDIgQEAgYm9vbCBXZWJQYWdl
OjptYXRjaGVzUHJpbWFyeVBsdWdJbihjb25zdAogCiAgICAgcmV0dXJuIChwYWdlT3JpZ2luID09
IG1fcHJpbWFyeVBsdWdJblBhZ2VPcmlnaW4gJiYgcGx1Z2luT3JpZ2luID09IG1fcHJpbWFyeVBs
dWdJbk9yaWdpbiAmJiBtaW1lVHlwZSA9PSBtX3ByaW1hcnlQbHVnSW5NaW1lVHlwZSk7CiB9CisK
K2Jvb2wgV2ViUGFnZTo6cGx1Z0luSW50ZXJzZWN0c1NlYXJjaFJlY3QoSFRNTFBsdWdJbkltYWdl
RWxlbWVudCogcGx1Z0luSW1hZ2VFbGVtZW50KQoreworICAgIE1haW5GcmFtZSYgbWFpbkZyYW1l
ID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCk7CisgICAgaWYgKCFtYWluRnJhbWUudmlldygpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtYWluRnJhbWUudmlldygpLT5yZW5kZXJW
aWV3KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEludFJlY3Qgc2VhcmNoUmVjdCA9
IEludFJlY3QoSW50UG9pbnQoKSwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5jb250
ZW50c1NpemUoKSk7CisgICAgc2VhcmNoUmVjdC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgp
LCBJbnRTaXplKHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJjaExpbWl0LCBwcmltYXJ5U25h
cHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCkpKTsKKworICAgIEludFJlY3QgcGx1Z0luUmVjdFJl
bGF0aXZlVG9WaWV3ID0gcGx1Z0luSW1hZ2VFbGVtZW50LT5jbGllbnRSZWN0KCk7CisgICAgaWYg
KHBsdWdJblJlY3RSZWxhdGl2ZVRvVmlldy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBJbnRTaXplIHNjcm9sbE9mZnNldCA9IG1haW5GcmFtZS52aWV3KCktPmRvY3VtZW50
U2Nyb2xsT2Zmc2V0UmVsYXRpdmVUb1ZpZXdPcmlnaW4oKTsKKyAgICBJbnRSZWN0IHBsdWdJblJl
Y3RSZWxhdGl2ZVRvVG9wRG9jdW1lbnQocGx1Z0luUmVjdFJlbGF0aXZlVG9WaWV3LmxvY2F0aW9u
KCkgKyBzY3JvbGxPZmZzZXQsIHBsdWdJblJlY3RSZWxhdGl2ZVRvVmlldy5zaXplKCkpOworCisg
ICAgaWYgKHBsdWdJblJlY3RSZWxhdGl2ZVRvVG9wRG9jdW1lbnQuaW50ZXJzZWN0cyhzZWFyY2hS
ZWN0KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IFdlYlBhZ2U6OnBsdWdJbklzUHJpbWFyeVNpemUoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxl
bWVudCAqcGx1Z0luSW1hZ2VFbGVtZW50LCB1bnNpZ25lZCAmY2FuZGlkYXRlUGx1Z0luQXJlYSkK
K3sKKyAgICBhdXRvJiBwbHVnaW5SZW5kZXJCb3ggPSB0b1JlbmRlckJveCgqKHBsdWdJbkltYWdl
RWxlbWVudC0+cmVuZGVyZXIoKSkpOworICAgIGlmIChwbHVnaW5SZW5kZXJCb3guY29udGVudFdp
ZHRoKCkgPCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVtV2lkdGggfHwgcGx1Z2luUmVu
ZGVyQm94LmNvbnRlbnRIZWlnaHQoKSA8IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbk1pbmltdW1I
ZWlnaHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIExheW91dFVuaXQgY29udGVudEFy
ZWEgPSBwbHVnaW5SZW5kZXJCb3guY29udGVudFdpZHRoKCkgKiBwbHVnaW5SZW5kZXJCb3guY29u
dGVudEhlaWdodCgpOworICAgIGlmIChjb250ZW50QXJlYSA+IGNhbmRpZGF0ZVBsdWdJbkFyZWEg
KiBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hCdWNrZXRTaXplKSB7CisgICAgICAgIGNh
bmRpZGF0ZVBsdWdJbkFyZWEgPSBjb250ZW50QXJlYTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KICNlbmRpZiAvLyBFTkFCTEUoUFJJTUFSWV9TTkFQ
U0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQogCiBQYXNzUmVmUHRyPFJhbmdlPiBXZWJQYWdlOjpj
dXJyZW50U2VsZWN0aW9uQXNSYW5nZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDE2ODg4MCkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsx
MTcsNyBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1l
VmlldzsKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OworY2xhc3MgSFRNTFBsdWdJbkltYWdlRWxl
bWVudDsKIGNsYXNzIEludFBvaW50OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFBhZ2U7
CkBAIC03NjcsNiArNzY4LDggQEAgcHVibGljOgogICAgIHZvaWQgZGV0ZXJtaW5lUHJpbWFyeVNu
YXBzaG90dGVkUGx1Z0luVGltZXJGaXJlZCgpOwogICAgIHZvaWQgcmVzZXRQcmltYXJ5U25hcHNo
b3R0ZWRQbHVnSW4oKTsKICAgICBib29sIG1hdGNoZXNQcmltYXJ5UGx1Z0luKGNvbnN0IFN0cmlu
ZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpIGNvbnN0OworICAgIGJvb2wgcGx1Z0luSW50ZXJzZWN0c1NlYXJjaFJlY3QoV2Vi
Q29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luSW1hZ2VFbGVtZW50KTsKKyAgICBi
b29sIHBsdWdJbklzUHJpbWFyeVNpemUoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudCog
cGx1Z2luSW1hZ2VFbGVtZW50LCB1bnNpZ25lZCAmcGx1Z2luQXJlYSk7CiAjZW5kaWYKIAogICAg
IHVuc2lnbmVkIGV4dGVuZEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24oKTsK
</data>
<flag name="review"
          id="257246"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232882</attachid>
            <date>2014-06-11 12:14:32 -0700</date>
            <delta_ts>2014-06-11 12:19:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>10195</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTgxNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA2LTA5ICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3Qgc25hcHNob3Qgb2Zm
c2NyZWVuIHBsdWdpbnMgdGhhdCB3b3VsZCBub3JtYWxseSBiZSBjb25zaWRlcmVkIHByaW1hcnkg
cGx1Z2lucyBhZnRlciB0aGV5IGFyZSBtb3ZlZCBpbiB2aWV3LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjY3LgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTY3NDMyNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIb3J0b24uCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5W
aWV3OjpwbHVnaW5TbmFwc2hvdFRpbWVyRmlyZWQpOgorICAgICAgICBTZXQgdGhlIGRpc3BsYXkg
c3RhdGUgdG8gUGxheWluZyBpZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6CisgICAgICAgIFRoZSBw
bHVnaW4gaW4gcXVlc3Rpb24gaXMgbGFyZ2UgZW5vdWdoIHRvIGJlIGNvbnNpZGVyZWQgdGhlIHBy
aW1hcnkgc25hcHNob3QgYW5kIGVpdGhlcjoKKyAgICAgICAgYSkgVGhlIG1heGltdW0gbnVtYmVy
IG9mIHNuYXBzaG90IHJldHJpZXMgaGFzIGJlZW4gcmVhY2hlZCBhbmQgbm8gZ29vZCBzbmFwc2hv
dCBoYXMgYmVlbiBmb3VuZC4KKyAgICAgICAgYikgVGhlIHBsdWdpbiBpcyBtb3ZlZCB0byBiZSBv
bi1zY3JlZW4gd2hpbGUgdGhlIHNuYXBzaG90IGF0dGVtcHRzIGFyZSBpbiBwcm9ncmVzcy4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGx1
Z0luSW50ZXJzZWN0c1NlYXJjaFJlY3QpOiBSZS1mYWN0b3Igb3V0IGludGVyc2VjdGlvbiBsb2dp
Yy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGx1Z0luSXNQcmltYXJ5U2l6ZSk6IFJlLWZh
Y3RvciBvdXQgcHJpbWFyeSBwbHVnaW4gc2l6ZSBsb2dpYy4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKTogVXNlIHRoZSBhYm92ZSB0
d28gbWV0aG9kcyBoZXJlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisKIDIwMTQtMDYtMTEgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWJLaXQyIGlPUzogVW5hYmxlIHRvIG9wZW4gVUkgbWVudSBmb3IgIm9wZW4gaW4gbmV3
IHRhYiIgZm9yIGxpbmtzIG9uIHlhaG9vLmNvbS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHJldmlzaW9uIDE2OTgxNSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjg2LDYgKzI4Niw3IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoUGFzc1Jl
ZlB0cjxIVE1MUGwKICAgICAsIG1faXNXYWl0aW5nVW50aWxNZWRpYUNhblN0YXJ0KGZhbHNlKQog
ICAgICwgbV9pc0JlaW5nRGVzdHJveWVkKGZhbHNlKQogICAgICwgbV9wbHVnaW5Qcm9jZXNzSGFz
Q3Jhc2hlZChmYWxzZSkKKyAgICAsIG1fZGlkUGx1Z0luU3RhcnRPZmZTY3JlZW4oZmFsc2UpCiAg
ICAgLCBtX3BlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlBs
dWdpblZpZXc6OnBlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyRmlyZWQpCiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAgICAgLCBtX25wUnVudGltZU9iamVjdE1hcCh0aGlzKQpAQCAtMTY4
OCw2ICsxNjg5LDE0IEBAIHZvaWQgUGx1Z2luVmlldzo6cGx1Z2luU25hcHNob3RUaW1lckZpcmUK
IHsKICAgICBBU1NFUlQobV9wbHVnaW4pOwogCisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCog
cGx1Z0luSW1hZ2VFbGVtZW50ID0gdG9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KG1fcGx1Z2luRWxl
bWVudC5nZXQoKSk7CisgICAgYm9vbCBpc1BsdWdJbk9uU2NyZWVuID0gbV93ZWJQYWdlLT5wbHVn
SW5JbnRlcnNlY3RzU2VhcmNoUmVjdCgqcGx1Z0luSW1hZ2VFbGVtZW50KTsKKyAgICBpZiAoIW1f
Y291bnRTbmFwc2hvdFJldHJpZXMpCisgICAgICAgIG1fZGlkUGx1Z0luU3RhcnRPZmZTY3JlZW4g
PSAhaXNQbHVnSW5PblNjcmVlbjsKKworICAgIGJvb2wgcGx1Z0luQ2FtZU9uU2NyZWVuID0gaXNQ
bHVnSW5PblNjcmVlbiAmJiBtX2RpZFBsdWdJblN0YXJ0T2ZmU2NyZWVuOworICAgIGJvb2wgc25h
cHNob3RGb3VuZCA9IGZhbHNlOworCiAgICAgaWYgKG1fcGx1Z2luLT5zdXBwb3J0c1NuYXBzaG90
dGluZygpKSB7CiAgICAgICAgIC8vIFNuYXBzaG90IG1pZ2h0IGJlIDAgaWYgcGx1Z2luIHNpemUg
aXMgMHgwLgogICAgICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBzbmFwc2hvdCA9IG1fcGx1
Z2luLT5zbmFwc2hvdCgpOwpAQCAtMTY5NSwxOSArMTcwNCwyNSBAQCB2b2lkIFBsdWdpblZpZXc6
OnBsdWdpblNuYXBzaG90VGltZXJGaXJlCiAgICAgICAgIGlmIChzbmFwc2hvdCkKICAgICAgICAg
ICAgIHNuYXBzaG90SW1hZ2UgPSBzbmFwc2hvdC0+Y3JlYXRlSW1hZ2UoKTsKICAgICAgICAgbV9w
bHVnaW5FbGVtZW50LT51cGRhdGVTbmFwc2hvdChzbmFwc2hvdEltYWdlLmdldCgpKTsKKyAgICAg
ICAgYm9vbCBzbmFwc2hvdElzQWxtb3N0U29saWRDb2xvciA9IGlzQWxtb3N0U29saWRDb2xvcih0
b0JpdG1hcEltYWdlKHNuYXBzaG90SW1hZ2UuZ2V0KCkpKTsKKyAgICAgICAgc25hcHNob3RGb3Vu
ZCA9IHNuYXBzaG90SW1hZ2UgJiYgIXNuYXBzaG90SXNBbG1vc3RTb2xpZENvbG9yOwogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgICAgIHVuc2lnbmVkIG1heGltdW1TbmFwc2hvdFJldHJpZXMg
PSBmcmFtZSgpID8gZnJhbWUoKS0+c2V0dGluZ3MoKS5tYXhpbXVtUGx1Z0luU25hcHNob3RBdHRl
bXB0cygpIDogMDsKLSAgICAgICAgaWYgKHNuYXBzaG90SW1hZ2UgJiYgaXNBbG1vc3RTb2xpZENv
bG9yKHRvQml0bWFwSW1hZ2Uoc25hcHNob3RJbWFnZS5nZXQoKSkpICYmIG1fY291bnRTbmFwc2hv
dFJldHJpZXMgPCBtYXhpbXVtU25hcHNob3RSZXRyaWVzKSB7CisgICAgICAgIGlmIChzbmFwc2hv
dEltYWdlICYmIHNuYXBzaG90SXNBbG1vc3RTb2xpZENvbG9yICYmIG1fY291bnRTbmFwc2hvdFJl
dHJpZXMgPCBtYXhpbXVtU25hcHNob3RSZXRyaWVzICYmICFwbHVnSW5DYW1lT25TY3JlZW4pIHsK
ICAgICAgICAgICAgICsrbV9jb3VudFNuYXBzaG90UmV0cmllczsKICAgICAgICAgICAgIG1fcGx1
Z2luU25hcHNob3RUaW1lci5yZXN0YXJ0KCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICNlbmRpZgogICAgIH0KLSAgICAvLyBFdmVuIGlmIHRoZXJlIGlzIG5vIHNuYXBzaG90IHdl
IHN0aWxsIHNldCB0aGUgc3RhdGUgdG8gRGlzcGxheWluZ1NuYXBzaG90Ci0gICAgLy8gc2luY2Ug
d2UganVzdCB3YW50IHRvIGRpc3BsYXkgdGhlIGRlZmF1bHQgZW1wdHkgYm94LgotICAgIG1fcGx1
Z2luRWxlbWVudC0+c2V0RGlzcGxheVN0YXRlKEhUTUxQbHVnSW5FbGVtZW50OjpEaXNwbGF5aW5n
U25hcHNob3QpOworICAgIHVuc2lnbmVkIGNhbmRpZGF0ZUFyZWEgPSAwOworICAgIGJvb2wgbm9T
bmFwc2hvdEZvdW5kQWZ0ZXJNYXhSZXRyaWVzID0gbV9jb3VudFNuYXBzaG90UmV0cmllcyA9PSBm
cmFtZSgpLT5zZXR0aW5ncygpLm1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzKCkgJiYgIWlz
UGx1Z0luT25TY3JlZW4gJiYgIXNuYXBzaG90Rm91bmQ7CisgICAgaWYgKG1fd2ViUGFnZS0+cGx1
Z0luSXNQcmltYXJ5U2l6ZSgqcGx1Z0luSW1hZ2VFbGVtZW50LCBjYW5kaWRhdGVBcmVhKQorICAg
ICAgICAmJiAobm9TbmFwc2hvdEZvdW5kQWZ0ZXJNYXhSZXRyaWVzIHx8IHBsdWdJbkNhbWVPblNj
cmVlbikpCisgICAgICAgIG1fcGx1Z2luRWxlbWVudC0+c2V0RGlzcGxheVN0YXRlKEhUTUxQbHVn
SW5FbGVtZW50OjpQbGF5aW5nKTsKKyAgICBlbHNlCisgICAgICAgIG1fcGx1Z2luRWxlbWVudC0+
c2V0RGlzcGxheVN0YXRlKEhUTUxQbHVnSW5FbGVtZW50OjpEaXNwbGF5aW5nU25hcHNob3QpOwog
fQogCiB2b2lkIFBsdWdpblZpZXc6OmJlZ2luU25hcHNob3R0aW5nUnVubmluZ1BsdWdpbigpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgJ
KHJldmlzaW9uIDE2OTgxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzOCw2ICsyMzgsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9pc1dhaXRpbmdVbnRpbE1lZGlhQ2FuU3RhcnQ7CiAgICAgYm9vbCBtX2lzQmVp
bmdEZXN0cm95ZWQ7CiAgICAgYm9vbCBtX3BsdWdpblByb2Nlc3NIYXNDcmFzaGVkOworICAgIGJv
b2wgbV9kaWRQbHVnSW5TdGFydE9mZlNjcmVlbjsKIAogICAgIC8vIFBlbmRpbmcgVVJMUmVxdWVz
dHMgdGhhdCB0aGUgcGx1Zy1pbiBoYXMgbWFkZS4KICAgICBEZXF1ZTxSZWZQdHI8VVJMUmVxdWVz
dD4+IG1fcGVuZGluZ1VSTFJlcXVlc3RzOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMTY5ODE1KQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NDcyLDE0ICs0NDcyLDEyIEBAIHZvaWQgV2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90
dGUKICAgICAgICAgICAgIGlmICghcGx1Z2luUmVuZGVyZXIgfHwgIXBsdWdpblJlbmRlcmVyLT5p
c0JveCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgYXV0byYgcGx1
Z2luUmVuZGVyQm94ID0gdG9SZW5kZXJCb3goKnBsdWdpblJlbmRlcmVyKTsKLSAgICAgICAgICAg
IEludFJlY3QgcGx1Z0luUmVjdFJlbGF0aXZlVG9WaWV3ID0gcGx1Z0luSW1hZ2VFbGVtZW50LmNs
aWVudFJlY3QoKTsKLSAgICAgICAgICAgIGlmIChwbHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcuaXNF
bXB0eSgpKQorICAgICAgICAgICAgaWYgKCFwbHVnSW5JbnRlcnNlY3RzU2VhcmNoUmVjdChwbHVn
SW5JbWFnZUVsZW1lbnQpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAg
ICBJbnRSZWN0IHBsdWdJblJlY3RSZWxhdGl2ZVRvVmlldyA9IHBsdWdJbkltYWdlRWxlbWVudC5j
bGllbnRSZWN0KCk7CiAgICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldCA9IG1haW5GcmFt
ZS52aWV3KCktPmRvY3VtZW50U2Nyb2xsT2Zmc2V0UmVsYXRpdmVUb1ZpZXdPcmlnaW4oKTsKICAg
ICAgICAgICAgIEludFJlY3QgcGx1Z0luUmVjdFJlbGF0aXZlVG9Ub3BEb2N1bWVudChwbHVnSW5S
ZWN0UmVsYXRpdmVUb1ZpZXcubG9jYXRpb24oKSArIHNjcm9sbE9mZnNldCwgcGx1Z0luUmVjdFJl
bGF0aXZlVG9WaWV3LnNpemUoKSk7Ci0gICAgICAgICAgICBpZiAoIXBsdWdJblJlY3RSZWxhdGl2
ZVRvVG9wRG9jdW1lbnQuaW50ZXJzZWN0cyhzZWFyY2hSZWN0KSkKLSAgICAgICAgICAgICAgICBj
b250aW51ZTsKLQogICAgICAgICAgICAgSGl0VGVzdFJlc3VsdCBoaXRUZXN0UmVzdWx0KHBsdWdJ
blJlY3RSZWxhdGl2ZVRvVG9wRG9jdW1lbnQuY2VudGVyKCkpOwogICAgICAgICAgICAgbWFpblJl
bmRlclZpZXcuaGl0VGVzdChyZXF1ZXN0LCBoaXRUZXN0UmVzdWx0KTsKIApAQCAtNDUwNCwxNCAr
NDUwMiw5IEBAIHZvaWQgV2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGUKICAgICAg
ICAgICAgICAgICBMT0coUGx1Z2lucywgIlByaW1hcnkgUGx1Zy1JbiBEZXRlY3Rpb246IFBsdWct
aW4gaXMgaGlkZGVuIGJ5IGFuIGltYWdlIHRoYXQgaXMgcm91Z2hseSBhbGlnbmVkIHdpdGggaXQs
IGF1dG9wbGF5aW5nIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgaXQncyBhY3R1YWxseSB0
aGUgcHJpbWFyeSBwbHVnLWluLiIpOwogICAgICAgICAgICAgICAgIHBsdWdJbkltYWdlRWxlbWVu
dC5yZXN0YXJ0U25hcHNob3R0ZWRQbHVnSW4oKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChwbHVnaW5SZW5kZXJCb3guY29udGVudFdpZHRoKCkgPCBwcmltYXJ5U25hcHNob3R0ZWRQ
bHVnSW5NaW5pbXVtV2lkdGggfHwgcGx1Z2luUmVuZGVyQm94LmNvbnRlbnRIZWlnaHQoKSA8IHBy
aW1hcnlTbmFwc2hvdHRlZFBsdWdJbk1pbmltdW1IZWlnaHQpCi0gICAgICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgICAgIExheW91dFVuaXQgY29udGVudEFyZWEgPSBwbHVnaW5SZW5k
ZXJCb3guY29udGVudFdpZHRoKCkgKiBwbHVnaW5SZW5kZXJCb3guY29udGVudEhlaWdodCgpOwot
ICAgICAgICAgICAgaWYgKGNvbnRlbnRBcmVhID4gY2FuZGlkYXRlUGx1Z0luQXJlYSAqIHByaW1h
cnlTbmFwc2hvdHRlZFBsdWdJblNlYXJjaEJ1Y2tldFNpemUpIHsKKyAgICAgICAgICAgIGlmIChw
bHVnSW5Jc1ByaW1hcnlTaXplKHBsdWdJbkltYWdlRWxlbWVudCwgY2FuZGlkYXRlUGx1Z0luQXJl
YSkpCiAgICAgICAgICAgICAgICAgY2FuZGlkYXRlUGx1Z0luID0gJnBsdWdJbkltYWdlRWxlbWVu
dDsKLSAgICAgICAgICAgICAgICBjYW5kaWRhdGVQbHVnSW5BcmVhID0gY29udGVudEFyZWE7Ci0g
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKCFjYW5kaWRhdGVQbHVnSW4p
IHsKQEAgLTQ1NDcsNiArNDU0MCw0MCBAQCBib29sIFdlYlBhZ2U6Om1hdGNoZXNQcmltYXJ5UGx1
Z0luKGNvbnN0CiAKICAgICByZXR1cm4gKHBhZ2VPcmlnaW4gPT0gbV9wcmltYXJ5UGx1Z0luUGFn
ZU9yaWdpbiAmJiBwbHVnaW5PcmlnaW4gPT0gbV9wcmltYXJ5UGx1Z0luT3JpZ2luICYmIG1pbWVU
eXBlID09IG1fcHJpbWFyeVBsdWdJbk1pbWVUeXBlKTsKIH0KKworYm9vbCBXZWJQYWdlOjpwbHVn
SW5JbnRlcnNlY3RzU2VhcmNoUmVjdChIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBwbHVnSW5JbWFn
ZUVsZW1lbnQpCit7CisgICAgTWFpbkZyYW1lJiBtYWluRnJhbWUgPSBjb3JlUGFnZSgpLT5tYWlu
RnJhbWUoKTsKKyAgICBpZiAoIW1haW5GcmFtZS52aWV3KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoIW1haW5GcmFtZS52aWV3KCktPnJlbmRlclZpZXcoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgSW50UmVjdCBzZWFyY2hSZWN0ID0gSW50UmVjdChJbnRQb2ludCgp
LCBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICBz
ZWFyY2hSZWN0LmludGVyc2VjdChJbnRSZWN0KEludFBvaW50KCksIEludFNpemUocHJpbWFyeVNu
YXBzaG90dGVkUGx1Z0luU2VhcmNoTGltaXQsIHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJj
aExpbWl0KSkpOworCisgICAgSW50UmVjdCBwbHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcgPSBwbHVn
SW5JbWFnZUVsZW1lbnQuY2xpZW50UmVjdCgpOworICAgIGlmIChwbHVnSW5SZWN0UmVsYXRpdmVU
b1ZpZXcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgSW50U2l6ZSBzY3Jv
bGxPZmZzZXQgPSBtYWluRnJhbWUudmlldygpLT5kb2N1bWVudFNjcm9sbE9mZnNldFJlbGF0aXZl
VG9WaWV3T3JpZ2luKCk7CisgICAgSW50UmVjdCBwbHVnSW5SZWN0UmVsYXRpdmVUb1RvcERvY3Vt
ZW50KHBsdWdJblJlY3RSZWxhdGl2ZVRvVmlldy5sb2NhdGlvbigpICsgc2Nyb2xsT2Zmc2V0LCBw
bHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcuc2l6ZSgpKTsKKworICAgIHJldHVybiBwbHVnSW5SZWN0
UmVsYXRpdmVUb1RvcERvY3VtZW50LmludGVyc2VjdHMoc2VhcmNoUmVjdCk7Cit9CisKK2Jvb2wg
V2ViUGFnZTo6cGx1Z0luSXNQcmltYXJ5U2l6ZShXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50JiBwbHVnSW5JbWFnZUVsZW1lbnQsIHVuc2lnbmVkJiBjYW5kaWRhdGVQbHVnSW5BcmVhKQor
eworICAgIGF1dG8mIHBsdWdpblJlbmRlckJveCA9IHRvUmVuZGVyQm94KCoocGx1Z0luSW1hZ2VF
bGVtZW50LnJlbmRlcmVyKCkpKTsKKyAgICBpZiAocGx1Z2luUmVuZGVyQm94LmNvbnRlbnRXaWR0
aCgpIDwgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luTWluaW11bVdpZHRoIHx8IHBsdWdpblJlbmRl
ckJveC5jb250ZW50SGVpZ2h0KCkgPCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVtSGVp
Z2h0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMYXlvdXRVbml0IGNvbnRlbnRBcmVh
ID0gcGx1Z2luUmVuZGVyQm94LmNvbnRlbnRXaWR0aCgpICogcGx1Z2luUmVuZGVyQm94LmNvbnRl
bnRIZWlnaHQoKTsKKyAgICBpZiAoY29udGVudEFyZWEgPiBjYW5kaWRhdGVQbHVnSW5BcmVhICog
cHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoQnVja2V0U2l6ZSkgeworICAgICAgICBjYW5k
aWRhdGVQbHVnSW5BcmVhID0gY29udGVudEFyZWE7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKFBSSU1BUllfU05BUFNI
T1RURURfUExVR0lOX0hFVVJJU1RJQykKIAogUGFzc1JlZlB0cjxSYW5nZT4gV2ViUGFnZTo6Y3Vy
cmVudFNlbGVjdGlvbkFzUmFuZ2UoKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAxNjk4MTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4
LDcgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZVZp
ZXc7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2NsYXNzIEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQYWdlOwpA
QCAtNzkxLDYgKzc5Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGVybWluZVByaW1hcnlTbmFw
c2hvdHRlZFBsdWdJblRpbWVyRmlyZWQoKTsKICAgICB2b2lkIHJlc2V0UHJpbWFyeVNuYXBzaG90
dGVkUGx1Z0luKCk7CiAgICAgYm9vbCBtYXRjaGVzUHJpbWFyeVBsdWdJbihjb25zdCBTdHJpbmcm
IHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKSBjb25zdDsKKyAgICBib29sIHBsdWdJbkludGVyc2VjdHNTZWFyY2hSZWN0KFdlYkNv
cmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIHBsdWdpbkltYWdlRWxlbWVudCk7CisgICAgYm9v
bCBwbHVnSW5Jc1ByaW1hcnlTaXplKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIHBs
dWdpbkltYWdlRWxlbWVudCwgdW5zaWduZWQgJnBsdWdpbkFyZWEpOwogI2VuZGlmCiAKICAgICB1
bnNpZ25lZCBleHRlbmRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKCk7Cg==
</data>
<flag name="commit-queue"
          id="257379"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232886</attachid>
            <date>2014-06-11 12:19:53 -0700</date>
            <delta_ts>2014-06-11 12:59:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>10191</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTgxNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA2LTA5ICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3Qgc25hcHNob3Qgb2Zm
c2NyZWVuIHBsdWdpbnMgdGhhdCB3b3VsZCBub3JtYWxseSBiZSBjb25zaWRlcmVkIHByaW1hcnkg
cGx1Z2lucyBhZnRlciB0aGV5IGFyZSBtb3ZlZCBpbiB2aWV3LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjY3LgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTY3NDMyNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6
OnBsdWdpblNuYXBzaG90VGltZXJGaXJlZCk6CisgICAgICAgIFNldCB0aGUgZGlzcGxheSBzdGF0
ZSB0byBQbGF5aW5nIGlmIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKKyAgICAgICAgVGhlIHBsdWdp
biBpbiBxdWVzdGlvbiBpcyBsYXJnZSBlbm91Z2ggdG8gYmUgY29uc2lkZXJlZCB0aGUgcHJpbWFy
eSBzbmFwc2hvdCBhbmQgZWl0aGVyOgorICAgICAgICBhKSBUaGUgbWF4aW11bSBudW1iZXIgb2Yg
c25hcHNob3QgcmV0cmllcyBoYXMgYmVlbiByZWFjaGVkIGFuZCBubyBnb29kIHNuYXBzaG90IGhh
cyBiZWVuIGZvdW5kLgorICAgICAgICBiKSBUaGUgcGx1Z2luIGlzIG1vdmVkIHRvIGJlIG9uLXNj
cmVlbiB3aGlsZSB0aGUgc25hcHNob3QgYXR0ZW1wdHMgYXJlIGluIHByb2dyZXNzLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbHVnSW5J
bnRlcnNlY3RzU2VhcmNoUmVjdCk6IFJlLWZhY3RvciBvdXQgaW50ZXJzZWN0aW9uIGxvZ2ljLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbHVnSW5Jc1ByaW1hcnlTaXplKTogUmUtZmFjdG9y
IG91dCBwcmltYXJ5IHBsdWdpbiBzaXplIGxvZ2ljLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4pOiBVc2UgdGhlIGFib3ZlIHR3byBt
ZXRob2RzIGhlcmUuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwog
MjAxNC0wNi0xMSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYktpdDIgaU9TOiBVbmFibGUgdG8gb3BlbiBVSSBtZW51IGZvciAib3BlbiBpbiBuZXcgdGFi
IiBmb3IgbGlua3Mgb24geWFob28uY29tLgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkocmV2aXNpb24gMTY5ODE1KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yODYsNiArMjg2LDcgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhQYXNzUmVmUHRy
PEhUTUxQbAogICAgICwgbV9pc1dhaXRpbmdVbnRpbE1lZGlhQ2FuU3RhcnQoZmFsc2UpCiAgICAg
LCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2UpCiAgICAgLCBtX3BsdWdpblByb2Nlc3NIYXNDcmFz
aGVkKGZhbHNlKQorICAgICwgbV9kaWRQbHVnSW5TdGFydE9mZlNjcmVlbihmYWxzZSkKICAgICAs
IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUGx1Z2lu
Vmlldzo6cGVuZGluZ1VSTFJlcXVlc3RzVGltZXJGaXJlZCkKICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKICAgICAsIG1fbnBSdW50aW1lT2JqZWN0TWFwKHRoaXMpCkBAIC0xNjg4LDYg
KzE2ODksMTQgQEAgdm9pZCBQbHVnaW5WaWV3OjpwbHVnaW5TbmFwc2hvdFRpbWVyRmlyZQogewog
ICAgIEFTU0VSVChtX3BsdWdpbik7CiAKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVn
SW5JbWFnZUVsZW1lbnQgPSB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQobV9wbHVnaW5FbGVtZW50
LmdldCgpKTsKKyAgICBib29sIGlzUGx1Z0luT25TY3JlZW4gPSBtX3dlYlBhZ2UtPnBsdWdJbklu
dGVyc2VjdHNTZWFyY2hSZWN0KCpwbHVnSW5JbWFnZUVsZW1lbnQpOworICAgIGlmICghbV9jb3Vu
dFNuYXBzaG90UmV0cmllcykKKyAgICAgICAgbV9kaWRQbHVnSW5TdGFydE9mZlNjcmVlbiA9ICFp
c1BsdWdJbk9uU2NyZWVuOworCisgICAgYm9vbCBwbHVnSW5DYW1lT25TY3JlZW4gPSBpc1BsdWdJ
bk9uU2NyZWVuICYmIG1fZGlkUGx1Z0luU3RhcnRPZmZTY3JlZW47CisgICAgYm9vbCBzbmFwc2hv
dEZvdW5kID0gZmFsc2U7CisKICAgICBpZiAobV9wbHVnaW4tPnN1cHBvcnRzU25hcHNob3R0aW5n
KCkpIHsKICAgICAgICAgLy8gU25hcHNob3QgbWlnaHQgYmUgMCBpZiBwbHVnaW4gc2l6ZSBpcyAw
eDAuCiAgICAgICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IHNuYXBzaG90ID0gbV9wbHVnaW4t
PnNuYXBzaG90KCk7CkBAIC0xNjk1LDE5ICsxNzA0LDI1IEBAIHZvaWQgUGx1Z2luVmlldzo6cGx1
Z2luU25hcHNob3RUaW1lckZpcmUKICAgICAgICAgaWYgKHNuYXBzaG90KQogICAgICAgICAgICAg
c25hcHNob3RJbWFnZSA9IHNuYXBzaG90LT5jcmVhdGVJbWFnZSgpOwogICAgICAgICBtX3BsdWdp
bkVsZW1lbnQtPnVwZGF0ZVNuYXBzaG90KHNuYXBzaG90SW1hZ2UuZ2V0KCkpOworICAgICAgICBi
b29sIHNuYXBzaG90SXNBbG1vc3RTb2xpZENvbG9yID0gaXNBbG1vc3RTb2xpZENvbG9yKHRvQml0
bWFwSW1hZ2Uoc25hcHNob3RJbWFnZS5nZXQoKSkpOworICAgICAgICBzbmFwc2hvdEZvdW5kID0g
c25hcHNob3RJbWFnZSAmJiAhc25hcHNob3RJc0FsbW9zdFNvbGlkQ29sb3I7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICAgICAgdW5zaWduZWQgbWF4aW11bVNuYXBzaG90UmV0cmllcyA9IGZy
YW1lKCkgPyBmcmFtZSgpLT5zZXR0aW5ncygpLm1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRz
KCkgOiAwOwotICAgICAgICBpZiAoc25hcHNob3RJbWFnZSAmJiBpc0FsbW9zdFNvbGlkQ29sb3Io
dG9CaXRtYXBJbWFnZShzbmFwc2hvdEltYWdlLmdldCgpKSkgJiYgbV9jb3VudFNuYXBzaG90UmV0
cmllcyA8IG1heGltdW1TbmFwc2hvdFJldHJpZXMpIHsKKyAgICAgICAgaWYgKHNuYXBzaG90SW1h
Z2UgJiYgc25hcHNob3RJc0FsbW9zdFNvbGlkQ29sb3IgJiYgbV9jb3VudFNuYXBzaG90UmV0cmll
cyA8IG1heGltdW1TbmFwc2hvdFJldHJpZXMgJiYgIXBsdWdJbkNhbWVPblNjcmVlbikgewogICAg
ICAgICAgICAgKyttX2NvdW50U25hcHNob3RSZXRyaWVzOwogICAgICAgICAgICAgbV9wbHVnaW5T
bmFwc2hvdFRpbWVyLnJlc3RhcnQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
I2VuZGlmCiAgICAgfQotICAgIC8vIEV2ZW4gaWYgdGhlcmUgaXMgbm8gc25hcHNob3Qgd2Ugc3Rp
bGwgc2V0IHRoZSBzdGF0ZSB0byBEaXNwbGF5aW5nU25hcHNob3QKLSAgICAvLyBzaW5jZSB3ZSBq
dXN0IHdhbnQgdG8gZGlzcGxheSB0aGUgZGVmYXVsdCBlbXB0eSBib3guCi0gICAgbV9wbHVnaW5F
bGVtZW50LT5zZXREaXNwbGF5U3RhdGUoSFRNTFBsdWdJbkVsZW1lbnQ6OkRpc3BsYXlpbmdTbmFw
c2hvdCk7CisgICAgdW5zaWduZWQgY2FuZGlkYXRlQXJlYSA9IDA7CisgICAgYm9vbCBub1NuYXBz
aG90Rm91bmRBZnRlck1heFJldHJpZXMgPSBtX2NvdW50U25hcHNob3RSZXRyaWVzID09IGZyYW1l
KCktPnNldHRpbmdzKCkubWF4aW11bVBsdWdJblNuYXBzaG90QXR0ZW1wdHMoKSAmJiAhaXNQbHVn
SW5PblNjcmVlbiAmJiAhc25hcHNob3RGb3VuZDsKKyAgICBpZiAobV93ZWJQYWdlLT5wbHVnSW5J
c1ByaW1hcnlTaXplKCpwbHVnSW5JbWFnZUVsZW1lbnQsIGNhbmRpZGF0ZUFyZWEpCisgICAgICAg
ICYmIChub1NuYXBzaG90Rm91bmRBZnRlck1heFJldHJpZXMgfHwgcGx1Z0luQ2FtZU9uU2NyZWVu
KSkKKyAgICAgICAgbV9wbHVnaW5FbGVtZW50LT5zZXREaXNwbGF5U3RhdGUoSFRNTFBsdWdJbkVs
ZW1lbnQ6OlBsYXlpbmcpOworICAgIGVsc2UKKyAgICAgICAgbV9wbHVnaW5FbGVtZW50LT5zZXRE
aXNwbGF5U3RhdGUoSFRNTFBsdWdJbkVsZW1lbnQ6OkRpc3BsYXlpbmdTbmFwc2hvdCk7CiB9CiAK
IHZvaWQgUGx1Z2luVmlldzo6YmVnaW5TbmFwc2hvdHRpbmdSdW5uaW5nUGx1Z2luKCkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2
aXNpb24gMTY5ODE1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjM4LDYgKzIzOCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydDsKICAgICBib29sIG1faXNCZWluZ0Rl
c3Ryb3llZDsKICAgICBib29sIG1fcGx1Z2luUHJvY2Vzc0hhc0NyYXNoZWQ7CisgICAgYm9vbCBt
X2RpZFBsdWdJblN0YXJ0T2ZmU2NyZWVuOwogCiAgICAgLy8gUGVuZGluZyBVUkxSZXF1ZXN0cyB0
aGF0IHRoZSBwbHVnLWluIGhhcyBtYWRlLgogICAgIERlcXVlPFJlZlB0cjxVUkxSZXF1ZXN0Pj4g
bV9wZW5kaW5nVVJMUmVxdWVzdHM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxNjk4MTUpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0NzIs
MTQgKzQ0NzIsMTIgQEAgdm9pZCBXZWJQYWdlOjpkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZQog
ICAgICAgICAgICAgaWYgKCFwbHVnaW5SZW5kZXJlciB8fCAhcGx1Z2luUmVuZGVyZXItPmlzQm94
KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBhdXRvJiBwbHVnaW5S
ZW5kZXJCb3ggPSB0b1JlbmRlckJveCgqcGx1Z2luUmVuZGVyZXIpOwotICAgICAgICAgICAgSW50
UmVjdCBwbHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcgPSBwbHVnSW5JbWFnZUVsZW1lbnQuY2xpZW50
UmVjdCgpOwotICAgICAgICAgICAgaWYgKHBsdWdJblJlY3RSZWxhdGl2ZVRvVmlldy5pc0VtcHR5
KCkpCisgICAgICAgICAgICBpZiAoIXBsdWdJbkludGVyc2VjdHNTZWFyY2hSZWN0KHBsdWdJbklt
YWdlRWxlbWVudCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIElu
dFJlY3QgcGx1Z0luUmVjdFJlbGF0aXZlVG9WaWV3ID0gcGx1Z0luSW1hZ2VFbGVtZW50LmNsaWVu
dFJlY3QoKTsKICAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0ID0gbWFpbkZyYW1lLnZp
ZXcoKS0+ZG9jdW1lbnRTY3JvbGxPZmZzZXRSZWxhdGl2ZVRvVmlld09yaWdpbigpOwogICAgICAg
ICAgICAgSW50UmVjdCBwbHVnSW5SZWN0UmVsYXRpdmVUb1RvcERvY3VtZW50KHBsdWdJblJlY3RS
ZWxhdGl2ZVRvVmlldy5sb2NhdGlvbigpICsgc2Nyb2xsT2Zmc2V0LCBwbHVnSW5SZWN0UmVsYXRp
dmVUb1ZpZXcuc2l6ZSgpKTsKLSAgICAgICAgICAgIGlmICghcGx1Z0luUmVjdFJlbGF0aXZlVG9U
b3BEb2N1bWVudC5pbnRlcnNlY3RzKHNlYXJjaFJlY3QpKQotICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotCiAgICAgICAgICAgICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHQocGx1Z0luUmVj
dFJlbGF0aXZlVG9Ub3BEb2N1bWVudC5jZW50ZXIoKSk7CiAgICAgICAgICAgICBtYWluUmVuZGVy
Vmlldy5oaXRUZXN0KHJlcXVlc3QsIGhpdFRlc3RSZXN1bHQpOwogCkBAIC00NTA0LDE0ICs0NTAy
LDkgQEAgdm9pZCBXZWJQYWdlOjpkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZQogICAgICAgICAg
ICAgICAgIExPRyhQbHVnaW5zLCAiUHJpbWFyeSBQbHVnLUluIERldGVjdGlvbjogUGx1Zy1pbiBp
cyBoaWRkZW4gYnkgYW4gaW1hZ2UgdGhhdCBpcyByb3VnaGx5IGFsaWduZWQgd2l0aCBpdCwgYXV0
b3BsYXlpbmcgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCBpdCdzIGFjdHVhbGx5IHRoZSBw
cmltYXJ5IHBsdWctaW4uIik7CiAgICAgICAgICAgICAgICAgcGx1Z0luSW1hZ2VFbGVtZW50LnJl
c3RhcnRTbmFwc2hvdHRlZFBsdWdJbigpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KHBsdWdpblJlbmRlckJveC5jb250ZW50V2lkdGgoKSA8IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJ
bk1pbmltdW1XaWR0aCB8fCBwbHVnaW5SZW5kZXJCb3guY29udGVudEhlaWdodCgpIDwgcHJpbWFy
eVNuYXBzaG90dGVkUGx1Z0luTWluaW11bUhlaWdodCkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICAgICAgTGF5b3V0VW5pdCBjb250ZW50QXJlYSA9IHBsdWdpblJlbmRlckJv
eC5jb250ZW50V2lkdGgoKSAqIHBsdWdpblJlbmRlckJveC5jb250ZW50SGVpZ2h0KCk7Ci0gICAg
ICAgICAgICBpZiAoY29udGVudEFyZWEgPiBjYW5kaWRhdGVQbHVnSW5BcmVhICogcHJpbWFyeVNu
YXBzaG90dGVkUGx1Z0luU2VhcmNoQnVja2V0U2l6ZSkgeworICAgICAgICAgICAgaWYgKHBsdWdJ
bklzUHJpbWFyeVNpemUocGx1Z0luSW1hZ2VFbGVtZW50LCBjYW5kaWRhdGVQbHVnSW5BcmVhKSkK
ICAgICAgICAgICAgICAgICBjYW5kaWRhdGVQbHVnSW4gPSAmcGx1Z0luSW1hZ2VFbGVtZW50Owot
ICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVBsdWdJbkFyZWEgPSBjb250ZW50QXJlYTsKLSAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBpZiAoIWNhbmRpZGF0ZVBsdWdJbikgewpA
QCAtNDU0Nyw2ICs0NTQwLDQwIEBAIGJvb2wgV2ViUGFnZTo6bWF0Y2hlc1ByaW1hcnlQbHVnSW4o
Y29uc3QKIAogICAgIHJldHVybiAocGFnZU9yaWdpbiA9PSBtX3ByaW1hcnlQbHVnSW5QYWdlT3Jp
Z2luICYmIHBsdWdpbk9yaWdpbiA9PSBtX3ByaW1hcnlQbHVnSW5PcmlnaW4gJiYgbWltZVR5cGUg
PT0gbV9wcmltYXJ5UGx1Z0luTWltZVR5cGUpOwogfQorCitib29sIFdlYlBhZ2U6OnBsdWdJbklu
dGVyc2VjdHNTZWFyY2hSZWN0KEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIHBsdWdJbkltYWdlRWxl
bWVudCkKK3sKKyAgICBNYWluRnJhbWUmIG1haW5GcmFtZSA9IGNvcmVQYWdlKCktPm1haW5GcmFt
ZSgpOworICAgIGlmICghbWFpbkZyYW1lLnZpZXcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghbWFpbkZyYW1lLnZpZXcoKS0+cmVuZGVyVmlldygpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBJbnRSZWN0IHNlYXJjaFJlY3QgPSBJbnRSZWN0KEludFBvaW50KCksIGNv
cmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+Y29udGVudHNTaXplKCkpOworICAgIHNlYXJj
aFJlY3QuaW50ZXJzZWN0KEludFJlY3QoSW50UG9pbnQoKSwgSW50U2l6ZShwcmltYXJ5U25hcHNo
b3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCwgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoTGlt
aXQpKSk7CisKKyAgICBJbnRSZWN0IHBsdWdJblJlY3RSZWxhdGl2ZVRvVmlldyA9IHBsdWdJbklt
YWdlRWxlbWVudC5jbGllbnRSZWN0KCk7CisgICAgaWYgKHBsdWdJblJlY3RSZWxhdGl2ZVRvVmll
dy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBJbnRTaXplIHNjcm9sbE9m
ZnNldCA9IG1haW5GcmFtZS52aWV3KCktPmRvY3VtZW50U2Nyb2xsT2Zmc2V0UmVsYXRpdmVUb1Zp
ZXdPcmlnaW4oKTsKKyAgICBJbnRSZWN0IHBsdWdJblJlY3RSZWxhdGl2ZVRvVG9wRG9jdW1lbnQo
cGx1Z0luUmVjdFJlbGF0aXZlVG9WaWV3LmxvY2F0aW9uKCkgKyBzY3JvbGxPZmZzZXQsIHBsdWdJ
blJlY3RSZWxhdGl2ZVRvVmlldy5zaXplKCkpOworCisgICAgcmV0dXJuIHBsdWdJblJlY3RSZWxh
dGl2ZVRvVG9wRG9jdW1lbnQuaW50ZXJzZWN0cyhzZWFyY2hSZWN0KTsKK30KKworYm9vbCBXZWJQ
YWdlOjpwbHVnSW5Jc1ByaW1hcnlTaXplKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQm
IHBsdWdJbkltYWdlRWxlbWVudCwgdW5zaWduZWQmIGNhbmRpZGF0ZVBsdWdJbkFyZWEpCit7Cisg
ICAgYXV0byYgcGx1Z2luUmVuZGVyQm94ID0gdG9SZW5kZXJCb3goKihwbHVnSW5JbWFnZUVsZW1l
bnQucmVuZGVyZXIoKSkpOworICAgIGlmIChwbHVnaW5SZW5kZXJCb3guY29udGVudFdpZHRoKCkg
PCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVtV2lkdGggfHwgcGx1Z2luUmVuZGVyQm94
LmNvbnRlbnRIZWlnaHQoKSA8IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbk1pbmltdW1IZWlnaHQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIExheW91dFVuaXQgY29udGVudEFyZWEgPSBw
bHVnaW5SZW5kZXJCb3guY29udGVudFdpZHRoKCkgKiBwbHVnaW5SZW5kZXJCb3guY29udGVudEhl
aWdodCgpOworICAgIGlmIChjb250ZW50QXJlYSA+IGNhbmRpZGF0ZVBsdWdJbkFyZWEgKiBwcmlt
YXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hCdWNrZXRTaXplKSB7CisgICAgICAgIGNhbmRpZGF0
ZVBsdWdJbkFyZWEgPSBjb250ZW50QXJlYTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
ICAgIHJldHVybiBmYWxzZTsKK30KICNlbmRpZiAvLyBFTkFCTEUoUFJJTUFSWV9TTkFQU0hPVFRF
RF9QTFVHSU5fSEVVUklTVElDKQogCiBQYXNzUmVmUHRyPFJhbmdlPiBXZWJQYWdlOjpjdXJyZW50
U2VsZWN0aW9uQXNSYW5nZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDE2OTgxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsNyBA
QCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lVmlldzsK
IGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OworY2xhc3MgSFRNTFBsdWdJbkltYWdlRWxlbWVudDsK
IGNsYXNzIEludFBvaW50OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFBhZ2U7CkBAIC03
OTEsNiArNzkyLDggQEAgcHVibGljOgogICAgIHZvaWQgZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90
dGVkUGx1Z0luVGltZXJGaXJlZCgpOwogICAgIHZvaWQgcmVzZXRQcmltYXJ5U25hcHNob3R0ZWRQ
bHVnSW4oKTsKICAgICBib29sIG1hdGNoZXNQcmltYXJ5UGx1Z0luKGNvbnN0IFN0cmluZyYgcGFn
ZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpIGNvbnN0OworICAgIGJvb2wgcGx1Z0luSW50ZXJzZWN0c1NlYXJjaFJlY3QoV2ViQ29yZTo6
SFRNTFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z2luSW1hZ2VFbGVtZW50KTsKKyAgICBib29sIHBs
dWdJbklzUHJpbWFyeVNpemUoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z2lu
SW1hZ2VFbGVtZW50LCB1bnNpZ25lZCAmcGx1Z2luQXJlYSk7CiAjZW5kaWYKIAogICAgIHVuc2ln
bmVkIGV4dGVuZEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24oKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>