<?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>198814</bug_id>
          
          <creation_ts>2019-06-12 16:57:15 -0700</creation_ts>
          <short_desc>WebResourceLoadStatisticsStore should not use its network session if invalidated</short_desc>
          <delta_ts>2019-06-14 16:05:39 -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>Page Loading</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1544285</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-12 16:57:15 -0700</bug_when>
    <thetext>WebResourceLoadStatisticsStore should not use its network session if invalidated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544293</commentid>
    <comment_count>1</comment_count>
      <attachid>372002</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-12 17:09:34 -0700</bug_when>
    <thetext>Created attachment 372002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544295</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-12 17:10:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/49608908&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544296</commentid>
    <comment_count>3</comment_count>
      <attachid>372002</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-06-12 17:16:51 -0700</bug_when>
    <thetext>Comment on attachment 372002
Patch

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

&gt; Source/WebKit/ChangeLog:4
&gt; +        WebResourceLoadStatisticsStore should not use its network session if invalidated
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=198814

What kind of bug does this fix? Can we test it?

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:1027
&gt; +void WebResourceLoadStatisticsStore::invalidateAndCancel()
&gt; +{
&gt; +    m_networkSession = nullptr;
&gt; +}

Is the purpose here to avoid further updates, or to guard against use after free? If use after free, I&apos;d suggest WeakPtr instead.

&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:104
&gt; +    if (m_resourceLoadStatistics)
&gt; +        m_resourceLoadStatistics-&gt;invalidateAndCancel();

For whatever updates we were receiving before this patch, can we add assertions that we aren&apos;t updated after being invalidated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544303</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-12 17:30:44 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #3)
&gt; Comment on attachment 372002 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=372002&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:4
&gt; &gt; +        WebResourceLoadStatisticsStore should not use its network session if invalidated
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=198814
&gt; 
&gt; What kind of bug does this fix? Can we test it?

The issue as I understand it is the following:
- NetworkSession is invalidated so is removed from the network process map. Its storage session is also removed.
- NetworkSession stays alive as it is refed by other objects.
- Its WebResourceLoadStatisticsStore is still processing some tasks, for instance in a background thread and will hop back to the main thread
- When in the main thread, WebResourceLoadStatisticsStore tries to get its storage session from its NetworkSession. Since NetworkSession is invalidated, there is no more a storage session and we are hitting a RELEASE_ASSERT.

Testing this is probably inherently racy. I think the idea would be to:
1. Create a network session ID
2. Trigger some WebResourceLoadStatisticsStore background processing
3. Delete the network session ID as soon as possible.
Not sure about how to trigger step 2, probably Brent or John would know.

&gt; &gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:1027
&gt; &gt; +void WebResourceLoadStatisticsStore::invalidateAndCancel()
&gt; &gt; +{
&gt; &gt; +    m_networkSession = nullptr;
&gt; &gt; +}
&gt; 
&gt; Is the purpose here to avoid further updates, or to guard against use after
&gt; free? If use after free, I&apos;d suggest WeakPtr instead.

The idea is to avoid further updates, given its storage session is gone.

m_networkSession is already a WeakPtr. Although this patch makes WeakPtr unnecessary, it seems good to keep it as a WeakPtr instead of using a raw pointer.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:104
&gt; &gt; +    if (m_resourceLoadStatistics)
&gt; &gt; +        m_resourceLoadStatistics-&gt;invalidateAndCancel();
&gt; 
&gt; For whatever updates we were receiving before this patch, can we add
&gt; assertions that we aren&apos;t updated after being invalidated?

Good idea. While I do not think this can happen now, this could happen in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544308</commentid>
    <comment_count>5</comment_count>
      <attachid>372009</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-12 17:40:47 -0700</bug_when>
    <thetext>Created attachment 372009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544312</commentid>
    <comment_count>6</comment_count>
      <attachid>372009</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-06-12 17:53:55 -0700</bug_when>
    <thetext>Comment on attachment 372009
Patch

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

