<?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>192224</bug_id>
          
          <creation_ts>2018-11-30 06:42:56 -0800</creation_ts>
          <short_desc>[WPE] Add API to notify about frame displayed view backend callback</short_desc>
          <delta_ts>2018-12-17 05:31:35 -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>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/Igalia/WPEBackend-fdo/pull/28</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>191906</dependson>
    
    <dependson>192627</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1483503</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-11-30 06:42:56 -0800</bug_when>
    <thetext>Add webkit_web_view_add_frame_displayed_callback() and webkit_web_view_remove_frame_displayed_callback().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483504</commentid>
    <comment_count>1</comment_count>
      <attachid>356172</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-11-30 06:47:08 -0800</bug_when>
    <thetext>Created attachment 356172
Patch

This patch doesn&apos;t work with the fdo backend, see https://github.com/Igalia/WPEBackend-fdo/pull/28</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483505</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-30 06:48:29 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486521</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-12-10 01:32:44 -0800</bug_when>
    <thetext>Ping reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486640</commentid>
    <comment_count>4</comment_count>
      <attachid>356172</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-12-10 11:42:44 -0800</bug_when>
    <thetext>Comment on attachment 356172
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:219
&gt; +    FrameDisplayedCallback(const FrameDisplayedCallback&amp;) = delete;
&gt; +    FrameDisplayedCallback&amp; operator=(const FrameDisplayedCallback&amp;) = delete;

Good thinking to make it uncopyable.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:410
&gt; +            SetForScope&lt;bool&gt;inFrameDisplayedGuard(m_webView-&gt;priv-&gt;inFrameDisplayed, true);

Space after &gt;

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:4147
&gt; + * Add a callback to be called when the backend notifies that a frame has been displayed in @web_view.

I don&apos;t think you need the detail about the backend:

&quot;Add a callback to be called when the backend notifies that a frame has been displayed in @web_view.&quot;

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:4169
&gt; + * Removes a #WebKitFrameDisplayedCallback previously added to @web_view with
&gt; + * webkit_web_view_add_frame_displayed_callback().

Maybe we should document that the callback may be called once more after this function runs if the callbacks are currently being executed. Otherwise, applications that remove one callback during another callback and don&apos;t expect the original callback to be called again could crash. Admittedly, it would be pretty weird for an application to try this, so maybe not that important, but it seems unsafe and you do have a bunch of webView-&gt;priv-&gt;inFrameDisplayed logic trying to ensure safety here, after all.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:1240
&gt; +        : m_id(webkit_web_view_add_frame_displayed_callback(m_webView, [](WebKitWebView*, gpointer userData) {
&gt; +            auto* test = static_cast&lt;FrameDisplayedTest*&gt;(userData);
&gt; +            if (!test-&gt;m_maxFrames)
&gt; +                return;
&gt; +
&gt; +            if (++test-&gt;m_frameCounter == test-&gt;m_maxFrames)
&gt; +                RunLoop::main().dispatch([test] { test-&gt;quitMainLoop(); });
&gt; +        }, this, nullptr))

Don&apos;t you think this is a bit much for a constructor initializer? I would do this in the body of the constructor. Up to you....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486894</commentid>
    <comment_count>5</comment_count>
      <attachid>356172</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-12-10 23:37:17 -0800</bug_when>
    <thetext>Comment on attachment 356172
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:4147
&gt;&gt; + * Add a callback to be called when the backend notifies that a frame has been displayed in @web_view.
&gt; 
&gt; I don&apos;t think you need the detail about the backend:
&gt; 
&gt; &quot;Add a callback to be called when the backend notifies that a frame has been displayed in @web_view.&quot;

I mentioned explicitly on purpose after realizing that fdo backend was not dispatching the frame displayed signal. So, I want to make it clear that this callback depends on the backend.

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:4169
&gt;&gt; + * webkit_web_view_add_frame_displayed_callback().
&gt; 
&gt; Maybe we should document that the callback may be called once more after this function runs if the callbacks are currently being executed. Otherwise, applications that remove one callback during another callback and don&apos;t expect the original callback to be called again could crash. Admittedly, it would be pretty weird for an application to try this, so maybe not that important, but it seems unsafe and you do have a bunch of webView-&gt;priv-&gt;inFrameDisplayed logic trying to ensure safety here, after all.

Not really, that&apos;s actually bug, good catch :-) We should check callback is not in frameDisplayedCallbacksToRemove before emitting the signal. I&apos;ll try to make a test case.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:1240
&gt;&gt; +        }, this, nullptr))
&gt; 
&gt; Don&apos;t you think this is a bit much for a constructor initializer? I would do this in the body of the constructor. Up to you....

This is just a test...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487173</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-12-12 02:59:11 -0800</bug_when>
    <thetext>Committed r239103: &lt;https://trac.webkit.org/changeset/239103&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487206</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-12 08:25:16 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 192627</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488413</commentid>
    <comment_count>8</comment_count>
      <attachid>357433</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-12-17 03:26:44 -0800</bug_when>
    <thetext>Created attachment 357433
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488414</commentid>
    <comment_count>9</comment_count>
      <attachid>357434</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-12-17 03:49:18 -0800</bug_when>
    <thetext>Created attachment 357434
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488416</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-12-17 05:31:35 -0800</bug_when>
    <thetext>Committed r239264: &lt;https://trac.webkit.org/changeset/239264&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356172</attachid>
            <date>2018-11-30 06:47:08 -0800</date>
            <delta_ts>2018-12-17 03:26:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wpe-frame-displayed-api.diff</filename>
            <type>text/plain</type>
            <size>11810</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNDIzMjAxMTRhM2QuLjJjMWMzYTU2YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDE4LTExLTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV1BFXSBBZGQgQVBJIHRvIG5vdGlmeSBhYm91dCBmcmFtZSBkaXNw
