<?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>208896</bug_id>
          
          <creation_ts>2020-03-10 16:59:10 -0700</creation_ts>
          <short_desc>Defer async scripts until DOMContentLoaded or first paint, whichever comes first</short_desc>
          <delta_ts>2020-03-16 08:29:14 -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>
          
          <blocked>207698</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>krinklemail</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1628438</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-10 16:59:10 -0700</bug_when>
    <thetext>Defer async scripts until DOMContentLoaded or first paint, whichever comes first. In Bug 207698, we deferred them until DOMContentLoaded, as a first-paint optimization. However, this seems overly aggressive on pages like wikipedia and it is sufficient to defer those scripts until first-paint to get the performance win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628453</commentid>
    <comment_count>1</comment_count>
      <attachid>393194</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-10 17:49:55 -0700</bug_when>
    <thetext>Created attachment 393194
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628633</commentid>
    <comment_count>2</comment_count>
      <attachid>393239</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-11 07:42:37 -0700</bug_when>
    <thetext>Created attachment 393239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628650</commentid>
    <comment_count>3</comment_count>
      <attachid>393244</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-11 08:10:09 -0700</bug_when>
    <thetext>Created attachment 393244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628722</commentid>
    <comment_count>4</comment_count>
      <attachid>393244</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-11 10:30:55 -0700</bug_when>
    <thetext>Comment on attachment 393244
Patch

Clearing flags on attachment: 393244

Committed r258268: &lt;https://trac.webkit.org/changeset/258268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628723</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-11 10:30:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628725</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-11 10:31:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/60329406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629357</commentid>
    <comment_count>7</comment_count>
    <who name="">krinklemail</who>
    <bug_when>2020-03-12 14:15:59 -0700</bug_when>
    <thetext>Hi Chris,

Thanks for the quick action, I really appreciate it!

I&apos;m still very new to the WebKit source code, and am trying to understand how the first paint event &quot;notifies&quot; informs the pending async script to start execution.

For DOMContentLoaded, I see that the the ScriptRunner is receives this notice from Document.cpp in its documentFinishedParsing() method. I don&apos;t see something similar for first paint that would similarly clear the &quot;don&apos;t execute yet&quot; flag.

