<?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>71354</bug_id>
          
          <creation_ts>2011-11-02 03:36:44 -0700</creation_ts>
          <short_desc>Resizing Cappuccino is very laggy on WebKit since Safari 5.1</short_desc>
          <delta_ts>2013-03-08 09:48:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://githubissues.heroku.com/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>74674</dependson>
    
    <dependson>111815</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Mercadal">antoine.mercadal</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>494535</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Mercadal">antoine.mercadal</who>
    <bug_when>2011-11-02 03:36:44 -0700</bug_when>
    <thetext>All Cappuccino applications are suffering from a very laggy behavior when resizing the browser. This happens in all Capp apps, even the smaller ones, with barely nothing.
This doesn&apos;t happen in Chrome/Chromium (latest) or in Firefox

It&apos;s OK that the actual Cappuccino content doesn&apos;t resize very smoothly as there is sometimes a lot of computing to do, but at least, it shouldn&apos;t make the browser&apos;s window resizing action to be so laggy.

You can have an example here http://githubissues.heroku.com/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495558</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-11-03 09:53:16 -0700</bug_when>
    <thetext>Resizing is pretty bad in both WebKit1 and WebKit2 windows, but does seem a bit worse in WebKit2.  I believe this is due to weird interaction between onresize handlers and our resize model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519123</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Mercadal">antoine.mercadal</who>
    <bug_when>2011-12-12 04:01:16 -0800</bug_when>
    <thetext>I&apos;ve worked on this issue a little bit more, it&apos;s not just Cappuccino specific. The problem seems to be related when asking from window.screenX and screenY in the same resize event hander.

For instance this dirty fragment of code will hang when resizing:

&lt;html&gt;
&lt;script&gt;
(function(){

    function onresize()
    {
        console.log(window.screenX);
        console.log(window.screenY);
    }

    window.addEventListener(&quot;resize&quot;, onresize);
})()
&lt;/script&gt;
&lt;/html&gt;

If you comment one of the two log statement, it will work smoother.
I tried to add other log for innerWidth, innerHeight, screenTop, screenLeft, they don&apos;t cause any trouble.

Hope this helps</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519356</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-12-12 11:19:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/10565998&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519362</commentid>
    <comment_count>4</comment_count>
      <attachid>118820</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-12 11:40:16 -0800</bug_when>
    <thetext>Created attachment 118820
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519726</commentid>
    <comment_count>5</comment_count>
      <attachid>118921</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-12 17:23:03 -0800</bug_when>
    <thetext>Created attachment 118921
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519737</commentid>
    <comment_count>6</comment_count>
      <attachid>118921</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-12 17:38:11 -0800</bug_when>
    <thetext>Comment on attachment 118921
Proposed patch

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:110
&gt; +#if PLATFORM(MAC)
&gt; +    return m_page-&gt;windowFrameInScreenCoordinates();
&gt; +#else

Will a potentially stale value be used here as a result of this change? I&apos;m not even sure if any WindowAndViewFramesChanged will be delivered until after the end of resizing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519741</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-12 17:49:27 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 118921 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118921&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:110
&gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; +    return m_page-&gt;windowFrameInScreenCoordinates();
&gt; &gt; +#else
&gt; 
&gt; Will a potentially stale value be used here as a result of this change? I&apos;m not even sure if any WindowAndViewFramesChanged will be delivered until after the end of resizing.

What do you mean by the end of resizing? When you let go of the window edge? On my (Lion) system, there&apos;s a steady stream of WindowAndViewFramesChanged messages during resize. And this change does indeed make &lt;http://githubissues.heroku.com/&gt; significantly less laggy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519744</commentid>
    <comment_count>8</comment_count>
      <attachid>118921</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-12-12 17:52:35 -0800</bug_when>
    <thetext>Comment on attachment 118921
Proposed patch

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

&gt;&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:110
&gt;&gt;&gt; +#else
&gt;&gt; 
&gt;&gt; Will a potentially stale value be used here as a result of this change? I&apos;m not even sure if any WindowAndViewFramesChanged will be delivered until after the end of resizing.
&gt; 
&gt; What do you mean by the end of resizing? When you let go of the window edge? On my (Lion) system, there&apos;s a steady stream of WindowAndViewFramesChanged messages during resize. And this change does indeed make &lt;http://githubissues.heroku.com/&gt; significantly less laggy.

I think it&apos;s absolutely fine to return a stale value here - the window between resizing and the size being updated is small enough that it shouldn&apos;t matter in practice. I think Chrome does something similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519784</commentid>
    <comment_count>9</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-12 19:08:31 -0800</bug_when>
    <thetext>Committed r102652: &lt;http://trac.webkit.org/changeset/102652&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520147</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-13 10:07:26 -0800</bug_when>
    <thetext>It seems that the caused bug 74418.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522357</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-15 17:04:43 -0800</bug_when>
    <thetext>It seems that this also caused bug 74616.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522446</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-15 19:10:50 -0800</bug_when>
    <thetext>This got reverted in &lt;http://trac.webkit.org/changeset/103009&gt;, reopening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850716</commentid>
    <comment_count>13</comment_count>
      <attachid>192119</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-03-07 18:01:21 -0800</bug_when>
    <thetext>Created attachment 192119
Patch II: Return from the Dead

Let&apos;s fix it properly this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850718</commentid>
    <comment_count>14</comment_count>
      <attachid>192119</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-03-07 18:03:15 -0800</bug_when>
    <thetext>Comment on attachment 192119
Patch II: Return from the Dead

Is gud poch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850727</commentid>
    <comment_count>15</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-03-07 18:26:53 -0800</bug_when>
    <thetext>Committed r145169: &lt;http://trac.webkit.org/changeset/145169&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850819</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-07 20:28:30 -0800</bug_when>
    <thetext>This patch appears to have regressed http/tests/security/cross-frame-access-put.html:

--- /Volumes/Data/slave/mountainlion-release-tests-wk2/build/layout-test-results/http/tests/security/cross-frame-access-put-expected.txt
+++ /Volumes/Data/slave/mountainlion-release-tests-wk2/build/layout-test-results/http/tests/security/cross-frame-access-put-actual.txt
@@ -520,9 +520,9 @@
 ALERT: PASS: window.personalbar should be &apos;[object BarInfo]&apos; and is.
 ALERT: PASS: window.plugins should be &apos;undefined&apos; and is.
 ALERT: PASS: window.screen should be &apos;[object Screen]&apos; and is.
-ALERT: PASS: window.screenLeft should be &apos;0&apos; and is.
+ALERT: PASS: window.screenLeft should be &apos;-10000&apos; and is.
 ALERT: PASS: window.screenTop matched the expected value.
-ALERT: PASS: window.screenX should be &apos;0&apos; and is.
+ALERT: PASS: window.screenX should be &apos;-10000&apos; and is.
 ALERT: PASS: window.screenY matched the expected value.
 ALERT: PASS: window.scrollbars should be &apos;[object BarInfo]&apos; and is.
 ALERT: PASS: window.scrollX should be &apos;0&apos; and is.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>118820</attachid>
            <date>2011-12-12 11:40:16 -0800</date>
            <delta_ts>2011-12-12 11:40:16 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>slowresize.html</filename>
            <type>text/html</type>
            <size>212</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PGh0bWw+CjxzY3JpcHQ+CihmdW5jdGlvbigpewoKICAgIGZ1bmN0aW9uIG9ucmVzaXplKCkKICAg
IHsKICAgICAgICBjb25zb2xlLmxvZyh3aW5kb3cuc2NyZWVuWCk7CiAgICAgICAgY29uc29sZS5s
b2cod2luZG93LnNjcmVlblkpOwogICAgfQoKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJy
ZXNpemUiLCBvbnJlc2l6ZSk7Cn0pKCkKPC9zY3JpcHQ+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118921</attachid>
            <date>2011-12-12 17:23:03 -0800</date>
            <delta_ts>2013-03-07 18:01:21 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-71354.diff</filename>
            <type>text/plain</type>
            <size>14972</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNTMxNGVlLi43Y2Y5MmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTEtMTItMTIgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJlc2l6aW5nIENhcHB1Y2Npbm8gaXMgdmVyeSBsYWdneSBvbiBXZWJLaXQgc2luY2UgU2Fm
YXJpIDUuMQorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi83MTM1ND4gYW5kIDxyZGFyOi8v
cHJvYmxlbS8xMDU2NTk5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnQgRmxvYXRQb2ludChjb25zdCBOU1Bv
aW50JikKKwogMjAxMS0xMi0xMiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBXaW5kb3dzIGJ1aWxkIGZpeCBhZnRlciBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8xMDI2MTkgLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxOTg3
Zjc1Li5iODRjM2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTQwLDYgKzE0MCw3IEBAIF9f
Wk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRVJLTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUxMENs
aWVudFJlY3RDMUV2CiBfX1pON1dlYkNvcmUxMENyZWRlbnRpYWxDMUVSS04zV1RGNlN0cmluZ0VT
NF9OU18yMUNyZWRlbnRpYWxQZXJzaXN0ZW5jZUUKIF9fWk43V2ViQ29yZTEwQ3JlZGVudGlhbEMx
RXYKK19fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmUx
MEZsb2F0UG9pbnRDMUVSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZz
X2luZm9FCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNXVEYxMkF0b21pY1N0
cmluZ0VOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVSS05TXzE4UGxhdGZvcm1Nb3Vz
ZUV2ZW50RWlOUzVfSU5TXzROb2RlRUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzViOWQwMy4uZWQ1Mjc1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDExLTEyLTEyICBBbmRyZWFzIEtsaW5nICA8
a2xpbmdAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXNpemluZyBDYXBwdWNjaW5vIGlzIHZlcnkg
bGFnZ3kgb24gV2ViS2l0IHNpbmNlIFNhZmFyaSA1LjEKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvNzEzNTQ+IGFuZCA8cmRhcjovL3Byb2JsZW0vMTA1NjU5OTg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24gTWFjLCB3ZSBhbHJlYWR5IGNh
Y2hlIHRoZSB3aW5kb3cgcmVjdCB0aHJvdWdoIHRoZSBXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdl
ZAorICAgICAgICBtZXNzYWdlLCBzbyBzaW1wbHkgcmV0dXJuIHRoYXQgaW4gV2ViQ2hyb21lQ2xp
ZW50Ojp3aW5kb3dSZWN0KCkgaW5zdGVhZCBvZgorICAgICAgICBzZW5kaW5nIGEgc3luY2hyb25v
dXMgcXVlcnkgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBDaGFuZ2VkIFdpbmRvd0FuZFZp
ZXdGcmFtZXNDaGFuZ2VkIHRvIHBhc3MgRmxvYXRSZWN0L0Zsb2F0UG9pbnQgcmF0aGVyIHRoYW4K
KyAgICAgICAgSW50UmVjdC9JbnRQb2ludCB0byBtYXRjaCB0aGUgQ2hyb21lQ2xpZW50Ojp3aW5k
b3dSZWN0KCkgcmV0dXJuIHR5cGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW06CisgICAgICAgICgtW1dLVmlldyBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc10pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnNldFdpbmRvd0ZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGx1Z2luVmlldzo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6d2luZG93QW5kVmlld0Zy
YW1lc0NoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OndpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphY2Nlc3NpYmlsaXR5UG9zaXRpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dC5tbToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6CisKIDIwMTEtMTItMTIgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViS2l0IGNvZGUgc2hvdWxkbid0IGJlIGNhbGxpbmcg
YXBwbHlDb21tYW5kIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KaW5kZXggODk5ZGE1ZS4uZjc1ZTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMzM3LDcgKzMzNyw3IEBAIHN0cnVjdCBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICAgICBOU1JlY3Qgdmlld0ZyYW1lSW5XaW5k
b3dDb29yZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRSZWN0OltzZWxmIGZyYW1lXSB0b1ZpZXc6bmls
XTsKICAgICBOU1BvaW50IGFjY2Vzc2liaWxpdHlQb3NpdGlvbiA9IFtbc2VsZiBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5UG9zaXRpb25BdHRyaWJ1dGVdIHBvaW50
VmFsdWVdOwogICAgIAotICAgIF9kYXRhLT5fcGFnZS0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5n
ZWQoZW5jbG9zaW5nSW50UmVjdCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMpLCBlbmNs
b3NpbmdJbnRSZWN0KHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpLCBJbnRQb2ludChhY2Nl
c3NpYmlsaXR5UG9zaXRpb24pKTsKKyAgICBfZGF0YS0+X3BhZ2UtPndpbmRvd0FuZFZpZXdGcmFt
ZXNDaGFuZ2VkKHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgdmlld0ZyYW1lSW5XaW5k
b3dDb29yZGluYXRlcywgYWNjZXNzaWJpbGl0eVBvc2l0aW9uKTsKIH0KIAogLSAodm9pZClyZW5l
d0dTdGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQ3ZmNk
NmMuLmJmODk1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTMwNiw3ICszMDYsNyBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCB1
cGRhdGVXaW5kb3dJc1Zpc2libGUoYm9vbCB3aW5kb3dJc1Zpc2libGUpOwotICAgIHZvaWQgd2lu
ZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJh
bWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJ
bldpbmRvd0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgYWNjZXNzaWJpbGl0
eVZpZXdDb29yZGluYXRlcyk7CisgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKTsK
IAogICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiB0ZXh0LCBWZWN0b3I8V2Vi
Q29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXMsIHVpbnQ2NF90IHNlbGVjdGlv
blN0YXJ0LCB1aW50NjRfdCBzZWxlY3Rpb25FbmQsIHVpbnQ2NF90IHJlcGxhY2VtZW50UmFuZ2VT
dGFydCwgdWludDY0X3QgcmVwbGFjZW1lbnRSYW5nZUVuZCk7CiAgICAgdm9pZCBjb25maXJtQ29t
cG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJv
eHlNYWMubW0KaW5kZXggMTkyZWI0MS4uMzMyNWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6dXBkYXRlV2luZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxl
KQogICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0V2luZG93SXNWaXNp
YmxlKHdpbmRvd0lzVmlzaWJsZSksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IEludFJlY3QmIHdpbmRvd0ZyYW1lSW5T
Y3JlZW5Db29yZGluYXRlcywgY29uc3QgSW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlcywgY29uc3QgSW50UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpCit2b2lk
IFdlYlBhZ2VQcm94eTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgRmxvYXRSZWN0
JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IEZsb2F0UmVjdCYgdmlld0Zy
YW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgRmxvYXRQb2ludCYgYWNjZXNzaWJpbGl0eVZp
ZXdDb29yZGluYXRlcykKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmlu
ZGV4IDdkZTBmZDYuLjFmNDRlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTQxNCwxMiArNDE0LDEyIEBAIHZvaWQgUGx1Z2lu
Vmlldzo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgbV9wbHVn
aW4tPmNvbnRlbnRzU2NhbGVGYWN0b3JDaGFuZ2VkKHNjYWxlRmFjdG9yKTsKIH0KIAotdm9pZCBQ
bHVnaW5WaWV3Ojp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBJbnRSZWN0JiB3aW5k
b3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IEludFJlY3QmIHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMpCit2b2lkIFBsdWdpblZpZXc6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFu
Z2VkKGNvbnN0IEZsb2F0UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25z
dCBGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpCiB7CiAgICAgaWYgKCFt
X2lzSW5pdGlhbGl6ZWQgfHwgIW1fcGx1Z2luKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Bs
dWdpbi0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3Jk
aW5hdGVzLCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKKyAgICBtX3BsdWdpbi0+d2lu
ZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoZW5jbG9zaW5nSW50UmVjdCh3aW5kb3dGcmFtZUluU2Ny
ZWVuQ29vcmRpbmF0ZXMpLCBlbmNsb3NpbmdJbnRSZWN0KHZpZXdGcmFtZUluV2luZG93Q29vcmRp
bmF0ZXMpKTsKIH0KIAogYm9vbCBQbHVnaW5WaWV3OjpzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50
NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0
SW5wdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
aAppbmRleCA4ZjUyZThjLi5lODZmZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0V2luZG93SXNWaXNpYmxlKGJvb2wpOwogICAgIHZvaWQgc2V0V2luZG93SXNGb2N1c2Vk
KGJvb2wpOwogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwotICAgIHZvaWQg
d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93
RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKKyAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFu
Z2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5h
dGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMpOwogICAgIGJvb2wgc2VuZENvbXBsZXhUZXh0SW5wdXQodWludDY0X3QgcGx1Z2luQ29tcGxl
eFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTQxY2UyYi4uMTc0MjBmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcApAQCAtMTA1LDEyICsxMDUsMTYgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiB3aW5kb3dGcmFtZSkKIAogRmxvYXRS
ZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCiB7CisjaWYgUExBVEZPUk0oTUFDKQor
ICAgIHJldHVybiBtX3BhZ2UtPndpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcygpOworI2Vs
c2UKICAgICBGbG9hdFJlY3QgbmV3V2luZG93RnJhbWU7CiAKICAgICBpZiAoIVdlYlByb2Nlc3M6
OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
R2V0V2luZG93RnJhbWUoKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0V2luZG93RnJhbWU6
OlJlcGx5KG5ld1dpbmRvd0ZyYW1lKSwgbV9wYWdlLT5wYWdlSUQoKSkpCiAgICAgICAgIHJldHVy
biBGbG9hdFJlY3QoKTsKIAogICAgIHJldHVybiBuZXdXaW5kb3dGcmFtZTsKKyNlbmRpZgogfQog
CiBGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYmY0ZjQ3YS4uNjU5YWM2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MjMxMiw3ICsyMzEyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRXaW5kb3dJc1Zpc2libGUoYm9vbCB3
aW5kb3dJc1Zpc2libGUpCiAgICAgICAgICgqaXQpLT5zZXRXaW5kb3dJc1Zpc2libGUod2luZG93
SXNWaXNpYmxlKTsKIH0KIAotdm9pZCBXZWJQYWdlOjp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdl
ZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKQordm9p
ZCBXZWJQYWdlOjp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKQogewogICAgIG1fd2luZG93RnJh
bWVJblNjcmVlbkNvb3JkaW5hdGVzID0gd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzOwog
ICAgIG1fdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IHZpZXdGcmFtZUluV2luZG93Q29v
cmRpbmF0ZXM7CkBAIC0yMzIwLDcgKzIzMjAsNyBAQCB2b2lkIFdlYlBhZ2U6OndpbmRvd0FuZFZp
ZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TYwog
ICAgIAogICAgIC8vIFRlbGwgYWxsIG91ciBwbHVnLWluIHZpZXdzIHRoYXQgdGhlIHdpbmRvdyBh
bmQgdmlldyBmcmFtZXMgaGF2ZSBjaGFuZ2VkLgogICAgIGZvciAoSGFzaFNldDxQbHVnaW5WaWV3
Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wbHVnaW5WaWV3cy5iZWdpbigpLCBlbmQgPSBtX3Bs
dWdpblZpZXdzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICgqaXQpLT53aW5kb3dB
bmRWaWV3RnJhbWVzQ2hhbmdlZCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIHZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOworICAgICAgICAoKml0KS0+d2luZG93QW5kVmlld0Zy
YW1lc0NoYW5nZWQoZW5jbG9zaW5nSW50UmVjdCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0
ZXMpLCBlbmNsb3NpbmdJbnRSZWN0KHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpKTsKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA4NzU2YjQxLi5mMzFiNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTI4OSw4ICsyODksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1v
dmVQbHVnaW5WaWV3KFBsdWdpblZpZXcqKTsKIAogICAgIGJvb2wgd2luZG93SXNWaXNpYmxlKCkg
Y29uc3QgeyByZXR1cm4gbV93aW5kb3dJc1Zpc2libGU7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBt
X3dpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlczsgfQotICAgIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBtX3Zp
ZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fd2lu
ZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3
RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOyB9CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgSFdO
RCBuYXRpdmVXaW5kb3coKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZVdpbmRvdzsgfQogI2VuZGlm
CkBAIC0zNTYsOCArMzU2LDggQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lk
IHJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2Vucyhjb25zdCBDb3JlSVBDOjpEYXRh
UmVmZXJlbmNlJiBlbGVtZW5Ub2tlbiwgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYgd2lu
ZG93VG9rZW4pOwogICAgIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QqIGFjY2Vzc2liaWxp
dHlSZW1vdGVPYmplY3QoKTsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBhY2Nlc3NpYmlsaXR5UG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlQb3NpdGlvbjsgfSAgICAKLSAg
ICAKKyAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhY2Nlc3NpYmlsaXR5UG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlQb3NpdGlvbjsgfQorCiAgICAgdm9pZCBz
ZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAKICAgICB2b2lkIHNldENv
bXBvc2l0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9u
VW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1aW50NjRfdCBzZWxlY3Rpb25TdGFydCwgdWludDY0X3Qg
c2VsZWN0aW9uRW5kLCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdlU3RhcnQsIHVpbnQ2NF90IHJl
cGxhY2VtZW50UmFuZ2VFbmQsIEVkaXRvclN0YXRlJiBuZXdTdGF0ZSk7CkBAIC01NjAsNyArNTYw
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwRm9yUmFuZ2Uo
RGljdGlvbmFyeVBvcHVwSW5mbzo6VHlwZSwgV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpSYW5n
ZSosIE5TRGljdGlvbmFyeSAqb3B0aW9ucyk7CiAKICAgICB2b2lkIHNldFdpbmRvd0lzVmlzaWJs
ZShib29sIHdpbmRvd0lzVmlzaWJsZSk7Ci0gICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hh
bmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0
ZXMsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKTsK
KyAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpOwogI2VuZGlmCiAKICAgICB2b2lk
IHVuYXBwbHlFZGl0Q29tbWFuZCh1aW50NjRfdCBjb21tYW5kSUQpOwpAQCAtNjM3LDE0ICs2Mzcs
MTQgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiAK
ICAgICAvLyBUaGUgZnJhbWUgb2YgdGhlIGNvbnRhaW5pbmcgd2luZG93IGluIHNjcmVlbiBjb29y
ZGluYXRlcy4KLSAgICBXZWJDb3JlOjpJbnRSZWN0IG1fd2luZG93RnJhbWVJblNjcmVlbkNvb3Jk
aW5hdGVzOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX3dpbmRvd0ZyYW1lSW5TY3JlZW5Db29y
ZGluYXRlczsKIAogICAgIC8vIFRoZSBmcmFtZSBvZiB0aGUgdmlldyBpbiB3aW5kb3cgY29vcmRp
bmF0ZXMuCi0gICAgV2ViQ29yZTo6SW50UmVjdCBtX3ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXM7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRl
czsKIAogICAgIC8vIFRoZSBhY2Nlc3NpYmlsaXR5IHBvc2l0aW9uIG9mIHRoZSB2aWV3LgotICAg
IFdlYkNvcmU6OkludFBvaW50IG1fYWNjZXNzaWJpbGl0eVBvc2l0aW9uOwotICAgIAorICAgIFdl
YkNvcmU6OkZsb2F0UG9pbnQgbV9hY2Nlc3NpYmlsaXR5UG9zaXRpb247CisKICAgICAvLyBBbGwg
cGx1Zy1pbiB2aWV3cyBvbiB0aGlzIHdlYiBwYWdlLgogICAgIEhhc2hTZXQ8UGx1Z2luVmlldyo+
IG1fcGx1Z2luVmlld3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMzc4NjE5MS4uNDI2NWFjMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KQEAgLTIwMSw3ICsyMDEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKICAgICBTZW5k
Q29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyLCBTdHJpbmcgdGV4dElucHV0KQogCiAgICAgU2V0V2luZG93SXNWaXNpYmxlKGJv
b2wgd2luZG93SXNWaXNpYmxlKQotICAgIFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKFdlYkNv
cmU6OkludFJlY3Qgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRS
ZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OkludFBvaW50IGFjY2Vz
c2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpCisgICAgV2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQo
V2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29y
ZTo6RmxvYXRSZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OkZsb2F0
UG9pbnQgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcykKICAgICBSZWdpc3RlclVJUHJvY2Vz
c0FjY2Vzc2liaWxpdHlUb2tlbnMoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBlbGVtZW5Ub2tlbiwg
Q29yZUlQQzo6RGF0YVJlZmVyZW5jZSB3aW5kb3dUb2tlbikKICAgICBXcml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZChXVEY6OlN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgV1RGOjpWZWN0b3I8V1RGOjpT
dHJpbmc+IHBhc3RlYm9hcmRUeXBlcykgLT4gKGJvb2wgcmVzdWx0KQogICAgIFJlYWRTZWxlY3Rp
b25Gcm9tUGFzdGVib2FyZChXVEY6OlN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKGJvb2wgcmVz
dWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
S0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tCmluZGV4IDZlZDM3
ZWEuLmRmYjUzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0K
QEAgLTE0Miw3ICsxNDIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgICAgICByZXR1
cm4gbmlsOwogCiAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJp
bGl0eVBvc2l0aW9uQXR0cmlidXRlXSkgewotICAgICAgICBXZWJDb3JlOjpJbnRQb2ludCBwb2lu
dCA9IG1fcGFnZS0+YWNjZXNzaWJpbGl0eVBvc2l0aW9uKCk7CisgICAgICAgIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHBvaW50ID0gbV9wYWdlLT5hY2Nlc3NpYmlsaXR5UG9zaXRpb24oKTsK
ICAgICAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aFBvaW50Ok5TTWFrZVBvaW50KHBvaW50
LngoKSwgcG9pbnQueSgpKV07CiAgICAgfQogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0
cmluZzpOU0FjY2Vzc2liaWxpdHlTaXplQXR0cmlidXRlXSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192119</attachid>
            <date>2013-03-07 18:01:21 -0800</date>
            <delta_ts>2013-03-07 18:03:15 -0800</delta_ts>
            <desc>Patch II: Return from the Dead</desc>
            <filename>bug-71354-v2.diff</filename>
            <type>text/plain</type>
            <size>16768</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYWVhNzg5Li5jNWM3OGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUg
QEAKIDIwMTMtMDMtMDcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIFJlc2l6aW5nIENhcHB1Y2Npbm8gaXMgdmVyeSBsYWdneSBvbiBXZWJLaXQgc2luY2UgU2Fm
YXJpIDUuMQorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi83MTM1ND4KKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwNTY1OTk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IEV4cG9ydCBGbG9hdFBvaW50KGNvbnN0
IE5TUG9pbnQmKQorCisyMDEzLTAzLTA3ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNv
bT4KKwogICAgICAgICBSZW1vdmUgZGVza3RvcCB2ZXJzaW9uIG9mIC13ZWJraXQtdGV4dC1zaXpl
LWFkanVzdCBwcm9wZXJ0eS4KICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTY1NDM+CiAg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MTUwMjAzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBi
ZDJhNDJmLi5lM2FjZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzAsNiArNzAsNyBAQCBf
X1pON1dlYkNvcmUxMENsaWVudFJlY3RDMUVSS05TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMTBD
bGllbnRSZWN0QzFFdgogX19aTjdXZWJDb3JlMTBDcmVkZW50aWFsQzFFUktOM1dURjZTdHJpbmdF
UzRfTlNfMjFDcmVkZW50aWFsUGVyc2lzdGVuY2VFCiBfX1pON1dlYkNvcmUxMENyZWRlbnRpYWxD
MUV2CitfX1pON1dlYkNvcmUxMEZsb2F0UG9pbnRDMUVSSzhfTlNQb2ludAogX19aTjdXZWJDb3Jl
MTBGbG9hdFBvaW50QzFFUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2
c19pbmZvRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNT
dHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3JtTW91
c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGYxZTc3N2UuLmU3MjA3YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAxMy0wMy0wNyAgQW5kcmVhcyBLbGluZyAg
PGFrbGluZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVzaXppbmcgQ2FwcHVjY2lubyBpcyB2ZXJ5
IGxhZ2d5IG9uIFdlYktpdCBzaW5jZSBTYWZhcmkgNS4xCisgICAgICAgIDxodHRwOi8vd2Via2l0
Lm9yZy9iLzcxMzU0PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA1NjU5OTg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24gTWFjLCB3ZSBhbHJl
YWR5IGNhY2hlIHRoZSB3aW5kb3cgcmVjdCB0aHJvdWdoIHRoZSBXaW5kb3dBbmRWaWV3RnJhbWVz
Q2hhbmdlZAorICAgICAgICBtZXNzYWdlLCBzbyBzaW1wbHkgcmV0dXJuIHRoYXQgaW4gV2ViQ2hy
b21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkgaW5zdGVhZCBvZgorICAgICAgICBzZW5kaW5nIGEgc3lu
Y2hyb25vdXMgcXVlcnkgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBJZiBhIHByb2dyYW1t
YXRpYyByZXNpemUgaXMgcmVxdWVzdGVkLCB3ZSBieXBhc3MgdGhlIGNhY2hlIHVudGlsIHdlJ3Zl
IHJlY2VpdmVkCisgICAgICAgIGEgbmV3IFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkIG1lc3Nh
Z2UuIFRoaXMgY29tcHJvbWlzZSBhbGxvd3MgdXMgdG8gcmV0dXJuCisgICAgICAgIGNhY2hlZCBy
ZWN0cyBpbiB0aGUgY29tbW9uIGNhc2UsIGFuZCBoYW5kbGVzIGNyZWF0aW5nIGEgbmV3IHdpbmRv
dyBhbmQgaW1tZWRpYXRlbHkKKyAgICAgICAgcmVzaXppbmcgaXQgZ3JhY2VmdWxseS4KKworICAg
ICAgICBDaGFuZ2VkIFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkIHRvIHBhc3MgRmxvYXRSZWN0
L0Zsb2F0UG9pbnQgcmF0aGVyIHRoYW4KKyAgICAgICAgSW50UmVjdC9JbnRQb2ludCB0byBtYXRj
aCB0aGUgQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkgcmV0dXJuIHR5cGUuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBfdXBkYXRl
V2luZG93QW5kVmlld0ZyYW1lc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQ
YWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2luZG93QW5k
Vmlld0ZyYW1lc0NoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6d2luZG93QW5kVmlld0ZyYW1l
c0NoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6Cisg
ICAgICAgIChQbHVnaW5WaWV3KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
c2V0V2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6d2luZG93
UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2VuZFNldFdpbmRvd0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6d2luZG93QW5k
Vmlld0ZyYW1lc0NoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6d2luZG93
RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmll
d0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omhh
c0NhY2hlZFdpbmRvd0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWNjZXNzaWJp
bGl0eVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QubW06CisgICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3QgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgorCiAyMDEzLTAzLTA3ICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE51bGwtY2hlY2sgdGhl
IHBhZ2Ugb3ZlcmxheSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCA5NGU5OTQ1Li5kY2FmZmZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00MDAsNyArNDAwLDcg
QEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgIE5TUmVj
dCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gW3NlbGYgY29udmVydFJlY3Q6W3NlbGYg
ZnJhbWVdIHRvVmlldzpuaWxdOwogICAgIE5TUG9pbnQgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0g
W1tzZWxmIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlv
bkF0dHJpYnV0ZV0gcG9pbnRWYWx1ZV07CiAgICAgCi0gICAgX2RhdGEtPl9wYWdlLT53aW5kb3dB
bmRWaWV3RnJhbWVzQ2hhbmdlZChlbmNsb3NpbmdJbnRSZWN0KHdpbmRvd0ZyYW1lSW5TY3JlZW5D
b29yZGluYXRlcyksIGVuY2xvc2luZ0ludFJlY3Qodmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRl
cyksIEludFBvaW50KGFjY2Vzc2liaWxpdHlQb3NpdGlvbikpOworICAgIF9kYXRhLT5fcGFnZS0+
d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVz
LCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBhY2Nlc3NpYmlsaXR5UG9zaXRpb24pOwog
ICAgIGlmIChfZGF0YS0+X2V4cGFuZHNUb0ZpdENvbnRlbnRWaWFBdXRvTGF5b3V0KQogICAgICAg
ICBfZGF0YS0+X3BhZ2UtPnZpZXdFeHBvc2VkUmVjdENoYW5nZWQoW3NlbGYgdmlzaWJsZVJlY3Rd
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBkODUzMWUy
Li4yZjRlYzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0z
ODQsNyArMzg0LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgdXBk
YXRlV2luZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKTsKLSAgICB2b2lkIHdpbmRv
d0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1l
SW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5X
aW5kb3dDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGFjY2Vzc2liaWxpdHlW
aWV3Q29vcmRpbmF0ZXMpOworICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcyk7CiAg
ICAgdm9pZCB2aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
ZXhwb3NlZFJlY3QpOwogICAgIHZvaWQgc2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKGJvb2wpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmlu
ZGV4IDYwNTczMDguLmNmNDFmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJsZSkKICAgICBwcm9j
ZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFdpbmRvd0lzVmlzaWJsZSh3aW5kb3dJ
c1Zpc2libGUpLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aW5kb3dBbmRW
aWV3RnJhbWVzQ2hhbmdlZChjb25zdCBJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRp
bmF0ZXMsIGNvbnN0IEludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGNvbnN0
IEludFBvaW50JiBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKQordm9pZCBXZWJQYWdlUHJv
eHk6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IEZsb2F0UmVjdCYgd2luZG93RnJh
bWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93
Q29vcmRpbmF0ZXMsIGNvbnN0IEZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0
ZXMpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAzNjRiMGUx
Li42NDE3ZmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCkBAIC00ODIsMTIgKzQ4MiwxMiBAQCB2b2lkIFBsdWdpblZpZXc6OnNldERl
dmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQogICAgIG1fcGx1Z2luLT5jb250ZW50
c1NjYWxlRmFjdG9yQ2hhbmdlZChzY2FsZUZhY3Rvcik7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6
d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgSW50UmVjdCYgd2luZG93RnJhbWVJblNj
cmVlbkNvb3JkaW5hdGVzLCBjb25zdCBJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5h
dGVzKQordm9pZCBQbHVnaW5WaWV3Ojp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBG
bG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgRmxvYXRSZWN0
JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQogewogICAgIGlmICghbV9pc0luaXRpYWxp
emVkIHx8ICFtX3BsdWdpbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wbHVnaW4tPndpbmRv
d0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgdmll
d0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CisgICAgbV9wbHVnaW4tPndpbmRvd0FuZFZpZXdG
cmFtZXNDaGFuZ2VkKGVuY2xvc2luZ0ludFJlY3Qod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5h
dGVzKSwgZW5jbG9zaW5nSW50UmVjdCh2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKSk7CiB9
CiAKIGJvb2wgUGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0SW5wdXQodWludDY0X3QgcGx1Z2lu
Q29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggOTk0
MTk0My4uMmIxNDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdpbmRv
d0lzVmlzaWJsZShib29sKTsKICAgICB2b2lkIHNldFdpbmRvd0lzRm9jdXNlZChib29sKTsKICAg
ICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKLSAgICB2b2lkIHdpbmRvd0FuZFZp
ZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3Jl
ZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcyk7CisgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKICAgICBi
b29sIHNlbmRDb21wbGV4VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAgICAgdm9pZCBzZXRMYXllckhv
c3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpOwogICAgIFJldGFpblB0cjxQREZEb2N1bWVudD4g
cGRmRG9jdW1lbnRGb3JQcmludGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luLT5wZGZEb2N1
bWVudEZvclByaW50aW5nKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBiNDA2NmEy
Li5kZTdmYzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMDYsMTEgKzEwNiwxNiBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hyb21lRGVzdHJveWVkKCkKIAogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiB3aW5kb3dGcmFtZSkKIHsK
LSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0V2luZG93RnJhbWUo
d2luZG93RnJhbWUpKTsKKyAgICBtX3BhZ2UtPnNlbmRTZXRXaW5kb3dGcmFtZSh3aW5kb3dGcmFt
ZSk7CiB9CiAKIEZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQogeworI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9wYWdlLT5oYXNDYWNoZWRXaW5kb3dGcmFtZSgpKQor
ICAgICAgICByZXR1cm4gbV9wYWdlLT53aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMoKTsK
KyNlbmRpZgorCiAgICAgRmxvYXRSZWN0IG5ld1dpbmRvd0ZyYW1lOwogCiAgICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkdldFdpbmRvd0ZyYW1lKCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRv
d0ZyYW1lOjpSZXBseShuZXdXaW5kb3dGcmFtZSksIG1fcGFnZS0+cGFnZUlEKCkpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDIwZThlOTIu
LjRhZjE0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTIzNyw2ICsyMzcsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAsIG1f
bWFpbkZyYW1lSXNTY3JvbGxhYmxlKHRydWUpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV9w
ZGZQbHVnaW5FbmFibGVkKGZhbHNlKQorICAgICwgbV9oYXNDYWNoZWRXaW5kb3dGcmFtZShmYWxz
ZSkKICAgICAsIG1fd2luZG93SXNWaXNpYmxlKGZhbHNlKQogICAgICwgbV9sYXllckhvc3RpbmdN
b2RlKHBhcmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkKICAgICAsIG1fa2V5Ym9hcmRFdmVudEJl
aW5nSW50ZXJwcmV0ZWQoMCkKQEAgLTI5MDUsNiArMjkwNiwxNCBAQCB2b2lkIFdlYlBhZ2U6OnJl
bW92ZVBsdWdpblZpZXcoUGx1Z2luVmlldyogcGx1Z2luVmlldykKICAgICBtX3BsdWdpblZpZXdz
LnJlbW92ZShwbHVnaW5WaWV3KTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZW5kU2V0V2luZG93RnJh
bWUoY29uc3QgRmxvYXRSZWN0JiB3aW5kb3dGcmFtZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgbV9oYXNDYWNoZWRXaW5kb3dGcmFtZSA9IGZhbHNlOworI2VuZGlmCisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTZXRXaW5kb3dGcmFtZSh3aW5kb3dGcmFtZSkpOworfQorCiAj
aWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQYWdlOjpzZXRXaW5kb3dJc1Zpc2libGUoYm9vbCB3
aW5kb3dJc1Zpc2libGUpCiB7CkBAIC0yOTE3LDcgKzI5MjYsNyBAQCB2b2lkIFdlYlBhZ2U6OnNl
dFdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJsZSkKICAgICAgICAgKCppdCktPnNl
dFdpbmRvd0lzVmlzaWJsZSh3aW5kb3dJc1Zpc2libGUpOwogfQogCi12b2lkIFdlYlBhZ2U6Ondp
bmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IEludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3Jl
ZW5Db29yZGluYXRlcywgY29uc3QgSW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRl
cywgY29uc3QgSW50UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpCit2b2lkIFdl
YlBhZ2U6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IEZsb2F0UmVjdCYgd2luZG93
RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMsIGNvbnN0IEZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRp
bmF0ZXMpCiB7CiAgICAgbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMgPSB3aW5kb3dG
cmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7CiAgICAgbV92aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5h
dGVzID0gdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsKQEAgLTI5MjUsNyArMjkzNCw5IEBA
IHZvaWQgV2ViUGFnZTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgSW50UmVjdCYg
d2luZG93RnJhbWVJblNjcmVlbkNvb3JkCiAgICAgCiAgICAgLy8gVGVsbCBhbGwgb3VyIHBsdWct
aW4gdmlld3MgdGhhdCB0aGUgd2luZG93IGFuZCB2aWV3IGZyYW1lcyBoYXZlIGNoYW5nZWQuCiAg
ICAgZm9yIChIYXNoU2V0PFBsdWdpblZpZXcqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BsdWdp
blZpZXdzLmJlZ2luKCksIGVuZCA9IG1fcGx1Z2luVmlld3MuZW5kKCk7IGl0ICE9IGVuZDsgKytp
dCkKLSAgICAgICAgKCppdCktPndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHdpbmRvd0ZyYW1l
SW5TY3JlZW5Db29yZGluYXRlcywgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CisgICAg
ICAgICgqaXQpLT53aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChlbmNsb3NpbmdJbnRSZWN0KHdp
bmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcyksIGVuY2xvc2luZ0ludFJlY3Qodmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcykpOworCisgICAgbV9oYXNDYWNoZWRXaW5kb3dGcmFtZSA9IHRy
dWU7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggNWFiYTRlMS4uMWExYzA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yOTksNiArMjk5LDggQEAgcHVibGljOgogICAgIHZv
aWQgY2xlYXJNYWluRnJhbWVOYW1lKCk7CiAgICAgdm9pZCBzZW5kQ2xvc2UoKTsKIAorICAgIHZv
aWQgc2VuZFNldFdpbmRvd0ZyYW1lKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworCiAgICAg
ZG91YmxlIHRleHRab29tRmFjdG9yKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUZXh0Wm9vbUZhY3Rv
cihkb3VibGUpOwogICAgIGRvdWJsZSBwYWdlWm9vbUZhY3RvcigpIGNvbnN0OwpAQCAtMzUyLDgg
KzM1NCwxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIHdpbmRvd0lzVmlzaWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fd2luZG93SXNWaXNpYmxlOyB9CiAgICAgdm9pZCB1cGRhdGVQbHVnaW5zQWN0aXZl
QW5kRm9jdXNlZFN0YXRlKCk7Ci0gICAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJh
bWVJblNjcmVlbkNvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dGcmFtZUluU2Ny
ZWVuQ29vcmRpbmF0ZXM7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJ
bldpbmRvd0Nvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3RnJhbWVJbldpbmRvd0Nv
b3JkaW5hdGVzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUlu
U2NyZWVuQ29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd0ZyYW1lSW5TY3JlZW5D
b29yZGluYXRlczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld0ZyYW1lSW5X
aW5kb3dDb29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld0ZyYW1lSW5XaW5kb3dDb29y
ZGluYXRlczsgfQorCisgICAgYm9vbCBoYXNDYWNoZWRXaW5kb3dGcmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1faGFzQ2FjaGVkV2luZG93RnJhbWU7IH0KICNlbmRpZgogCiAgICAgYm9vbCB3aW5kb3dJ
c0ZvY3VzZWQoKSBjb25zdDsKQEAgLTQzOCw3ICs0NDIsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIHZvaWQgcmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGNv
bnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIGVsZW1lblRva2VuLCBjb25zdCBDb3JlSVBDOjpE
YXRhUmVmZXJlbmNlJiB3aW5kb3dUb2tlbik7CiAgICAgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdCogYWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpOwotICAgIFdlYkNvcmU6OkludFBvaW50
IGFjY2Vzc2liaWxpdHlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBv
c2l0aW9uOyB9ICAgIAorICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFjY2Vzc2liaWxp
dHlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBvc2l0aW9uOyB9CiAg
ICAgCiAgICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAK
QEAgLTcyOSw3ICs3MzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybURpY3Rpb25hcnlM
b29rdXBGb3JSYW5nZShEaWN0aW9uYXJ5UG9wdXBJbmZvOjpUeXBlLCBXZWJDb3JlOjpGcmFtZSos
IFdlYkNvcmU6OlJhbmdlKiwgTlNEaWN0aW9uYXJ5ICpvcHRpb25zKTsKIAogICAgIHZvaWQgc2V0
V2luZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKTsKLSAgICB2b2lkIHdpbmRvd0Fu
ZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5T
Y3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5k
b3dDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3
Q29vcmRpbmF0ZXMpOworICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcyk7CiAKICAg
ICBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmdGcmFtZShXZWJD
b3JlOjpGcmFtZSopOwogICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVu
dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50
UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cyk7CkBAIC04MzgsMTcgKzg0MiwxOSBAQCBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIG1fcGRmUGx1Z2luRW5hYmxlZDsKIAorICAgIGJv
b2wgbV9oYXNDYWNoZWRXaW5kb3dGcmFtZTsKKwogICAgIC8vIFdoZXRoZXIgdGhlIGNvbnRhaW5p
bmcgd2luZG93IGlzIHZpc2libGUgb3Igbm90LgogICAgIGJvb2wgbV93aW5kb3dJc1Zpc2libGU7
CiAKICAgICAvLyBUaGUgZnJhbWUgb2YgdGhlIGNvbnRhaW5pbmcgd2luZG93IGluIHNjcmVlbiBj
b29yZGluYXRlcy4KLSAgICBXZWJDb3JlOjpJbnRSZWN0IG1fd2luZG93RnJhbWVJblNjcmVlbkNv
b3JkaW5hdGVzOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX3dpbmRvd0ZyYW1lSW5TY3JlZW5D
b29yZGluYXRlczsKIAogICAgIC8vIFRoZSBmcmFtZSBvZiB0aGUgdmlldyBpbiB3aW5kb3cgY29v
cmRpbmF0ZXMuCi0gICAgV2ViQ29yZTo6SW50UmVjdCBtX3ZpZXdGcmFtZUluV2luZG93Q29vcmRp
bmF0ZXM7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fdmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlczsKIAogICAgIC8vIFRoZSBhY2Nlc3NpYmlsaXR5IHBvc2l0aW9uIG9mIHRoZSB2aWV3Lgot
ICAgIFdlYkNvcmU6OkludFBvaW50IG1fYWNjZXNzaWJpbGl0eVBvc2l0aW9uOworICAgIFdlYkNv
cmU6OkZsb2F0UG9pbnQgbV9hY2Nlc3NpYmlsaXR5UG9zaXRpb247CiAgICAgCiAgICAgLy8gVGhl
IGxheWVyIGhvc3RpbmcgbW9kZS4KICAgICBMYXllckhvc3RpbmdNb2RlIG1fbGF5ZXJIb3N0aW5n
TW9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KaW5kZXggMDc3NWRlZC4uZjJlNjU1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI2
MCw3ICsyNjAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBT
ZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyLCBTdHJpbmcgdGV4dElucHV0KQogCiAgICAgU2V0V2luZG93SXNWaXNpYmxl
KGJvb2wgd2luZG93SXNWaXNpYmxlKQotICAgIFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKFdl
YkNvcmU6OkludFJlY3Qgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBXZWJDb3JlOjpJ
bnRSZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OkludFBvaW50IGFj
Y2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpCisgICAgV2luZG93QW5kVmlld0ZyYW1lc0NoYW5n
ZWQoV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2Vi
Q29yZTo6RmxvYXRSZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OkZs
b2F0UG9pbnQgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcykKICAgICBWaWV3RXhwb3NlZFJl
Y3RDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBleHBvc2VkUmVjdCkKICAgICBTZXRNYWluRnJh
bWVJc1Njcm9sbGFibGUoYm9vbCBpc1Njcm9sbGFibGUpCiAgICAgUmVnaXN0ZXJVSVByb2Nlc3NB
Y2Nlc3NpYmlsaXR5VG9rZW5zKENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZWxlbWVuVG9rZW4sIENv
cmVJUEM6OkRhdGFSZWZlcmVuY2Ugd2luZG93VG9rZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Qu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QubW0KaW5kZXggYzcyMjlhOS4uNjcyMWI0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBpZiAoW2F0dHJpYnV0
ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5UG9zaXRpb25BdHRyaWJ1dGVdKSB7Ci0g
ICAgICAgIFdlYkNvcmU6OkludFBvaW50IHBvaW50ID0gbV9wYWdlLT5hY2Nlc3NpYmlsaXR5UG9z
aXRpb24oKTsKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9pbnQgPSBtX3Bh
Z2UtPmFjY2Vzc2liaWxpdHlQb3NpdGlvbigpOwogICAgICAgICByZXR1cm4gW05TVmFsdWUgdmFs
dWVXaXRoUG9pbnQ6TlNNYWtlUG9pbnQocG9pbnQueCgpLCBwb2ludC55KCkpXTsKICAgICB9CiAg
ICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNpemVBdHRy
aWJ1dGVdKSB7Cg==
</data>
<flag name="review"
          id="213257"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>