bGF5ZWQgdmlldyBiYWNrZW5kIGNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRvIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSB2aWV3
IHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB2aWV3IGJhY2tlbmQgbm90aWZpZXMgdGhhdCBhIGZyYW1l
IGhhcyBiZWVuCisgICAgICAgIGRpc3BsYXllZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKEZyYW1lRGlzcGxheWVkQ2FsbGJhY2s6
OkZyYW1lRGlzcGxheWVkQ2FsbGJhY2spOgorICAgICAgICAoRnJhbWVEaXNwbGF5ZWRDYWxsYmFj
azo6fkZyYW1lRGlzcGxheWVkQ2FsbGJhY2spOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2Fk
ZF9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2spOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3Jl
bW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdFdlYlZpZXcuaDoKKwogMjAxOC0xMS0yOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gVXNlIG5ldyB2aWV3IHN0YXRl
IEFQSSBmcm9tIGxpYndwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCAwZmE0YTE4Zjg5Yy4uMTQxMDEyMDc2ZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZWZQdHJDYWlyby5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNs
dWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CkBAIC0xOTYsNiArMTk3LDM0IEBAIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgR1JlZlB0
cjxHVGFzaz4gPiBTbmFwc2hvdFJlc3VsdHNNYXA7CiAKIGNsYXNzIFBhZ2VMb2FkU3RhdGVPYnNl
cnZlcjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0YXRpYyB1bnNpZ25lZCBmcmFtZURpc3BsYXlD
YWxsYmFja0lEOworc3RydWN0IEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sgeworICAgIEZyYW1lRGlz
cGxheWVkQ2FsbGJhY2soV2ViS2l0RnJhbWVEaXNwbGF5ZWRDYWxsYmFjayBjYWxsYmFjaywgZ3Bv
aW50ZXIgdXNlckRhdGEgPSBudWxscHRyLCBHRGVzdHJveU5vdGlmeSBkZXN0cm95Tm90aWZ5RnVu
Y3Rpb24gPSBudWxscHRyKQorICAgICAgICA6IGlkKCsrZnJhbWVEaXNwbGF5Q2FsbGJhY2tJRCkK
KyAgICAgICAgLCBjYWxsYmFjayhjYWxsYmFjaykKKyAgICAgICAgLCB1c2VyRGF0YSh1c2VyRGF0
YSkKKyAgICAgICAgLCBkZXN0cm95Tm90aWZ5RnVuY3Rpb24oZGVzdHJveU5vdGlmeUZ1bmN0aW9u
KQorICAgIHsKKyAgICB9CisKKyAgICB+RnJhbWVEaXNwbGF5ZWRDYWxsYmFjaygpCisgICAgewor
ICAgICAgICBpZiAoZGVzdHJveU5vdGlmeUZ1bmN0aW9uKQorICAgICAgICAgICAgZGVzdHJveU5v
dGlmeUZ1bmN0aW9uKHVzZXJEYXRhKTsKKyAgICB9CisKKyAgICBGcmFtZURpc3BsYXllZENhbGxi
YWNrKEZyYW1lRGlzcGxheWVkQ2FsbGJhY2smJikgPSBkZWZhdWx0OworICAgIEZyYW1lRGlzcGxh
eWVkQ2FsbGJhY2soY29uc3QgRnJhbWVEaXNwbGF5ZWRDYWxsYmFjayYpID0gZGVsZXRlOworICAg
IEZyYW1lRGlzcGxheWVkQ2FsbGJhY2smIG9wZXJhdG9yPShjb25zdCBGcmFtZURpc3BsYXllZENh
bGxiYWNrJikgPSBkZWxldGU7CisKKyAgICB1bnNpZ25lZCBpZCB7IDAgfTsKKyAgICBXZWJLaXRG
cmFtZURpc3BsYXllZENhbGxiYWNrIGNhbGxiYWNrIHsgbnVsbHB0ciB9OworICAgIGdwb2ludGVy
IHVzZXJEYXRhIHsgbnVsbHB0ciB9OworICAgIEdEZXN0cm95Tm90aWZ5IGRlc3Ryb3lOb3RpZnlG
dW5jdGlvbiB7IG51bGxwdHIgfTsKK307CisjZW5kaWYgLy8gUExBVEZPUk0oV1BFKQorCiBzdHJ1
Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRlIHsKICAgICB+X1dlYktpdFdlYlZpZXdQcml2YXRlKCkK
ICAgICB7CkBAIC0yMDcsNiArMjM2LDkgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7
CiAjaWYgUExBVEZPUk0oV1BFKQogICAgIEdSZWZQdHI8V2ViS2l0V2ViVmlld0JhY2tlbmQ+IGJh
Y2tlbmQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdLV1BFOjpWaWV3PiB2aWV3OworICAgIFZlY3Rv
cjxGcmFtZURpc3BsYXllZENhbGxiYWNrPiBmcmFtZURpc3BsYXllZENhbGxiYWNrczsKKyAgICBi
b29sIGluRnJhbWVEaXNwbGF5ZWQ7CisgICAgVmVjdG9yPHVuc2lnbmVkPiBmcmFtZURpc3BsYXll
ZENhbGxiYWNrc1RvUmVtb3ZlOwogI2VuZGlmCiAKICAgICBXZWJLaXRXZWJWaWV3KiByZWxhdGVk
VmlldzsKQEAgLTM3Miw2ICs0MDQsMjAgQEAgcHJpdmF0ZToKICAgICAgICAgd2Via2l0V2ViVmll
d0hhbmRsZURvd25sb2FkUmVxdWVzdChtX3dlYlZpZXcsICZkb3dubG9hZFByb3h5KTsKICAgICB9
CiAKKyAgICB2b2lkIGZyYW1lRGlzcGxheWVkKFdLV1BFOjpWaWV3Jikgb3ZlcnJpZGUKKyAgICB7
CisgICAgICAgIHsKKyAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+aW5GcmFtZURpc3BsYXll
ZEd1YXJkKG1fd2ViVmlldy0+cHJpdi0+aW5GcmFtZURpc3BsYXllZCwgdHJ1ZSk7CisgICAgICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxiYWNrIDogbV93ZWJWaWV3LT5wcml2LT5mcmFtZURp
c3BsYXllZENhbGxiYWNrcykKKyAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsYmFjayhtX3dl
YlZpZXcsIGNhbGxiYWNrLnVzZXJEYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlICgh
bV93ZWJWaWV3LT5wcml2LT5mcmFtZURpc3BsYXllZENhbGxiYWNrc1RvUmVtb3ZlLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgYXV0byBpbmRleCA9IG1fd2ViVmlldy0+cHJpdi0+ZnJhbWVEaXNw
bGF5ZWRDYWxsYmFja3NUb1JlbW92ZS50YWtlTGFzdCgpOworICAgICAgICAgICAgbV93ZWJWaWV3
LT5wcml2LT5mcmFtZURpc3BsYXllZENhbGxiYWNrcy5yZW1vdmUoaW5kZXgpOworICAgICAgICB9
CisgICAgfQorCiAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogfTsKICNlbmRpZgpAQCAt
NDA4OSwzICs0MTM1LDU1IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVfc2Vzc2lvbl9z
dGF0ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJWaWV3CiAKICAgICBnZXRQYWdl
KHdlYlZpZXcpLnJlc3RvcmVGcm9tU2Vzc2lvblN0YXRlKHdlYmtpdFdlYlZpZXdTZXNzaW9uU3Rh
dGVHZXRTZXNzaW9uU3RhdGUoc3RhdGUpLCBmYWxzZSk7CiB9CisKKyNpZiBQTEFURk9STShXUEUp
CisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrOgor
ICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBAY2FsbGJhY2s6IGEgI1dlYktpdEZy
YW1lRGlzcGxheWVkQ2FsbGJhY2sKKyAqIEB1c2VyX2RhdGE6IChjbG9zdXJlKTogdXNlciBkYXRh
IHRvIHBhc3MgdG8gQGNhbGxiYWNrCisgKiBAZGVzdHJveV9ub3RpZnk6IChudWxsYWJsZSk6IGRl
c3Ryb3kgbm90aWZpZXIgZm9yIEB1c2VyX2RhdGEKKyAqCisgKiBBZGQgYSBjYWxsYmFjayB0byBi
ZSBjYWxsZWQgd2hlbiB0aGUgYmFja2VuZCBub3RpZmllcyB0aGF0IGEgZnJhbWUgaGFzIGJlZW4g
ZGlzcGxheWVkIGluIEB3ZWJfdmlldy4KKyAqCisgKiBSZXR1cm5zOiBhbiBpZGVudGlmaWVyIHRo
YXQgc2hvdWxkIGJlIHBhc3NlZCB0byB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3Bs
YXllZF9jYWxsYmFjaygpCisgKiAgICB0byByZW1vdmUgdGhlIGNhbGxiYWNrLgorICoKKyAqIFNp
bmNlOiAyLjI0CisgKi8KK3Vuc2lnbmVkIHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxh
eWVkX2NhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdEZyYW1lRGlzcGxheWVk
Q2FsbGJhY2sgY2FsbGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhLCBHRGVzdHJveU5vdGlmeSBkZXN0
cm95Tm90aWZ5KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklF
Vyh3ZWJWaWV3KSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY2FsbGJhY2ssIDApOwor
CisgICAgd2ViVmlldy0+cHJpdi0+ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3MuYXBwZW5kKEZyYW1l
RGlzcGxheWVkQ2FsbGJhY2soY2FsbGJhY2ssIHVzZXJEYXRhLCBkZXN0cm95Tm90aWZ5KSk7Cisg
ICAgcmV0dXJuIHdlYlZpZXctPnByaXYtPmZyYW1lRGlzcGxheWVkQ2FsbGJhY2tzLmxhc3QoKS5p
ZDsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3BsYXllZF9j
YWxsYmFjazoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGlkOiBhbiBpZGVu
dGlmaWVyCisgKgorICogUmVtb3ZlcyBhICNXZWJLaXRGcmFtZURpc3BsYXllZENhbGxiYWNrIHBy
ZXZpb3VzbHkgYWRkZWQgdG8gQHdlYl92aWV3IHdpdGgKKyAqIHdlYmtpdF93ZWJfdmlld19hZGRf
ZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrKCkuCisgKgorICogU2luY2U6IDIuMjQKKyAqLwordm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayhXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCB1bnNpZ25lZCBpZCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdF
QktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChpZCk7CisK
KyAgICBGdW5jdGlvbjxib29sKGNvbnN0IEZyYW1lRGlzcGxheWVkQ2FsbGJhY2smKT4gbWF0Y2hG
dW5jdGlvbiA9IFtpZF0oY29uc3QgYXV0byYgaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS5p
ZCA9PSBpZDsKKyAgICB9OworCisgICAgaWYgKHdlYlZpZXctPnByaXYtPmluRnJhbWVEaXNwbGF5
ZWQpIHsKKyAgICAgICAgYXV0byBpbmRleCA9ICB3ZWJWaWV3LT5wcml2LT5mcmFtZURpc3BsYXll
ZENhbGxiYWNrcy5maW5kTWF0Y2hpbmcobWF0Y2hGdW5jdGlvbik7CisgICAgICAgIGlmIChpbmRl
eCAhPSBub3RGb3VuZCkKKyAgICAgICAgICAgIHdlYlZpZXctPnByaXYtPmZyYW1lRGlzcGxheWVk
Q2FsbGJhY2tzVG9SZW1vdmUuYXBwZW5kKGluZGV4KTsKKyAgICB9IGVsc2UKKyAgICAgICAgd2Vi
Vmlldy0+cHJpdi0+ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3MucmVtb3ZlRmlyc3RNYXRjaGluZyht
YXRjaEZ1bmN0aW9uKTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCmluZGV4IDJlMzg5ZmQwYjNj
Li40MTAyYTc1MjZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRXZWJWaWV3LmgKQEAgLTE2Niw2ICsxNjYsMTggQEAgdHlwZWRlZiBlbnVtIHsKICAgICBX
RUJLSVRfV0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlUCiB9IFdlYktpdFdlYlByb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbjsKIAorLyoqCisgKiBXZWJLaXRGcmFtZURpc3BsYXllZENhbGxi
YWNrOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBAdXNlcl9kYXRhOiB1c2Vy
IGRhdGEKKyAqCisgKiBDYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiBhIGZyYW1lIGlzIGRpc3Bs
YXllZCBpbiBhICN3ZWJLaXRXZWJWaWV3LgorICoKKyAqIFNpbmNlOiAyLjI0CisgKi8KK3R5cGVk
ZWYgdm9pZCAoKiBXZWJLaXRGcmFtZURpc3BsYXllZENhbGxiYWNrKSAoV2ViS2l0V2ViVmlldyAq
d2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdwb2ludGVyICAgICAgIHVzZXJfZGF0YSk7CisKIHN0cnVjdCBfV2ViS2l0V2ViVmlldyB7CiAg
ICAgR09iamVjdCBwYXJlbnQ7CiAKQEAgLTQ5NSw2ICs1MDcsMTYgQEAgV0VCS0lUX0FQSSB2b2lk
CiB3ZWJraXRfd2ViX3ZpZXdfcmVzdG9yZV9zZXNzaW9uX3N0YXRlICAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYlZpZXdTZXNzaW9uU3Rh
dGUgKnN0YXRlKTsKIAorV0VCS0lUX0FQSSBndWludAord2Via2l0X3dlYl92aWV3X2FkZF9mcmFt
ZV9kaXNwbGF5ZWRfY2FsbGJhY2sgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAg
ICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYktpdEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sgY2FsbGJhY2ssCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAg
ICAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEZXN0cm95Tm90aWZ5ICAgICAgICAgICAgICAg
ZGVzdHJveV9ub3RpZnkpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19yZW1v
dmVfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAg
ICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgIGlkKTsKKwogR19FTkRf
REVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggZjM3ZGQwMzY5Y2QuLmI3MWUwNzI5NThkIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMTEt
MzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtXUEVdIEFkZCBBUEkgdG8gbm90aWZ5IGFib3V0IGZyYW1lIGRpc3BsYXllZCB2aWV3IGJhY2tl
bmQgY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MjIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIHRlc3QgY2FzZSB0byBjaGVjayB0aGUgbmV3IEFQSS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAg
ICAgICh0ZXN0V2ViVmlld0ZyYW1lRGlzcGxheWVkKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisK
IDIwMTgtMTEtMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtXUEVdIFVzZSBuZXcgdmlldyBzdGF0ZSBBUEkgZnJvbSBsaWJ3cGUKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2Vi
Vmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktp
dFdlYlZpZXcuY3BwCmluZGV4IDQ1ZWMxZTVhOGFhLi5iMGQ1NzM1MzZlMiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdl
YlZpZXcuY3BwCkBAIC0xMjE5LDYgKzEyMTksODEgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdU
aXRsZUNoYW5nZShXZWJWaWV3VGl0bGVUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdf
YXNzZXJ0X2NtcHN0cih0ZXN0LT5tX3dlYlZpZXdUaXRsZXNbNl0uZGF0YSgpLCA9PSwgInRocmVl
Iik7CiB9CiAKKyNpZiBQTEFURk9STShXUEUpCitjbGFzcyBGcmFtZURpc3BsYXllZFRlc3Q6IHB1
YmxpYyBXZWJWaWV3VGVzdCB7CitwdWJsaWM6CisgICAgTUFLRV9HTElCX1RFU1RfRklYVFVSRShG
cmFtZURpc3BsYXllZFRlc3QpOworCisgICAgc3RhdGljIHZvaWQgdGl0bGVDaGFuZ2VkQ2FsbGJh
Y2soV2ViS2l0V2ViVmlldyogdmlldywgR1BhcmFtU3BlYyosIFdlYlZpZXdUaXRsZVRlc3QqIHRl
c3QpCisgICAgeworICAgICAgICB0ZXN0LT5tX3dlYlZpZXdUaXRsZXMuYXBwZW5kKHdlYmtpdF93
ZWJfdmlld19nZXRfdGl0bGUodmlldykpOworICAgIH0KKworICAgIEZyYW1lRGlzcGxheWVkVGVz
dCgpCisgICAgICAgIDogbV9pZCh3ZWJraXRfd2ViX3ZpZXdfYWRkX2ZyYW1lX2Rpc3BsYXllZF9j
YWxsYmFjayhtX3dlYlZpZXcsIFtdKFdlYktpdFdlYlZpZXcqLCBncG9pbnRlciB1c2VyRGF0YSkg
eworICAgICAgICAgICAgYXV0byogdGVzdCA9IHN0YXRpY19jYXN0PEZyYW1lRGlzcGxheWVkVGVz
dCo+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIGlmICghdGVzdC0+bV9tYXhGcmFtZXMpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoKyt0ZXN0LT5tX2ZyYW1lQ291
bnRlciA9PSB0ZXN0LT5tX21heEZyYW1lcykKKyAgICAgICAgICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3Rlc3RdIHsgdGVzdC0+cXVpdE1haW5Mb29wKCk7IH0pOworICAgICAgICB9
LCB0aGlzLCBudWxscHRyKSkKKyAgICB7CisgICAgICAgIGdfYXNzZXJ0X2NtcHVpbnQobV9pZCwg
PiwgMCk7CisgICAgfQorCisgICAgfkZyYW1lRGlzcGxheWVkVGVzdCgpCisgICAgeworICAgICAg
ICB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayhtX3dlYlZp
ZXcsIG1faWQpOworICAgIH0KKworICAgIHZvaWQgd2FpdFVudGlsRnJhbWVzRGlzcGxheWVkKHVu
c2lnbmVkIGZyYW1lc0NvdW50ID0gMSkKKyAgICB7CisgICAgICAgIG1fbWF4RnJhbWVzID0gZnJh
bWVzQ291bnQ7CisgICAgICAgIG1fZnJhbWVDb3VudGVyID0gMDsKKyAgICAgICAgZ19tYWluX2xv
b3BfcnVuKG1fbWFpbkxvb3ApOworICAgIH0KKworICAgIHVuc2lnbmVkIG1faWQgeyAwIH07Cisg
ICAgdW5zaWduZWQgbV9mcmFtZUNvdW50ZXIgeyAwIH07CisgICAgdW5zaWduZWQgbV9tYXhGcmFt
ZXMgeyAwIH07Cit9OworCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0ZyYW1lRGlzcGxheWVkKEZy
YW1lRGlzcGxheWVkVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5zaG93
SW5XaW5kb3coKTsKKworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48L2h0bWw+IiwgbnVsbHB0
cik7CisgICAgdGVzdC0+d2FpdFVudGlsRnJhbWVzRGlzcGxheWVkKCk7CisKKyAgICB0ZXN0LT5s
b2FkSHRtbCgiPGh0bWw+PGhlYWQ+PHN0eWxlPkBrZXlmcmFtZXMgZmFkZUluIHsgZnJvbSB7IG9w
YWNpdHk6IDA7IH0gfTwvc3R5bGU+PC9oZWFkPjxwIHN0eWxlPSdhbmltYXRpb246IGZhZGVJbiAx
cyBpbmZpbml0ZSBhbHRlcm5hdGU7Jz5Gb288L3A+PC9odG1sPiIsIG51bGxwdHIpOworICAgIHRl
c3QtPndhaXRVbnRpbEZyYW1lc0Rpc3BsYXllZCgxMCk7CisKKyAgICBib29sIHNlY29uZENhbGxi
YWNrQ2FsbGVkID0gZmFsc2U7CisgICAgYXV0byBpZCA9IHdlYmtpdF93ZWJfdmlld19hZGRfZnJh
bWVfZGlzcGxheWVkX2NhbGxiYWNrKHRlc3QtPm1fd2ViVmlldywgW10oV2ViS2l0V2ViVmlldyos
IGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgIGF1dG8qIHNlY29uZENhbGxiYWNrQ2FsbGVk
ID0gc3RhdGljX2Nhc3Q8Ym9vbCo+KHVzZXJEYXRhKTsKKyAgICAgICAgKnNlY29uZENhbGxiYWNr
Q2FsbGVkID0gdHJ1ZTsKKyAgICB9LCAmc2Vjb25kQ2FsbGJhY2tDYWxsZWQsIG51bGxwdHIpOwor
ICAgIHRlc3QtPndhaXRVbnRpbEZyYW1lc0Rpc3BsYXllZCgpOworICAgIGdfYXNzZXJ0X3RydWUo
c2Vjb25kQ2FsbGJhY2tDYWxsZWQpOworCisgICAgc2Vjb25kQ2FsbGJhY2tDYWxsZWQgPSBmYWxz
ZTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayh0
ZXN0LT5tX3dlYlZpZXcsIGlkKTsKKyAgICB0ZXN0LT53YWl0VW50aWxGcmFtZXNEaXNwbGF5ZWQo
KTsKKyAgICBnX2Fzc2VydF9mYWxzZShzZWNvbmRDYWxsYmFja0NhbGxlZCk7CisKKyAgICBpZCA9
IHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrKHRlc3QtPm1fd2Vi
VmlldywgW10oV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAg
ICAgICAgYXV0byogaWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCo+KHVzZXJEYXRhKTsKKyAgICAg
ICAgd2Via2l0X3dlYl92aWV3X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2sod2ViVmll
dywgKmlkKTsKKyAgICB9LCAmaWQsIFtdKGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgIGF1
dG8qIGlkID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQqPih1c2VyRGF0YSk7CisgICAgICAgICppZCA9
IDA7CisgICAgfSk7CisgICAgdGVzdC0+d2FpdFVudGlsRnJhbWVzRGlzcGxheWVkKCk7CisgICAg
Z19hc3NlcnRfY21wdWludChpZCwgPT0sIDApOworfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIHNl
cnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNv
bnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIGdwb2ludGVy
KQogewogICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CkBAIC0x
Mjc0LDYgKzEzNDksOSBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgi
V2ViS2l0V2ViVmlldyIsICJwcmVmZXJyZWQtc2l6ZSIsIHRlc3RXZWJWaWV3UHJlZmVycmVkU2l6
ZSk7CiAjZW5kaWYKICAgICBXZWJWaWV3VGl0bGVUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAi
dGl0bGUtY2hhbmdlIiwgdGVzdFdlYlZpZXdUaXRsZUNoYW5nZSk7CisjaWYgUExBVEZPUk0oV1BF
KQorICAgIEZyYW1lRGlzcGxheWVkVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImZyYW1lLWRp
c3BsYXllZCIsIHRlc3RXZWJWaWV3RnJhbWVEaXNwbGF5ZWQpOworI2VuZGlmCiB9CiAKIHZvaWQg
YWZ0ZXJBbGwoKQo=
</data>
<flag name="review"
          id="373192"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357433</attachid>
            <date>2018-12-17 03:26:44 -0800</date>
            <delta_ts>2018-12-17 03:49:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wpe-frame-displayed.diff</filename>
            <type>text/plain</type>
            <size>12573</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNzFlMTUyZTEwZTcuLjI2ODM1YjkwNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDE4LTEyLTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV1BFXSBBZGQgQVBJIHRvIG5vdGlmeSBhYm91dCBmcmFtZSBkaXNw
