<?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>153745</bug_id>
          
          <creation_ts>2016-02-01 09:13:35 -0800</creation_ts>
          <short_desc>[GTK] Reduce IPC traffic due to view state changes</short_desc>
          <delta_ts>2016-02-03 03:04:48 -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>WebKitGTK</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1160872</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-01 09:13:35 -0800</bug_when>
    <thetext>Very often view state changes happen one after another in a very short period of time, even in the same run loop iteration. For example, when you switch to the web view window, the view is focused and the active window flag changes as well. In that case we are sending two messages to the web process and the page updates its status according to the new flags in two steps. So, we could group all state changes happening in the same run loop iteration and notify about them all in the next iteration. This also prevents unnecessary changes of state when we quickly go back to a previous state, for example in focus follows mouse configurations if you move the mouse outside the window and then inside the window again quickly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160876</commentid>
    <comment_count>1</comment_count>
      <attachid>270390</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-01 09:21:53 -0800</bug_when>
    <thetext>Created attachment 270390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160878</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-01 09:23:13 -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>1161618</commentid>
    <comment_count>3</comment_count>
      <attachid>270390</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2016-02-03 02:05:55 -0800</bug_when>
    <thetext>Comment on attachment 270390
Patch

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

Nice patch, although I think it doesn&apos;t really work as is (see my comment about the mask)

&gt; Source/WebKit2/ChangeLog:27
&gt; +        WebPageProxy::viewStateDidChange() and resret the flags that need

resret -&gt; reset

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:316
&gt; +        g_signal_connect(priv-&gt;toplevelOnScreenWindow, &quot;window-state-event&quot;, G_CALLBACK(toplevelWindowStateEvent), webViewBase);

According to the docs you should enable GDK_STRUCTURE_MASK something that you are not doing. You should also remove the GDK_VISIBILITY_NOTIFY_MASK.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:1385
&gt; +    unsigned flagsToUpdate = ViewState::IsFocused;

We could use ViewState::Flags here for consistency with the rest of the code (even though it&apos;s an unsigned anyway).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161620</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-03 02:20:25 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 270390 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=270390&amp;action=review
&gt; 
&gt; Nice patch, although I think it doesn&apos;t really work as is (see my comment
&gt; about the mask)

Thanks for the review!

&gt; &gt; Source/WebKit2/ChangeLog:27
&gt; &gt; +        WebPageProxy::viewStateDidChange() and resret the flags that need
&gt; 
&gt; resret -&gt; reset

Oops.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:316
&gt; &gt; +        g_signal_connect(priv-&gt;toplevelOnScreenWindow, &quot;window-state-event&quot;, G_CALLBACK(toplevelWindowStateEvent), webViewBase);
&gt; 
&gt; According to the docs you should enable GDK_STRUCTURE_MASK something that
&gt; you are not doing. You should also remove the GDK_VISIBILITY_NOTIFY_MASK.

But then it says &quot;GDK will enable this mask automatically for all new windows.&quot; Also note that this is not a signal of the web view, but the toplevel window, and GtkWindos adds the GDK_STRUCTURE_MASK unconditionally in realize method.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:1385
&gt; &gt; +    unsigned flagsToUpdate = ViewState::IsFocused;
&gt; 
&gt; We could use ViewState::Flags here for consistency with the rest of the code
&gt; (even though it&apos;s an unsigned anyway).

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161626</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-03 03:04:48 -0800</bug_when>
    <thetext>Committed r196062: &lt;http://trac.webkit.org/changeset/196062&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270390</attachid>
            <date>2016-02-01 09:21:53 -0800</date>
            <delta_ts>2016-02-03 02:05:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-view-state.diff</filename>
            <type>text/plain</type>
            <size>14298</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzNjNjZjQ1Li5lZWNiNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDkg
QEAKIDIwMTYtMDItMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIFJlZHVjZSBJUEMgdHJhZmZpYyBkdWUgdG8gdmlldyBzdGF0ZSBj
aGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTM3NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBW
ZXJ5IG9mdGVuIHZpZXcgc3RhdGUgY2hhbmdlcyBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIgaW4g
YSB2ZXJ5CisgICAgICAgIHNob3J0IHBlcmlvZCBvZiB0aW1lLCBldmVuIGluIHRoZSBzYW1lIHJ1
biBsb29wIGl0ZXJhdGlvbi4gRm9yCisgICAgICAgIGV4YW1wbGUsIHdoZW4geW91IHN3aXRjaCB0
byB0aGUgd2ViIHZpZXcgd2luZG93LCB0aGUgdmlldyBpcworICAgICAgICBmb2N1c2VkIGFuZCB0
aGUgYWN0aXZlIHdpbmRvdyBmbGFnIGNoYW5nZXMgYXMgd2VsbC4gSW4gdGhhdCBjYXNlCisgICAg
ICAgIHdlIGFyZSBzZW5kaW5nIHR3byBtZXNzYWdlcyB0byB0aGUgd2ViIHByb2Nlc3MgYW5kIHRo
ZSBwYWdlCisgICAgICAgIHVwZGF0ZXMgaXRzIHN0YXR1cyBhY2NvcmRpbmcgdG8gdGhlIG5ldyBm
bGFncyBpbiB0d28gc3RlcHMuIFNvLCB3ZQorICAgICAgICBjb3VsZCBncm91cCBhbGwgc3RhdGUg
Y2hhbmdlcyBoYXBwZW5pbmcgaW4gdGhlIHNhbWUgcnVuIGxvb3AKKyAgICAgICAgaXRlcmF0aW9u
IGFuZCBub3RpZnkgYWJvdXQgdGhlbSBhbGwgaW4gdGhlIG5leHQgaXRlcmF0aW9uLiBUaGlzCisg
ICAgICAgIGFsc28gcHJldmVudHMgdW5uZWNlc3NhcnkgY2hhbmdlcyBvZiBzdGF0ZSB3aGVuIHdl
IHF1aWNrbHkgZ28gYmFjaworICAgICAgICB0byBhIHByZXZpb3VzIHN0YXRlLCBmb3IgZXhhbXBs
ZSBpbiBmb2N1cyBmb2xsb3dzIG1vdXNlCisgICAgICAgIGNvbmZpZ3VyYXRpb25zIGlmIHlvdSBt
b3ZlIHRoZSBtb3VzZSBvdXRzaWRlIHRoZSB3aW5kb3cgYW5kIHRoZW4KKyAgICAgICAgaW5zaWRl
IHRoZSB3aW5kb3cgYWdhaW4gcXVpY2tseS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKF9XZWJLaXRXZWJWaWV3QmFzZVByaXZh
dGU6Ol9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUpOiBVc2UKKyAgICAgICAgVmlyZXdTdGF0ZTo6
RmxhZ3MgdG8ga2VlcCB0aGUgd2ViIHZpZXcgc3RhdGUgaW5zdGVhZCBvZgorICAgICAgICBib29s
ZWFuLCBhbmQgYWxzbyB0byBrZWVwIHRoZSBmbGFncyB0aGF0IG5lZWQgdG8gYmUgdXBkYXRlZC4g
VXNlIGEKKyAgICAgICAgdGltZXIgdG8gdXBkYXRlIHdlYiB2aWV3IHN0YXRlIGZsYWdzLgorICAg
ICAgICAoX1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZTo6dXBkYXRlVmlld1N0YXRlVGltZXJGaXJl
ZCk6IENhbGwKKyAgICAgICAgV2ViUGFnZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFuZ2UoKSBhbmQg
cmVzcmV0IHRoZSBmbGFncyB0aGF0IG5lZWQKKyAgICAgICAgdG8gYmUgdXBkYXRlZC4KKyAgICAg
ICAgKHdlYmtpdFdlYlZpZXdCYXNlU2NoZWR1bGVVcGRhdGVWaWV3U3RhdGUpOiBVcGRhdGUgdGhl
IGZsYWdzIHRoYXQKKyAgICAgICAgbmVlZCB0byBiZSB1cGRhdGVkIGFuZCBzY2hlZHVsZSB0aGUg
dGltZXIgaWYgaXQncyBub3QgYWN0aXZlLgorICAgICAgICAodG9wbGV2ZWxXaW5kb3dGb2N1c0lu
RXZlbnQpOiBVc2UgdGhlIGZsYWdzIGFuZCBzY2hlZHVsZSBhbiB1cGRhdGUuCisgICAgICAgICh0
b3BsZXZlbFdpbmRvd0ZvY3VzT3V0RXZlbnQpOiBEaXR0by4KKyAgICAgICAgKHRvcGxldmVsV2lu
ZG93U3RhdGVFdmVudCk6IEFsc28gbWFyayB0aGUgdmlldyBhcyBoaWRkZW4gd2hlbiBtaW5pbWl6
ZWQuCisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZVNldFRvcGxldmVsT25TY3JlZW5XaW5kb3cp
OiBDb25uZWN0IHRvCisgICAgICAgIHdpbmRvdy1zdGF0ZS1ldmVudCBpbnN0ZWFkIG9mIGRlcHJl
Y2F0ZWQgdmlzaWJpbGl0eS1ub3RpZnktZXZlbnQuCisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFz
ZU1hcCk6IFVzZSB0aGUgZmxhZ3MgYW5kIHNjaGVkdWxlIGFuIHVwZGF0ZS4KKyAgICAgICAgKHdl
YmtpdFdlYlZpZXdCYXNlVW5tYXApOiBEaXR0by4KKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNl
U2V0Rm9jdXMpOiBEaXR0by4KKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlSXNJbldpbmRvd0Fj
dGl2ZSk6IFVzZSB0aGUgZmxhZ3MuCisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZUlzRm9jdXNl
ZCk6IERpdHRvCisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZUlzVmlzaWJsZSk6IERpdHRvLgor
ICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VJc0luV2luZG93KTogUmVtb3ZlZCB0aGlzIHNpbmNl
IGl0IHdhcyB1bnVzZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2VQcml2YXRlLmg6CisKKzIwMTYtMDItMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtdIFdlYktpdFdlYlZpZXcgc2hvdWxkIHNl
bmQgY3Jvc3NpbmcgZXZlbnRzIHRvIHRoZSBXZWJQcm9jZXNzCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM3NDAKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDc1
NGRlNjIuLmQxNzY3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTE0OCwxMiArMTQ4LDIzIEBAIHR5cGVk
ZWYgSGFzaE1hcDxHdGtXaWRnZXQqLCBJbnRSZWN0PiBXZWJLaXRXZWJWaWV3Q2hpbGRyZW5NYXA7
CiB0eXBlZGVmIEhhc2hNYXA8dWludDMyX3QsIEdVbmlxdWVQdHI8R2RrRXZlbnQ+PiBUb3VjaEV2
ZW50c01hcDsKIAogc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewotI2lmIFVTRShS
RURJUkVDVEVEX1hDT01QT1NJVEVfV0lORE9XKQogICAgIF9XZWJLaXRXZWJWaWV3QmFzZVByaXZh
dGUoKQotICAgICAgICA6IGNsZWFyUmVkaXJlY3RlZFdpbmRvd1Nvb25UaW1lcihSdW5Mb29wOjpt
YWluKCksIHRoaXMsICZfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlOjpjbGVhclJlZGlyZWN0ZWRX
aW5kb3dTb29uVGltZXJGaXJlZCkKKyAgICAgICAgOiB1cGRhdGVWaWV3U3RhdGVUaW1lcihSdW5M
b29wOjptYWluKCksIHRoaXMsICZfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlOjp1cGRhdGVWaWV3
U3RhdGVUaW1lckZpcmVkKQorI2lmIFVTRShSRURJUkVDVEVEX1hDT01QT1NJVEVfV0lORE9XKQor
ICAgICAgICAsIGNsZWFyUmVkaXJlY3RlZFdpbmRvd1Nvb25UaW1lcihSdW5Mb29wOjptYWluKCks
IHRoaXMsICZfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlOjpjbGVhclJlZGlyZWN0ZWRXaW5kb3dT
b29uVGltZXJGaXJlZCkKKyNlbmRpZgorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHVwZGF0ZVZp
ZXdTdGF0ZVRpbWVyRmlyZWQoKQogICAgIHsKKyAgICAgICAgaWYgKCFwYWdlUHJveHkpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIHBhZ2VQcm94eS0+dmlld1N0YXRlRGlkQ2hhbmdlKHZp
ZXdTdGF0ZUZsYWdzVG9VcGRhdGUpOworICAgICAgICB2aWV3U3RhdGVGbGFnc1RvVXBkYXRlID0g
Vmlld1N0YXRlOjpOb0ZsYWdzOwogICAgIH0KIAorI2lmIFVTRShSRURJUkVDVEVEX1hDT01QT1NJ
VEVfV0lORE9XKQogICAgIHZvaWQgY2xlYXJSZWRpcmVjdGVkV2luZG93U29vblRpbWVyRmlyZWQo
KQogICAgIHsKICAgICAgICAgaWYgKHJlZGlyZWN0ZWRXaW5kb3cpCkBAIC0xODIsMTMgKzE5Mywx
MiBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSB7CiAgICAgR3RrV2luZG93KiB0
b3BsZXZlbE9uU2NyZWVuV2luZG93OwogICAgIHVuc2lnbmVkIGxvbmcgdG9wbGV2ZWxGb2N1c0lu
RXZlbnRJRDsKICAgICB1bnNpZ25lZCBsb25nIHRvcGxldmVsRm9jdXNPdXRFdmVudElEOwotICAg
IHVuc2lnbmVkIGxvbmcgdG9wbGV2ZWxWaXNpYmlsaXR5RXZlbnRJRDsKKyAgICB1bnNpZ25lZCBs
b25nIHRvcGxldmVsV2luZG93U3RhdGVFdmVudElEOwogCiAgICAgLy8gVmlldyBTdGF0ZS4KLSAg
ICBib29sIGlzSW5XaW5kb3dBY3RpdmUgOiAxOwotICAgIGJvb2wgaXNGb2N1c2VkIDogMTsKLSAg
ICBib29sIGlzVmlzaWJsZSA6IDE7Ci0gICAgYm9vbCBpc1dpbmRvd1Zpc2libGUgOiAxOworICAg
IFZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlOworICAgIFZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0
YXRlRmxhZ3NUb1VwZGF0ZTsKKyAgICBSdW5Mb29wOjpUaW1lcjxXZWJLaXRXZWJWaWV3QmFzZVBy
aXZhdGU+IHVwZGF0ZVZpZXdTdGF0ZVRpbWVyOwogCiAgICAgV2ViS2l0V2ViVmlld0Jhc2VEb3du
bG9hZFJlcXVlc3RIYW5kbGVyIGRvd25sb2FkSGFuZGxlcjsKIApAQCAtMjE2LDEzICsyMjYsMjQg
QEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewogCiBXRUJLSVRfREVGSU5FX1RZ
UEUoV2ViS2l0V2ViVmlld0Jhc2UsIHdlYmtpdF93ZWJfdmlld19iYXNlLCBHVEtfVFlQRV9DT05U
QUlORVIpCiAKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2NoZWR1bGVVcGRhdGVWaWV3
U3RhdGUoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBWaWV3U3RhdGU6OkZsYWdzIGZs
YWdzVG9VcGRhdGUpCit7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2Vi
Vmlld0Jhc2UtPnByaXY7CisgICAgcHJpdi0+dmlld1N0YXRlRmxhZ3NUb1VwZGF0ZSB8PSBmbGFn
c1RvVXBkYXRlOworICAgIGlmIChwcml2LT51cGRhdGVWaWV3U3RhdGVUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT51cGRhdGVWaWV3U3RhdGVUaW1lci5zdGFy
dE9uZVNob3QoMCk7Cit9CisKIHN0YXRpYyBnYm9vbGVhbiB0b3BsZXZlbFdpbmRvd0ZvY3VzSW5F
dmVudChHdGtXaWRnZXQqLCBHZGtFdmVudEZvY3VzKiwgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZp
ZXdCYXNlKQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYlZpZXdC
YXNlLT5wcml2OwotICAgIGlmICghcHJpdi0+aXNJbldpbmRvd0FjdGl2ZSkgewotICAgICAgICBw
cml2LT5pc0luV2luZG93QWN0aXZlID0gdHJ1ZTsKLSAgICAgICAgcHJpdi0+cGFnZVByb3h5LT52
aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7Ci0gICAgfQorICAg
IGlmIChwcml2LT52aWV3U3RhdGUgJiBWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKQorICAgICAg
ICByZXR1cm4gRkFMU0U7CisKKyAgICBwcml2LT52aWV3U3RhdGUgfD0gVmlld1N0YXRlOjpXaW5k
b3dJc0FjdGl2ZTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZVNjaGVkdWxlVXBkYXRlVmlld1N0YXRl
KHdlYlZpZXdCYXNlLCBWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKIAogICAgIHJldHVybiBG
QUxTRTsKIH0KQEAgLTIzMCwyMiArMjUxLDMwIEBAIHN0YXRpYyBnYm9vbGVhbiB0b3BsZXZlbFdp
bmRvd0ZvY3VzSW5FdmVudChHdGtXaWRnZXQqLCBHZGtFdmVudEZvY3VzKiwgV2ViS2l0V2ViCiBz
dGF0aWMgZ2Jvb2xlYW4gdG9wbGV2ZWxXaW5kb3dGb2N1c091dEV2ZW50KEd0a1dpZGdldCosIEdk
a0V2ZW50Rm9jdXMqLCBXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7CiAgICAgV2Vi
S2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7Ci0gICAgaWYg
KHByaXYtPmlzSW5XaW5kb3dBY3RpdmUpIHsKLSAgICAgICAgcHJpdi0+aXNJbldpbmRvd0FjdGl2
ZSA9IGZhbHNlOwotICAgICAgICBwcml2LT5wYWdlUHJveHktPnZpZXdTdGF0ZURpZENoYW5nZShW
aWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKLSAgICB9CisgICAgaWYgKCEocHJpdi0+dmlld1N0
YXRlICYgVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSkpCisgICAgICAgIHJldHVybiBGQUxTRTsK
KworICAgIHByaXYtPnZpZXdTdGF0ZSAmPSB+Vmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKKyAg
ICB3ZWJraXRXZWJWaWV3QmFzZVNjaGVkdWxlVXBkYXRlVmlld1N0YXRlKHdlYlZpZXdCYXNlLCBW
aWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKIAogICAgIHJldHVybiBGQUxTRTsKIH0KIAotc3Rh
dGljIGdib29sZWFuIHRvcGxldmVsV2luZG93VmlzaWJpbGl0eUV2ZW50KEd0a1dpZGdldCosIEdk
a0V2ZW50VmlzaWJpbGl0eSogdmlzaWJpbGl0eUV2ZW50LCBXZWJLaXRXZWJWaWV3QmFzZSogd2Vi
Vmlld0Jhc2UpCitzdGF0aWMgZ2Jvb2xlYW4gdG9wbGV2ZWxXaW5kb3dTdGF0ZUV2ZW50KEd0a1dp
ZGdldCosIEdka0V2ZW50V2luZG93U3RhdGUqIGV2ZW50LCBXZWJLaXRXZWJWaWV3QmFzZSogd2Vi
Vmlld0Jhc2UpCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmll
d0Jhc2UtPnByaXY7Ci0gICAgYm9vbCBpc1dpbmRvd1Zpc2libGUgPSB2aXNpYmlsaXR5RXZlbnQt
PnN0YXRlICE9IEdES19WSVNJQklMSVRZX0ZVTExZX09CU0NVUkVEOwotICAgIGlmIChwcml2LT5p
c1dpbmRvd1Zpc2libGUgIT0gaXNXaW5kb3dWaXNpYmxlKSB7Ci0gICAgICAgIHByaXYtPmlzV2lu
ZG93VmlzaWJsZSA9IGlzV2luZG93VmlzaWJsZTsKLSAgICAgICAgcHJpdi0+cGFnZVByb3h5LT52
aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOwotICAgIH0KKyAgICBpZiAo
IShldmVudC0+Y2hhbmdlZF9tYXNrICYgR0RLX1dJTkRPV19TVEFURV9JQ09OSUZJRUQpKQorICAg
ICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBib29sIHZpc2libGUgPSAhKGV2ZW50LT5uZXdfd2lu
ZG93X3N0YXRlICYgR0RLX1dJTkRPV19TVEFURV9JQ09OSUZJRUQpOworICAgIGlmICgodmlzaWJs
ZSAmJiBwcml2LT52aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzVmlzaWJsZSkgfHwgKCF2aXNpYmxl
ICYmICEocHJpdi0+dmlld1N0YXRlICYgVmlld1N0YXRlOjpJc1Zpc2libGUpKSkKKyAgICAgICAg
cmV0dXJuIEZBTFNFOworCisgICAgaWYgKHZpc2libGUpCisgICAgICAgIHByaXYtPnZpZXdTdGF0
ZSB8PSBWaWV3U3RhdGU6OklzVmlzaWJsZTsKKyAgICBlbHNlCisgICAgICAgIHByaXYtPnZpZXdT
dGF0ZSAmPSB+Vmlld1N0YXRlOjpJc1Zpc2libGU7CisgICAgd2Via2l0V2ViVmlld0Jhc2VTY2hl
ZHVsZVVwZGF0ZVZpZXdTdGF0ZSh3ZWJWaWV3QmFzZSwgVmlld1N0YXRlOjpJc1Zpc2libGUpOwog
CiAgICAgcmV0dXJuIEZBTFNFOwogfQpAQCAtMjY0LDEzICsyOTMsMTYgQEAgc3RhdGljIHZvaWQg
d2Via2l0V2ViVmlld0Jhc2VTZXRUb3BsZXZlbE9uU2NyZWVuV2luZG93KFdlYktpdFdlYlZpZXdC
YXNlKiB3ZWJWaWUKICAgICAgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KHByaXYtPnRv
cGxldmVsT25TY3JlZW5XaW5kb3csIHByaXYtPnRvcGxldmVsRm9jdXNPdXRFdmVudElEKTsKICAg
ICAgICAgcHJpdi0+dG9wbGV2ZWxGb2N1c091dEV2ZW50SUQgPSAwOwogICAgIH0KLSAgICBpZiAo
cHJpdi0+dG9wbGV2ZWxWaXNpYmlsaXR5RXZlbnRJRCkgewotICAgICAgICBnX3NpZ25hbF9oYW5k
bGVyX2Rpc2Nvbm5lY3QocHJpdi0+dG9wbGV2ZWxPblNjcmVlbldpbmRvdywgcHJpdi0+dG9wbGV2
ZWxWaXNpYmlsaXR5RXZlbnRJRCk7Ci0gICAgICAgIHByaXYtPnRvcGxldmVsVmlzaWJpbGl0eUV2
ZW50SUQgPSAwOworICAgIGlmIChwcml2LT50b3BsZXZlbFdpbmRvd1N0YXRlRXZlbnRJRCkgewor
ICAgICAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QocHJpdi0+dG9wbGV2ZWxPblNjcmVl
bldpbmRvdywgcHJpdi0+dG9wbGV2ZWxXaW5kb3dTdGF0ZUV2ZW50SUQpOworICAgICAgICBwcml2
LT50b3BsZXZlbFdpbmRvd1N0YXRlRXZlbnRJRCA9IDA7CiAgICAgfQogCiAgICAgcHJpdi0+dG9w
bGV2ZWxPblNjcmVlbldpbmRvdyA9IHdpbmRvdzsKLSAgICBwcml2LT5wYWdlUHJveHktPnZpZXdT
dGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzSW5XaW5kb3cpOworICAgIGlmICghKHByaXYtPnZp
ZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdykpIHsKKyAgICAgICAgcHJpdi0+dmlld1N0
YXRlIHw9IFZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKKyAgICAgICAgd2Via2l0V2ViVmlld0Jhc2VT
Y2hlZHVsZVVwZGF0ZVZpZXdTdGF0ZSh3ZWJWaWV3QmFzZSwgVmlld1N0YXRlOjpJc0luV2luZG93
KTsKKyAgICB9CiAgICAgaWYgKCFwcml2LT50b3BsZXZlbE9uU2NyZWVuV2luZG93KQogICAgICAg
ICByZXR1cm47CiAKQEAgLTI4MCw5ICszMTIsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3
QmFzZVNldFRvcGxldmVsT25TY3JlZW5XaW5kb3coV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZQog
ICAgIHByaXYtPnRvcGxldmVsRm9jdXNPdXRFdmVudElEID0KICAgICAgICAgZ19zaWduYWxfY29u
bmVjdChwcml2LT50b3BsZXZlbE9uU2NyZWVuV2luZG93LCAiZm9jdXMtb3V0LWV2ZW50IiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLKHRvcGxldmVsV2luZG93Rm9jdXNPdXRF
dmVudCksIHdlYlZpZXdCYXNlKTsKLSAgICBwcml2LT50b3BsZXZlbFZpc2liaWxpdHlFdmVudElE
ID0KLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChwcml2LT50b3BsZXZlbE9uU2NyZWVuV2luZG93
LCAidmlzaWJpbGl0eS1ub3RpZnktZXZlbnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgIEdf
Q0FMTEJBQ0sodG9wbGV2ZWxXaW5kb3dWaXNpYmlsaXR5RXZlbnQpLCB3ZWJWaWV3QmFzZSk7Cisg
ICAgcHJpdi0+dG9wbGV2ZWxXaW5kb3dTdGF0ZUV2ZW50SUQgPQorICAgICAgICBnX3NpZ25hbF9j
b25uZWN0KHByaXYtPnRvcGxldmVsT25TY3JlZW5XaW5kb3csICJ3aW5kb3ctc3RhdGUtZXZlbnQi
LCBHX0NBTExCQUNLKHRvcGxldmVsV2luZG93U3RhdGVFdmVudCksIHdlYlZpZXdCYXNlKTsKIH0K
IAogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VSZWFsaXplKEd0a1dpZGdldCogd2lkZ2V0
KQpAQCAtNjQxLDIxICs2NzIsMjQgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VNYXAo
R3RrV2lkZ2V0KiB3aWRnZXQpCiAKICAgICBXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2Ug
PSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpOwogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJp
dmF0ZSogcHJpdiA9IHdlYlZpZXdCYXNlLT5wcml2OwotICAgIGlmICghcHJpdi0+aXNWaXNpYmxl
KSB7Ci0gICAgICAgIHByaXYtPmlzVmlzaWJsZSA9IHRydWU7Ci0gICAgICAgIHByaXYtPnBhZ2VQ
cm94eS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKLSAgICB9Cisg
ICAgaWYgKHByaXYtPnZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBwcml2LT52aWV3U3RhdGUgfD0gVmlld1N0YXRlOjpJc1Zpc2libGU7Cisg
ICAgd2Via2l0V2ViVmlld0Jhc2VTY2hlZHVsZVVwZGF0ZVZpZXdTdGF0ZSh3ZWJWaWV3QmFzZSwg
Vmlld1N0YXRlOjpJc1Zpc2libGUpOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZVVubWFwKEd0a1dpZGdldCogd2lkZ2V0KQogewogICAgIEdUS19XSURHRVRfQ0xBU1Mod2Via2l0
X3dlYl92aWV3X2Jhc2VfcGFyZW50X2NsYXNzKS0+dW5tYXAod2lkZ2V0KTsKIAotICAgIFdlYktp
dFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9XRUJfVklFV19CQVNFKHdpZGdldCkt
PnByaXY7Ci0gICAgaWYgKHByaXYtPmlzVmlzaWJsZSkgewotICAgICAgICBwcml2LT5pc1Zpc2li
bGUgPSBmYWxzZTsKLSAgICAgICAgcHJpdi0+cGFnZVByb3h5LT52aWV3U3RhdGVEaWRDaGFuZ2Uo
Vmlld1N0YXRlOjpJc1Zpc2libGUpOwotICAgIH0KKyAgICBXZWJLaXRXZWJWaWV3QmFzZSogd2Vi
Vmlld0Jhc2UgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpOworICAgIFdlYktpdFdlYlZp
ZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYlZpZXdCYXNlLT5wcml2OworICAgIGlmICghKHByaXYt
PnZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcHJpdi0+dmlld1N0YXRlICY9IH5WaWV3U3RhdGU6OklzVmlzaWJsZTsKKyAgICB3ZWJraXRX
ZWJWaWV3QmFzZVNjaGVkdWxlVXBkYXRlVmlld1N0YXRlKHdlYlZpZXdCYXNlLCBWaWV3U3RhdGU6
OklzVmlzaWJsZSk7CiB9CiAKIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZUZvY3Vz
SW5FdmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRGb2N1cyogZXZlbnQpCkBAIC0xMzQ1
LDQ3ICsxMzc5LDQ2IEBAIEdka0V2ZW50KiB3ZWJraXRXZWJWaWV3QmFzZVRha2VDb250ZXh0TWVu
dUV2ZW50KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3CiB2b2lkIHdlYmtpdFdlYlZp
ZXdCYXNlU2V0Rm9jdXMoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBib29sIGZvY3Vz
ZWQpCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2Ut
PnByaXY7Ci0gICAgaWYgKHByaXYtPmlzRm9jdXNlZCA9PSBmb2N1c2VkKQorICAgIGlmICgoZm9j
dXNlZCAmJiBwcml2LT52aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzRm9jdXNlZCkgfHwgKCFmb2N1
c2VkICYmICEocHJpdi0+dmlld1N0YXRlICYgVmlld1N0YXRlOjpJc0ZvY3VzZWQpKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgdmlld1N0YXRlRmxhZ3MgPSBWaWV3U3RhdGU6Oklz
Rm9jdXNlZDsKLSAgICBwcml2LT5pc0ZvY3VzZWQgPSBmb2N1c2VkOwotCi0gICAgLy8gSWYgdGhl
IHZpZXcgaGFzIHJlY2VpdmVkIHRoZSBmb2N1cyBhbmQgdGhlIHdpbmRvdyBpcyBub3QgYWN0aXZl
Ci0gICAgLy8gbWFyayB0aGUgY3VycmVudCB3aW5kb3cgYXMgYWN0aXZlIG5vdy4gVGhpcyBjYW4g
aGFwcGVuIGlmIHRoZQotICAgIC8vIHRvcGxldmVsIHdpbmRvdyBpcyBhIEdUS19XSU5ET1dfUE9Q
VVAgYW5kIHRoZSBmb2N1cyBoYXMgYmVlbgotICAgIC8vIHNldCBwcm9ncmFtYXRpY2FsbHkgbGlr
ZSBXZWJLaXRUZXN0UnVubmVyIGRvZXMsIGJlY2F1c2UgUE9QVVAKLSAgICAvLyBjYW4ndCBiZSBm
b2N1c2VkLgotICAgIGlmIChwcml2LT5pc0ZvY3VzZWQgJiYgIXByaXYtPmlzSW5XaW5kb3dBY3Rp
dmUpIHsKLSAgICAgICAgcHJpdi0+aXNJbldpbmRvd0FjdGl2ZSA9IHRydWU7Ci0gICAgICAgIHZp
ZXdTdGF0ZUZsYWdzIHw9IFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmU7Ci0gICAgfQotICAgIHBy
aXYtPnBhZ2VQcm94eS0+dmlld1N0YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUZsYWdzKTsKKyAgICB1
bnNpZ25lZCBmbGFnc1RvVXBkYXRlID0gVmlld1N0YXRlOjpJc0ZvY3VzZWQ7CisgICAgaWYgKGZv
Y3VzZWQpIHsKKyAgICAgICAgcHJpdi0+dmlld1N0YXRlIHw9IFZpZXdTdGF0ZTo6SXNGb2N1c2Vk
OworCisgICAgICAgIC8vIElmIHRoZSB2aWV3IGhhcyByZWNlaXZlZCB0aGUgZm9jdXMgYW5kIHRo
ZSB3aW5kb3cgaXMgbm90IGFjdGl2ZQorICAgICAgICAvLyBtYXJrIHRoZSBjdXJyZW50IHdpbmRv
dyBhcyBhY3RpdmUgbm93LiBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlCisgICAgICAgIC8vIHRvcGxl
dmVsIHdpbmRvdyBpcyBhIEdUS19XSU5ET1dfUE9QVVAgYW5kIHRoZSBmb2N1cyBoYXMgYmVlbgor
ICAgICAgICAvLyBzZXQgcHJvZ3JhbWF0aWNhbGx5IGxpa2UgV2ViS2l0VGVzdFJ1bm5lciBkb2Vz
LCBiZWNhdXNlIFBPUFVQCisgICAgICAgIC8vIGNhbid0IGJlIGZvY3VzZWQuCisgICAgICAgIGlm
ICghKHByaXYtPnZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpKSB7CisgICAg
ICAgICAgICBwcml2LT52aWV3U3RhdGUgfD0gVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKKyAg
ICAgICAgICAgIGZsYWdzVG9VcGRhdGUgfD0gVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKKyAg
ICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBwcml2LT52aWV3U3RhdGUgJj0gflZpZXdTdGF0
ZTo6SXNGb2N1c2VkOworCisgICAgd2Via2l0V2ViVmlld0Jhc2VTY2hlZHVsZVVwZGF0ZVZpZXdT
dGF0ZSh3ZWJWaWV3QmFzZSwgZmxhZ3NUb1VwZGF0ZSk7CiB9CiAKIGJvb2wgd2Via2l0V2ViVmll
d0Jhc2VJc0luV2luZG93QWN0aXZlKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKIHsK
LSAgICByZXR1cm4gd2ViVmlld0Jhc2UtPnByaXYtPmlzSW5XaW5kb3dBY3RpdmU7CisgICAgcmV0
dXJuIHdlYlZpZXdCYXNlLT5wcml2LT52aWV3U3RhdGUgJiBWaWV3U3RhdGU6OldpbmRvd0lzQWN0
aXZlOwogfQogCiBib29sIHdlYmtpdFdlYlZpZXdCYXNlSXNGb2N1c2VkKFdlYktpdFdlYlZpZXdC
YXNlKiB3ZWJWaWV3QmFzZSkKIHsKLSAgICByZXR1cm4gd2ViVmlld0Jhc2UtPnByaXYtPmlzRm9j
dXNlZDsKKyAgICByZXR1cm4gd2ViVmlld0Jhc2UtPnByaXYtPnZpZXdTdGF0ZSAmIFZpZXdTdGF0
ZTo6SXNGb2N1c2VkOwogfQogCiBib29sIHdlYmtpdFdlYlZpZXdCYXNlSXNWaXNpYmxlKFdlYktp
dFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKIHsKLSAgICByZXR1cm4gd2ViVmlld0Jhc2UtPnBy
aXYtPmlzVmlzaWJsZTsKKyAgICByZXR1cm4gd2ViVmlld0Jhc2UtPnByaXYtPnZpZXdTdGF0ZSAm
IFZpZXdTdGF0ZTo6SXNWaXNpYmxlOwogfQogCiBib29sIHdlYmtpdFdlYlZpZXdCYXNlSXNJbldp
bmRvdyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCiB7Ci0gICAgcmV0dXJuIHdlYlZp
ZXdCYXNlLT5wcml2LT50b3BsZXZlbE9uU2NyZWVuV2luZG93OwotfQotCi1ib29sIHdlYmtpdFdl
YlZpZXdCYXNlSXNXaW5kb3dWaXNpYmxlKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkK
LXsKLSAgICByZXR1cm4gd2ViVmlld0Jhc2UtPnByaXYtPmlzV2luZG93VmlzaWJsZTsKKyAgICBy
ZXR1cm4gd2ViVmlld0Jhc2UtPnByaXYtPnZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldpbmRv
dzsKIH0KIAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldERvd25sb2FkUmVxdWVzdEhhbmRsZXIo
V2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBXZWJLaXRXZWJWaWV3QmFzZURvd25sb2Fk
UmVxdWVzdEhhbmRsZXIgZG93bmxvYWRIYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAppbmRl
eCA2YTI3ZTdlLi4yYTNkOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaApAQCAtNjAsNyArNjAs
NiBAQCBib29sIHdlYmtpdFdlYlZpZXdCYXNlSXNJbldpbmRvd0FjdGl2ZShXZWJLaXRXZWJWaWV3
QmFzZSopOwogYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUlzRm9jdXNlZChXZWJLaXRXZWJWaWV3QmFz
ZSopOwogYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUlzVmlzaWJsZShXZWJLaXRXZWJWaWV3QmFzZSop
OwogYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUlzSW5XaW5kb3coV2ViS2l0V2ViVmlld0Jhc2UqKTsK
LWJvb2wgd2Via2l0V2ViVmlld0Jhc2VJc1dpbmRvd1Zpc2libGUoV2ViS2l0V2ViVmlld0Jhc2Uq
KTsKIAogdHlwZWRlZiB2b2lkICgqV2ViS2l0V2ViVmlld0Jhc2VEb3dubG9hZFJlcXVlc3RIYW5k
bGVyKSAoV2ViS2l0V2ViVmlld0Jhc2UqLCBXZWJLaXQ6OkRvd25sb2FkUHJveHkqKTsKIHZvaWQg
d2Via2l0V2ViVmlld0Jhc2VTZXREb3dubG9hZFJlcXVlc3RIYW5kbGVyKFdlYktpdFdlYlZpZXdC
YXNlKiwgV2ViS2l0V2ViVmlld0Jhc2VEb3dubG9hZFJlcXVlc3RIYW5kbGVyKTsK
</data>
<flag name="review"
          id="295227"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
      

    </bug>

</bugzilla>