Maybe it is that the shouldDeferAsynchronousScriptsUntilParsingFinishes condition is automatically re-evaluated after important events such as FP and DCL, but I couldn&apos;t find it (and if so, perhaps documentFinishedParsing is redundant in that case?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630319</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-16 08:12:41 -0700</bug_when>
    <thetext>(In reply to krinklemail from comment #7)
&gt; Hi Chris,
&gt; 
&gt; Thanks for the quick action, I really appreciate it!
&gt; 
&gt; I&apos;m still very new to the WebKit source code, and am trying to understand
&gt; how the first paint event &quot;notifies&quot; informs the pending async script to
&gt; start execution.
&gt; 
&gt; For DOMContentLoaded, I see that the the ScriptRunner is receives this
&gt; notice from Document.cpp in its documentFinishedParsing() method. I don&apos;t
&gt; see something similar for first paint that would similarly clear the &quot;don&apos;t
&gt; execute yet&quot; flag.
&gt; 
&gt; Maybe it is that the shouldDeferAsynchronousScriptsUntilParsingFinishes
&gt; condition is automatically re-evaluated after important events such as FP
&gt; and DCL, but I couldn&apos;t find it (and if so, perhaps documentFinishedParsing
&gt; is redundant in that case?).

You are right that async scripts may still be delayed longer than they should after first paint. I am working on evaluating performance if we hook up the script runner to the first paint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630328</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-16 08:29:14 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; (In reply to krinklemail from comment #7)
&gt; &gt; Hi Chris,
&gt; &gt; 
&gt; &gt; Thanks for the quick action, I really appreciate it!
&gt; &gt; 
&gt; &gt; I&apos;m still very new to the WebKit source code, and am trying to understand
&gt; &gt; how the first paint event &quot;notifies&quot; informs the pending async script to
&gt; &gt; start execution.
&gt; &gt; 
&gt; &gt; For DOMContentLoaded, I see that the the ScriptRunner is receives this
&gt; &gt; notice from Document.cpp in its documentFinishedParsing() method. I don&apos;t
&gt; &gt; see something similar for first paint that would similarly clear the &quot;don&apos;t
&gt; &gt; execute yet&quot; flag.
&gt; &gt; 
&gt; &gt; Maybe it is that the shouldDeferAsynchronousScriptsUntilParsingFinishes
&gt; &gt; condition is automatically re-evaluated after important events such as FP
&gt; &gt; and DCL, but I couldn&apos;t find it (and if so, perhaps documentFinishedParsing
&gt; &gt; is redundant in that case?).
&gt; 
&gt; You are right that async scripts may still be delayed longer than they
&gt; should after first paint. I am working on evaluating performance if we hook
&gt; up the script runner to the first paint.

I believe the current behavior is that async scripts would run whenever the parser yields after the first paint has happened. It is true that it is not exactly after first paint and that those async scripts may be delayed longer.

This is not an obviously bad behavior but I will compare this and running the async scripts right after first paint on our benchmarks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393194</attachid>
            <date>2020-03-10 17:49:55 -0700</date>
            <delta_ts>2020-03-11 07:42:35 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>208896_wip.patch</filename>
            <type>text/plain</type>
            <size>3269</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGYyYjZlZGU4MTI1Li43YWQ1M2EyNGQzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NTI0LDcgKzU1MjQsMTAgQEAgdm9pZCBEb2N1bWVu
dDo6cG9wQ3VycmVudFNjcmlwdCgpCiAKIGJvb2wgRG9jdW1lbnQ6OnNob3VsZERlZmVyQXN5bmNo
cm9ub3VzU2NyaXB0c1VudGlsUGFyc2luZ0ZpbmlzaGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
cGFyc2luZygpICYmIHNldHRpbmdzKCkuc2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50
aWxBZnRlckRvY3VtZW50TG9hZCgpOworICAgIGlmICghc2V0dGluZ3MoKS5zaG91bGREZWZlckFz
eW5jaHJvbm91c1NjcmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkT3JGaXJzdFBhaW50KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBwYXJzaW5nKCkgJiYgISh2aWV3KCkg
JiYgdmlldygpLT5oYXNFdmVyUGFpbnRlZCgpKTsKIH0KIAogI2lmIEVOQUJMRShYU0xUKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDU0MzgwOTEwZWFmLi43NWUwOTg5MWUyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtODU4LDcgKzg1OCw3IEBAIGNsaWVudENvb3Jk
aW5hdGVzUmVsYXRpdmVUb0xheW91dFZpZXdwb3J0OgogaW5jb21wbGV0ZUltYWdlQm9yZGVyRW5h
YmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIAotc2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRz
VW50aWxBZnRlckRvY3VtZW50TG9hZDoKK3Nob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1Vu
dGlsQWZ0ZXJEb2N1bWVudExvYWRPckZpcnN0UGFpbnQ6CiAgIGluaXRpYWw6IHRydWUKIAogc2hv
dWxkSWdub3JlTWV0YVZpZXdwb3J0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
LnlhbWwKaW5kZXggMDAwNWQ1ZDE2N2QuLjBiM2NlOTQzYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEyMDcsOSArMTIwNywxMiBAQCBJbmNvbXBsZXRl
SW1hZ2VCb3JkZXJFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZmFsc2UK
IAotU2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50TG9hZDoK
K1Nob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWRPckZp
cnN0UGFpbnQ6CiAgIHR5cGU6IGJvb2wKLSAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBkZWZhdWx0
VmFsdWU6IHRydWUKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJEZWZlciBhc3luYyBzY3JpcHRzIHVu
dGlsIERPTUNvbnRlbnRMb2FkZWQgb3IgZmlyc3QtcGFpbnQiCisgIGh1bWFuUmVhZGFibGVEZXNj
cmlwdGlvbjogIkRlZmVyIGFzeW5jIHNjcmlwdHMgdW50aWwgRE9NQ29udGVudExvYWRlZCBvciBm
aXJzdC1wYWludCIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogCiBTdG9yYWdlQWNjZXNzQVBJ
RW5hYmxlZDoKICAgdHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNWUwMTVkNmVmZmEuLjUwNjg5MTY1MGQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ1NCw3
ICs0NTQsNyBAQCAtICh2b2lkKV9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdl
Q29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24t
PnNldERyYXdzQmFja2dyb3VuZChbX2NvbmZpZ3VyYXRpb24gX2RyYXdzQmFja2dyb3VuZF0pOwog
ICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRDb250cm9sbGVkQnlBdXRvbWF0aW9uKFtfY29uZmln
dXJhdGlvbiBfaXNDb250cm9sbGVkQnlBdXRvbWF0aW9uXSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24tPnByZWZlcmVuY2VWYWx1ZXMoKS5zZXQoV2ViS2l0OjpXZWJQcmVmZXJlbmNlc0tleTo6aW5j
b21wbGV0ZUltYWdlQm9yZGVyRW5hYmxlZEtleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3Rv
cmU6OlZhbHVlKCEhW19jb25maWd1cmF0aW9uIF9pbmNvbXBsZXRlSW1hZ2VCb3JkZXJFbmFibGVk
XSkpOwotICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkuc2V0KFdlYktp
dDo6V2ViUHJlZmVyZW5jZXNLZXk6OnNob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGls
QWZ0ZXJEb2N1bWVudExvYWRLZXkoKSwgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1
ZSghIVtfY29uZmlndXJhdGlvbiBfc2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50aWxB
ZnRlckRvY3VtZW50TG9hZF0pKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZVZh
bHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5OjpzaG91bGREZWZlckFzeW5jaHJv
bm91c1NjcmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkT3JGaXJzdFBhaW50S2V5KCksIFdlYktp
dDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWUoISFbX2NvbmZpZ3VyYXRpb24gX3Nob3VsZERl
ZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWRdKSk7CiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKS5zZXQoV2ViS2l0OjpXZWJQcmVmZXJl
bmNlc0tleTo6c2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lc0tleSgpLCBXZWJLaXQ6OldlYlBy
ZWZlcmVuY2VzU3RvcmU6OlZhbHVlKHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMoKSkpOwog
CiAjaWYgUExBVEZPUk0oTUFDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393239</attachid>
            <date>2020-03-11 07:42:37 -0700</date>
            <delta_ts>2020-03-11 08:10:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208896-20200311074236.patch</filename>
            <type>text/plain</type>
            <size>7349</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRhMmNlMzVkNTNlODdl
YzljODk1MjhhMWMxMjhkZjI4Y2I1YzRkMC4uNjJlODUxYjY2ZTlkYjQ2NWZjOTlhNjBiOGNkNGU2
ZjI3MmUyZmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGVmZXIgYXN5bmMgc2NyaXB0
cyB1bnRpbCBET01Db250ZW50TG9hZGVkIG9yIGZpcnN0IHBhaW50LCB3aGljaGV2ZXIgY29tZXMg
Zmlyc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERl
ZmVyIGFzeW5jIHNjcmlwdHMgdW50aWwgRE9NQ29udGVudExvYWRlZCBvciBmaXJzdCBwYWludCwg
d2hpY2hldmVyIGNvbWVzIGZpcnN0LiBJbgorICAgICAgICBCdWcgMjA3Njk4LCB3ZSBkZWZlcnJl
ZCB0aGVtIHVudGlsIERPTUNvbnRlbnRMb2FkZWQsIGFzIGEgZmlyc3QtcGFpbnQgb3B0aW1pemF0
aW9uLgorICAgICAgICBIb3dldmVyLCB0aGlzIHNlZW1zIG92ZXJseSBhZ2dyZXNzaXZlIG9uIHBh
Z2VzIGxpa2Ugd2lraXBlZGlhIGFuZCBpdCBpcyBzdWZmaWNpZW50CisgICAgICAgIHRvIGRlZmVy
IHRob3NlIHNjcmlwdHMgdW50aWwgZmlyc3QtcGFpbnQgdG8gZ2V0IHRoZSBwZXJmb3JtYW5jZSB3
aW4uCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnNob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsUGFyc2luZ0ZpbmlzaGVz
IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisKIDIwMjAtMDMtMTAgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWls
ZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDVmNTdlOTYwY2IxNTk0YmY1YTgzYTg4OTE3MDgzZjc3OTQ5MDYx
ZmYuLmZlMTkyYTI1ZDZlN2I5NDEwZGNlNzU3MTc5YmE1OWZlNjc1ZDBkOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMjAtMDMtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBEZWZlciBhc3luYyBzY3JpcHRzIHVudGlsIERPTUNvbnRlbnRMb2FkZWQg
b3IgZmlyc3QgcGFpbnQsIHdoaWNoZXZlciBjb21lcyBmaXJzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODk2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVmZXIgYXN5bmMgc2NyaXB0cyB1bnRpbCBE
T01Db250ZW50TG9hZGVkIG9yIGZpcnN0IHBhaW50LCB3aGljaGV2ZXIgY29tZXMgZmlyc3QuIElu
CisgICAgICAgIEJ1ZyAyMDc2OTgsIHdlIGRlZmVycmVkIHRoZW0gdW50aWwgRE9NQ29udGVudExv
YWRlZCwgYXMgYSBmaXJzdC1wYWludCBvcHRpbWl6YXRpb24uCisgICAgICAgIEhvd2V2ZXIsIHRo
aXMgc2VlbXMgb3Zlcmx5IGFnZ3Jlc3NpdmUgb24gcGFnZXMgbGlrZSB3aWtpcGVkaWEgYW5kIGl0
IGlzIHN1ZmZpY2llbnQKKyAgICAgICAgdG8gZGVmZXIgdGhvc2Ugc2NyaXB0cyB1bnRpbCBmaXJz
dC1wYWludCB0byBnZXQgdGhlIHBlcmZvcm1hbmNlIHdpbi4KKworICAgICAgICAqIFNoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246XSk6
CisKIDIwMjAtMDMtMTAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgog
CiAgICAgICAgIEVuYWJsZSBhY2Nlc3NpYmlsaXR5IElzb2xhdGVkVHJlZSBpbiBXZWJLaXQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmMmI2ZWRlODEyNTkzOWQ2MjUzNmQ5NmJiYWRiY2E4
ODYxNjVjYzI4Li43YWQ1M2EyNGQzOWM2YmQ2ZjI4NzBlMTAwMDBjZmRhZjg3M2UwMTM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU1MjQsNyArNTUyNCwxMCBAQCB2b2lkIERvY3VtZW50
Ojpwb3BDdXJyZW50U2NyaXB0KCkKIAogYm9vbCBEb2N1bWVudDo6c2hvdWxkRGVmZXJBc3luY2hy
b25vdXNTY3JpcHRzVW50aWxQYXJzaW5nRmluaXNoZXMoKSBjb25zdAogewotICAgIHJldHVybiBw
YXJzaW5nKCkgJiYgc2V0dGluZ3MoKS5zaG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNVbnRp
bEFmdGVyRG9jdW1lbnRMb2FkKCk7CisgICAgaWYgKCFzZXR0aW5ncygpLnNob3VsZERlZmVyQXN5
bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWRPckZpcnN0UGFpbnQoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHBhcnNpbmcoKSAmJiAhKHZpZXcoKSAm
JiB2aWV3KCktPmhhc0V2ZXJQYWludGVkKCkpOwogfQogCiAjaWYgRU5BQkxFKFhTTFQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggNTQzODA5MTBlYWY0NzAwYjQyNWIwODNkZTVjMzZk
YTQwYTRlZTYxNS4uNzVlMDk4OTFlMjMxZTFiMjRjYjcyNGFkYzkyYzk5NDZmMmIyYjAwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtODU4LDcgKzg1OCw3IEBAIGNsaWVudENvb3Jk
aW5hdGVzUmVsYXRpdmVUb0xheW91dFZpZXdwb3J0OgogaW5jb21wbGV0ZUltYWdlQm9yZGVyRW5h
YmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIAotc2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRz
VW50aWxBZnRlckRvY3VtZW50TG9hZDoKK3Nob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1Vu
dGlsQWZ0ZXJEb2N1bWVudExvYWRPckZpcnN0UGFpbnQ6CiAgIGluaXRpYWw6IHRydWUKIAogc2hv
dWxkSWdub3JlTWV0YVZpZXdwb3J0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
LnlhbWwKaW5kZXggMDAwNWQ1ZDE2N2RiZTVlOWFmZjZhZmYwYmVjMWJhYzFiNTA5MzE4Zi4uMGIz
Y2U5NDNhYzMwNTA4ZTA0Y2RiMGM3MTEwMjFmYzVmNzQ3YjRmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMjA3LDkgKzEyMDcsMTIgQEAgSW5jb21wbGV0
ZUltYWdlQm9yZGVyRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZhbHNl
CiAKLVNob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWQ6
CitTaG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkT3JG
aXJzdFBhaW50OgogICB0eXBlOiBib29sCi0gIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgZGVmYXVs
dFZhbHVlOiB0cnVlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRGVmZXIgYXN5bmMgc2NyaXB0cyB1
bnRpbCBET01Db250ZW50TG9hZGVkIG9yIGZpcnN0LXBhaW50IgorICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJEZWZlciBhc3luYyBzY3JpcHRzIHVudGlsIERPTUNvbnRlbnRMb2FkZWQgb3Ig
Zmlyc3QtcGFpbnQiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAogU3RvcmFnZUFjY2Vzc0FQ
SUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDVlMDE1ZDZlZmZhMzQ2NDVhNzlmZjgyOGY3OWI2OWI4
YjUyYmFiZjQuLjUwNjg5MTY1MGQ3OGVjNGQwM2U5ZmQ1ZjUwZjI1ODQ0ZTk4NWEzYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDU0
LDcgKzQ1NCw3IEBAIC0gKHZvaWQpX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBh
Z2VDb25maWd1cmF0aW9uPiYpcGFnZUNvbmZpZ3VyYXRpb24KICAgICBwYWdlQ29uZmlndXJhdGlv
bi0+c2V0RHJhd3NCYWNrZ3JvdW5kKFtfY29uZmlndXJhdGlvbiBfZHJhd3NCYWNrZ3JvdW5kXSk7
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldENvbnRyb2xsZWRCeUF1dG9tYXRpb24oW19jb25m
aWd1cmF0aW9uIF9pc0NvbnRyb2xsZWRCeUF1dG9tYXRpb25dKTsKICAgICBwYWdlQ29uZmlndXJh
dGlvbi0+cHJlZmVyZW5jZVZhbHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5Ojpp
bmNvbXBsZXRlSW1hZ2VCb3JkZXJFbmFibGVkS2V5KCksIFdlYktpdDo6V2ViUHJlZmVyZW5jZXNT
dG9yZTo6VmFsdWUoISFbX2NvbmZpZ3VyYXRpb24gX2luY29tcGxldGVJbWFnZUJvcmRlckVuYWJs
ZWRdKSk7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKS5zZXQoV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlc0tleTo6c2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50
aWxBZnRlckRvY3VtZW50TG9hZEtleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6OlZh
bHVlKCEhW19jb25maWd1cmF0aW9uIF9zaG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNVbnRp
bEFmdGVyRG9jdW1lbnRMb2FkXSkpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNl
VmFsdWVzKCkuc2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6OnNob3VsZERlZmVyQXN5bmNo
cm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWRPckZpcnN0UGFpbnRLZXkoKSwgV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZSghIVtfY29uZmlndXJhdGlvbiBfc2hvdWxk
RGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50TG9hZF0pKTsKICAgICBw
YWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZVZhbHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZl
cmVuY2VzS2V5OjpzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzS2V5KCksIFdlYktpdDo6V2Vi
UHJlZmVyZW5jZXNTdG9yZTo6VmFsdWUoc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpKSk7
CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBj
YzBlZmUxZmE4MWJlZDA3ZDFjYTU1MDFkM2RiOWZmNjM3ZGM4YmE4Li5hMTczMzk4ZGE5YWZmODA5
ZmZhZGJlNmM4YzI5ZGM2YzAzOTA2ZWNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMy0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIERlZmVyIGFzeW5jIHNjcmlwdHMgdW50aWwgRE9NQ29udGVudExvYWRl
ZCBvciBmaXJzdCBwYWludCwgd2hpY2hldmVyIGNvbWVzIGZpcnN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJiYXNlbGluZSBXUFQgdGVzdCBkdWUg
dG8gc2NyaXB0IGV4ZWN1dGlvbiB0aW1pbmcgY2hhbmdlLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9l
eGVjdXRpb24tdGltaW5nLzA4NS1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDMtMTAgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBBbGlnbiB3aXRoIE9yaWdpbiBoZWFkZXIg
Y2hhbmdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvZXhl
Y3V0aW9uLXRpbWluZy8wODUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvZXhlY3V0aW9uLXRpbWluZy8wODUtZXhwZWN0ZWQudHh0CmluZGV4IDYyN2MxMzdh
MWViNzE1ZWFmMGI4MTAyNmY1YTA3MzIyZDljOTA2YTcuLmE1MTJkZTBiMzQ0YjAyZWQwNWU4MjM5
NzJjZTBjZDBiNDMwZDg5OWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L2V4ZWN1dGlvbi10aW1pbmcvMDg1LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzA4NS1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACiBGQUlMRUQgKFRoaXMgVEMgcmVxdWlyZXMgSmF2YVNjcmlwdCBlbmFi
bGVkKQogCi1GQUlMICBzY2hlZHVsZXI6IGFzeW5jIHNjcmlwdCBhbmQgc2xvdy1sb2FkaW5nIGRl
ZmVyIHNjcmlwdCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9wZXJ0eSAwLCBleHBlY3RlZCAiZXh0
ZXJuYWwgc2NyaXB0ICMyIiBidXQgZ290ICJleHRlcm5hbCBzY3JpcHQgIzEiCitQQVNTICBzY2hl
ZHVsZXI6IGFzeW5jIHNjcmlwdCBhbmQgc2xvdy1sb2FkaW5nIGRlZmVyIHNjcmlwdCAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393244</attachid>
            <date>2020-03-11 08:10:09 -0700</date>
            <delta_ts>2020-03-11 10:30:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208896-20200311081008.patch</filename>
            <type>text/plain</type>
            <size>8136</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRhMmNlMzVkNTNlODdl
YzljODk1MjhhMWMxMjhkZjI4Y2I1YzRkMC4uNjJlODUxYjY2ZTlkYjQ2NWZjOTlhNjBiOGNkNGU2
ZjI3MmUyZmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGVmZXIgYXN5bmMgc2NyaXB0
cyB1bnRpbCBET01Db250ZW50TG9hZGVkIG9yIGZpcnN0IHBhaW50LCB3aGljaGV2ZXIgY29tZXMg
Zmlyc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERl
ZmVyIGFzeW5jIHNjcmlwdHMgdW50aWwgRE9NQ29udGVudExvYWRlZCBvciBmaXJzdCBwYWludCwg
d2hpY2hldmVyIGNvbWVzIGZpcnN0LiBJbgorICAgICAgICBCdWcgMjA3Njk4LCB3ZSBkZWZlcnJl
ZCB0aGVtIHVudGlsIERPTUNvbnRlbnRMb2FkZWQsIGFzIGEgZmlyc3QtcGFpbnQgb3B0aW1pemF0
aW9uLgorICAgICAgICBIb3dldmVyLCB0aGlzIHNlZW1zIG92ZXJseSBhZ2dyZXNzaXZlIG9uIHBh
Z2VzIGxpa2Ugd2lraXBlZGlhIGFuZCBpdCBpcyBzdWZmaWNpZW50CisgICAgICAgIHRvIGRlZmVy
IHRob3NlIHNjcmlwdHMgdW50aWwgZmlyc3QtcGFpbnQgdG8gZ2V0IHRoZSBwZXJmb3JtYW5jZSB3
aW4uCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnNob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsUGFyc2luZ0ZpbmlzaGVz
IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisKIDIwMjAtMDMtMTAgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWls
ZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDVmNTdlOTYwY2IxNTk0YmY1YTgzYTg4OTE3MDgzZjc3OTQ5MDYx
ZmYuLmZlMTkyYTI1ZDZlN2I5NDEwZGNlNzU3MTc5YmE1OWZlNjc1ZDBkOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMjAtMDMtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBEZWZlciBhc3luYyBzY3JpcHRzIHVudGlsIERPTUNvbnRlbnRMb2FkZWQg
b3IgZmlyc3QgcGFpbnQsIHdoaWNoZXZlciBjb21lcyBmaXJzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODk2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVmZXIgYXN5bmMgc2NyaXB0cyB1bnRpbCBE
T01Db250ZW50TG9hZGVkIG9yIGZpcnN0IHBhaW50LCB3aGljaGV2ZXIgY29tZXMgZmlyc3QuIElu
CisgICAgICAgIEJ1ZyAyMDc2OTgsIHdlIGRlZmVycmVkIHRoZW0gdW50aWwgRE9NQ29udGVudExv
YWRlZCwgYXMgYSBmaXJzdC1wYWludCBvcHRpbWl6YXRpb24uCisgICAgICAgIEhvd2V2ZXIsIHRo
aXMgc2VlbXMgb3Zlcmx5IGFnZ3Jlc3NpdmUgb24gcGFnZXMgbGlrZSB3aWtpcGVkaWEgYW5kIGl0
IGlzIHN1ZmZpY2llbnQKKyAgICAgICAgdG8gZGVmZXIgdGhvc2Ugc2NyaXB0cyB1bnRpbCBmaXJz
dC1wYWludCB0byBnZXQgdGhlIHBlcmZvcm1hbmNlIHdpbi4KKworICAgICAgICAqIFNoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246XSk6
CisKIDIwMjAtMDMtMTAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgog
CiAgICAgICAgIEVuYWJsZSBhY2Nlc3NpYmlsaXR5IElzb2xhdGVkVHJlZSBpbiBXZWJLaXQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmMmI2ZWRlODEyNTkzOWQ2MjUzNmQ5NmJiYWRiY2E4
ODYxNjVjYzI4Li43YWQ1M2EyNGQzOWM2YmQ2ZjI4NzBlMTAwMDBjZmRhZjg3M2UwMTM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU1MjQsNyArNTUyNCwxMCBAQCB2b2lkIERvY3VtZW50
Ojpwb3BDdXJyZW50U2NyaXB0KCkKIAogYm9vbCBEb2N1bWVudDo6c2hvdWxkRGVmZXJBc3luY2hy
b25vdXNTY3JpcHRzVW50aWxQYXJzaW5nRmluaXNoZXMoKSBjb25zdAogewotICAgIHJldHVybiBw
YXJzaW5nKCkgJiYgc2V0dGluZ3MoKS5zaG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNVbnRp
bEFmdGVyRG9jdW1lbnRMb2FkKCk7CisgICAgaWYgKCFzZXR0aW5ncygpLnNob3VsZERlZmVyQXN5
bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWRPckZpcnN0UGFpbnQoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHBhcnNpbmcoKSAmJiAhKHZpZXcoKSAm
JiB2aWV3KCktPmhhc0V2ZXJQYWludGVkKCkpOwogfQogCiAjaWYgRU5BQkxFKFhTTFQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggNTQzODA5MTBlYWY0NzAwYjQyNWIwODNkZTVjMzZk
YTQwYTRlZTYxNS4uNzVlMDk4OTFlMjMxZTFiMjRjYjcyNGFkYzkyYzk5NDZmMmIyYjAwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtODU4LDcgKzg1OCw3IEBAIGNsaWVudENvb3Jk
aW5hdGVzUmVsYXRpdmVUb0xheW91dFZpZXdwb3J0OgogaW5jb21wbGV0ZUltYWdlQm9yZGVyRW5h
YmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIAotc2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRz
VW50aWxBZnRlckRvY3VtZW50TG9hZDoKK3Nob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1Vu
dGlsQWZ0ZXJEb2N1bWVudExvYWRPckZpcnN0UGFpbnQ6CiAgIGluaXRpYWw6IHRydWUKIAogc2hv
dWxkSWdub3JlTWV0YVZpZXdwb3J0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
LnlhbWwKaW5kZXggMDAwNWQ1ZDE2N2RiZTVlOWFmZjZhZmYwYmVjMWJhYzFiNTA5MzE4Zi4uMGIz
Y2U5NDNhYzMwNTA4ZTA0Y2RiMGM3MTEwMjFmYzVmNzQ3YjRmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMjA3LDkgKzEyMDcsMTIgQEAgSW5jb21wbGV0
ZUltYWdlQm9yZGVyRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZhbHNl
CiAKLVNob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWQ6
CitTaG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkT3JG
aXJzdFBhaW50OgogICB0eXBlOiBib29sCi0gIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgZGVmYXVs
dFZhbHVlOiB0cnVlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRGVmZXIgYXN5bmMgc2NyaXB0cyB1
bnRpbCBET01Db250ZW50TG9hZGVkIG9yIGZpcnN0LXBhaW50IgorICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJEZWZlciBhc3luYyBzY3JpcHRzIHVudGlsIERPTUNvbnRlbnRMb2FkZWQgb3Ig
Zmlyc3QtcGFpbnQiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAogU3RvcmFnZUFjY2Vzc0FQ
SUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDVlMDE1ZDZlZmZhMzQ2NDVhNzlmZjgyOGY3OWI2OWI4
YjUyYmFiZjQuLjUwNjg5MTY1MGQ3OGVjNGQwM2U5ZmQ1ZjUwZjI1ODQ0ZTk4NWEzYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDU0
LDcgKzQ1NCw3IEBAIC0gKHZvaWQpX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBh
Z2VDb25maWd1cmF0aW9uPiYpcGFnZUNvbmZpZ3VyYXRpb24KICAgICBwYWdlQ29uZmlndXJhdGlv
bi0+c2V0RHJhd3NCYWNrZ3JvdW5kKFtfY29uZmlndXJhdGlvbiBfZHJhd3NCYWNrZ3JvdW5kXSk7
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldENvbnRyb2xsZWRCeUF1dG9tYXRpb24oW19jb25m
aWd1cmF0aW9uIF9pc0NvbnRyb2xsZWRCeUF1dG9tYXRpb25dKTsKICAgICBwYWdlQ29uZmlndXJh
dGlvbi0+cHJlZmVyZW5jZVZhbHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5Ojpp
bmNvbXBsZXRlSW1hZ2VCb3JkZXJFbmFibGVkS2V5KCksIFdlYktpdDo6V2ViUHJlZmVyZW5jZXNT
dG9yZTo6VmFsdWUoISFbX2NvbmZpZ3VyYXRpb24gX2luY29tcGxldGVJbWFnZUJvcmRlckVuYWJs
ZWRdKSk7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKS5zZXQoV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlc0tleTo6c2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50
aWxBZnRlckRvY3VtZW50TG9hZEtleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6OlZh
bHVlKCEhW19jb25maWd1cmF0aW9uIF9zaG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNVbnRp
bEFmdGVyRG9jdW1lbnRMb2FkXSkpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNl
VmFsdWVzKCkuc2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6OnNob3VsZERlZmVyQXN5bmNo
cm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWRPckZpcnN0UGFpbnRLZXkoKSwgV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZSghIVtfY29uZmlndXJhdGlvbiBfc2hvdWxk
RGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50TG9hZF0pKTsKICAgICBw
YWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZVZhbHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZl
cmVuY2VzS2V5OjpzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzS2V5KCksIFdlYktpdDo6V2Vi
UHJlZmVyZW5jZXNTdG9yZTo6VmFsdWUoc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpKSk7
CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBj
YzBlZmUxZmE4MWJlZDA3ZDFjYTU1MDFkM2RiOWZmNjM3ZGM4YmE4Li5hMTczMzk4ZGE5YWZmODA5
ZmZhZGJlNmM4YzI5ZGM2YzAzOTA2ZWNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMy0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIERlZmVyIGFzeW5jIHNjcmlwdHMgdW50aWwgRE9NQ29udGVudExvYWRl
ZCBvciBmaXJzdCBwYWludCwgd2hpY2hldmVyIGNvbWVzIGZpcnN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJiYXNlbGluZSBXUFQgdGVzdCBkdWUg
dG8gc2NyaXB0IGV4ZWN1dGlvbiB0aW1pbmcgY2hhbmdlLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9l
eGVjdXRpb24tdGltaW5nLzA4NS1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDMtMTAgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBBbGlnbiB3aXRoIE9yaWdpbiBoZWFkZXIg
Y2hhbmdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvZXhl
Y3V0aW9uLXRpbWluZy8wODUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvZXhlY3V0aW9uLXRpbWluZy8wODUtZXhwZWN0ZWQudHh0CmluZGV4IDYyN2MxMzdh
MWViNzE1ZWFmMGI4MTAyNmY1YTA3MzIyZDljOTA2YTcuLmE1MTJkZTBiMzQ0YjAyZWQwNWU4MjM5
NzJjZTBjZDBiNDMwZDg5OWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L2V4ZWN1dGlvbi10aW1pbmcvMDg1LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzA4NS1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACiBGQUlMRUQgKFRoaXMgVEMgcmVxdWlyZXMgSmF2YVNjcmlwdCBlbmFi
bGVkKQogCi1GQUlMICBzY2hlZHVsZXI6IGFzeW5jIHNjcmlwdCBhbmQgc2xvdy1sb2FkaW5nIGRl
ZmVyIHNjcmlwdCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9wZXJ0eSAwLCBleHBlY3RlZCAiZXh0
ZXJuYWwgc2NyaXB0ICMyIiBidXQgZ290ICJleHRlcm5hbCBzY3JpcHQgIzEiCitQQVNTICBzY2hl
ZHVsZXI6IGFzeW5jIHNjcmlwdCBhbmQgc2xvdy1sb2FkaW5nIGRlZmVyIHNjcmlwdCAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9leGVjdXRpb24tdGltaW5nLzA4NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2V4ZWN1dGlvbi10aW1pbmcvMDg1LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MjdjMTM3YTFlYjcxNWVhZjBiODEwMjZmNWEwNzMyMmQ5Yzkw
NmE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzA4NS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitGQUlMRUQgKFRoaXMgVEMgcmVxdWlyZXMgSmF2YVNjcmlwdCBlbmFibGVkKQor
CitGQUlMICBzY2hlZHVsZXI6IGFzeW5jIHNjcmlwdCBhbmQgc2xvdy1sb2FkaW5nIGRlZmVyIHNj
cmlwdCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9wZXJ0eSAwLCBleHBlY3RlZCAiZXh0ZXJuYWwg
c2NyaXB0ICMyIiBidXQgZ290ICJleHRlcm5hbCBzY3JpcHQgIzEiCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>