bGF5ZWQgdmlldyBiYWNrZW5kIGNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVs
IENhdGFuemFyby4KKworICAgICAgICBBZGQgQVBJIHRvIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSB2
aWV3IHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB2aWV3IGJhY2tlbmQgbm90aWZpZXMgdGhhdCBhIGZy
YW1lIGhhcyBiZWVuCisgICAgICAgIGRpc3BsYXllZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKEZyYW1lRGlzcGxheWVkQ2FsbGJh
Y2s6OkZyYW1lRGlzcGxheWVkQ2FsbGJhY2spOgorICAgICAgICAoRnJhbWVEaXNwbGF5ZWRDYWxs
YmFjazo6fkZyYW1lRGlzcGxheWVkQ2FsbGJhY2spOgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X2FkZF9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2spOgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFdlYlZpZXcuaDoKKwogMjAxOC0xMi0xNiAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBTdXBwb3J0IGtleWJvYXJkIGFjY2Vz
cyBwcmVmZXJlbmNlIGZvciBpT1MgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGY2YmZmYWRjZDc2Li5lOWVk
ZWFlMTQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHAKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0
ckNhaXJvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkxTb3VwLmg+CiAjaW5jbHVkZSA8Z2xpYi9n
aTE4bi1saWIuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYv
VVJMLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nbGli
L1dURkdUeXBlLmg+CkBAIC0xOTcsNiArMTk4LDM0IEBAIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRf
dCwgR1JlZlB0cjxHVGFzaz4gPiBTbmFwc2hvdFJlc3VsdHNNYXA7CiAKIGNsYXNzIFBhZ2VMb2Fk
U3RhdGVPYnNlcnZlcjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0YXRpYyB1bnNpZ25lZCBmcmFt
ZURpc3BsYXlDYWxsYmFja0lEOworc3RydWN0IEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sgeworICAg
IEZyYW1lRGlzcGxheWVkQ2FsbGJhY2soV2ViS2l0RnJhbWVEaXNwbGF5ZWRDYWxsYmFjayBjYWxs
YmFjaywgZ3BvaW50ZXIgdXNlckRhdGEgPSBudWxscHRyLCBHRGVzdHJveU5vdGlmeSBkZXN0cm95
Tm90aWZ5RnVuY3Rpb24gPSBudWxscHRyKQorICAgICAgICA6IGlkKCsrZnJhbWVEaXNwbGF5Q2Fs
bGJhY2tJRCkKKyAgICAgICAgLCBjYWxsYmFjayhjYWxsYmFjaykKKyAgICAgICAgLCB1c2VyRGF0
YSh1c2VyRGF0YSkKKyAgICAgICAgLCBkZXN0cm95Tm90aWZ5RnVuY3Rpb24oZGVzdHJveU5vdGlm
eUZ1bmN0aW9uKQorICAgIHsKKyAgICB9CisKKyAgICB+RnJhbWVEaXNwbGF5ZWRDYWxsYmFjaygp
CisgICAgeworICAgICAgICBpZiAoZGVzdHJveU5vdGlmeUZ1bmN0aW9uKQorICAgICAgICAgICAg
ZGVzdHJveU5vdGlmeUZ1bmN0aW9uKHVzZXJEYXRhKTsKKyAgICB9CisKKyAgICBGcmFtZURpc3Bs
YXllZENhbGxiYWNrKEZyYW1lRGlzcGxheWVkQ2FsbGJhY2smJikgPSBkZWZhdWx0OworICAgIEZy
YW1lRGlzcGxheWVkQ2FsbGJhY2soY29uc3QgRnJhbWVEaXNwbGF5ZWRDYWxsYmFjayYpID0gZGVs
ZXRlOworICAgIEZyYW1lRGlzcGxheWVkQ2FsbGJhY2smIG9wZXJhdG9yPShjb25zdCBGcmFtZURp
c3BsYXllZENhbGxiYWNrJikgPSBkZWxldGU7CisKKyAgICB1bnNpZ25lZCBpZCB7IDAgfTsKKyAg
ICBXZWJLaXRGcmFtZURpc3BsYXllZENhbGxiYWNrIGNhbGxiYWNrIHsgbnVsbHB0ciB9OworICAg
IGdwb2ludGVyIHVzZXJEYXRhIHsgbnVsbHB0ciB9OworICAgIEdEZXN0cm95Tm90aWZ5IGRlc3Ry
b3lOb3RpZnlGdW5jdGlvbiB7IG51bGxwdHIgfTsKK307CisjZW5kaWYgLy8gUExBVEZPUk0oV1BF
KQorCiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRlIHsKICAgICB+X1dlYktpdFdlYlZpZXdQ
cml2YXRlKCkKICAgICB7CkBAIC0yMDgsNiArMjM3LDkgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3
UHJpdmF0ZSB7CiAjaWYgUExBVEZPUk0oV1BFKQogICAgIEdSZWZQdHI8V2ViS2l0V2ViVmlld0Jh
Y2tlbmQ+IGJhY2tlbmQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdLV1BFOjpWaWV3PiB2aWV3Owor
ICAgIFZlY3RvcjxGcmFtZURpc3BsYXllZENhbGxiYWNrPiBmcmFtZURpc3BsYXllZENhbGxiYWNr
czsKKyAgICBib29sIGluRnJhbWVEaXNwbGF5ZWQ7CisgICAgVmVjdG9yPHVuc2lnbmVkPiBmcmFt
ZURpc3BsYXllZENhbGxiYWNrc1RvUmVtb3ZlOwogI2VuZGlmCiAKICAgICBXZWJLaXRXZWJWaWV3
KiByZWxhdGVkVmlldzsKQEAgLTM3NCw2ICs0MDYsMjAgQEAgcHJpdmF0ZToKICAgICAgICAgd2Vi
a2l0V2ViVmlld0hhbmRsZURvd25sb2FkUmVxdWVzdChtX3dlYlZpZXcsICZkb3dubG9hZFByb3h5
KTsKICAgICB9CiAKKyAgICB2b2lkIGZyYW1lRGlzcGxheWVkKFdLV1BFOjpWaWV3Jikgb3ZlcnJp
ZGUKKyAgICB7CisgICAgICAgIHsKKyAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+aW5GcmFt
ZURpc3BsYXllZEd1YXJkKG1fd2ViVmlldy0+cHJpdi0+aW5GcmFtZURpc3BsYXllZCwgdHJ1ZSk7
CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxiYWNrIDogbV93ZWJWaWV3LT5wcml2
LT5mcmFtZURpc3BsYXllZENhbGxiYWNrcykKKyAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxs
YmFjayhtX3dlYlZpZXcsIGNhbGxiYWNrLnVzZXJEYXRhKTsKKyAgICAgICAgfQorCisgICAgICAg
IHdoaWxlICghbV93ZWJWaWV3LT5wcml2LT5mcmFtZURpc3BsYXllZENhbGxiYWNrc1RvUmVtb3Zl
LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgYXV0byBpbmRleCA9IG1fd2ViVmlldy0+cHJpdi0+
ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3NUb1JlbW92ZS50YWtlTGFzdCgpOworICAgICAgICAgICAg
bV93ZWJWaWV3LT5wcml2LT5mcmFtZURpc3BsYXllZENhbGxiYWNrcy5yZW1vdmUoaW5kZXgpOwor
ICAgICAgICB9CisgICAgfQorCiAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogfTsKICNl
bmRpZgpAQCAtNDA5MSwzICs0MTM3LDU1IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVf
c2Vzc2lvbl9zdGF0ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJWaWV3CiAKICAg
ICBnZXRQYWdlKHdlYlZpZXcpLnJlc3RvcmVGcm9tU2Vzc2lvblN0YXRlKHdlYmtpdFdlYlZpZXdT
ZXNzaW9uU3RhdGVHZXRTZXNzaW9uU3RhdGUoc3RhdGUpLCBmYWxzZSk7CiB9CisKKyNpZiBQTEFU
Rk9STShXUEUpCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2Nh
bGxiYWNrOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBAY2FsbGJhY2s6IGEg
I1dlYktpdEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sKKyAqIEB1c2VyX2RhdGE6IChjbG9zdXJlKTog
dXNlciBkYXRhIHRvIHBhc3MgdG8gQGNhbGxiYWNrCisgKiBAZGVzdHJveV9ub3RpZnk6IChudWxs
YWJsZSk6IGRlc3Ryb3kgbm90aWZpZXIgZm9yIEB1c2VyX2RhdGEKKyAqCisgKiBBZGQgYSBjYWxs
YmFjayB0byBiZSBjYWxsZWQgd2hlbiB0aGUgYmFja2VuZCBub3RpZmllcyB0aGF0IGEgZnJhbWUg
aGFzIGJlZW4gZGlzcGxheWVkIGluIEB3ZWJfdmlldy4KKyAqCisgKiBSZXR1cm5zOiBhbiBpZGVu
dGlmaWVyIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB0byB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2Zy
YW1lX2Rpc3BsYXllZF9jYWxsYmFjaygpCisgKiAgICB0byByZW1vdmUgdGhlIGNhbGxiYWNrLgor
ICoKKyAqIFNpbmNlOiAyLjI0CisgKi8KK3Vuc2lnbmVkIHdlYmtpdF93ZWJfdmlld19hZGRfZnJh
bWVfZGlzcGxheWVkX2NhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdEZyYW1l
RGlzcGxheWVkQ2FsbGJhY2sgY2FsbGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhLCBHRGVzdHJveU5v
dGlmeSBkZXN0cm95Tm90aWZ5KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19XRUJfVklFVyh3ZWJWaWV3KSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY2FsbGJh
Y2ssIDApOworCisgICAgd2ViVmlldy0+cHJpdi0+ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3MuYXBw
ZW5kKEZyYW1lRGlzcGxheWVkQ2FsbGJhY2soY2FsbGJhY2ssIHVzZXJEYXRhLCBkZXN0cm95Tm90
aWZ5KSk7CisgICAgcmV0dXJuIHdlYlZpZXctPnByaXYtPmZyYW1lRGlzcGxheWVkQ2FsbGJhY2tz
Lmxhc3QoKS5pZDsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rp
c3BsYXllZF9jYWxsYmFjazoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGlk
OiBhbiBpZGVudGlmaWVyCisgKgorICogUmVtb3ZlcyBhICNXZWJLaXRGcmFtZURpc3BsYXllZENh
bGxiYWNrIHByZXZpb3VzbHkgYWRkZWQgdG8gQHdlYl92aWV3IHdpdGgKKyAqIHdlYmtpdF93ZWJf
dmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrKCkuCisgKgorICogU2luY2U6IDIuMjQK
KyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFj
ayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCB1bnNpZ25lZCBpZCkKK3sKKyAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisgICAgZ19yZXR1cm5faWZfZmFp
bChpZCk7CisKKyAgICBGdW5jdGlvbjxib29sKGNvbnN0IEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sm
KT4gbWF0Y2hGdW5jdGlvbiA9IFtpZF0oY29uc3QgYXV0byYgaXRlbSkgeworICAgICAgICByZXR1
cm4gaXRlbS5pZCA9PSBpZDsKKyAgICB9OworCisgICAgaWYgKHdlYlZpZXctPnByaXYtPmluRnJh
bWVEaXNwbGF5ZWQpIHsKKyAgICAgICAgYXV0byBpbmRleCA9ICB3ZWJWaWV3LT5wcml2LT5mcmFt
ZURpc3BsYXllZENhbGxiYWNrcy5maW5kTWF0Y2hpbmcobWF0Y2hGdW5jdGlvbik7CisgICAgICAg
IGlmIChpbmRleCAhPSBub3RGb3VuZCkKKyAgICAgICAgICAgIHdlYlZpZXctPnByaXYtPmZyYW1l
RGlzcGxheWVkQ2FsbGJhY2tzVG9SZW1vdmUuYXBwZW5kKGluZGV4KTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgd2ViVmlldy0+cHJpdi0+ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3MucmVtb3ZlRmlyc3RN
YXRjaGluZyhtYXRjaEZ1bmN0aW9uKTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCmluZGV4IDJl
Mzg5ZmQwYjNjLi40MTAyYTc1MjZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAgLTE2Niw2ICsxNjYsMTggQEAgdHlwZWRlZiBlbnVt
IHsKICAgICBXRUJLSVRfV0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlUCiB9IFdlYktp
dFdlYlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjsKIAorLyoqCisgKiBXZWJLaXRGcmFtZURpc3Bs
YXllZENhbGxiYWNrOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBAdXNlcl9k
YXRhOiB1c2VyIGRhdGEKKyAqCisgKiBDYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiBhIGZyYW1l
IGlzIGRpc3BsYXllZCBpbiBhICN3ZWJLaXRXZWJWaWV3LgorICoKKyAqIFNpbmNlOiAyLjI0Cisg
Ki8KK3R5cGVkZWYgdm9pZCAoKiBXZWJLaXRGcmFtZURpc3BsYXllZENhbGxiYWNrKSAoV2ViS2l0
V2ViVmlldyAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdwb2ludGVyICAgICAgIHVzZXJfZGF0YSk7CisKIHN0cnVjdCBfV2ViS2l0V2Vi
VmlldyB7CiAgICAgR09iamVjdCBwYXJlbnQ7CiAKQEAgLTQ5NSw2ICs1MDcsMTYgQEAgV0VCS0lU
X0FQSSB2b2lkCiB3ZWJraXRfd2ViX3ZpZXdfcmVzdG9yZV9zZXNzaW9uX3N0YXRlICAgICAgICAg
ICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYlZpZXdT
ZXNzaW9uU3RhdGUgKnN0YXRlKTsKIAorV0VCS0lUX0FQSSBndWludAord2Via2l0X3dlYl92aWV3
X2FkZF9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2sgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYktpdEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sgY2FsbGJhY2ss
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
cG9pbnRlciAgICAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEZXN0cm95Tm90aWZ5ICAgICAg
ICAgICAgICAgZGVzdHJveV9ub3RpZnkpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJf
dmlld19yZW1vdmVfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgIGlkKTsK
KwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggZTViOTMzOWE3NjkuLjRlYTc2YTg5YjMxIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTgtMTItMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtXUEVdIEFkZCBBUEkgdG8gbm90aWZ5IGFib3V0IGZyYW1lIGRpc3BsYXllZCB2
aWV3IGJhY2tlbmQgY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MjIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56
YXJvLgorCisgICAgICAgIEFkZCBhIHRlc3QgY2FzZSB0byBjaGVjayB0aGUgbmV3IEFQSS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmll
dy5jcHA6CisgICAgICAgICh0ZXN0V2ViVmlld0ZyYW1lRGlzcGxheWVkKToKKyAgICAgICAgKGJl
Zm9yZUFsbCk6CisgICAgICAgICogd3BlL2poYnVpbGQubW9kdWxlczogQnVtcCBXUEVCYWNrZW5k
LWZkbyB0byAxLjEuMC4KKwogMjAxOC0xMi0xNiAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFw
ZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIy
MzkyNTMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCmluZGV4IDQ1ZWMxZTVhOGFhLi5iMGQ1NzM1MzZlMiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJL
aXRXZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFdlYktpdFdlYlZpZXcuY3BwCkBAIC0xMjE5LDYgKzEyMTksODEgQEAgc3RhdGljIHZvaWQg
dGVzdFdlYlZpZXdUaXRsZUNoYW5nZShXZWJWaWV3VGl0bGVUZXN0KiB0ZXN0LCBnY29uc3Rwb2lu
dGVyKQogICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXN0LT5tX3dlYlZpZXdUaXRsZXNbNl0uZGF0YSgp
LCA9PSwgInRocmVlIik7CiB9CiAKKyNpZiBQTEFURk9STShXUEUpCitjbGFzcyBGcmFtZURpc3Bs
YXllZFRlc3Q6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CitwdWJsaWM6CisgICAgTUFLRV9HTElCX1RF
U1RfRklYVFVSRShGcmFtZURpc3BsYXllZFRlc3QpOworCisgICAgc3RhdGljIHZvaWQgdGl0bGVD
aGFuZ2VkQ2FsbGJhY2soV2ViS2l0V2ViVmlldyogdmlldywgR1BhcmFtU3BlYyosIFdlYlZpZXdU
aXRsZVRlc3QqIHRlc3QpCisgICAgeworICAgICAgICB0ZXN0LT5tX3dlYlZpZXdUaXRsZXMuYXBw
ZW5kKHdlYmtpdF93ZWJfdmlld19nZXRfdGl0bGUodmlldykpOworICAgIH0KKworICAgIEZyYW1l
RGlzcGxheWVkVGVzdCgpCisgICAgICAgIDogbV9pZCh3ZWJraXRfd2ViX3ZpZXdfYWRkX2ZyYW1l
X2Rpc3BsYXllZF9jYWxsYmFjayhtX3dlYlZpZXcsIFtdKFdlYktpdFdlYlZpZXcqLCBncG9pbnRl
ciB1c2VyRGF0YSkgeworICAgICAgICAgICAgYXV0byogdGVzdCA9IHN0YXRpY19jYXN0PEZyYW1l
RGlzcGxheWVkVGVzdCo+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIGlmICghdGVzdC0+bV9tYXhG
cmFtZXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoKyt0ZXN0
LT5tX2ZyYW1lQ291bnRlciA9PSB0ZXN0LT5tX21heEZyYW1lcykKKyAgICAgICAgICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Rlc3RdIHsgdGVzdC0+cXVpdE1haW5Mb29wKCk7IH0p
OworICAgICAgICB9LCB0aGlzLCBudWxscHRyKSkKKyAgICB7CisgICAgICAgIGdfYXNzZXJ0X2Nt
cHVpbnQobV9pZCwgPiwgMCk7CisgICAgfQorCisgICAgfkZyYW1lRGlzcGxheWVkVGVzdCgpCisg
ICAgeworICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3BsYXllZF9jYWxs
YmFjayhtX3dlYlZpZXcsIG1faWQpOworICAgIH0KKworICAgIHZvaWQgd2FpdFVudGlsRnJhbWVz
RGlzcGxheWVkKHVuc2lnbmVkIGZyYW1lc0NvdW50ID0gMSkKKyAgICB7CisgICAgICAgIG1fbWF4
RnJhbWVzID0gZnJhbWVzQ291bnQ7CisgICAgICAgIG1fZnJhbWVDb3VudGVyID0gMDsKKyAgICAg
ICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3ApOworICAgIH0KKworICAgIHVuc2lnbmVkIG1f
aWQgeyAwIH07CisgICAgdW5zaWduZWQgbV9mcmFtZUNvdW50ZXIgeyAwIH07CisgICAgdW5zaWdu
ZWQgbV9tYXhGcmFtZXMgeyAwIH07Cit9OworCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0ZyYW1l
RGlzcGxheWVkKEZyYW1lRGlzcGxheWVkVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAg
ICB0ZXN0LT5zaG93SW5XaW5kb3coKTsKKworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48L2h0
bWw+IiwgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGlsRnJhbWVzRGlzcGxheWVkKCk7CisK
KyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PGhlYWQ+PHN0eWxlPkBrZXlmcmFtZXMgZmFkZUlu
IHsgZnJvbSB7IG9wYWNpdHk6IDA7IH0gfTwvc3R5bGU+PC9oZWFkPjxwIHN0eWxlPSdhbmltYXRp
b246IGZhZGVJbiAxcyBpbmZpbml0ZSBhbHRlcm5hdGU7Jz5Gb288L3A+PC9odG1sPiIsIG51bGxw
dHIpOworICAgIHRlc3QtPndhaXRVbnRpbEZyYW1lc0Rpc3BsYXllZCgxMCk7CisKKyAgICBib29s
IHNlY29uZENhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgYXV0byBpZCA9IHdlYmtpdF93ZWJf
dmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrKHRlc3QtPm1fd2ViVmlldywgW10oV2Vi
S2l0V2ViVmlldyosIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgIGF1dG8qIHNlY29uZENh
bGxiYWNrQ2FsbGVkID0gc3RhdGljX2Nhc3Q8Ym9vbCo+KHVzZXJEYXRhKTsKKyAgICAgICAgKnNl
Y29uZENhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICB9LCAmc2Vjb25kQ2FsbGJhY2tDYWxsZWQs
IG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbEZyYW1lc0Rpc3BsYXllZCgpOworICAgIGdf
YXNzZXJ0X3RydWUoc2Vjb25kQ2FsbGJhY2tDYWxsZWQpOworCisgICAgc2Vjb25kQ2FsbGJhY2tD
YWxsZWQgPSBmYWxzZTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3BsYXll
ZF9jYWxsYmFjayh0ZXN0LT5tX3dlYlZpZXcsIGlkKTsKKyAgICB0ZXN0LT53YWl0VW50aWxGcmFt
ZXNEaXNwbGF5ZWQoKTsKKyAgICBnX2Fzc2VydF9mYWxzZShzZWNvbmRDYWxsYmFja0NhbGxlZCk7
CisKKyAgICBpZCA9IHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNr
KHRlc3QtPm1fd2ViVmlldywgW10oV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ3BvaW50ZXIgdXNl
ckRhdGEpIHsKKyAgICAgICAgYXV0byogaWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCo+KHVzZXJE
YXRhKTsKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2Fs
bGJhY2sod2ViVmlldywgKmlkKTsKKyAgICB9LCAmaWQsIFtdKGdwb2ludGVyIHVzZXJEYXRhKSB7
CisgICAgICAgIGF1dG8qIGlkID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQqPih1c2VyRGF0YSk7Cisg
ICAgICAgICppZCA9IDA7CisgICAgfSk7CisgICAgdGVzdC0+d2FpdFVudGlsRnJhbWVzRGlzcGxh
eWVkKCk7CisgICAgZ19hc3NlcnRfY21wdWludChpZCwgPT0sIDApOworfQorI2VuZGlmCisKIHN0
YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2Uq
IG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4
dCosIGdwb2ludGVyKQogewogICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0Rf
R0VUKSB7CkBAIC0xMjc0LDYgKzEzNDksOSBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgV2ViVmll
d1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJwcmVmZXJyZWQtc2l6ZSIsIHRlc3RXZWJWaWV3
UHJlZmVycmVkU2l6ZSk7CiAjZW5kaWYKICAgICBXZWJWaWV3VGl0bGVUZXN0OjphZGQoIldlYktp
dFdlYlZpZXciLCAidGl0bGUtY2hhbmdlIiwgdGVzdFdlYlZpZXdUaXRsZUNoYW5nZSk7CisjaWYg
UExBVEZPUk0oV1BFKQorICAgIEZyYW1lRGlzcGxheWVkVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3
IiwgImZyYW1lLWRpc3BsYXllZCIsIHRlc3RXZWJWaWV3RnJhbWVEaXNwbGF5ZWQpOworI2VuZGlm
CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9k
dWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggZGUxMzc5ODJjMTAuLjVlNzIz
ZWZkZjAxIDEwMDY0NAotLS0gYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xz
L3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAgLTE4MSw4ICsxODEsOCBAQAogICAgICAgPGRlcCBwYWNr
YWdlPSJsaWJ3cGUiLz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgogICAgIDwvZGVwZW5k
ZW5jaWVzPgotICAgIDxicmFuY2ggcmVwbz0id3Bld2Via2l0IiBtb2R1bGU9IndwZWJhY2tlbmQt
ZmRvLTEuMC4wLnRhci54eiIgdmVyc2lvbj0iMS4wLjAiCi0gICAgICAgICAgICBoYXNoPSJzaGEy
NTY6N2E3NDdmODdhMWFlNDZkMzAxNDQzNjkwNTBlM2NlMzQ4YjU4OTg2ZDA0ZTFhMTM5YmE3NWMx
OThmYTYzNjcyOSIvPgorICAgIDxicmFuY2ggcmVwbz0id3Bld2Via2l0IiBtb2R1bGU9IndwZWJh
Y2tlbmQtZmRvLTEuMS4wLnRhci54eiIgdmVyc2lvbj0iMS4xLjAiCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6ZjZjNzIxMzBkMTZlNTA4NjBjYjgzZWIwZjZlMTA5Yzc2ZjE4MjZkMmM2YmVlMzkw
MjVmYjM2NTE5NDE3NjFlNyIvPgogICA8L2NtYWtlPgogCiAgIDxhdXRvdG9vbHMgaWQ9ImxpYmdw
Zy1lcnJvciIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357434</attachid>
            <date>2018-12-17 03:49:18 -0800</date>
            <delta_ts>2018-12-17 03:49:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wpe-frame-displayed.diff</filename>
            <type>text/plain</type>
            <size>14487</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNzFlMTUyZTEwZTcuLjhlYjgxZDk1NTgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDE4LTEyLTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV1BFXSBBZGQgQVBJIHRvIG5vdGlmeSBhYm91dCBmcmFtZSBkaXNw
