<?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>209630</bug_id>
          
          <creation_ts>2020-03-26 16:49:46 -0700</creation_ts>
          <short_desc>REGRESSION (r256577): Previous page continues to display after navigating to media document</short_desc>
          <delta_ts>2020-03-27 17:45:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634646</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-26 16:49:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/60609318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634652</commentid>
    <comment_count>1</comment_count>
      <attachid>394680</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-03-26 16:59:50 -0700</bug_when>
    <thetext>Created attachment 394680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634653</commentid>
    <comment_count>2</comment_count>
      <attachid>394680</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-26 17:05:08 -0700</bug_when>
    <thetext>Comment on attachment 394680
Patch

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

I think this should have a test.

&gt; Source/WebCore/page/FrameView.cpp:4383
&gt; +        auto&amp; document = *frame().document();

RefPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634676</commentid>
    <comment_count>3</comment_count>
      <attachid>394680</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-26 18:10:55 -0700</bug_when>
    <thetext>Comment on attachment 394680
Patch

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

&gt; Source/WebCore/html/FTPDirectoryDocument.cpp:140
&gt; +    if (document.view())
&gt; +        document.view()-&gt;setDocumentHasVisuallyNonEmptyCustomContent();

Never 100% sure if it’s better to put a function like this on Document or require the caller to follow the pointer to the view and check it for null. Presuming we stick with a function on FrameView, I probably would have written the local variable style:

    if (auto view = document.view())
        view-&gt;setDocumentHasVisuallyNonEmptyCustomContent();

Gotta admit, though, that if the document doesn’t have a view yet it’s strange that we’ll forget this state.

&gt; Source/WebCore/page/FrameView.cpp:277
&gt;      m_visuallyNonEmptyCharacterCount = 0;
&gt;      m_visuallyNonEmptyPixelCount = 0;
&gt;      m_textRendererCountForVisuallyNonEmptyCharacters = 0;
&gt; +    m_documentHasVisuallyNonEmptyCustomContent = false;

Seems like we are following a poor pattern here. We keep reusing a FrameView and &quot;resetting&quot; it, rather than having an object for the view of one document that we can re-create for each document. That’s the relationship between Frame and Document, FrameLoader and DocumentLoader. Seems like we have a similar problem here but a different solution.

&gt; Source/WebCore/page/FrameView.cpp:4392
&gt;          if (frame().document()-&gt;styleScope().hasPendingSheetsBeforeBody())

Still calling frame().document() here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634696</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-26 18:52:15 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 394680 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394680&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/FTPDirectoryDocument.cpp:140
&gt; &gt; +    if (document.view())
&gt; &gt; +        document.view()-&gt;setDocumentHasVisuallyNonEmptyCustomContent();
&gt; 
&gt; Never 100% sure if it’s better to put a function like this on Document or
&gt; require the caller to follow the pointer to the view and check it for null.
I try to limit the visually non-empty logic to the FrameView.

&gt; Presuming we stick with a function on FrameView, I probably would have
&gt; written the local variable style:
&gt; 
&gt;     if (auto view = document.view())
&gt;         view-&gt;setDocumentHasVisuallyNonEmptyCustomContent();
&gt; 
&gt; Gotta admit, though, that if the document doesn’t have a view yet it’s
&gt; strange that we’ll forget this state.
I am not sure how &quot;late parenting&quot; of the Document works, but I assume by then the document itself is visually non-empty and we would go through the usual code flow.

&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:277
&gt; &gt;      m_visuallyNonEmptyCharacterCount = 0;
&gt; &gt;      m_visuallyNonEmptyPixelCount = 0;
&gt; &gt;      m_textRendererCountForVisuallyNonEmptyCharacters = 0;
&gt; &gt; +    m_documentHasVisuallyNonEmptyCustomContent = false;
&gt; 
&gt; Seems like we are following a poor pattern here. We keep reusing a FrameView
&gt; and &quot;resetting&quot; it, rather than having an object for the view of one
&gt; document that we can re-create for each document. That’s the relationship
&gt; between Frame and Document, FrameLoader and DocumentLoader. Seems like we
&gt; have a similar problem here but a different solution.
100% agree.