One way to test this would be to schedule a task with a fixed timeout, invalidate, and make sure we exit gracefully. It could be a dummy task for testing that uses the ITP background thread logic.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:1024
&gt; +void WebResourceLoadStatisticsStore::invalidateAndCancel()

&quot;AndCancel&quot; sounds a little too open ended. Cancel what? Could we go with something like &quot;AndCancelBackgroundTasks&quot;?

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:1026
&gt; +    m_networkSession = nullptr;

Setting this to null automatically cancels everything?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544636</commentid>
    <comment_count>7</comment_count>
      <attachid>372009</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-06-13 17:15:34 -0700</bug_when>
    <thetext>Comment on attachment 372009
Patch

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

I think this looks like a reasonable change. However, It&apos;s not marked for review, so I haven&apos;t r+&apos;d it.

&gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:1026
&gt;&gt; +    m_networkSession = nullptr;
&gt; 
&gt; Setting this to null automatically cancels everything?

m_networkSession is just a WeakPtr, so I don&apos;t think anything will get cancelled. However, it will prevent all of the methods in this class to return early without doing work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544637</commentid>
    <comment_count>8</comment_count>
      <attachid>372002</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-06-13 17:17:20 -0700</bug_when>
    <thetext>Comment on attachment 372002
Patch

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

&gt;&gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:1027
&gt;&gt;&gt; +}
&gt;&gt; 
&gt;&gt; Is the purpose here to avoid further updates, or to guard against use after free? If use after free, I&apos;d suggest WeakPtr instead.
&gt; 
&gt; The idea is to avoid further updates, given its storage session is gone.
&gt; 
&gt; m_networkSession is already a WeakPtr. Although this patch makes WeakPtr unnecessary, it seems good to keep it as a WeakPtr instead of using a raw pointer.

Agreed. Nulling it out seems fine. If we happen to know that m_networkSession is soon to be invalid, clearing it ourselves seems like a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544639</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-13 17:19:06 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #7)
&gt; Comment on attachment 372009 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=372009&amp;action=review
&gt; 
&gt; I think this looks like a reasonable change. However, It&apos;s not marked for
&gt; review, so I haven&apos;t r+&apos;d it.

I plan to write a test that will (flakily) cover this case.

&gt; &gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:1026
&gt; &gt;&gt; +    m_networkSession = nullptr;
&gt; &gt; 
&gt; &gt; Setting this to null automatically cancels everything?
&gt; 
&gt; m_networkSession is just a WeakPtr, so I don&apos;t think anything will get
&gt; cancelled. However, it will prevent all of the methods in this class to
&gt; return early without doing work.

Right, it is cancelling all actions related to NetworkSession/NetworkSessionStorage, all IPC...
It is not cancelling postTask/completion handler things.
It is also not cancelling actions related to memory/persistent store which as I see it is probably fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544804</commentid>
    <comment_count>10</comment_count>
      <attachid>372135</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-14 12:33:32 -0700</bug_when>
    <thetext>Created attachment 372135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544859</commentid>
    <comment_count>11</comment_count>
      <attachid>372135</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-06-14 14:59:26 -0700</bug_when>
    <thetext>Comment on attachment 372135
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544882</commentid>
    <comment_count>12</comment_count>
      <attachid>372135</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-14 16:05:37 -0700</bug_when>
    <thetext>Comment on attachment 372135
Patch

Clearing flags on attachment: 372135

Committed r246449: &lt;https://trac.webkit.org/changeset/246449&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544883</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-14 16:05:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372002</attachid>
            <date>2019-06-12 17:09:34 -0700</date>
            <delta_ts>2019-06-12 17:40:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198814-20190612170934.patch</filename>
            <type>text/plain</type>
            <size>3583</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU1Y2ZlMTY5YTJhOWYxMDli