bGF5ZWQgdmlldyBiYWNrZW5kIGNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVs
IENhdGFuemFyby4KKworICAgICAgICBBZGQgQVBJIHRvIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSB2
aWV3IHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB2aWV3IGJhY2tlbmQgbm90aWZpZXMgdGhhdCBhIGZy
YW1lIGhhcyBiZWVuCisgICAgICAgIGRpc3BsYXllZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKEZyYW1lRGlzcGxheWVkQ2FsbGJh
Y2s6OkZyYW1lRGlzcGxheWVkQ2FsbGJhY2spOgorICAgICAgICAoRnJhbWVEaXNwbGF5ZWRDYWxs
YmFjazo6fkZyYW1lRGlzcGxheWVkQ2FsbGJhY2spOgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X2FkZF9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2spOgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFdlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9kb2Nz
L3dwZS0wLjEtc2VjdGlvbnMudHh0OgorCiAyMDE4LTEyLTE2ICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFN1cHBvcnQga2V5Ym9hcmQgYWNjZXNz
IHByZWZlcmVuY2UgZm9yIGlPUyBpbiBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggZjZiZmZhZGNkNzYuLmY1ZDRm
YjY4ODNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJWaWV3LmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRy
Q2Fpcm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTFNvdXAuaD4KICNpbmNsdWRlIDxnbGliL2dp
MThuLWxpYi5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIv
V1RGR1R5cGUuaD4KQEAgLTE5Nyw2ICsxOTgsMzQgQEAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90
LCBHUmVmUHRyPEdUYXNrPiA+IFNuYXBzaG90UmVzdWx0c01hcDsKIAogY2xhc3MgUGFnZUxvYWRT
dGF0ZU9ic2VydmVyOwogCisjaWYgUExBVEZPUk0oV1BFKQorc3RhdGljIHVuc2lnbmVkIGZyYW1l
RGlzcGxheUNhbGxiYWNrSUQ7CitzdHJ1Y3QgRnJhbWVEaXNwbGF5ZWRDYWxsYmFjayB7CisgICAg
RnJhbWVEaXNwbGF5ZWRDYWxsYmFjayhXZWJLaXRGcmFtZURpc3BsYXllZENhbGxiYWNrIGNhbGxi
YWNrLCBncG9pbnRlciB1c2VyRGF0YSA9IG51bGxwdHIsIEdEZXN0cm95Tm90aWZ5IGRlc3Ryb3lO
b3RpZnlGdW5jdGlvbiA9IG51bGxwdHIpCisgICAgICAgIDogaWQoKytmcmFtZURpc3BsYXlDYWxs
YmFja0lEKQorICAgICAgICAsIGNhbGxiYWNrKGNhbGxiYWNrKQorICAgICAgICAsIHVzZXJEYXRh
KHVzZXJEYXRhKQorICAgICAgICAsIGRlc3Ryb3lOb3RpZnlGdW5jdGlvbihkZXN0cm95Tm90aWZ5
RnVuY3Rpb24pCisgICAgeworICAgIH0KKworICAgIH5GcmFtZURpc3BsYXllZENhbGxiYWNrKCkK
KyAgICB7CisgICAgICAgIGlmIChkZXN0cm95Tm90aWZ5RnVuY3Rpb24pCisgICAgICAgICAgICBk
ZXN0cm95Tm90aWZ5RnVuY3Rpb24odXNlckRhdGEpOworICAgIH0KKworICAgIEZyYW1lRGlzcGxh
eWVkQ2FsbGJhY2soRnJhbWVEaXNwbGF5ZWRDYWxsYmFjayYmKSA9IGRlZmF1bHQ7CisgICAgRnJh
bWVEaXNwbGF5ZWRDYWxsYmFjayhjb25zdCBGcmFtZURpc3BsYXllZENhbGxiYWNrJikgPSBkZWxl
dGU7CisgICAgRnJhbWVEaXNwbGF5ZWRDYWxsYmFjayYgb3BlcmF0b3I9KGNvbnN0IEZyYW1lRGlz
cGxheWVkQ2FsbGJhY2smKSA9IGRlbGV0ZTsKKworICAgIHVuc2lnbmVkIGlkIHsgMCB9OworICAg
IFdlYktpdEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sgY2FsbGJhY2sgeyBudWxscHRyIH07CisgICAg
Z3BvaW50ZXIgdXNlckRhdGEgeyBudWxscHRyIH07CisgICAgR0Rlc3Ryb3lOb3RpZnkgZGVzdHJv
eU5vdGlmeUZ1bmN0aW9uIHsgbnVsbHB0ciB9OworfTsKKyNlbmRpZiAvLyBQTEFURk9STShXUEUp
CisKIHN0cnVjdCBfV2ViS2l0V2ViVmlld1ByaXZhdGUgewogICAgIH5fV2ViS2l0V2ViVmlld1By
aXZhdGUoKQogICAgIHsKQEAgLTIwOCw2ICsyMzcsOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQ
cml2YXRlIHsKICNpZiBQTEFURk9STShXUEUpCiAgICAgR1JlZlB0cjxXZWJLaXRXZWJWaWV3QmFj
a2VuZD4gYmFja2VuZDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V0tXUEU6OlZpZXc+IHZpZXc7Cisg
ICAgVmVjdG9yPEZyYW1lRGlzcGxheWVkQ2FsbGJhY2s+IGZyYW1lRGlzcGxheWVkQ2FsbGJhY2tz
OworICAgIGJvb2wgaW5GcmFtZURpc3BsYXllZDsKKyAgICBIYXNoU2V0PHVuc2lnbmVkPiBmcmFt
ZURpc3BsYXllZENhbGxiYWNrc1RvUmVtb3ZlOwogI2VuZGlmCiAKICAgICBXZWJLaXRXZWJWaWV3
KiByZWxhdGVkVmlldzsKQEAgLTM3NCw2ICs0MDYsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgd2Vi
a2l0V2ViVmlld0hhbmRsZURvd25sb2FkUmVxdWVzdChtX3dlYlZpZXcsICZkb3dubG9hZFByb3h5
KTsKICAgICB9CiAKKyAgICB2b2lkIGZyYW1lRGlzcGxheWVkKFdLV1BFOjpWaWV3Jikgb3ZlcnJp
ZGUKKyAgICB7CisgICAgICAgIHsKKyAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluRnJh
bWVEaXNwbGF5ZWRHdWFyZChtX3dlYlZpZXctPnByaXYtPmluRnJhbWVEaXNwbGF5ZWQsIHRydWUp
OworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjYWxsYmFjayA6IG1fd2ViVmlldy0+cHJp
di0+ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1fd2Vi
Vmlldy0+cHJpdi0+ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3NUb1JlbW92ZS5jb250YWlucyhjYWxs
YmFjay5pZCkpCisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGxiYWNrKG1fd2ViVmll
dywgY2FsbGJhY2sudXNlckRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgd2hpbGUgKCFtX3dlYlZpZXctPnByaXYtPmZyYW1lRGlzcGxheWVkQ2FsbGJhY2tzVG9SZW1v
dmUuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBhdXRvIGlkID0gbV93ZWJWaWV3LT5wcml2LT5m
cmFtZURpc3BsYXllZENhbGxiYWNrc1RvUmVtb3ZlLnRha2VBbnkoKTsKKyAgICAgICAgICAgIG1f
d2ViVmlldy0+cHJpdi0+ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3MucmVtb3ZlRmlyc3RNYXRjaGlu
ZyhbaWRdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5p
ZCA9PSBpZDsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCiAgICAgV2ViS2l0
V2ViVmlldyogbV93ZWJWaWV3OwogfTsKICNlbmRpZgpAQCAtNDA5MSwzICs0MTQxLDU1IEBAIHZv
aWQgd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVfc2Vzc2lvbl9zdGF0ZShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBXZWJLaXRXZWJWaWV3CiAKICAgICBnZXRQYWdlKHdlYlZpZXcpLnJlc3RvcmVGcm9t
U2Vzc2lvblN0YXRlKHdlYmtpdFdlYlZpZXdTZXNzaW9uU3RhdGVHZXRTZXNzaW9uU3RhdGUoc3Rh
dGUpLCBmYWxzZSk7CiB9CisKKyNpZiBQTEFURk9STShXUEUpCisvKioKKyAqIHdlYmtpdF93ZWJf
dmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrOgorICogQHdlYl92aWV3OiBhICNXZWJL
aXRXZWJWaWV3CisgKiBAY2FsbGJhY2s6IGEgI1dlYktpdEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sK
KyAqIEB1c2VyX2RhdGE6IChjbG9zdXJlKTogdXNlciBkYXRhIHRvIHBhc3MgdG8gQGNhbGxiYWNr
CisgKiBAZGVzdHJveV9ub3RpZnk6IChudWxsYWJsZSk6IGRlc3Ryb3kgbm90aWZpZXIgZm9yIEB1
c2VyX2RhdGEKKyAqCisgKiBBZGQgYSBjYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiB0aGUgYmFj
a2VuZCBub3RpZmllcyB0aGF0IGEgZnJhbWUgaGFzIGJlZW4gZGlzcGxheWVkIGluIEB3ZWJfdmll
dy4KKyAqCisgKiBSZXR1cm5zOiBhbiBpZGVudGlmaWVyIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB0
byB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjaygpCisgKiAg
ICB0byByZW1vdmUgdGhlIGNhbGxiYWNrLgorICoKKyAqIFNpbmNlOiAyLjI0CisgKi8KK3Vuc2ln
bmVkIHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sgY2FsbGJhY2ssIGdw
b2ludGVyIHVzZXJEYXRhLCBHRGVzdHJveU5vdGlmeSBkZXN0cm95Tm90aWZ5KQoreworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgMCk7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoY2FsbGJhY2ssIDApOworCisgICAgd2ViVmlldy0+cHJpdi0+
ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3MuYXBwZW5kKEZyYW1lRGlzcGxheWVkQ2FsbGJhY2soY2Fs
bGJhY2ssIHVzZXJEYXRhLCBkZXN0cm95Tm90aWZ5KSk7CisgICAgcmV0dXJuIHdlYlZpZXctPnBy
aXYtPmZyYW1lRGlzcGxheWVkQ2FsbGJhY2tzLmxhc3QoKS5pZDsKK30KKworLyoqCisgKiB3ZWJr
aXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjazoKKyAqIEB3ZWJfdmll
dzogYSAjV2ViS2l0V2ViVmlldworICogQGlkOiBhbiBpZGVudGlmaWVyCisgKgorICogUmVtb3Zl
cyBhICNXZWJLaXRGcmFtZURpc3BsYXllZENhbGxiYWNrIHByZXZpb3VzbHkgYWRkZWQgdG8gQHdl
Yl92aWV3IHdpdGgKKyAqIHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxi
YWNrKCkuCisgKgorICogU2luY2U6IDIuMjQKKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVt
b3ZlX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCB1bnNp
Z25lZCBpZCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJW
aWV3KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChpZCk7CisKKyAgICBGdW5jdGlvbjxib29sKGNv
bnN0IEZyYW1lRGlzcGxheWVkQ2FsbGJhY2smKT4gbWF0Y2hGdW5jdGlvbiA9IFtpZF0oY29uc3Qg
YXV0byYgaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS5pZCA9PSBpZDsKKyAgICB9OworCisg
ICAgaWYgKHdlYlZpZXctPnByaXYtPmluRnJhbWVEaXNwbGF5ZWQpIHsKKyAgICAgICAgYXV0byBp
bmRleCA9IHdlYlZpZXctPnByaXYtPmZyYW1lRGlzcGxheWVkQ2FsbGJhY2tzLmZpbmRNYXRjaGlu
ZyhtYXRjaEZ1bmN0aW9uKTsKKyAgICAgICAgaWYgKGluZGV4ICE9IG5vdEZvdW5kKQorICAgICAg
ICAgICAgd2ViVmlldy0+cHJpdi0+ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3NUb1JlbW92ZS5hZGQo
aWQpOworICAgIH0gZWxzZQorICAgICAgICB3ZWJWaWV3LT5wcml2LT5mcmFtZURpc3BsYXllZENh
bGxiYWNrcy5yZW1vdmVGaXJzdE1hdGNoaW5nKG1hdGNoRnVuY3Rpb24pOworfQorI2VuZGlmIC8v
IFBMQVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRXZWJWaWV3LmgKaW5kZXggMmUzODlmZDBiM2MuLjQxMDJhNzUyNmQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaApAQCAtMTY2LDYgKzE2
NiwxOCBAQCB0eXBlZGVmIGVudW0gewogICAgIFdFQktJVF9XRUJfUFJPQ0VTU19FWENFRURFRF9N
RU1PUllfTElNSVQKIH0gV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOwogCisvKioK
KyAqIFdlYktpdEZyYW1lRGlzcGxheWVkQ2FsbGJhY2s6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktp
dFdlYlZpZXcKKyAqIEB1c2VyX2RhdGE6IHVzZXIgZGF0YQorICoKKyAqIENhbGxiYWNrIHRvIGJl
IGNhbGxlZCB3aGVuIGEgZnJhbWUgaXMgZGlzcGxheWVkIGluIGEgI3dlYktpdFdlYlZpZXcuCisg
KgorICogU2luY2U6IDIuMjQKKyAqLwordHlwZWRlZiB2b2lkICgqIFdlYktpdEZyYW1lRGlzcGxh
eWVkQ2FsbGJhY2spIChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgdXNlcl9kYXRhKTsK
Kwogc3RydWN0IF9XZWJLaXRXZWJWaWV3IHsKICAgICBHT2JqZWN0IHBhcmVudDsKIApAQCAtNDk1
LDYgKzUwNywxNiBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19yZXN0b3JlX3Nl
c3Npb25fc3RhdGUgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndl
Yl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZSAqc3RhdGUpOwogCitXRUJLSVRfQVBJIGd1
aW50Cit3ZWJraXRfd2ViX3ZpZXdfYWRkX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayAgICAgICAg
IChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0RnJhbWVEaXNwbGF5
ZWRDYWxsYmFjayBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAgICAgICAgICAgdXNlcl9kYXRh
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0Rlc3Ryb3lOb3RpZnkgICAgICAgICAgICAgICBkZXN0cm95X25vdGlmeSk7CisKK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X3dlYl92aWV3X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2sg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAg
ICAgICAgICAgICAgICAgaWQpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMC4xLXNlY3Rpb25zLnR4
dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMC4xLXNlY3Rpb25z
LnR4dAppbmRleCAxNGQxMzg1NjMyMC4uNjI4ZGI0MjUyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMC4xLXNlY3Rpb25zLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTAuMS1zZWN0aW9ucy50eHQK
QEAgLTEyNyw2ICsxMjcsNyBAQCBXZWJLaXRQb2xpY3lEZWNpc2lvblR5cGUKIFdlYktpdFNhdmVN
b2RlCiBXZWJLaXRJbnNlY3VyZUNvbnRlbnRFdmVudAogV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uCitXZWJLaXRGcmFtZURpc3BsYXllZENhbGxiYWNrCiAKIDxTVUJTRUNUSU9OIEVk
aXRpbmcgQ29tbWFuZHM+CiBXRUJLSVRfRURJVElOR19DT01NQU5EX0NVVApAQCAtMjAzLDYgKzIw
NCw4IEBAIHdlYmtpdF93ZWJfdmlld19nZXRfZWRpdG9yX3N0YXRlCiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3Nlc3Npb25fc3RhdGUKIHdlYmtpdF93ZWJfdmlld19yZXN0b3JlX3Nlc3Npb25fc3RhdGUK
IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZQord2Via2l0X3dlYl92aWV3X2FkZF9m
cmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2sKK3dlYmtpdF93ZWJfdmlld19yZW1vdmVfZnJhbWVfZGlz
cGxheWVkX2NhbGxiYWNrCiAKIDxTVUJTRUNUSU9OIFdlYktpdEphdmFzY3JpcHRSZXN1bHQ+CiBX
ZWJLaXRKYXZhc2NyaXB0UmVzdWx0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZTViOTMzOWE3NjkuLjRlYTc2YTg5YjMxIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTgtMTItMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtXUEVdIEFkZCBBUEkgdG8gbm90aWZ5IGFib3V0IGZyYW1lIGRpc3BsYXllZCB2aWV3
IGJhY2tlbmQgY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MjIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJv
LgorCisgICAgICAgIEFkZCBhIHRlc3QgY2FzZSB0byBjaGVjayB0aGUgbmV3IEFQSS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5j
cHA6CisgICAgICAgICh0ZXN0V2ViVmlld0ZyYW1lRGlzcGxheWVkKToKKyAgICAgICAgKGJlZm9y
ZUFsbCk6CisgICAgICAgICogd3BlL2poYnVpbGQubW9kdWxlczogQnVtcCBXUEVCYWNrZW5kLWZk
byB0byAxLjEuMC4KKwogMjAxOC0xMi0xNiAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyMzky
NTMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
V2ViS2l0V2ViVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFdlYktpdFdlYlZpZXcuY3BwCmluZGV4IDQ1ZWMxZTVhOGFhLi5kNzU3MzQxYjBmYiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRX
ZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFdlYktpdFdlYlZpZXcuY3BwCkBAIC0xMjE5LDYgKzEyMTksMTAwIEBAIHN0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3VGl0bGVDaGFuZ2UoV2ViVmlld1RpdGxlVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRl
cikKICAgICBnX2Fzc2VydF9jbXBzdHIodGVzdC0+bV93ZWJWaWV3VGl0bGVzWzZdLmRhdGEoKSwg
PT0sICJ0aHJlZSIpOwogfQogCisjaWYgUExBVEZPUk0oV1BFKQorY2xhc3MgRnJhbWVEaXNwbGF5
ZWRUZXN0OiBwdWJsaWMgV2ViVmlld1Rlc3QgeworcHVibGljOgorICAgIE1BS0VfR0xJQl9URVNU
X0ZJWFRVUkUoRnJhbWVEaXNwbGF5ZWRUZXN0KTsKKworICAgIHN0YXRpYyB2b2lkIHRpdGxlQ2hh
bmdlZENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHZpZXcsIEdQYXJhbVNwZWMqLCBXZWJWaWV3VGl0
bGVUZXN0KiB0ZXN0KQorICAgIHsKKyAgICAgICAgdGVzdC0+bV93ZWJWaWV3VGl0bGVzLmFwcGVu
ZCh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxlKHZpZXcpKTsKKyAgICB9CisKKyAgICBGcmFtZURp
c3BsYXllZFRlc3QoKQorICAgICAgICA6IG1faWQod2Via2l0X3dlYl92aWV3X2FkZF9mcmFtZV9k
aXNwbGF5ZWRfY2FsbGJhY2sobV93ZWJWaWV3LCBbXShXZWJLaXRXZWJWaWV3KiwgZ3BvaW50ZXIg
dXNlckRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIHRlc3QgPSBzdGF0aWNfY2FzdDxGcmFtZURp
c3BsYXllZFRlc3QqPih1c2VyRGF0YSk7CisgICAgICAgICAgICBpZiAoIXRlc3QtPm1fbWF4RnJh
bWVzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCsrdGVzdC0+
bV9mcmFtZUNvdW50ZXIgPT0gdGVzdC0+bV9tYXhGcmFtZXMpCisgICAgICAgICAgICAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0ZXN0XSB7IHRlc3QtPnF1aXRNYWluTG9vcCgpOyB9KTsK
KyAgICAgICAgfSwgdGhpcywgbnVsbHB0cikpCisgICAgeworICAgICAgICBnX2Fzc2VydF9jbXB1
aW50KG1faWQsID4sIDApOworICAgIH0KKworICAgIH5GcmFtZURpc3BsYXllZFRlc3QoKQorICAg
IHsKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJh
Y2sobV93ZWJWaWV3LCBtX2lkKTsKKyAgICB9CisKKyAgICB2b2lkIHdhaXRVbnRpbEZyYW1lc0Rp
c3BsYXllZCh1bnNpZ25lZCBmcmFtZXNDb3VudCA9IDEpCisgICAgeworICAgICAgICBtX21heEZy
YW1lcyA9IGZyYW1lc0NvdW50OworICAgICAgICBtX2ZyYW1lQ291bnRlciA9IDA7CisgICAgICAg
IGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBtX2lk
IHsgMCB9OworICAgIHVuc2lnbmVkIG1fZnJhbWVDb3VudGVyIHsgMCB9OworICAgIHVuc2lnbmVk
IG1fbWF4RnJhbWVzIHsgMCB9OworfTsKKworc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdGcmFtZURp
c3BsYXllZChGcmFtZURpc3BsYXllZFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAg
dGVzdC0+c2hvd0luV2luZG93KCk7CisKKyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PC9odG1s
PiIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbEZyYW1lc0Rpc3BsYXllZCgpOworCisg
ICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxoZWFkPjxzdHlsZT5Aa2V5ZnJhbWVzIGZhZGVJbiB7
IGZyb20geyBvcGFjaXR5OiAwOyB9IH08L3N0eWxlPjwvaGVhZD48cCBzdHlsZT0nYW5pbWF0aW9u
OiBmYWRlSW4gMXMgaW5maW5pdGUgYWx0ZXJuYXRlOyc+Rm9vPC9wPjwvaHRtbD4iLCBudWxscHRy
KTsKKyAgICB0ZXN0LT53YWl0VW50aWxGcmFtZXNEaXNwbGF5ZWQoMTApOworCisgICAgYm9vbCBz
ZWNvbmRDYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIGF1dG8gaWQgPSB3ZWJraXRfd2ViX3Zp
ZXdfYWRkX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayh0ZXN0LT5tX3dlYlZpZXcsIFtdKFdlYktp
dFdlYlZpZXcqLCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICBhdXRvKiBzZWNvbmRDYWxs
YmFja0NhbGxlZCA9IHN0YXRpY19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisgICAgICAgICpzZWNv
bmRDYWxsYmFja0NhbGxlZCA9IHRydWU7CisgICAgfSwgJnNlY29uZENhbGxiYWNrQ2FsbGVkLCBu
dWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxGcmFtZXNEaXNwbGF5ZWQoKTsKKyAgICBnX2Fz
c2VydF90cnVlKHNlY29uZENhbGxiYWNrQ2FsbGVkKTsKKworICAgIHNlY29uZENhbGxiYWNrQ2Fs
bGVkID0gZmFsc2U7CisgICAgd2Via2l0X3dlYl92aWV3X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRf
Y2FsbGJhY2sodGVzdC0+bV93ZWJWaWV3LCBpZCk7CisgICAgdGVzdC0+d2FpdFVudGlsRnJhbWVz
RGlzcGxheWVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2Uoc2Vjb25kQ2FsbGJhY2tDYWxsZWQpOwor
CisgICAgaWQgPSB3ZWJraXRfd2ViX3ZpZXdfYWRkX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayh0
ZXN0LT5tX3dlYlZpZXcsIFtdKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdwb2ludGVyIHVzZXJE
YXRhKSB7CisgICAgICAgIGF1dG8qIGlkID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQqPih1c2VyRGF0
YSk7CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19yZW1vdmVfZnJhbWVfZGlzcGxheWVkX2NhbGxi
YWNrKHdlYlZpZXcsICppZCk7CisgICAgfSwgJmlkLCBbXShncG9pbnRlciB1c2VyRGF0YSkgewor
ICAgICAgICBhdXRvKiBpZCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkKj4odXNlckRhdGEpOworICAg
ICAgICAqaWQgPSAwOworICAgIH0pOworICAgIHRlc3QtPndhaXRVbnRpbEZyYW1lc0Rpc3BsYXll
ZCgpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQoaWQsID09LCAwKTsKKworICAgIGF1dG8gaWQyID0g
d2Via2l0X3dlYl92aWV3X2FkZF9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2sodGVzdC0+bV93ZWJW
aWV3LCBbXShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBncG9pbnRlciB1c2VyRGF0YSkgeworICAg
ICAgICBhdXRvKiBpZCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkKj4odXNlckRhdGEpOworICAgICAg
ICBpZiAoKmlkKSB7CisgICAgICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfcmVtb3ZlX2ZyYW1lX2Rp
c3BsYXllZF9jYWxsYmFjayh3ZWJWaWV3LCAqaWQpOworICAgICAgICAgICAgKmlkID0gMDsKKyAg
ICAgICAgfQorICAgIH0sICZpZCwgbnVsbHB0cik7CisKKyAgICBzZWNvbmRDYWxsYmFja0NhbGxl
ZCA9IGZhbHNlOworICAgIGlkID0gd2Via2l0X3dlYl92aWV3X2FkZF9mcmFtZV9kaXNwbGF5ZWRf
Y2FsbGJhY2sodGVzdC0+bV93ZWJWaWV3LCBbXShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBncG9p
bnRlciB1c2VyRGF0YSkgeworICAgICAgICBhdXRvKiBzZWNvbmRDYWxsYmFja0NhbGxlZCA9IHN0
YXRpY19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisgICAgICAgICpzZWNvbmRDYWxsYmFja0NhbGxl
ZCA9IHRydWU7CisgICAgfSwgJnNlY29uZENhbGxiYWNrQ2FsbGVkLCBudWxscHRyKTsKKyAgICB0
ZXN0LT53YWl0VW50aWxGcmFtZXNEaXNwbGF5ZWQoKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KGlk
LCA9PSwgMCk7CisgICAgZ19hc3NlcnRfZmFsc2Uoc2Vjb25kQ2FsbGJhY2tDYWxsZWQpOworCisg
ICAgd2Via2l0X3dlYl92aWV3X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2sodGVzdC0+
bV93ZWJWaWV3LCBpZDIpOworfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNr
KFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBh
dGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIGdwb2ludGVyKQogewogICAgIGlm
IChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CkBAIC0xMjc0LDYgKzEzNjgs
OSBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmll
dyIsICJwcmVmZXJyZWQtc2l6ZSIsIHRlc3RXZWJWaWV3UHJlZmVycmVkU2l6ZSk7CiAjZW5kaWYK
ICAgICBXZWJWaWV3VGl0bGVUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAidGl0bGUtY2hhbmdl
IiwgdGVzdFdlYlZpZXdUaXRsZUNoYW5nZSk7CisjaWYgUExBVEZPUk0oV1BFKQorICAgIEZyYW1l
RGlzcGxheWVkVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImZyYW1lLWRpc3BsYXllZCIsIHRl
c3RXZWJWaWV3RnJhbWVEaXNwbGF5ZWQpOworI2VuZGlmCiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxk
Lm1vZHVsZXMKaW5kZXggZGUxMzc5ODJjMTAuLjVlNzIzZWZkZjAxIDEwMDY0NAotLS0gYS9Ub29s
cy93cGUvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAg
LTE4MSw4ICsxODEsOCBAQAogICAgICAgPGRlcCBwYWNrYWdlPSJsaWJ3cGUiLz4KICAgICAgIDxk
ZXAgcGFja2FnZT0iZ2xpYiIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2ggcmVw
bz0id3Bld2Via2l0IiBtb2R1bGU9IndwZWJhY2tlbmQtZmRvLTEuMC4wLnRhci54eiIgdmVyc2lv
bj0iMS4wLjAiCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6N2E3NDdmODdhMWFlNDZkMzAxNDQz
NjkwNTBlM2NlMzQ4YjU4OTg2ZDA0ZTFhMTM5YmE3NWMxOThmYTYzNjcyOSIvPgorICAgIDxicmFu
Y2ggcmVwbz0id3Bld2Via2l0IiBtb2R1bGU9IndwZWJhY2tlbmQtZmRvLTEuMS4wLnRhci54eiIg
dmVyc2lvbj0iMS4xLjAiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZjZjNzIxMzBkMTZlNTA4
NjBjYjgzZWIwZjZlMTA5Yzc2ZjE4MjZkMmM2YmVlMzkwMjVmYjM2NTE5NDE3NjFlNyIvPgogICA8
L2NtYWtlPgogCiAgIDxhdXRvdG9vbHMgaWQ9ImxpYmdwZy1lcnJvciIgYXV0b2dlbi1zaD0iY29u
ZmlndXJlIj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>