&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:4392
&gt; &gt;          if (frame().document()-&gt;styleScope().hasPendingSheetsBeforeBody())
&gt; 
&gt; Still calling frame().document() here.
Good catch. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634698</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-26 18:56:43 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #2)
&gt; Comment on attachment 394680 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394680&amp;action=review
&gt; 
&gt; I think this should have a test.
I thought about it but not sure how to come up with one since this patch is really about timing (sooner content display) it&apos;s unclear to me how to achieve it.
 
&gt; &gt; Source/WebCore/page/FrameView.cpp:4383
&gt; &gt; +        auto&amp; document = *frame().document();
&gt; 
&gt; RefPtr?
These are supposed to be all const functions, not sure why refing would be needed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635061</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-27 17:10:40 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 394680 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394680&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/FTPDirectoryDocument.cpp:140
&gt; &gt; +    if (document.view())
&gt; &gt; +        document.view()-&gt;setDocumentHasVisuallyNonEmptyCustomContent();
&gt; 
&gt; Never 100% sure if it’s better to put a function like this on Document or
&gt; require the caller to follow the pointer to the view and check it for null.
&gt; Presuming we stick with a function on FrameView, I probably would have
&gt; written the local variable style:
&gt; 
&gt;     if (auto view = document.view())
&gt;         view-&gt;setDocumentHasVisuallyNonEmptyCustomContent();
&gt; 
&gt; Gotta admit, though, that if the document doesn’t have a view yet it’s
&gt; strange that we’ll forget this state.
You are right. This should totally be on the Document instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635062</commentid>
    <comment_count>7</comment_count>
      <attachid>394771</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-03-27 17:13:27 -0700</bug_when>
    <thetext>Created attachment 394771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635063</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-27 17:14:07 -0700</bug_when>
    <thetext>(In reply to zalan from comment #6)
&gt; (In reply to Darin Adler from comment #3)
&gt; &gt; Comment on attachment 394680 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=394680&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/FTPDirectoryDocument.cpp:140
&gt; &gt; &gt; +    if (document.view())
&gt; &gt; &gt; +        document.view()-&gt;setDocumentHasVisuallyNonEmptyCustomContent();
&gt; &gt; 
&gt; &gt; Never 100% sure if it’s better to put a function like this on Document or
&gt; &gt; require the caller to follow the pointer to the view and check it for null.
&gt; &gt; Presuming we stick with a function on FrameView, I probably would have
&gt; &gt; written the local variable style:
&gt; &gt; 
&gt; &gt;     if (auto view = document.view())
&gt; &gt;         view-&gt;setDocumentHasVisuallyNonEmptyCustomContent();
&gt; &gt; 
&gt; &gt; Gotta admit, though, that if the document doesn’t have a view yet it’s
&gt; &gt; strange that we’ll forget this state.
&gt; You are right. This should totally be on the Document instead.
It makes the patch simpler also (and more correct)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635066</commentid>
    <comment_count>9</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-27 17:18:50 -0700</bug_when>
    <thetext>(In reply to zalan from comment #5)
&gt; (In reply to Simon Fraser (smfr) from comment #2)
&gt; &gt; Comment on attachment 394680 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=394680&amp;action=review
&gt; &gt; 
&gt; &gt; I think this should have a test.
&gt; I thought about it but not sure how to come up with one since this patch is
&gt; really about timing (sooner content display) it&apos;s unclear to me how to
&gt; achieve it.
As discussed on slack, unfortunately neither ref(lack of internals API (doable), this needs to be mainframe navigating to a media document while capturing milestones(not doable)), nor API test framework(lack of php support) can work with this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635067</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-27 17:28:34 -0700</bug_when>
    <thetext>(In reply to zalan from comment #9)
&gt; (In reply to zalan from comment #5)
&gt; &gt; (In reply to Simon Fraser (smfr) from comment #2)
&gt; &gt; &gt; Comment on attachment 394680 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=394680&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; I think this should have a test.
&gt; &gt; I thought about it but not sure how to come up with one since this patch is
&gt; &gt; really about timing (sooner content display) it&apos;s unclear to me how to
&gt; &gt; achieve it.
&gt; As discussed on slack, unfortunately neither ref(lack of internals API
&gt; (doable), this needs to be mainframe navigating to a media document while
&gt; capturing milestones(not doable)), nor API test framework(lack of php
&gt; support) can work with this case.

Surely an API test that uses WKURLSchemeHandler to load a resource that doesn&apos;t complete quickly will do the trick :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635069</commentid>
    <comment_count>11</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-27 17:31:28 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #10)
&gt; (In reply to zalan from comment #9)
&gt; &gt; (In reply to zalan from comment #5)
&gt; &gt; &gt; (In reply to Simon Fraser (smfr) from comment #2)
&gt; &gt; &gt; &gt; Comment on attachment 394680 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=394680&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think this should have a test.
&gt; &gt; &gt; I thought about it but not sure how to come up with one since this patch is
&gt; &gt; &gt; really about timing (sooner content display) it&apos;s unclear to me how to
&gt; &gt; &gt; achieve it.
&gt; &gt; As discussed on slack, unfortunately neither ref(lack of internals API
&gt; &gt; (doable), this needs to be mainframe navigating to a media document while
&gt; &gt; capturing milestones(not doable)), nor API test framework(lack of php
&gt; &gt; support) can work with this case.
&gt; 
&gt; Surely an API test that uses WKURLSchemeHandler to load a resource that
&gt; doesn&apos;t complete quickly will do the trick :)
and I asked a couple of people. Surely I should have asked a few more (don&apos;t know what WKURLSchemeHandler is but will look into it and land a test case) Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635073</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-27 17:45:11 -0700</bug_when>
    <thetext>Committed r259148: &lt;https://trac.webkit.org/changeset/259148&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394771.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394680</attachid>
            <date>2020-03-26 16:59:50 -0700</date>
            <delta_ts>2020-03-27 17:13:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209630-20200326165949.patch</filename>
            <type>text/plain</type>
            <size>7154</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI3NzgyNmEzMzliODdl
MGE4OWFkZjk3MWM4NmE2Yjg2NGFhNzE2Ni4uYzkzYmE5YTgwYWNhMmRjMjE1MjFhZmI0M2JmMGE3
MTNjZmY3MTRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTAzLTI2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI1NjU3
Nyk6IFByZXZpb3VzIHBhZ2UgY29udGludWVzIHRvIGRpc3BsYXkgYWZ0ZXIgbmF2aWdhdGluZyB0
byBtZWRpYSBkb2N1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5NjMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDYwOTMxOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3YXkgZm9y
IG5vbi1IVE1MIGRvY3VtZW50cyB0byBzaWduYWwgdmlzdWFsbHkgbm9uLWVtcHR5IHN0YXRlIChm
b3IgZXhhbXBsZSB3aGVuIG1lZGlhIGRvY3VtZW50IGNvbnN0cnVjdHMgdGhlIGNvbnRyb2xzIGZv
ciB0aGUgbWVkaWEgY29udGVudC4pCisKKyAgICAgICAgKiBodG1sL0ZUUERpcmVjdG9yeURvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjph
cHBlbmRFbnRyeSk6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKToK
KyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgICog
cGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXNldExh
eW91dE1pbGVzdG9uZXMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpjaGVja0FuZERp
c3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3Lmg6CisKIDIwMjAtMDMtMjQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIENsZWFuIHRpbWVsaW5lIGhlYWRlcnMgdXAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKaW5kZXggZjU2
MzA3NDlmNGUyZmE4YmZmZmQzNzEzYTVmNmYxMTljYjYwYjJmYy4uZjYyODVjNjNlZWU2ZTQ4OTdm
NWM5ZGQ5ZDk5MDIyYzNjOGFhZWRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
VFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJl
Y3RvcnlEb2N1bWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShGVFBESVIp
CiAKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBh
cnNlci5oIgpAQCAtMTM1LDYgKzEzNiw4IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJz
ZXI6OmFwcGVuZEVudHJ5KGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluCiAgICAg
c2l6ZUVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgc2l6ZSkpOwog
ICAgIHNpemVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6Y2xhc3NBdHRyLCBBdG9tU3RyaW5nKCJmdHBEaXJlY3RvcnlGaWxlU2l6ZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hp
bGQoc2l6ZUVsZW1lbnQpOworICAgIGlmIChkb2N1bWVudC52aWV3KCkpCisgICAgICAgIGRvY3Vt
ZW50LnZpZXcoKS0+c2V0RG9jdW1lbnRIYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgp
OwogfQogCiBSZWY8RWxlbWVudD4gRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZVRE
Rm9yRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RG9jdW1lbnQuY3BwCmluZGV4IDA0ZGU3NTEzY2FjNDgyYmY3NjBiNGU0YzZmZmEwMmVjMmU1YjY3
ZjcuLjcyNmNlMWZmOGM5NTA3MmJjY2Q1NDkwMDEwNmUyYTZlMTQyNmY2YWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApAQCAtMTMzLDYgKzEzMyw4IEBAIHZvaWQgTWVkaWFE
b2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogCiAgICAgZnJhbWUtPmxv
YWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnNldE1haW5SZXNvdXJjZURhdGFCdWZmZXJp
bmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1BvbGljeTo6RG9Ob3RCdWZmZXJEYXRhKTsKICAgICBmcmFt
ZS0+bG9hZGVyKCkuc2V0T3V0Z29pbmdSZWZlcnJlcihkb2N1bWVudC5jb21wbGV0ZVVSTChtX291
dGdvaW5nUmVmZXJyZXIpKTsKKyAgICBpZiAoZG9jdW1lbnQudmlldygpKQorICAgICAgICBkb2N1
bWVudC52aWV3KCktPnNldERvY3VtZW50SGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQo
KTsKIH0KIAogdm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjphcHBlbmRCeXRlcyhEb2N1bWVudFdy
aXRlciYsIGNvbnN0IGNoYXIqLCBzaXplX3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1l
bnQuY3BwCmluZGV4IDJjNGY3NmEyNWMyNzMzNGIxOTllN2JkNmU0MDNmYjMzMTdmMTJmNzAuLmFm
Y2JmMjhiNDVlOGFjYmQ3MDM3MmQzMjVmOWM5NTE2MDFmYmE3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xMDgsNiArMTA4LDggQEAgdm9pZCBQbHVnaW5Eb2N1
bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGRvY3VtZW50LnNldFBs
dWdpbkVsZW1lbnQoKm1fZW1iZWRFbGVtZW50KTsKIAogICAgIGJvZHktPmFwcGVuZENoaWxkKGVt
YmVkRWxlbWVudCk7CisgICAgaWYgKGRvY3VtZW50LnZpZXcoKSkKKyAgICAgICAgZG9jdW1lbnQu
dmlldygpLT5zZXREb2N1bWVudEhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50KCk7CiB9
CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVy
JiwgY29uc3QgY2hhciosIHNpemVfdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA0
NTAyMzkzODc1NjRlMWYwNzNmMzhjMzM0YzRkN2JmZjk3ZDAwZmU2Li5jYWIyMTY4MzRhYjY0YWRi
OTJjYWY1MGE4ZjczMDM0MTU3Y2EzYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJNZWRpYURvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNs
dWRlICJPdmVyZmxvd0V2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjczLDYgKzI3NCw3
IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXNldExheW91dE1pbGVzdG9uZXMoKQogICAgIG1fdmlzdWFs
bHlOb25FbXB0eUNoYXJhY3RlckNvdW50ID0gMDsKICAgICBtX3Zpc3VhbGx5Tm9uRW1wdHlQaXhl
bENvdW50ID0gMDsKICAgICBtX3RleHRSZW5kZXJlckNvdW50Rm9yVmlzdWFsbHlOb25FbXB0eUNo
YXJhY3RlcnMgPSAwOworICAgIG1fZG9jdW1lbnRIYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29u
dGVudCA9IGZhbHNlOwogfQogCiB2b2lkIEZyYW1lVmlldzo6cmVtb3ZlRnJvbUFYT2JqZWN0Q2Fj
aGUoKQpAQCAtNDM3OCwxNSArNDM4MCwxOSBAQCB2b2lkIEZyYW1lVmlldzo6Y2hlY2tBbmREaXNw
YXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKCkKIHsKICAgICBhdXRvIHF1YWxpZmll
c0FzVmlzdWFsbHlOb25FbXB0eSA9IFsmXSB7CiAgICAgICAgIC8vIE5vIGNvbnRlbnQgeWV0Lgot
ICAgICAgICBFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCktPmRv
Y3VtZW50RWxlbWVudCgpOworICAgICAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZSgpLmRvY3Vt
ZW50KCk7CisgICAgICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudCgpOwogICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCB8fCAhZG9jdW1lbnRFbGVt
ZW50LT5yZW5kZXJlcigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgICAgIGlm
IChtX2RvY3VtZW50SGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKwogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFsc28gaWdub3Jl
IHJlbmRlcmVycyB3aXRoIG5vbi1maW5hbCBzdHlsZS4KICAgICAgICAgaWYgKGZyYW1lKCkuZG9j
dW1lbnQoKS0+c3R5bGVTY29wZSgpLmhhc1BlbmRpbmdTaGVldHNCZWZvcmVCb2R5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgYXV0byBmaW5pc2hlZFBhcnNpbmdNYWlu
RG9jdW1lbnQgPSBmcmFtZSgpLmxvYWRlcigpLnN0YXRlTWFjaGluZSgpLmNvbW1pdHRlZEZpcnN0
UmVhbERvY3VtZW50TG9hZCgpICYmIChmcmFtZSgpLmRvY3VtZW50KCktPnJlYWR5U3RhdGUoKSA9
PSBEb2N1bWVudDo6SW50ZXJhY3RpdmUgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5yZWFkeVN0YXRl
KCkgPT0gRG9jdW1lbnQ6OkNvbXBsZXRlKTsKKyAgICAgICAgYXV0byBmaW5pc2hlZFBhcnNpbmdN
YWluRG9jdW1lbnQgPSBmcmFtZSgpLmxvYWRlcigpLnN0YXRlTWFjaGluZSgpLmNvbW1pdHRlZEZp
cnN0UmVhbERvY3VtZW50TG9hZCgpICYmIChkb2N1bWVudC5yZWFkeVN0YXRlKCkgPT0gRG9jdW1l
bnQ6OkludGVyYWN0aXZlIHx8IGRvY3VtZW50LnJlYWR5U3RhdGUoKSA9PSBEb2N1bWVudDo6Q29t
cGxldGUpOwogICAgICAgICAvLyBFbnN1cmUgdGhhdCB3ZSBhbHdheXMgZmlyZSB2aXN1YWxseSBu
b24tZW1wdHkgbWlsZXN0b25lIGV2ZW50dWFsbHkuCiAgICAgICAgIGlmIChmaW5pc2hlZFBhcnNp
bmdNYWluRG9jdW1lbnQgJiYgZnJhbWUoKS5sb2FkZXIoKS5pc0NvbXBsZXRlKCkpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ0MDIsNyArNDQwOCw3IEBAIHZvaWQgRnJhbWVWaWV3Ojpj
aGVja0FuZERpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKQogICAgICAgICBp
ZiAoIWlzVmlzaWJsZShkb2N1bWVudEVsZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgICAgIGlmICghaXNWaXNpYmxlKGZyYW1lKCkuZG9jdW1lbnQoKS0+Ym9keSgpKSkK
KyAgICAgICAgaWYgKCFpc1Zpc2libGUoZG9jdW1lbnQuYm9keSgpKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICAvLyBUaGUgZmlyc3QgZmV3IGh1bmRyZWQgY2hhcmFjdGVy
cyByYXJlbHkgY29udGFpbiB0aGUgaW50ZXJlc3RpbmcgY29udGVudCBvZiB0aGUgcGFnZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGMyMmU0ZTU4YzE0NDhhMmRmYzY2Zjk0NDBiNDE3MmQ3
ODIyNGU2MzAuLjQ3NWIyMWFmNDQ4ZWNjMzRiMDQzZjllMTRlMWU2ZmQ2ZDE4NzM0YmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMzk2LDYgKzM5Niw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eUNoYXJhY3RlckNvdW50KGNvbnN0IFN0cmluZyYp
OwogICAgIHZvaWQgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoY29uc3QgSW50
U2l6ZSYpOworICAgIHZvaWQgc2V0RG9jdW1lbnRIYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29u
dGVudCgpIHsgbV9kb2N1bWVudEhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50ID0gdHJ1
ZTsgfQogICAgIGJvb2wgaXNWaXN1YWxseU5vbkVtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5OyB9CiAgICAgdm9pZCBjaGVja0FuZERpc3Bh
dGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsKIApAQCAtODYzLDYgKzg2NCw4IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV92aXN1YWxseU5vbkVtcHR5Q2hhcmFjdGVyQ291bnQg
eyAwIH07CiAgICAgdW5zaWduZWQgbV92aXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudCB7IDAgfTsK
ICAgICB1bnNpZ25lZCBtX3RleHRSZW5kZXJlckNvdW50Rm9yVmlzdWFsbHlOb25FbXB0eUNoYXJh
Y3RlcnMgeyAwIH07CisgICAgYm9vbCBtX2RvY3VtZW50SGFzVmlzdWFsbHlOb25FbXB0eUN1c3Rv
bUNvbnRlbnQgeyBmYWxzZSB9OworCiAgICAgaW50IG1faGVhZGVySGVpZ2h0IHsgMCB9OwogICAg
IGludCBtX2Zvb3RlckhlaWdodCB7IDAgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394771</attachid>
            <date>2020-03-27 17:13:27 -0700</date>
            <delta_ts>2020-03-27 17:45:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209630-20200327171326.patch</filename>
            <type>text/plain</type>
            <size>6173</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI3NzgyNmEzMzliODdl
MGE4OWFkZjk3MWM4NmE2Yjg2NGFhNzE2Ni4uZjcxMzkxYTNlZDc3OTlmY2YxZjA5Y2RjNGRjYmI0
ZjU4NzQwZDM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTAzLTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI1NjU3
Nyk6IFByZXZpb3VzIHBhZ2UgY29udGludWVzIHRvIGRpc3BsYXkgYWZ0ZXIgbmF2aWdhdGluZyB0
byBtZWRpYSBkb2N1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5NjMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDYwOTMxOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIGEgd2F5IGZvciBu
b24tSFRNTCBkb2N1bWVudHMgdG8gc2lnbmFsIHZpc3VhbGx5IG5vbi1lbXB0eSBzdGF0ZSAoZm9y
IGV4YW1wbGUgd2hlbiBtZWRpYSBkb2N1bWVudCBjb25zdHJ1Y3RzIHRoZSBjb250cm9scyBmb3Ig
dGhlIG1lZGlhIGNvbnRlbnQuKQorCisgICAgICAgICogaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6YXBw
ZW5kRW50cnkpOgorICAgICAgICAqIGh0bWwvTWVkaWFEb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6Cisg
ICAgICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOgorICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVzZXRMYXlv
dXRNaWxlc3RvbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2hlY2tBbmREaXNw
YXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5oOgorCiAyMDIwLTAzLTI0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+
CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBDbGVhbiB0aW1lbGluZSBoZWFkZXJzIHVwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IGFjM2U5MTllMjg3MzI4YjM0Y2UwNmNmOWRlZjg0YTA3NzY0
MTExMTguLjRmNmUwODk2YTk2YmIxM2M0MmMyNzU4OTg1NmYwZTdkNjJlMzU2NzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0xNTY3LDYgKzE1NjcsOSBAQCBwdWJsaWM6CiAKICAgICBMYXp5TG9h
ZEltYWdlT2JzZXJ2ZXImIGxhenlMb2FkSW1hZ2VPYnNlcnZlcigpOwogCisgICAgdm9pZCBzZXRI
YXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIHsgbV9oYXNWaXN1YWxseU5vbkVtcHR5
Q3VzdG9tQ29udGVudCA9IHRydWU7IH0KKyAgICBib29sIGhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0
b21Db250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29u
dGVudDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRo
ZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAgIERvY3Vt
ZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcywg
dW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKQEAgLTIwODksNiArMjA5Miw3IEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICBib29sIG1faGFzU3RhcnRlZEFwcGxl
UGF5U2Vzc2lvbiB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICBib29sIG1faGFzVmlzdWFsbHlOb25F
bXB0eUN1c3RvbUNvbnRlbnQgeyBmYWxzZSB9OwogCiAgICAgUmVmPFVuZG9NYW5hZ2VyPiBtX3Vu
ZG9NYW5hZ2VyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IGY1NjMwNzQ5ZjRlMmZhOGJmZmZkMzcx
M2E1ZjZmMTE5Y2I2MGIyZmMuLmRjZjNiZjQ0ODY1YjA0Y2M4MjdmNzEzM2VkZDhlMTkxZmFiYWJk
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBA
IC0xMzUsNiArMTM1LDcgQEAgdm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6YXBwZW5k
RW50cnkoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW4KICAgICBzaXplRWxlbWVu
dC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBzaXplKSk7CiAgICAgc2l6ZUVs
ZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFz
c0F0dHIsIEF0b21TdHJpbmcoImZ0cERpcmVjdG9yeUZpbGVTaXplIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChzaXplRWxl
bWVudCk7CisgICAgZG9jdW1lbnQuc2V0SGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQo
KTsKIH0KIAogUmVmPEVsZW1lbnQ+IEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVU
REZvckZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YURvY3VtZW50LmNwcAppbmRleCAwNGRlNzUxM2NhYzQ4MmJmNzYwYjRlNGM2ZmZhMDJlYzJlNWI2
N2Y3Li5jZTQxZjBiZjcyMjY0OTU0NzdjZmY0YTliYjg5NDNkYmM0ZjYwZmY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTEyNiw2ICsxMjYsNyBAQCB2b2lkIE1lZGlh
RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICB9CiAKICAgICBi
b2R5LT5hcHBlbmRDaGlsZCh2aWRlb0VsZW1lbnQpOworICAgIGRvY3VtZW50LnNldEhhc1Zpc3Vh
bGx5Tm9uRW1wdHlDdXN0b21Db250ZW50KCk7CiAKICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0g
ZG9jdW1lbnQuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdp
bkRvY3VtZW50LmNwcAppbmRleCAyYzRmNzZhMjVjMjczMzRiMTk5ZTdiZDZlNDAzZmIzMzE3ZjEy
ZjcwLi42NjMwN2Q5OTk0NjhhOWQxNWU0NzA0YWIwNTlhYmJiNDM5MjAwNWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcApAQCAtMTA4LDYgKzEwOCw3IEBAIHZvaWQgUGx1
Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBkb2N1bWVu
dC5zZXRQbHVnaW5FbGVtZW50KCptX2VtYmVkRWxlbWVudCk7CiAKICAgICBib2R5LT5hcHBlbmRD
aGlsZChlbWJlZEVsZW1lbnQpOworICAgIGRvY3VtZW50LnNldEhhc1Zpc3VhbGx5Tm9uRW1wdHlD
dXN0b21Db250ZW50KCk7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5
dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAppbmRleCA0NTAyMzkzODc1NjRlMWYwNzNmMzhjMzM0YzRkN2JmZjk3ZDAwZmU2
Li41MmVkNDg2NTgxMTNjYjUzNmU4YjJhOTg3OGU1NjUwYzg3MTg0YjM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCkBAIC00Mzc4LDE1ICs0Mzc4LDE5IEBAIHZvaWQgRnJhbWVWaWV3Ojpj
aGVja0FuZERpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKQogewogICAgIGF1
dG8gcXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5ID0gWyZdIHsKICAgICAgICAgLy8gTm8gY29u
dGVudCB5ZXQuCi0gICAgICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGZyYW1lKCkuZG9j
dW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7CisgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gKmZy
YW1lKCkuZG9jdW1lbnQoKTsKKyAgICAgICAgYXV0byogZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50KCk7CiAgICAgICAgIGlmICghZG9jdW1lbnRFbGVtZW50IHx8ICFk
b2N1bWVudEVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICAgICAgaWYgKGRvY3VtZW50Lmhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50KCkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGFsc28gaWdub3JlIHJlbmRlcmVycyB3aXRoIG5vbi1maW5hbCBzdHlsZS4KLSAgICAgICAgaWYg
KGZyYW1lKCkuZG9jdW1lbnQoKS0+c3R5bGVTY29wZSgpLmhhc1BlbmRpbmdTaGVldHNCZWZvcmVC
b2R5KCkpCisgICAgICAgIGlmIChkb2N1bWVudC5zdHlsZVNjb3BlKCkuaGFzUGVuZGluZ1NoZWV0
c0JlZm9yZUJvZHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBhdXRv
IGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCA9IGZyYW1lKCkubG9hZGVyKCkuc3RhdGVNYWNo
aW5lKCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkgJiYgKGZyYW1lKCkuZG9jdW1l
bnQoKS0+cmVhZHlTdGF0ZSgpID09IERvY3VtZW50OjpJbnRlcmFjdGl2ZSB8fCBmcmFtZSgpLmRv
Y3VtZW50KCktPnJlYWR5U3RhdGUoKSA9PSBEb2N1bWVudDo6Q29tcGxldGUpOworICAgICAgICBh
dXRvIGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCA9IGZyYW1lKCkubG9hZGVyKCkuc3RhdGVN
YWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkgJiYgKGRvY3VtZW50LnJl
YWR5U3RhdGUoKSA9PSBEb2N1bWVudDo6SW50ZXJhY3RpdmUgfHwgZG9jdW1lbnQucmVhZHlTdGF0
ZSgpID09IERvY3VtZW50OjpDb21wbGV0ZSk7CiAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHdlIGFs
d2F5cyBmaXJlIHZpc3VhbGx5IG5vbi1lbXB0eSBtaWxlc3RvbmUgZXZlbnR1YWxseS4KICAgICAg
ICAgaWYgKGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCAmJiBmcmFtZSgpLmxvYWRlcigpLmlz
Q29tcGxldGUoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDQwMiw3ICs0NDA2LDcg
QEAgdm9pZCBGcmFtZVZpZXc6OmNoZWNrQW5kRGlzcGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1w
dHlTdGF0ZSgpCiAgICAgICAgIGlmICghaXNWaXNpYmxlKGRvY3VtZW50RWxlbWVudCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKCFpc1Zpc2libGUoZnJhbWUoKS5k
b2N1bWVudCgpLT5ib2R5KCkpKQorICAgICAgICBpZiAoIWlzVmlzaWJsZShkb2N1bWVudC5ib2R5
KCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8vIFRoZSBmaXJzdCBm
ZXcgaHVuZHJlZCBjaGFyYWN0ZXJzIHJhcmVseSBjb250YWluIHRoZSBpbnRlcmVzdGluZyBjb250
ZW50IG9mIHRoZSBwYWdlLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>