MjUzMDE4ODI1ZGYxYzNmM2NlNzVmYWUuLmI4OGY3Zjk4MGQ1ODA0NGJhNzgzYzM1ZjU5MDNiMzhk
NWJjNWUzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDYtMTIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSBzaG91bGQgbm90IHVzZSBpdHMgbmV0d29yayBzZXNzaW9uIGlmIGludmFsaWRh
dGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg4
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWxs
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB0aGF0IGl0cyBuZXR3b3JrIHNlc3Npb24g
aXMgaW52YWxpZGF0ZWQuCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB3
aWxsIHRoZW4gY2xlYXIgaXRzIHJlZmVyZW5jZSB0byB0aGUgbmV0d29yayBzZXNzaW9uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmludmFsaWRhdGVBbmRDYW5jZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbjo6aW52YWxpZGF0ZUFuZENhbmNlbCk6CisKIDIwMTktMDYtMTIgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBOU1VSTFNlc3Npb24gZm9yIFdl
YlNvY2tldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAppbmRleCA5MTRkMzViZGU4YTAwM2RhZTBkNjFiMDY0OTFhMDhiNzIwYzBiZGFhLi5iNjY4ZGYy
MzA3NWJhMTcyOGI3ZjRiNmI1M2IyMWFiOWJmNzhiM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMTAyMSw2ICsxMDIxLDExIEBAIE5l
dHdvcmtTZXNzaW9uKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om5ldHdvcmtTZXNz
aW9uKCkKICAgICByZXR1cm4gbV9uZXR3b3JrU2Vzc2lvbi5nZXQoKTsKIH0KIAordm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmludmFsaWRhdGVBbmRDYW5jZWwoKQoreworICAg
IG1fbmV0d29ya1Nlc3Npb24gPSBudWxscHRyOworfQorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0
aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9t
YWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPiYmIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9y
LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFz
aFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oCmluZGV4IGE4YzIzZTA5YjNmNzI3ODQ4YzExYTc3YTdlZTVmMTkyNTU3
M2Y1YjMuLmYxOWE3M2Q2ZmJjMmVhMjU4YmM5OThlYWQ1ZDIyNzVjMmZjYTA5YTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTE3Niw2ICsxNzYs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vz
c2VkKCk7CiAKICAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24oKTsKKyAgICB2b2lk
IGludmFsaWRhdGVBbmRDYW5jZWwoKTsKIAogICAgIHZvaWQgc2VuZERpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgdW5zaWduZWQgdmFsdWUsIHVuc2lnbmVkIHNpZ0RpZ2l0cywgV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlKSBjb25zdDsKICAgICB2b2lkIG5vdGlmeVBhZ2VTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNo
ZWQodW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFsUHJldmFs
ZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbnMpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAzNTQ0ZmE0Y2M1ZjgzZTk3NDRmNGRmZjM2NDE1
ZTJjYWE0MmE0NTllLi4xZTE4NDBlOWQ2ZTNhYjI0YmE4OTQ0MmU0Y2E4NDliNTJmYWRlNThlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApA
QCAtMTAwLDYgKzEwMCw4IEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OmludmFsaWRhdGVBbmRDYW5j
ZWwoKQogewogICAgIGZvciAoYXV0byogdGFzayA6IG1fZGF0YVRhc2tTZXQpCiAgICAgICAgIHRh
c2stPmludmFsaWRhdGVBbmRDYW5jZWwoKTsKKyAgICBpZiAobV9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKQorICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPmludmFsaWRhdGVBbmRDYW5j
ZWwoKTsKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372009</attachid>
            <date>2019-06-12 17:40:47 -0700</date>
            <delta_ts>2019-06-14 12:33:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198814-20190612174047.patch</filename>
            <type>text/plain</type>
            <size>4389</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU1Y2ZlMTY5YTJhOWYxMDli
