<?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>204992</bug_id>
          
          <creation_ts>2019-12-07 16:15:04 -0800</creation_ts>
          <short_desc>Preconnect to server as early as possible in WebPage::LoadRequest</short_desc>
          <delta_ts>2019-12-09 15:54:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>205030</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>ggaren</cc>
    
    <cc>jbedard</cc>
    
    <cc>koivisto</cc>
    
    <cc>nham</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1596636</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-07 16:15:04 -0800</bug_when>
    <thetext>Preconnect to server as early as possible in WebPage::LoadRequest. This avoids delaying the connection to the server until after the policy check and is a ~1.3% progression on PLT5 on both macOS and iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596637</commentid>
    <comment_count>1</comment_count>
      <attachid>385108</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-07 16:17:20 -0800</bug_when>
    <thetext>Created attachment 385108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596651</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-12-07 19:34:46 -0800</bug_when>
    <thetext>This change looks like a good technical change. It looks like it sacrifices user privacy at the cost of improving perceived load speed: apps and Safari can no longer prevent the preconnect from hitting the server with credentials. Code with is used by all page loads, right? Even programmatic? My strong opinion, weakly held, is that this change should be guarded by a user configurable setting (initially off by default) because there are significant privacy implications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596652</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-07 19:53:12 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #2)
&gt; This change looks like a good technical change. It looks like it sacrifices
&gt; user privacy at the cost of improving perceived load speed: apps and Safari
&gt; can no longer prevent the preconnect from hitting the server with
&gt; credentials. Code with is used by all page loads, right? Even programmatic?
&gt; My strong opinion, weakly held, is that this change should be guarded by a
&gt; user configurable setting (initially off by default) because there are
&gt; significant privacy implications.

It is indeed important not to sacrifice privacy. I don’t think I am though but I may be missing something.

I am not sure what you mean by programmatic loads, could mean JS or native. Loads triggered by JS or even user clicks do not use this code path. Only loads requested by the client app (native) using [WKWebView loadRequest:] are affected. Since those loads are requested by the client app, and the client app is in charge of the decidePolicyForNavigationAction, I did not feel connecting to the server early sacrificed privacy.

Does this address your concerns?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596653</commentid>
    <comment_count>4</comment_count>
      <attachid>385108</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-07 19:57:15 -0800</bug_when>
    <thetext>Comment on attachment 385108
Patch

Looks like there are API test failures that need investigating. Clearing review flag while I do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596655</commentid>
    <comment_count>5</comment_count>
      <attachid>385113</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-07 20:47:05 -0800</bug_when>
    <thetext>Created attachment 385113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596659</commentid>
    <comment_count>6</comment_count>
      <attachid>385113</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-07 23:47:06 -0800</bug_when>
    <thetext>Comment on attachment 385113
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1531
&gt; +        WebProcess::singleton().webLoaderStrategy().preconnectTo(ResourceRequest { loadParameters.request }, *this, *m_mainFrame, StoredCredentialsPolicy::Use, [](const ResourceError&amp;) { });

WTF::Function is a nullable type. Another option would be to make preconnectTo handle a null callback function and remove the need to construct a no-op lambda.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596718</commentid>
    <comment_count>7</comment_count>
      <attachid>385125</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-08 11:56:47 -0800</bug_when>
    <thetext>Created attachment 385125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596720</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-08 11:57:30 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #6)
&gt; Comment on attachment 385113 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=385113&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1531
&gt; &gt; +        WebProcess::singleton().webLoaderStrategy().preconnectTo(ResourceRequest { loadParameters.request }, *this, *m_mainFrame, StoredCredentialsPolicy::Use, [](const ResourceError&amp;) { });
&gt; 
&gt; WTF::Function is a nullable type. Another option would be to make
&gt; preconnectTo handle a null callback function and remove the need to
&gt; construct a no-op lambda.

Will look into this in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596727</commentid>
    <comment_count>9</comment_count>
      <attachid>385125</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-08 13:31:00 -0800</bug_when>
    <thetext>Comment on attachment 385125
Patch

Clearing flags on attachment: 385125

Committed r253277: &lt;https://trac.webkit.org/changeset/253277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596728</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-08 13:31:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596730</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-08 13:31:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/57735901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596844</commentid>
    <comment_count>12</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-12-09 08:56:14 -0800</bug_when>
    <thetext>Breaks some ApplePay API tests on iOS:

https://results.webkit.org/?suite=api-tests&amp;test=TestWebKitAPI.ApplePay.CanMakePaymentsWithActiveCardBlocksUserAgentScripts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596845</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-09 08:57:01 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #12)
&gt; Breaks some ApplePay API tests on iOS:
&gt; 
&gt; https://results.webkit.org/?suite=api-tests&amp;test=TestWebKitAPI.ApplePay.
&gt; CanMakePaymentsWithActiveCardBlocksUserAgentScripts

Looking now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596864</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-09 09:49:47 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; (In reply to Jonathan Bedard from comment #12)
&gt; &gt; Breaks some ApplePay API tests on iOS:
&gt; &gt; 
&gt; &gt; https://results.webkit.org/?suite=api-tests&amp;test=TestWebKitAPI.ApplePay.
&gt; &gt; CanMakePaymentsWithActiveCardBlocksUserAgentScripts
&gt; 
&gt; Looking now.

Follow-up fix landed in &lt;https://trac.webkit.org/changeset/253291&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385108</attachid>
            <date>2019-12-07 16:17:20 -0800</date>
            <delta_ts>2019-12-07 20:47:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204992-20191207161656.patch</filename>
            <type>text/plain</type>
            <size>5859</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI4MmVkMWI0MDY3MjgwYjIz
YWY2ZmU5MTVjNmY1NTc0YjM3ZmQ0YTMuLjRkMzdiMDU0YWY2NGIyMTA5N2ZlZTRlMDE4NDU1ZmNh
OTVhMThkZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMTItMDcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQcmVjb25uZWN0IHRvIHNlcnZlciBh
cyBlYXJseSBhcyBwb3NzaWJsZSBpbiBXZWJQYWdlOjpMb2FkUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTkyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlY29ubmVjdCB0byBzZXJ2ZXIg
YXMgZWFybHkgYXMgcG9zc2libGUgaW4gV2ViUGFnZTo6TG9hZFJlcXVlc3QuIFRoaXMgYXZvaWRz
IGRlbGF5aW5nIHRoZQorICAgICAgICBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgdW50aWwgYWZ0
ZXIgdGhlIHBvbGljeSBjaGVjayBhbmQgaXMgYSB+MS4zJSBwcm9ncmVzc2lvbiBvbiBQTFQ1IG9u
CisgICAgICAgIGJvdGggbWFjT1MgYW5kIGlPUy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0
cmF0ZWd5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFJlcXVlc3QpOgorCiAyMDE5LTEyLTA1
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBy
ZXNlcnZlQ2FwYWNpdHkoKSAvIHJlc2VydmVJbml0aWFsQ2FwYWNpdHkoKSBpbiBJUEMgZGVjb2Rl
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcAppbmRleCA1MDZhMmYyNjFlOWViNzQ2NzI2NzhmYmM3OTJlYmMxYmJhZWU0
MmI2Li40MjE3ZmVlMTNmMmFhOThmMDA2OGRjZDk5MGVlMzc1YmRhZmYyOWY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwCkBAIC02NDQsMTAgKzY0NCw2IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlz
aFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgUmVzb3VyY2VFCiAKIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIs
IGNvbnN0IFVSTCYgdXJsLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgdWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0ZUxvYWRJ
ZGVudGlmaWVyKCk7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3ByZWNvbm5lY3RDb21wbGV0aW9u
SGFuZGxlcnMuYWRkKHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0Vu
dHJ5KTsKLQogICAgIGF1dG8qIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9XZWJGcmFtZUxvYWRl
ckNsaWVudChmcmFtZUxvYWRlci5jbGllbnQoKSk7CiAgICAgaWYgKCF3ZWJGcmFtZUxvYWRlckNs
aWVudCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbEVycm9yKHVybCkpOwpA
QCAtNjY0LDExICs2NjAsMjAgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRv
KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgY29uc3QgVVJMJiB1cmwsIFMKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIHByZWNvbm5lY3RUbyhSZXNvdXJjZVJlcXVlc3QgeyB1cmwgfSwg
KndlYlBhZ2UsICp3ZWJGcmFtZSwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVj
dFRvKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdlYlBhZ2UmIHdlYlBhZ2Us
IFdlYkZyYW1lJiB3ZWJGcmFtZSwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyID0g
Z2VuZXJhdGVMb2FkSWRlbnRpZmllcigpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9wcmVjb25u
ZWN0Q29tcGxldGlvbkhhbmRsZXJzLmFkZChwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRS
ZXN1bHQuaXNOZXdFbnRyeSk7CisKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBw
YXJhbWV0ZXJzOwotICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCB7IHVy
bCB9OwotICAgIHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQgPSB3ZWJQYWdlLT53ZWJQYWdlUHJv
eHlJZGVudGlmaWVyKCk7Ci0gICAgcGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlLT5pZGVu
dGlmaWVyKCk7Ci0gICAgcGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUtPmZyYW1lSUQo
KTsKKyAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOworICAgIHBhcmFt
ZXRlcnMud2ViUGFnZVByb3h5SUQgPSB3ZWJQYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKTsK
KyAgICBwYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UuaWRlbnRpZmllcigpOworICAgIHBh
cmFtZXRlcnMud2ViRnJhbWVJRCA9IHdlYkZyYW1lLmZyYW1lSUQoKTsKICAgICBwYXJhbWV0ZXJz
LnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwogI2lmIEhBVkUoQVVESVRf
VE9LRU4pCiAgICAgcGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3Jr
UHJvY2Vzc0F1ZGl0VG9rZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IGIyNDc4YWI1MGQxNDAwOWRiNDVjNjI5
MTdiOWM3NDhhNTVhMWFiMmMuLmRlODFlNjAwNGYxMzM5OTg0ZTNlYTI4YmJmMDBhNTBkY2NmNThk
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuaApAQCAtNDAsNiArNDAsOCBAQCBzdHJ1Y3QgRmV0Y2hPcHRpb25zOwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKK2NsYXNz
IFdlYkZyYW1lOworY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYlVSTFNjaGVtZVRhc2tQcm94eTsK
IHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIApAQCAtNjYsNiArNjgs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgb3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycywgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiwgUGluZ0xvYWRDb21wbGV0aW9uSGFu
ZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdM
b2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYpOwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8oV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIFdlYlBhZ2UmLCBXZWJGcmFtZSYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBwcmVjb25u
ZWN0VG8oV2ViQ29yZTo6RnJhbWVMb2FkZXImLCBjb25zdCBVUkwmLCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRl
bnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3Yjk5YTZiNDUxMjg5YWJjNTU5YTM5
MTU0ZmRjMTFmYzJiOTU5M2RmLi44ZjdiYzEwOGY0YTNjYjYwYjMxODA2ZDI3ZmNiYTgyODlhNDky
YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtOTgsNiArOTgsNyBAQAogI2luY2x1ZGUgIldlYkluc3BlY3Rvck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yVUkuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCIKQEAgLTE1MjYsNiArMTUyNyw5
IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QoTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1l
dGVycykKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcjsKIAorICAg
IGlmIChsb2FkUGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHko
KSkKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5w
cmVjb25uZWN0VG8oUmVzb3VyY2VSZXF1ZXN0IHsgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCB9LCAq
dGhpcywgKm1fbWFpbkZyYW1lLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBbXShjb25z
dCBSZXNvdXJjZUVycm9yJikgeyB9KTsKKwogICAgIG1fcGVuZGluZ05hdmlnYXRpb25JRCA9IGxv
YWRQYXJhbWV0ZXJzLm5hdmlnYXRpb25JRDsKICAgICBtX3BlbmRpbmdXZWJzaXRlUG9saWNpZXMg
PSBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385113</attachid>
            <date>2019-12-07 20:47:05 -0800</date>
            <delta_ts>2019-12-08 11:56:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204992-20191207204642.patch</filename>
            <type>text/plain</type>
            <size>6624</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI4MmVkMWI0MDY3MjgwYjIz
YWY2ZmU5MTVjNmY1NTc0YjM3ZmQ0YTMuLjRkMzdiMDU0YWY2NGIyMTA5N2ZlZTRlMDE4NDU1ZmNh
OTVhMThkZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMTItMDcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQcmVjb25uZWN0IHRvIHNlcnZlciBh
cyBlYXJseSBhcyBwb3NzaWJsZSBpbiBXZWJQYWdlOjpMb2FkUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTkyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlY29ubmVjdCB0byBzZXJ2ZXIg
YXMgZWFybHkgYXMgcG9zc2libGUgaW4gV2ViUGFnZTo6TG9hZFJlcXVlc3QuIFRoaXMgYXZvaWRz
IGRlbGF5aW5nIHRoZQorICAgICAgICBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgdW50aWwgYWZ0
ZXIgdGhlIHBvbGljeSBjaGVjayBhbmQgaXMgYSB+MS4zJSBwcm9ncmVzc2lvbiBvbiBQTFQ1IG9u
CisgICAgICAgIGJvdGggbWFjT1MgYW5kIGlPUy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0
cmF0ZWd5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFJlcXVlc3QpOgorCiAyMDE5LTEyLTA1
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBy
ZXNlcnZlQ2FwYWNpdHkoKSAvIHJlc2VydmVJbml0aWFsQ2FwYWNpdHkoKSBpbiBJUEMgZGVjb2Rl
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCAzMWI2YjNkNTIzODA5ZWE3
MWRhMDNkYmIwYTgwNGQyNTIxNzMyZDE1Li42NTM4ZjkxNTUyYzA3YmRhZThhNTQ3Yzc3NGEwOTBj
NjY3Njc1ZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2lu
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC0yMTEsNyAr
MjExLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNQb3RlbnRpYWxseVRydXN0d29ydGh5KCkgY29u
c3QgeyByZXR1cm4gbV9pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHk7IH0KICAgICB2b2lkIHNldElz
UG90ZW50aWFsbHlUcnVzdHdvcnRoeShib29sIHZhbHVlKSB7IG1faXNQb3RlbnRpYWxseVRydXN0
d29ydGh5ID0gdmFsdWU7IH0KIAotICAgIHN0YXRpYyBib29sIGlzTG9jYWxIb3N0T3JMb29wYmFj
a0lQQWRkcmVzcyhTdHJpbmdWaWV3KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBp
c0xvY2FsSG9zdE9yTG9vcGJhY2tJUEFkZHJlc3MoU3RyaW5nVmlldyk7CiAKICAgICBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwCmluZGV4IDUwNmEyZjI2MWU5ZWI3NDY3MjY3OGZiYzc5MmViYzFiYmFlZTQyYjYuLjQy
MTdmZWUxM2YyYWE5OGYwMDY4ZGNkOTkwZWUzNzViZGFmZjI5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAg
LTY0NCwxMCArNjQ0LDYgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6ZGlkRmluaXNoUGluZ0xv
YWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBSZXNvdXJjZUUKIAogdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgY29uc3Qg
VVJMJiB1cmwsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICB1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciA9IGdlbmVyYXRlTG9hZElkZW50aWZp
ZXIoKTsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVy
cy5hZGQocHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKLSAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwot
CiAgICAgYXV0byogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50
KGZyYW1lTG9hZGVyLmNsaWVudCgpKTsKICAgICBpZiAoIXdlYkZyYW1lTG9hZGVyQ2xpZW50KSB7
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGludGVybmFsRXJyb3IodXJsKSk7CkBAIC02NjQs
MTEgKzY2MCwyMCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8oRnJhbWVM
b2FkZXImIGZyYW1lTG9hZGVyLCBjb25zdCBVUkwmIHVybCwgUwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgcHJlY29ubmVjdFRvKFJlc291cmNlUmVxdWVzdCB7IHVybCB9LCAqd2ViUGFn
ZSwgKndlYkZyYW1lLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQorCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8oV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViUGFnZSYgd2ViUGFnZSwgV2ViRnJh
bWUmIHdlYkZyYW1lLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgdWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0
ZUxvYWRJZGVudGlmaWVyKCk7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3ByZWNvbm5lY3RDb21w
bGV0aW9uSGFuZGxlcnMuYWRkKHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5p
c05ld0VudHJ5KTsKKwogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHBhcmFtZXRl
cnM7Ci0gICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0IHsgdXJsIH07Ci0g
ICAgcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCA9IHdlYlBhZ2UtPndlYlBhZ2VQcm94eUlkZW50
aWZpZXIoKTsKLSAgICBwYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UtPmlkZW50aWZpZXIo
KTsKLSAgICBwYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZS0+ZnJhbWVJRCgpOworICAg
IHBhcmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CisgICAgcGFyYW1ldGVycy53
ZWJQYWdlUHJveHlJRCA9IHdlYlBhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpOworICAgIHBh
cmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFnZS5pZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVy
cy53ZWJGcmFtZUlEID0gd2ViRnJhbWUuZnJhbWVJRCgpOwogICAgIHBhcmFtZXRlcnMucGFyZW50
UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CiAjaWYgSEFWRShBVURJVF9UT0tFTikK
ICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbiA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLm5ldHdvcmtQcm9jZXNz
QXVkaXRUb2tlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmgKaW5kZXggYjI0NzhhYjUwZDE0MDA5ZGI0NWM2MjkxN2I5Yzc0
OGE1NWExYWIyYy4uZGU4MWU2MDA0ZjEzMzk5ODRlM2VhMjhiYmYwMGE1MGRjY2Y1OGRmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5oCkBAIC00MCw2ICs0MCw4IEBAIHN0cnVjdCBGZXRjaE9wdGlvbnM7CiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2ViRnJh
bWU7CitjbGFzcyBXZWJQYWdlOwogY2xhc3MgV2ViVVJMU2NoZW1lVGFza1Byb3h5OwogdHlwZWRl
ZiB1aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogCkBAIC02Niw2ICs2OCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHN0YXJ0UGluZ0xvYWQoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiBvcmlnaW5hbFJl
cXVlc3RIZWFkZXJzLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBXZWJDb3JlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYp
IGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJik7CiAKKyAgICB2b2lkIHByZWNvbm5lY3RUbyhXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgV2ViUGFnZSYsIFdlYkZyYW1lJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIHByZWNvbm5lY3RUbyhX
ZWJDb3JlOjpGcmFtZUxvYWRlciYsIGNvbnN0IFVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAgICAgdm9p
ZCBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDdiOTlhNmI0NTEyODlhYmM1NTlhMzkxNTRmZGMx
MWZjMmI5NTkzZGYuLmQyNmVmZjVmYmM1MTFkOWM4MWNhNjVhODE5OTMyOGZjMjRlMjFmYTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05OCw2
ICs5OCw3IEBACiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJJbnNwZWN0b3JVSS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1lZGlhS2V5U3RvcmFn
ZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIgpAQCAtMTUyNiw2ICsxNTI3LDkgQEAgdm9p
ZCBXZWJQYWdlOjpsb2FkUmVxdWVzdChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQog
ewogICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyOwogCisgICAgaWYgKGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYmICFT
ZWN1cml0eU9yaWdpbjo6aXNMb2NhbEhvc3RPckxvb3BiYWNrSVBBZGRyZXNzKGxvYWRQYXJhbWV0
ZXJzLnJlcXVlc3QudXJsKCkuaG9zdCgpKSkKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViTG9hZGVyU3RyYXRlZ3koKS5wcmVjb25uZWN0VG8oUmVzb3VyY2VSZXF1ZXN0IHsgbG9h
ZFBhcmFtZXRlcnMucmVxdWVzdCB9LCAqdGhpcywgKm1fbWFpbkZyYW1lLCBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6VXNlLCBbXShjb25zdCBSZXNvdXJjZUVycm9yJikgeyB9KTsKKwogICAgIG1f
cGVuZGluZ05hdmlnYXRpb25JRCA9IGxvYWRQYXJhbWV0ZXJzLm5hdmlnYXRpb25JRDsKICAgICBt
X3BlbmRpbmdXZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQ
b2xpY2llcyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385125</attachid>
            <date>2019-12-08 11:56:47 -0800</date>
            <delta_ts>2019-12-08 13:31:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204992-20191208115623.patch</filename>
            <type>text/plain</type>
            <size>19170</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI4MmVkMWI0MDY3MjgwYjIz
YWY2ZmU5MTVjNmY1NTc0YjM3ZmQ0YTMuLjkxYzNmZDBkYzNlZmI0NmQ2ZDAzYTg0YjAwNWQ1MGU0
OTk1OTJlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMTItMDcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQcmVjb25uZWN0IHRvIHNlcnZlciBh
cyBlYXJseSBhcyBwb3NzaWJsZSBpbiBXZWJQYWdlOjpMb2FkUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTkyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgUHJlY29ubmVjdCB0byBzZXJ2ZXIg
YXMgZWFybHkgYXMgcG9zc2libGUgaW4gV2ViUGFnZTo6TG9hZFJlcXVlc3QuIFRoaXMgYXZvaWRz
IGRlbGF5aW5nIHRoZQorICAgICAgICBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgdW50aWwgYWZ0
ZXIgdGhlIHBvbGljeSBjaGVjayBhbmQgaXMgYSB+MS4zJSBwcm9ncmVzc2lvbiBvbiBQTFQ1IG9u
CisgICAgICAgIGJvdGggbWFjT1MgYW5kIGlPUy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0
cmF0ZWd5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFJlcXVlc3QpOgorCiAyMDE5LTEyLTA1
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBy
ZXNlcnZlQ2FwYWNpdHkoKSAvIHJlc2VydmVJbml0aWFsQ2FwYWNpdHkoKSBpbiBJUEMgZGVjb2Rl
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCAzMWI2YjNkNTIzODA5ZWE3
MWRhMDNkYmIwYTgwNGQyNTIxNzMyZDE1Li42NTM4ZjkxNTUyYzA3YmRhZThhNTQ3Yzc3NGEwOTBj
NjY3Njc1ZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2lu
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC0yMTEsNyAr
MjExLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNQb3RlbnRpYWxseVRydXN0d29ydGh5KCkgY29u
c3QgeyByZXR1cm4gbV9pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHk7IH0KICAgICB2b2lkIHNldElz
UG90ZW50aWFsbHlUcnVzdHdvcnRoeShib29sIHZhbHVlKSB7IG1faXNQb3RlbnRpYWxseVRydXN0
d29ydGh5ID0gdmFsdWU7IH0KIAotICAgIHN0YXRpYyBib29sIGlzTG9jYWxIb3N0T3JMb29wYmFj
a0lQQWRkcmVzcyhTdHJpbmdWaWV3KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBp
c0xvY2FsSG9zdE9yTG9vcGJhY2tJUEFkZHJlc3MoU3RyaW5nVmlldyk7CiAKICAgICBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAzYjVmYTU4Y2Y0NjY3NGUxN2E0NWMyN2FmMjRm
NzE1ZmQwYWNhZWZmLi44ZWRkNWQ4M2QxNDQyMjI1ODlmNDk3YjI1NDBjODk4ZDFiYTU3N2Q2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTA0LDE1ICs1MDQsMTcgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBo
b3N0bmFtZSkKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWNvbm5lY3RU
byh1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewogICAgIEFTU0VSVCghcGFyYW1ldGVycy5yZXF1ZXN0
Lmh0dHBCb2R5KCkpOwotICAgIAorCiAjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQotICAg
IG5ldyBQcmVjb25uZWN0VGFzayhuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQoKSwgV1RGTW92
ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRl
bnRpZmllciA9IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyXSAoY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpIHsKLSAgICAgICAgZGlkRmluaXNoUHJlY29ubmVjdGlvbihpZGVudGlmaWVyLCBlcnJv
cik7Ci0gICAgfSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShwYXJhbWV0ZXJzKTsKLSAgICBk
aWRGaW5pc2hQcmVjb25uZWN0aW9uKHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBpbnRlcm5hbEVy
cm9yKHBhcmFtZXRlcnMucmVxdWVzdC51cmwoKSkpOworICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3
b3JrU2Vzc2lvbigpOworICAgIGlmIChzZXNzaW9uICYmIHNlc3Npb24tPmFsbG93c1NlcnZlclBy
ZWNvbm5lY3QoKSkgeworICAgICAgICBuZXcgUHJlY29ubmVjdFRhc2sobmV0d29ya1Byb2Nlc3Mo
KSwgc2Vzc2lvbklEKCksIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBwcmVjb25uZWN0aW9uSWRlbnRpZmllcl0g
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSB7CisgICAgICAgICAgICBkaWRGaW5pc2hQcmVj
b25uZWN0aW9uKGlkZW50aWZpZXIsIGVycm9yKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CiAjZW5kaWYKKyAgICBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHByZWNvbm5lY3Rp
b25JZGVudGlmaWVyLCBpbnRlcm5hbEVycm9yKHBhcmFtZXRlcnMucmVxdWVzdC51cmwoKSkpOwog
fQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRGaW5pc2hQcmVjb25u
ZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHAKaW5kZXggMmE2NTMyOWJmMWVjMTYyOGViZWRkNTNiNDEwMjYwOWMzOTE5YTUyMS4u
ZTNjNzFiOGMxYTY3YmQ5Yzg2N2U3NzUxM2I3MjBkNTY5NjRmYzZkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTg0LDYgKzg0LDcg
QEAgTmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcywgY29uc3QgTmV0d29ya1Nlc3MKICNlbmRpZgogICAgICwgbV9hZENsaWNrQXR0cmli
dXRpb24obWFrZVVuaXF1ZVJlZjxBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyPihwYXJhbWV0ZXJz
LnNlc3Npb25JRCkpCiAgICAgLCBtX3Rlc3RTcGVlZE11bHRpcGxpZXIocGFyYW1ldGVycy50ZXN0
U3BlZWRNdWx0aXBsaWVyKQorICAgICwgbV9hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KHBhcmFtZXRl
cnMuYWxsb3dzU2VydmVyUHJlY29ubmVjdCkKIHsKICAgICBpZiAoIW1fc2Vzc2lvbklELmlzRXBo
ZW1lcmFsKCkpIHsKICAgICAgICAgU3RyaW5nIG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IHBhcmFt
ZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDJhMzgxOWNhMmEzOWVmNGVmZTYwMTZmN2Q4OTBh
ZjYzMjNkYThjZWIuLjgzZjUwOGM2MWZhYTAyOTYxNWU0MmYwZGU4ODdmMzFhZjY1N2E5ZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTEy
NSw2ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbCYgYmxv
YlJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9ibG9iUmVnaXN0cnk7IH0KIAogICAgIHVuc2lnbmVkIHRl
c3RTcGVlZE11bHRpcGxpZXIoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RTcGVlZE11bHRpcGxpZXI7
IH0KKyAgICBib29sIGFsbG93c1NlcnZlclByZWNvbm5lY3QoKSBjb25zdCB7IHJldHVybiBtX2Fs
bG93c1NlcnZlclByZWNvbm5lY3Q7IH0KIAogICAgIGJvb2wgaXNTdGFsZVdoaWxlUmV2YWxpZGF0
ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVk
OyB9CiAKQEAgLTE2OCw2ICsxNjksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPE5ldHdvcmtD
YWNoZTo6Q2FjaGU+IG1fY2FjaGU7CiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbCBtX2Js
b2JSZWdpc3RyeTsKICAgICB1bnNpZ25lZCBtX3Rlc3RTcGVlZE11bHRpcGxpZXIgeyAxIH07Cisg
ICAgYm9vbCBtX2FsbG93c1NlcnZlclByZWNvbm5lY3QgeyB0cnVlIH07CiAKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCiAgICAgSGFzaFNldDxzdGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtl
clNvZnRVcGRhdGVMb2FkZXI+PiBtX3NvZnRVcGRhdGVMb2FkZXJzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAppbmRleCA3ZDgwOWVlMjBmODVmYTk0MThiNDIyZmJiODExNzkyNzI1
ZTE2ZGVkLi5kN2RhNDlmZjU0NTVjN2NmYWU2OWMwNWVjMzExMTMyOTM3MmEwYTdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtODIsNiArODIsNyBAQCB2b2lkIE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIGVuY29kZXIgPDwgc3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkOwogICAg
IGVuY29kZXIgPDwgdGVzdFNwZWVkTXVsdGlwbGllcjsKICAgICBlbmNvZGVyIDw8IHN1cHByZXNz
ZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZTsKKyAgICBlbmNvZGVyIDw8IGFs
bG93c1NlcnZlclByZWNvbm5lY3Q7CiB9CiAKIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTI2Niw2ICsyNjcsMTEgQEAgT3B0aW9uYWw8TmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWMKICAgICBpZiAoIXN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3Rl
bUNoYW5nZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPGJv
b2w+IGFsbG93c1NlcnZlclByZWNvbm5lY3Q7CisgICAgZGVjb2RlciA+PiBhbGxvd3NTZXJ2ZXJQ
cmVjb25uZWN0OworICAgIGlmICghYWxsb3dzU2VydmVyUHJlY29ubmVjdCkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIHJldHVybiB7ewogICAgICAgICAqc2Vzc2lvbklECiAg
ICAgICAgICwgV1RGTW92ZSgqYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKQpAQCAtMzA4LDYgKzMx
NCw3IEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAgICAgICwgV1RGTW92ZSgqc3RhbGVX
aGlsZVJldmFsaWRhdGVFbmFibGVkKQogICAgICAgICAsIFdURk1vdmUoKnRlc3RTcGVlZE11bHRp
cGxpZXIpCiAgICAgICAgICwgV1RGTW92ZSgqc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlv
bk9uU3lzdGVtQ2hhbmdlKQorICAgICAgICAsIFdURk1vdmUoKmFsbG93c1NlcnZlclByZWNvbm5l
Y3QpCiAgICAgfX07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzODEz
NDQ4ZWIyOGFjMTBkZGEzNDc2YTllNmE1ZWMxYzNlNTM2YWYyLi5jZTQzOGM1NjhjMmVlZGE0MmFk
YzBlMGY2NDE5ZjY5NGJmMWRhZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0xMDEsNiArMTAxLDcgQEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
IHsKICAgICBib29sIHN0YWxlV2hpbGVSZXZhbGlkYXRlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAg
dW5zaWduZWQgdGVzdFNwZWVkTXVsdGlwbGllciB7IDEgfTsKICAgICBib29sIHN1cHByZXNzZXND
b25uZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZSB7IGZhbHNlIH07CisgICAgYm9vbCBh
bGxvd3NTZXJ2ZXJQcmVjb25uZWN0IHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGZjZDZiNjcz
NjA5ODZiMjNkODYyYzc5ZDkzODQwYmI0OWQyNDgxNDEuLjgwOWE3ODIxZjM4YTZiZGY4YjNjYThj
MzA0M2U2NDAyYTNhNzgxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oCkBAIC02OSw2ICs2OSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlv
cygxMS4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKm1l
ZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIHRl
c3RTcGVlZE11bHRpcGxpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHN1cHByZXNzZXNDb25u
ZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
YWxsb3dzU2VydmVyUHJlY29ubmVjdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0aW5nIG9ubHkuCiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNG
b3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCmluZGV4IGJmMTI5MDZhYTQyODhk
OTNjN2ZlZGQ1ZmYyMmMwNjZlZGIxM2IzOGQuLjY3NDUzZDM4NDc3ZTE3MTI0NzNlM2M2ZDQ0OWM5
OThlNjNiMTFhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0K
QEAgLTM1MCw2ICszNTAsMTYgQEAgLSAodm9pZClzZXRTdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1p
bmF0aW9uT25TeXN0ZW1DaGFuZ2U6KEJPT0wpc3VwcHJlc3NlcwogICAgIF9jb25maWd1cmF0aW9u
LT5zZXRTdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2Uoc3VwcHJl
c3Nlcyk7CiB9CiAKKy0gKEJPT0wpYWxsb3dzU2VydmVyUHJlY29ubmVjdAoreworICAgIHJldHVy
biBfY29uZmlndXJhdGlvbi0+YWxsb3dzU2VydmVyUHJlY29ubmVjdCgpOworfQorCistICh2b2lk
KXNldEFsbG93c1NlcnZlclByZWNvbm5lY3Q6KEJPT0wpYWxsb3dzCit7CisgICAgX2NvbmZpZ3Vy
YXRpb24tPnNldEFsbG93c1NlcnZlclByZWNvbm5lY3QoYWxsb3dzKTsKK30KKwogLSAoTlNTdHJp
bmcgKilib3VuZEludGVyZmFjZUlkZW50aWZpZXIKIHsKICAgICByZXR1cm4gX2NvbmZpZ3VyYXRp
b24tPmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9y
ZUNvY29hLm1tCmluZGV4IDE4ODhjOGRiMzk5OTIzYjVjYzE0YmJkNGZlOTViYmViYjg3ZjJmM2Eu
LmQ2NGIyYzllM2JmNDA3ODhjMmE0Y2FiMzZjM2IyMTYxZmE4ZTljZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9X
ZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTE2Nyw2ICsxNjcsNyBAQCBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAgICAgbV9j
b25maWd1cmF0aW9uLT5zdGFsZVdoaWxlUmV2YWxpZGF0ZUVuYWJsZWQoKSwKICAgICAgICAgbV9j
b25maWd1cmF0aW9uLT50ZXN0U3BlZWRNdWx0aXBsaWVyKCksCiAgICAgICAgIG1fY29uZmlndXJh
dGlvbi0+c3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlKCksCisg
ICAgICAgIG1fY29uZmlndXJhdGlvbi0+YWxsb3dzU2VydmVyUHJlY29ubmVjdCgpLAogICAgIH07
CiAgICAgbmV0d29ya2luZ0hhc0JlZ3VuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmNwcAppbmRleCBiNTAzYjQyZDlkNDRjNTI3OThmMTVmZDM2MThmMDQ0OTczMjAx
YjVhLi40NGJkZDdkZmM3YWM2YmU2MzE4MDFkZTI1ZTg4YjE5OWU3ODZiMTEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC04Nyw2ICs4Nyw3IEBAIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b246OmNvcHkoKSBjb25zdAogICAgIGNvcHktPm1fdGVzdGluZ1Nlc3Npb25FbmFibGVkID0gdGhp
cy0+bV90ZXN0aW5nU2Vzc2lvbkVuYWJsZWQ7CiAgICAgY29weS0+bV90ZXN0U3BlZWRNdWx0aXBs
aWVyID0gdGhpcy0+bV90ZXN0U3BlZWRNdWx0aXBsaWVyOwogICAgIGNvcHktPm1fc3VwcHJlc3Nl
c0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlID0gdGhpcy0+bV9zdXBwcmVzc2Vz
Q29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2U7CisgICAgY29weS0+bV9hbGxvd3NT
ZXJ2ZXJQcmVjb25uZWN0ID0gdGhpcy0+bV9hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0OwogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIGlmIChtX3Byb3h5Q29uZmlndXJhdGlvbikKICAgICAgICAgY29w
eS0+bV9wcm94eUNvbmZpZ3VyYXRpb24gPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZUNvcHko
bnVsbHB0ciwgdGhpcy0+bV9wcm94eUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IDZhZDUxOWRlZjUxZDRmZDM5OTVhYjlhMTY1
NTE1M2M3NTA5MDk0OTEuLmRiZDFjYmZhNTBlY2MxMDdkYmZjOWMyNGMxMjZkMDcxODQ5NzQzM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtMTQ0LDYgKzE0NCw5
IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5
c3RlbUNoYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5h
dGlvbk9uU3lzdGVtQ2hhbmdlOyB9CiAgICAgdm9pZCBzZXRTdXBwcmVzc2VzQ29ubmVjdGlvblRl
cm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UoYm9vbCBzdXBwcmVzc2VzKSB7IG1fc3VwcHJlc3Nlc0Nv
bm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlID0gc3VwcHJlc3NlczsgfQogCisgICAg
Ym9vbCBhbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NTZXJ2
ZXJQcmVjb25uZWN0OyB9CisgICAgdm9pZCBzZXRBbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KGJvb2wg
YWxsb3dzKSB7IG1fYWxsb3dzU2VydmVyUHJlY29ubmVjdCA9IGFsbG93czsgfQorCiBwcml2YXRl
OgogICAgIElzUGVyc2lzdGVudCBtX2lzUGVyc2lzdGVudCB7IElzUGVyc2lzdGVudDo6Tm8gfTsK
IApAQCAtMTgyLDYgKzE4NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3NlcnZpY2VXb3JrZXJQ
cm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX3Rlc3Rp
bmdTZXNzaW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1cHByZXNzZXNDb25uZWN0
aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2FsbG93
c1NlcnZlclByZWNvbm5lY3QgeyB0cnVlIH07CiAgICAgdW5zaWduZWQgbV90ZXN0U3BlZWRNdWx0
aXBsaWVyIHsgMSB9OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rp
b25hcnlSZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDUwNmEyZjI2
MWU5ZWI3NDY3MjY3OGZiYzc5MmViYzFiYmFlZTQyYjYuLjQyMTdmZWUxM2YyYWE5OGYwMDY4ZGNk
OTkwZWUzNzViZGFmZjI5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTY0NCwxMCArNjQ0LDYgQEAgdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6ZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJ
ZGVudGlmaWVyLCBSZXNvdXJjZUUKIAogdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVj
dFRvKEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgY29uc3QgVVJMJiB1cmwsIFN0b3JlZENyZWRl
bnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBQcmVjb25uZWN0Q29tcGxldGlv
bkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICB1aW50NjRfdCBwcmVjb25uZWN0
aW9uSWRlbnRpZmllciA9IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKTsKLSAgICBhdXRvIGFkZFJl
c3VsdCA9IG1fcHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVycy5hZGQocHJlY29ubmVjdGlvbklk
ZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICBBU1NFUlRfVU5VU0VE
KGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwotCiAgICAgYXV0byogd2ViRnJhbWVM
b2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lTG9hZGVyLmNsaWVudCgp
KTsKICAgICBpZiAoIXdlYkZyYW1lTG9hZGVyQ2xpZW50KSB7CiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGludGVybmFsRXJyb3IodXJsKSk7CkBAIC02NjQsMTEgKzY2MCwyMCBAQCB2b2lkIFdl
YkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8oRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCBj
b25zdCBVUkwmIHVybCwgUwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgcHJlY29ubmVj
dFRvKFJlc291cmNlUmVxdWVzdCB7IHVybCB9LCAqd2ViUGFnZSwgKndlYkZyYW1lLCBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8oV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgV2ViUGFnZSYgd2ViUGFnZSwgV2ViRnJhbWUmIHdlYkZyYW1lLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUHJlY29u
bmVjdENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgdWludDY0
X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCk7Cisg
ICAgYXV0byBhZGRSZXN1bHQgPSBtX3ByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnMuYWRkKHBy
ZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
QVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKKwogICAgIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Ci0gICAgcGFyYW1ldGVycy5y
ZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0IHsgdXJsIH07Ci0gICAgcGFyYW1ldGVycy53ZWJQYWdl
UHJveHlJRCA9IHdlYlBhZ2UtPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKTsKLSAgICBwYXJhbWV0
ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UtPmlkZW50aWZpZXIoKTsKLSAgICBwYXJhbWV0ZXJzLndl
YkZyYW1lSUQgPSB3ZWJGcmFtZS0+ZnJhbWVJRCgpOworICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9
IFdURk1vdmUocmVxdWVzdCk7CisgICAgcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCA9IHdlYlBh
Z2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpOworICAgIHBhcmFtZXRlcnMud2ViUGFnZUlEID0g
d2ViUGFnZS5pZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJh
bWUuZnJhbWVJRCgpOwogICAgIHBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxp
Y2F0aW9uUElEKCk7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICBwYXJhbWV0ZXJzLm5ldHdv
cmtQcm9jZXNzQXVkaXRUb2tlbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLm5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgK
aW5kZXggYjI0NzhhYjUwZDE0MDA5ZGI0NWM2MjkxN2I5Yzc0OGE1NWExYWIyYy4uZGU4MWU2MDA0
ZjEzMzk5ODRlM2VhMjhiYmYwMGE1MGRjY2Y1OGRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC00MCw2ICs0MCw4
IEBAIHN0cnVjdCBGZXRjaE9wdGlvbnM7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2ViRnJhbWU7CitjbGFzcyBXZWJQYWdlOwog
Y2xhc3MgV2ViVVJMU2NoZW1lVGFza1Byb3h5OwogdHlwZWRlZiB1aW50NjRfdCBSZXNvdXJjZUxv
YWRJZGVudGlmaWVyOwogCkBAIC02Niw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0
UGluZ0xvYWQoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBjb25zdCBX
ZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgZGlk
RmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAKKyAgICB2b2lkIHBy
ZWNvbm5lY3RUbyhXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViUGFnZSYsIFdlYkZyYW1l
JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9u
SGFuZGxlciYmKTsKICAgICB2b2lkIHByZWNvbm5lY3RUbyhXZWJDb3JlOjpGcmFtZUxvYWRlciYs
IGNvbnN0IFVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBQcmVjb25uZWN0
Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hQcmVjb25uZWN0
aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDdiOTlhNmI0NTEyODlhYmM1NTlhMzkxNTRmZGMxMWZjMmI5NTkzZGYuLmQyNmVmZjVm
YmM1MTFkOWM4MWNhNjVhODE5OTMyOGZjMjRlMjFmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05OCw2ICs5OCw3IEBACiAjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSS5oIgogI2lu
Y2x1ZGUgIldlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJMb2FkZXJTdHJh
dGVneS5oIgogI2luY2x1ZGUgIldlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCIKICNpbmNsdWRl
ICJXZWJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lci5oIgpAQCAtMTUyNiw2ICsxNTI3LDkgQEAgdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVz
dChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQogewogICAgIFNlbmRTdG9wUmVzcG9u
c2l2ZW5lc3NUaW1lciBzdG9wcGVyOwogCisgICAgaWYgKGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3Qu
dXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYmICFTZWN1cml0eU9yaWdpbjo6aXNMb2Nh
bEhvc3RPckxvb3BiYWNrSVBBZGRyZXNzKGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkuaG9z
dCgpKSkKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3ko
KS5wcmVjb25uZWN0VG8oUmVzb3VyY2VSZXF1ZXN0IHsgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCB9
LCAqdGhpcywgKm1fbWFpbkZyYW1lLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBbXShj
b25zdCBSZXNvdXJjZUVycm9yJikgeyB9KTsKKwogICAgIG1fcGVuZGluZ05hdmlnYXRpb25JRCA9
IGxvYWRQYXJhbWV0ZXJzLm5hdmlnYXRpb25JRDsKICAgICBtX3BlbmRpbmdXZWJzaXRlUG9saWNp
ZXMgPSBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyk7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tCmluZGV4IGI1YWVkZjU2
YTg0MDQ3MmMzNjZhZGVjM2Y0YWU2MzBmYmY1NWYzYmEuLmI5NDA0ZGM0ZDQ4NDcyM2Y3NWM4M2U1
MzU3ZTlmOTZlNWY3YjFjMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJveHkubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Qcm94eS5tbQpAQCAtNjMsNiArNjMsNyBAQCBURVNUKFdlYktpdCwgSFRUUFNQcm94
eSkKIAogICAgIGF1dG8gc3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7CiAgICAgW3N0b3JlQ29uZmlndXJhdGlvbiBzZXRI
VFRQU1Byb3h5OltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiaHR0cHM6Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXTsKKyAgICBbc3RvcmVD
b25maWd1cmF0aW9uIHNldEFsbG93c1NlcnZlclByZWNvbm5lY3Q6Tk9dOwogICAgIGF1dG8gdmll
d0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOwog
ICAgIFt2aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOltbW1dLV2Vic2l0ZURh
dGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldIGF1dG9yZWxlYXNlXV07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25m
aWd1cmF0aW9uOnZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MubW0KaW5kZXggZjNjZWRhZmU3ZTYyNjI1ODA2Y2Y0YzFiZTZiNzYzMDA3MjM2NmZhYy4u
NGZkY2RiNWRiNGYwZmYyMDJhY2NhYmM5OGQ1ZDAyY2Y1Yjg5ZTBhYyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5tbQpAQCAtNTM0LDYgKzUzNCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcywgRGF0YVRhc2tJZGVudGlmaWVyQ29sbGlzaW9uKQogCiAgICAgX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24gKnN0b3JlQ29uZmlndXJhdGlvbiA9IFtbX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSBhdXRvcmVsZWFzZV07CiAgICAgc3RvcmVDb25maWd1
cmF0aW9uLmh0dHBzUHJveHkgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAImh0dHBzOi8vMTI3LjAuMC4xOiVkLyIsIGh0dHBzU2VydmVyLnBvcnQoKV1d
OworICAgIHN0b3JlQ29uZmlndXJhdGlvbi5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0ID0gTk87CiAg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlICpkYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3RvcmUg
YWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uXSBhdXRvcmVs
ZWFzZV07CiAgICAgYXV0byB2aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gbmV3XSk7CiAgICAgW3ZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRh
U3RvcmU6ZGF0YVN0b3JlXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>