MjUzMDE4ODI1ZGYxYzNmM2NlNzVmYWUuLmI4OGY3Zjk4MGQ1ODA0NGJhNzgzYzM1ZjU5MDNiMzhk
NWJjNWUzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDYtMTIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSBzaG91bGQgbm90IHVzZSBpdHMgbmV0d29yayBzZXNzaW9uIGlmIGludmFsaWRh
dGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg4
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWxs
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB0aGF0IGl0cyBuZXR3b3JrIHNlc3Npb24g
aXMgaW52YWxpZGF0ZWQuCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB3
aWxsIHRoZW4gY2xlYXIgaXRzIHJlZmVyZW5jZSB0byB0aGUgbmV0d29yayBzZXNzaW9uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmludmFsaWRhdGVBbmRDYW5jZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbjo6aW52YWxpZGF0ZUFuZENhbmNlbCk6CisKIDIwMTktMDYtMTIgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBOU1VSTFNlc3Npb24gZm9yIFdl
YlNvY2tldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAppbmRleCA5MTRkMzViZGU4YTAwM2RhZTBkNjFiMDY0OTFhMDhiNzIwYzBiZGFhLi5iNjY4ZGYy
MzA3NWJhMTcyOGI3ZjRiNmI1M2IyMWFiOWJmNzhiM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMTAyMSw2ICsxMDIxLDExIEBAIE5l
dHdvcmtTZXNzaW9uKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om5ldHdvcmtTZXNz
aW9uKCkKICAgICByZXR1cm4gbV9uZXR3b3JrU2Vzc2lvbi5nZXQoKTsKIH0KIAordm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmludmFsaWRhdGVBbmRDYW5jZWwoKQoreworICAg
IG1fbmV0d29ya1Nlc3Npb24gPSBudWxscHRyOworfQorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0
aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9t
YWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPiYmIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9y
LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFz
aFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oCmluZGV4IGE4YzIzZTA5YjNmNzI3ODQ4YzExYTc3YTdlZTVmMTkyNTU3
M2Y1YjMuLmYxOWE3M2Q2ZmJjMmVhMjU4YmM5OThlYWQ1ZDIyNzVjMmZjYTA5YTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTE3Niw2ICsxNzYs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vz
c2VkKCk7CiAKICAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24oKTsKKyAgICB2b2lk
IGludmFsaWRhdGVBbmRDYW5jZWwoKTsKIAogICAgIHZvaWQgc2VuZERpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgdW5zaWduZWQgdmFsdWUsIHVuc2lnbmVkIHNpZ0RpZ2l0cywgV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlKSBjb25zdDsKICAgICB2b2lkIG5vdGlmeVBhZ2VTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNo
ZWQodW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFsUHJldmFs
ZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbnMpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAzNTQ0ZmE0Y2M1ZjgzZTk3NDRmNGRmZjM2NDE1
ZTJjYWE0MmE0NTllLi44ZDQ2MjZlZGVjYWY0ZjlmMjU5NmU0NjdjNjM0MmUyODAxNjU5ODgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApA
QCAtMTAwLDExICsxMDAsMTkgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6aW52YWxpZGF0ZUFuZENh
bmNlbCgpCiB7CiAgICAgZm9yIChhdXRvKiB0YXNrIDogbV9kYXRhVGFza1NldCkKICAgICAgICAg
dGFzay0+aW52YWxpZGF0ZUFuZENhbmNlbCgpOworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisgICAgaWYgKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcykKKyAgICAgICAgbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pbnZhbGlkYXRlQW5kQ2FuY2VsKCk7CisjZW5kaWYKKyNp
ZiAhQVNTRVJUX0RJU0FCTEVECisgICAgbV9pc0ludmFsaWRhdGVkID0gdHJ1ZTsKKyNlbmRpZgog
fQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIHZvaWQgTmV0d29ya1Nl
c3Npb246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlKQogewor
ICAgIEFTU0VSVCghbV9pc0ludmFsaWRhdGVkKTsKICAgICBpZiAoIWVuYWJsZSkgewogICAgICAg
ICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggZjlk
MjJhYjBhZWI4YTdiOGYxZmY3YTg2YzI2NmYxZDNkOWJhNzRlOS4uZDk3Nzc1ZmU2YjMxOWJiNDhi
MzAyZTcyMTgxMTg3MzliYzliZmZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMTI3LDYgKzEyNyw5IEBAIHByb3RlY3RlZDoKICAgICBQ
cmVmZXRjaENhY2hlIG1fcHJlZmV0Y2hDYWNoZTsKIAogICAgIFJlZjxTdG9yYWdlTWFuYWdlcj4g
bV9zdG9yYWdlTWFuYWdlcjsKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2lzSW52
YWxpZGF0ZWQgeyBmYWxzZSB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372135</attachid>
            <date>2019-06-14 12:33:32 -0700</date>
            <delta_ts>2019-06-14 16:05:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198814-20190614123331.patch</filename>
            <type>text/plain</type>
            <size>10708</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlMTAyZmQ2ZjUyN2M4OTdm
ZWU2YjRlZTRmNmRhMWExNjE4N2U3MTIuLjU0NzVhZTU2MDRhY2JlYmJiNzkwNzJkODc1MjgwY2Fl
NGQ4OTc4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDYtMTQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSBzaG91bGQgbm90IHVzZSBpdHMgbmV0d29yayBzZXNzaW9uIGlmIGludmFsaWRh
dGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg4
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWxs
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB0aGF0IGl0cyBuZXR3b3JrIHNlc3Npb24g
aXMgaW52YWxpZGF0ZWQuCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB3
aWxsIHRoZW4gY2xlYXIgaXRzIHJlZmVyZW5jZSB0byB0aGUgbmV0d29yayBzZXNzaW9uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6OnVwZGF0ZUNvb2tpZUJsb2NraW5nKToKKyAgICAgICAgQWRkZWQgZm9yIHRl
c3QgcHVycG9zZXMgdG8gdHJpZ2dlciBmdXJ0aGVyIGNvb2tpZSBwcm9jZXNzaW5nLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjppbnZhbGlkYXRlQW5kQ2FuY2VsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Np
b246OmludmFsaWRhdGVBbmRDYW5jZWwpOgorCiAyMDE5LTA2LTEzICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNlbGVjdGlvbiBoYW5nIGlu
IE1haWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZS5jcHAKaW5kZXggYTVmMjYyNGU0MzM0Y2U5MDM5ZmFhNWUyZDFlNWM0MWZkMGQwODdjNi4uYjhl
ZTA5NTc4YTMwNjRlZThlNjNmZmEyNzdiYzUxODJjODcyMGMyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTc1OCw3ICs3NTgs
NyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6dXBkYXRlQ29va2ll
QmxvY2tpbmcoQ29tcGxldGlvbkhhbmRsZXI8dgogICAgICAgICAgICAgZG9tYWluc1RvQmxvY2su
YXBwZW5kKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICB9CiAKLSAg
ICBpZiAoZG9tYWluc1RvQmxvY2suaXNFbXB0eSgpKSB7CisgICAgaWYgKGRvbWFpbnNUb0Jsb2Nr
LmlzRW1wdHkoKSAmJiAhZGVidWdNb2RlRW5hYmxlZCgpKSB7CiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDkxNGQzNWJkZThhMDAzZGFlMGQ2MWIw
NjQ5MWEwOGI3MjBjMGJkYWEuLmI2NjhkZjIzMDc1YmExNzI4YjdmNGI2YjUzYjIxYWI5YmY3OGIz
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
CkBAIC0xMDIxLDYgKzEwMjEsMTEgQEAgTmV0d29ya1Nlc3Npb24qIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6bmV0d29ya1Nlc3Npb24oKQogICAgIHJldHVybiBtX25ldHdvcmtTZXNz
aW9uLmdldCgpOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aW52
YWxpZGF0ZUFuZENhbmNlbCgpCit7CisgICAgbV9uZXR3b3JrU2Vzc2lvbiA9IG51bGxwdHI7Cit9
CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkZWxldGVXZWJzaXRlRGF0
YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlw
ZXMsIEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+JiYgZG9t
YWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggYThjMjNlMDli
M2Y3Mjc4NDhjMTFhNzdhN2VlNWYxOTI1NTczZjViMy4uZjE5YTczZDZmYmMyZWEyNThiYzk5OGVh
ZDVkMjI3NWMyZmNhMDlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaApAQCAtMTc2LDYgKzE3Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGlmeVJl
c291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKTsKIAogICAgIE5ldHdvcmtTZXNzaW9uKiBu
ZXR3b3JrU2Vzc2lvbigpOworICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpOwogCiAgICAg
dm9pZCBzZW5kRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCB1bnNpZ25lZCB2YWx1ZSwgdW5zaWduZWQgc2ln
RGlnaXRzLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpIGNvbnN0OwogICAgIHZvaWQgbm90aWZ5UGFn
ZVN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hlZCh1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291
cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9u
LCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucykgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDM1
NDRmYTRjYzVmODNlOTc0NGY0ZGZmMzY0MTVlMmNhYTQyYTQ1OWUuLjhkNDYyNmVkZWNhZjRmOWYy
NTk2ZTQ2N2M2MzQyZTI4MDE2NTk4ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0xMDAsMTEgKzEwMCwxOSBAQCB2b2lkIE5ldHdv
cmtTZXNzaW9uOjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkKIHsKICAgICBmb3IgKGF1dG8qIHRhc2sg
OiBtX2RhdGFUYXNrU2V0KQogICAgICAgICB0YXNrLT5pbnZhbGlkYXRlQW5kQ2FuY2VsKCk7Cisj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBpZiAobV9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKQorICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPmludmFsaWRh
dGVBbmRDYW5jZWwoKTsKKyNlbmRpZgorI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBtX2lzSW52
YWxpZGF0ZWQgPSB0cnVlOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoYm9vbCBlbmFibGUpCiB7CisgICAgQVNTRVJUKCFtX2lzSW52YWxpZGF0ZWQpOwog
ICAgIGlmICghZW5hYmxlKSB7CiAgICAgICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG51
bGxwdHI7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAppbmRleCBmOWQyMmFiMGFlYjhhN2I4ZjFmZjdhODZjMjY2ZjFkM2Q5
YmE3NGU5Li5kOTc3NzVmZTZiMzE5YmI0OGIzMDJlNzIxODExODczOWJjOWJmZmE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0xMjcsNiAr
MTI3LDkgQEAgcHJvdGVjdGVkOgogICAgIFByZWZldGNoQ2FjaGUgbV9wcmVmZXRjaENhY2hlOwog
CiAgICAgUmVmPFN0b3JhZ2VNYW5hZ2VyPiBtX3N0b3JhZ2VNYW5hZ2VyOworI2lmICFBU1NFUlRf
RElTQUJMRUQKKyAgICBib29sIG1faXNJbnZhbGlkYXRlZCB7IGZhbHNlIH07CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggMjZhZWEwOWVhNGI0
ZDZkZjNkYTE5NDE5MmE1Mjc3Y2M0N2Q0MGNjZC4uYWY0MjE4ZDgxOTEyOTBhNjEyNTkzNGJlOTI0
NDU0YzJjOGVkYTJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC00ODAsNiArNDgwLDE3IEBAIC0gKHZv
aWQpX2dldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNv
bXBsZXRpb25IYW5kbGVyOih2CiAjZW5kaWYKIH0KIAorLSAodm9pZClfc2NoZWR1bGVDb29raWVC
bG9ja2luZ1VwZGF0ZToodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIF93ZWJzaXRlRGF0YVN0b3JlLT53
ZWJzaXRlRGF0YVN0b3JlKCkuc2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShbY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSgpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKKyNlbHNlCisgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKKyNlbmRpZgorfQorCiAtICh2b2lkKV9zZXRQcmV2YWxlbnREb21haW46KE5TVVJMICop
ZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
cgogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZVByaXZhdGUuaAppbmRleCAyMzdhMzcwNGVjZThiOWMyY2I4YjAxYzI3MGIzOGZiMjYxMmU0Y2Fk
Li5lNTJkOTNmMGZlOWU1NDQ0ZWIyMDY3MjBjZjU3OTQ0YmE5YmRjYThhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmVQcml2YXRlLmgKQEAgLTY3LDYgKzY3LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUlu
dGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKICsgKHZvaWQpX2FsbG93
V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2lucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpLCBpb3MoMTEuMykpOwogLSAoYm9vbClfaGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKKy0gKHZvaWQpX3Nj
aGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGU6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAtICh2b2lkKV9zZXRQcmV2YWxlbnREb21haW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfZ2V0SXNQcmV2
YWxlbnREb21haW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShC
T09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZTNhYTRlOTM3OWI3MGI3NGI3MjZjYTk5MzBjZjM1NGFhZWY5Yjdj
ZS4uNDc0NDFmMzRmOWI2MDYzODhkNmUyNWUxYWVlYTJiZmJmNGU3Yzc4MiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDE5LTA2LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgc2hvdWxkIG5vdCB1c2UgaXRzIG5ldHdvcmsg
c2Vzc2lvbiBpZiBpbnZhbGlkYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk4ODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3MubW06CisgICAgICAgIChURVNUKToKKwogMjAxOS0wNi0xNCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgaW1wb3J0LXczYy10ZXN0cyBz
aG91bGQgcmVzcGVjdCBXRUJLSVRfT1VUUFVURElSCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3Mu
bW0KaW5kZXggZTE1MDk1ODVjZTg0NzY3N2NlNTJiMTQzNzg4ZTAzOTRkMmIwOTAzYy4uZDJiNzlj
M2I3ZTk3YmEyNDBhNThlZDJiMzkxODEwZTU2M2M5ZGJlZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5tbQpAQCAtMjgsMTAgKzI4LDEyIEBACiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgogI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCA8V2ViS2l0
L1dLRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFSZWNvcmRQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIHN0YXRpYyBib29sIGZpbmlz
aGVkTmF2aWdhdGlvbiA9IGZhbHNlOwpAQCAtMjgxLDMgKzI4MywzNyBAQCBURVNUKFJlc291cmNl
TG9hZFN0YXRpc3RpY3MsIEVuYWJsZURpc2FibGVJVFApCiAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lRmxhZyk7CiB9CiAKK1RFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgUmVt
b3ZlU2Vzc2lvbklEKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byB3ZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFT
dG9yZSA9IFtbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlv
bjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdOworCisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKKworICAgIC8vIFdlIGxvYWQgYSByZXNvdXJjZSBzbyB0aGF0IHRoZSBOZXR3b3Jr
U2Vzc2lvbiBzdGF5cyBhbGl2ZSBhIGxpdHRsZSBiaXQgbG9uZ2VyIGFmdGVyIHRoZSBzZXNzaW9u
IGlzIHJlbW92ZWQuCisKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxhIGlkPSdsaW5r
JyBocmVmPSdodHRwOi8vd2Via2l0Lm9yZycgZG93bmxvYWQ+Q2xpY2sgbWUhPC9hPiIgYmFzZVVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOworICAgIFt3ZWJW
aWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIHN0YXRpYyBib29s
IGRvbmVGbGFnID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpbmsnKS5jbGljaygpOyIgY29tcGxldGlvbkhhbmRsZXI6
IF4oaWQsIE5TRXJyb3IqKSB7CisgICAgICAgIGRvbmVGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVGbGFnKTsKKworICAgIFtjb25maWd1cmF0
aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkOllFU107CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTpZRVNdOworCisgICAgLy8gVHJpZ2dlciBJ
VFAgdGFza3MuCisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2No
ZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZTogXih2b2lkKSB7IH1dOworICAgIC8vIFRyaWdnZXIg
cmVtb3Zpbmcgb2YgdGhlIHNlc3Npb25JRC4KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGlu
UnVuTG9vcCgyKTsKKyAgICBbd2ViVmlldyBfY2xvc2VdOworICAgIHdlYlZpZXcgPSBudWxscHRy
OworICAgIGNvbmZpZ3VyYXRpb24gPSBudWxscHRyOworCisgICAgYXV0byB3ZWJWaWV3MiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldzIgbG9hZEhUTUxTdHJpbmc6QCJXZWJLaXQgVGVzdCIg
YmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOworICAg
IFt3ZWJWaWV3MiBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>