<?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>235475</bug_id>
          
          <creation_ts>2022-01-22 05:58:06 -0800</creation_ts>
          <short_desc>REGRESSION (iOS 15.2): Loading gets stuck after back-navigation involving COOP header</short_desc>
          <delta_ts>2022-06-23 15:50:43 -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>New Bugs</component>
          <version>Safari 15</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 15</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="Rémi">remi</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ddworken</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>francois</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>steffen.weber</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1833001</commentid>
    <comment_count>0</comment_count>
    <who name="Rémi">remi</who>
    <bug_when>2022-01-22 05:58:06 -0800</bug_when>
    <thetext>Overview
========

Back-navigation gets stuck in infinite loading under some circumstances when the Cross-Origin-Opener-Policy header is in use.
This bug seems to impact only iOS and iPadOS 15.2, using any browser (e.g. we tried on Safari, Brave and Firefox).
It seems like the COOP header was not supported before this version (https://webkit.org/blog/12140/new-webkit-features-in-safari-15-2/)

Steps to reproduce
==================

Here is a page which allows to reproduce the issue: https://fmarier.org/coop-safari/link.html (Thank you Francois)
The flow is the following:
- &apos;Site 1&apos; sets the COOP header (either with value &apos;same-origin-allow-popups&apos; or &apos;same-origin&apos;)
- User navigates to &apos;site 2&apos; from &apos;site 1&apos; (e.g. in this case Instagram, which is how we discovered the issue in the first place)
- User navigates backward from &apos;site 2&apos; to &apos;site 1&apos;, but the loading gets stuck.

Expected result
===============

It should be possible to navigate backward from &apos;site 2&apos; to &apos;site 1&apos; without the browser getting stuck loading.

Additional information
======================

Removing the COOP header from &apos;site 1&apos; results in back-navigation working as expected.

Speculation
===========

It is not 100% clear what is causing this issue, but it seems to happen in some cases when &apos;site 1&apos; and &apos;site 2&apos; both define a COOP header, and user tries to navigation back from &apos;site 2&apos; to &apos;site 1&apos;.

Build Date &amp; Hardware
=====================

The version of iOS where the issue was observed is 15.2.1 (19C63), the same issue appears on iPadOS 15.2 as well. We could not reproduce on the previous iOS version nor on the desktop version of Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833177</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-23 17:29:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/87948317&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833513</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-01-24 15:07:33 -0800</bug_when>
    <thetext>I am able to reproduce. Thank you for the bug report, I will investigate shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833545</commentid>
    <comment_count>3</comment_count>
      <attachid>449878</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-01-24 16:07:03 -0800</bug_when>
    <thetext>Created attachment 449878
API Test reproducing the issue

From the output it appears we keep launching new WebProcesses in a loop when we get in the bad state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833821</commentid>
    <comment_count>4</comment_count>
      <attachid>449957</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-01-25 12:53:49 -0800</bug_when>
    <thetext>Created attachment 449957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833853</commentid>
    <comment_count>5</comment_count>
      <attachid>449965</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-01-25 14:08:42 -0800</bug_when>
    <thetext>Created attachment 449965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833913</commentid>
    <comment_count>6</comment_count>
      <attachid>449965</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-01-25 16:08:44 -0800</bug_when>
    <thetext>Comment on attachment 449965
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833989</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-25 23:01:23 -0800</bug_when>
    <thetext>Committed r288605 (246424@main): &lt;https://commits.webkit.org/246424@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449965.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869244</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-05-16 08:55:12 -0700</bug_when>
    <thetext>*** Bug 237137 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1877951</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-06-23 15:50:43 -0700</bug_when>
    <thetext>*** Bug 237566 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449878</attachid>
            <date>2022-01-24 16:07:03 -0800</date>
            <delta_ts>2022-01-25 12:53:47 -0800</delta_ts>
            <desc>API Test reproducing the issue</desc>
            <filename>235475_API_Test.patch</filename>
            <type>text/plain</type>
            <size>2468</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGM5MjJiNjNhMjcxNi4uZjQ5NDYz
MDVjZjJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczNDgsNiArNzM0
OCw0NSBAQCBURVNUKFByb2Nlc3NTd2FwLCBSZXNwb25zZVBvbGljeURvd25sb2FkQWZ0ZXJDT09Q
UHJvY2Vzc1N3YXApCiAgICAgfSB3aGlsZSAoaXNGcm96ZW4pOwogfQogCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdBd2F5RnJvbUNPT1ApCit7CisgICAgdXNp
bmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisKKyAgICBIVFRQU2VydmVyIHNlcnZlcih7Cisg
ICAgICAgIHsgIi9zb3VyY2UuaHRtbCIsIHsgeyB7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1s
IiB9LCB7ICJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSIsICJzYW1lLW9yaWdpbiIgfSB9LCAi
Zm9vIiB9IH0sCisgICAgICAgIHsgIi9kZXN0aW5hdGlvbi5odG1sIiwgeyAiYmFyIiB9IH0sCisg
ICAgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKKworICAgIGF1dG8gcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1
dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1
dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9v
bDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpm
ZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAg
ICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbk9wZW5lclBv
bGljeUVuYWJsZWQiXSkKKyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwor
ICAgICAgICBlbHNlIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeUVuYWJsZWQiXSkKKyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OmZlYXR1cmVdOworICAgIH0KKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmln
dXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gbmF2aWdhdGlv
bkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRl
LmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpz
ZXJ2ZXIucmVxdWVzdCgiL3NvdXJjZS5odG1sIildOworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgZG9uZSA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVl
c3QoIi9kZXN0aW5hdGlvbi5odG1sIildOworICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9u
ZSA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgZ29CYWNrXTsKKyAgICBVdGlsOjpydW4oJmRvbmUp
OworICAgIGRvbmUgPSBmYWxzZTsKK30KKwogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29s
IHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBO
bywgWWVzIH07CiBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIq
IHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0
aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1l
T3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0
U3dhcCBleHBlY3RTd2FwKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449957</attachid>
            <date>2022-01-25 12:53:49 -0800</date>
            <delta_ts>2022-01-25 14:08:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235475-20220125125348.patch</filename>
            <type>text/plain</type>
            <size>18996</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhjMzA4YmMyM2NlZWNiY2Ew
YTEzOGVkMGU1MTc2M2I1YzE3ZTY5YmQuLmY0NTg4Y2UwYWFmZDgyNzg5YzJhMjNiMTQ2OTI0N2Ux
OTU4ZTNlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjItMDEtMjUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChpT1MgMTUuMik6
IExvYWRpbmcgZ2V0cyBzdHVjayBhZnRlciBiYWNrLW5hdmlnYXRpb24gaW52b2x2aW5nIENPT1Ag
aGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzU0NzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3OTQ4MzE3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlBhZ2VQcm94eTo6Y29udGludWVO
YXZpZ2F0aW9uSW5OZXdQcm9jZXNzKCkgd2FzIGZhaWxpbmcgdG8gcGFzcyB0aGUgaWRlbnRpZmll
ciBvZiB0aGUKKyAgICAgICAgTmV0d29ya1Jlc291cmNlTG9hZGVyIHRoYXQgbmVlZHMgdG8gYmUg
cmVzdW1lZCB0byBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSgpLgor
ICAgICAgICBJdCB3YXMgb25seSBwYXNzaW5nIGl0IHRvIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojps
b2FkUmVxdWVzdCgpLCB3aGljaCBpcyB1c2VkIGZvciBub24tYmFjay9mb3J3YXJkCisgICAgICAg
IG5hdmlnYXRpb25zLiBBcyBhIHJlc3VsdCwgaW4gY2FzZSBvZiBDT09QIHByb2Nlc3Mtc3dhcCBv
biBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbiwgdGhlIG5ldHdvcmsKKyAgICAgICAgcHJvY2VzcyB3
b3VsZCBzdGFydCBhIGZyZXNoIGxvYWQgaW5zdGVhZCBvZiByZXN1bWluZyB0aGUgZXhpc3Rpbmcg
b25lLiBUaGUgZnJlc2ggbG9hZCB3b3VsZCBnZXQKKyAgICAgICAgYSBDT09QIGhlYWRlciBhbmQg
dGh1cyB0cmlnZ2VyIHlldCBhbm90aGVyIHByb2Nlc3Mgc3dhcCAoYW5kIHNvIG9uIGluIGEgbG9v
cCkuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bGF1bmNoUHJvY2Vzc0ZvclJl
bG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRl
bSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5O
ZXdQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0cmlnZ2VyQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2hGb3JOYXZpZ2F0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvVG9CYWNr
Rm9yd2FyZEl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjIt
MDEtMjQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OKHIyODIzMjApOiBbQ29jb2FdIFVzZXItaW5zdGFsbGVkIGZvbnRzIGRvbid0
IHdvcmsgaW4gdGhlIEdQVSBQcm9jZXNzIChpbiBXS1dlYlZpZXcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggZjM4MTIyYTM0YTFj
YmE5YzRmNGFiYzY4MzU0MjU5NjlkNDExNzM5YS4uMjNhMDBlNjYzMTQ2NTcyMjk1MDljOGExYzc4
YjhjNzY1MTRiNmY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmNwcApAQCAtMTk4LDkgKzE5OCw5IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6
UmVzCiAgICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIFdURk1vdmUocmVxdWVzdCksIG5h
dmlnYXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5LCB1c2VyRGF0YSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyksIGV4aXN0aW5nTmV0d29y
a1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9u
LCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNp
ZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0Jh
Y2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mIGl0ZW0sIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9s
aWNpZXMsIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0
aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkKIHsKLSAgICBQUk9WSVNJ
T05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJnb1RvQmFja0Zvcndh
cmRJdGVtOiIpOworICAgIFBST1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NT
d2FwcGluZywgImdvVG9CYWNrRm9yd2FyZEl0ZW06IGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9h
ZElkZW50aWZpZXJUb1Jlc3VtZT0lIiBQUkl1NjQsIHZhbHVlT3JEZWZhdWx0KGV4aXN0aW5nTmV0
d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkudG9VSW50NjQoKSk7CiAKICAgICBh
dXRvIGl0ZW1TdGF0ZXMgPSBtX3BhZ2UuYmFja0ZvcndhcmRMaXN0KCkuZmlsdGVyZWRJdGVtU3Rh
dGVzKFt0aGlzLCB0YXJnZXRJdGVtID0gJml0ZW1dKGF1dG8mIGl0ZW0pIHsKICAgICAgICAgaWYg
KGF1dG8qIGJhY2tGb3J3YXJkQ2FjaGVFbnRyeSA9IGl0ZW0uYmFja0ZvcndhcmRDYWNoZUVudHJ5
KCkpIHsKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1Rv
QmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQgogICAgICAg
ICB3ZWJzaXRlUG9saWNpZXNEYXRhID0gd2Vic2l0ZVBvbGljaWVzLT5kYXRhKCk7CiAgICAgCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VXBkYXRlQmFja0ZvcndhcmRMaXN0Rm9yUmVhdHRh
Y2goV1RGTW92ZShpdGVtU3RhdGVzKSkpOwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6Okdv
VG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgaXRlbS5pdGVtSUQo
KSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlKCksIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24s
IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSksIG1fcGFnZS5sYXN0TmF2aWdhdGlvbldhc0Fw
cEluaXRpYXRlZCgpKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3
YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpdGVtLml0ZW1JRCgpLCAqbmF2aWdh
dGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgV1RGTW92ZSh3
ZWJzaXRlUG9saWNpZXNEYXRhKSwgbV9wYWdlLmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVk
KCksIGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkpOwogICAg
IG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IGFhMWY0ODcxMmU1
OWJjN2U4YzNjMGQxOGZmMzRkM2U5ZTdiNmM0Y2QuLjZlNjJmOGFhZDAzMDZiNDM1YjE3NDMzZWM1
OGM5NDQ2NWI4ODQ0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaApAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbG9h
ZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBi
YXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0
ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURh
dGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdChBUEk6
Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9u
YWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQsIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNl
TG9hZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jl
c3VtZSA9IHN0ZDo6bnVsbG9wdCk7Ci0gICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6
TmF2aWdhdGlvbiYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mLCBSZWZQdHI8QVBJOjpXZWJzaXRl
UG9saWNpZXM+JiYpOworICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRp
b24mLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVz
PiYmLCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyPiBleGlzdGlu
Z05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUgPSBzdGQ6Om51bGxvcHQpOwog
ICAgIHZvaWQgY2FuY2VsKCk7CiAKICAgICB2b2lkIHVuZnJlZXplTGF5ZXJUcmVlRHVlVG9Td2lw
ZUFuaW1hdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggZjRiMzEwZmFjYjdkMTA0NWY0M2JiNTZmZGYwMzIzM2E2ZGU3YjY3Ny4uMmExZTJkMDI2MzM0
OTBhNmZlY2M5ZjgwNGFmYzA4MzY1MTJmZmY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0xMDkzLDcgKzEwOTMsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0
aW9uPiBXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NGb3JSZWxvYWQoKQogICAgIH0KIAogICAg
IC8vIFdlIGFsbG93IHN0YWxlIGNvbnRlbnQgd2hlbiByZWxvYWRpbmcgYSBXZWJQcm9jZXNzIHRo
YXQncyBiZWVuIGtpbGxlZCBvciBjcmFzaGVkLgotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIG1fYmFja0Zv
cndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5pdGVtSUQoKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhl
ZEJhY2tGb3J3YXJkLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vLCBzdGQ6Om51bGxv
cHQsIG1fbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpKTsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgp
LCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbUlEKCksIEZyYW1lTG9hZFR5
cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywg
c3RkOjpudWxsb3B0LCBtX2xhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkLCBzdGQ6Om51bGxv
cHQpKTsKICAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAg
cmV0dXJuIG5hdmlnYXRpb247CkBAIC0xODQxLDcgKzE4NDEsNyBAQCBSZWZQdHI8QVBJOjpOYXZp
Z2F0aW9uPiBXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRM
aXN0SXRlbQogICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdCh0cmFuc2Fj
dGlvbiwgeyBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVt
LnVybCgpIH0pOwogCiAgICAgbV9wcm9jZXNzLT5tYXJrUHJvY2Vzc0FzUmVjZW50bHlVc2VkKCk7
Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0
aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVtLml0ZW1JRCgpLCBmcmFt
ZUxvYWRUeXBlLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vLCBzdGQ6Om51bGxvcHQs
IG1fbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZp
Z2F0aW9uSUQoKSA6IDAsIGl0ZW0uaXRlbUlEKCksIGZyYW1lTG9hZFR5cGUsIFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZDo6Tm8sIHN0ZDo6bnVsbG9wdCwgbV9sYXN0TmF2aWdhdGlvbldhc0Fw
cEluaXRpYXRlZCwgc3RkOjpudWxsb3B0KSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNp
dmVuZXNzVGltZXIoKTsKIAogICAgIHJldHVybiBuYXZpZ2F0aW9uOwpAQCAtMzYyNiw3ICszNjI2
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhB
UEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHMKICAgICAgICAgICAgIGF1dG8gdHJhbnNhY3Rp
b24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKICAgICAgICAgICAgIG1fcGFnZUxv
YWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdCh0cmFuc2FjdGlvbiwgeyBuYXZpZ2F0aW9uLT5u
YXZpZ2F0aW9uSUQoKSwgaXRlbS0+dXJsKCkgfSk7CiAKLSAgICAgICAgICAgIG1fcHJvdmlzaW9u
YWxQYWdlLT5nb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24sICppdGVtLCBXVEZNb3ZlKHdl
YnNpdGVQb2xpY2llcykpOworICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmdvVG9CYWNr
Rm9yd2FyZEl0ZW0obmF2aWdhdGlvbiwgKml0ZW0sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwg
ZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC01NjkzLDcgKzU2OTMsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6dHJpZ2dlckJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRm9yTmF2aWdhdGlvbih1
aW50NjRfdCBuYXZpZwogewogICAgIEFTU0VSVChicm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERl
Y2lzaW9uICE9IEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb246OlN0YXlJbkdyb3Vw
KTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvbklE
ID8gbV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklEKSA6IG51bGxwdHI7
Ci0gICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgInRyaWdnZXJC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb246IFByb2Nlc3Mtc3dhcHBpbmcg
ZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5LCBuZXdQcm9jZXNzSXNDcm9zc09yaWdp
bklzb2xhdGVkPSVkLCBuYXZpZ2F0aW9uPSVwIiwgYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hE
ZWNpc2lvbiA9PSBCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uOjpOZXdJc29sYXRl
ZEdyb3VwLCBuYXZpZ2F0aW9uLmdldCgpKTsKKyAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0co
UHJvY2Vzc1N3YXBwaW5nLCAidHJpZ2dlckJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRm9yTmF2
aWdhdGlvbjogUHJvY2Vzcy1zd2FwcGluZyBkdWUgdG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xp
Y3ksIG5ld1Byb2Nlc3NJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ9JWQsIG5hdmlnYXRpb249JXAgZXhp
c3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lPSUiIFBSSXU2NCwgYnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiA9PSBCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaERlY2lzaW9uOjpOZXdJc29sYXRlZEdyb3VwLCBuYXZpZ2F0aW9uLmdldCgpLCBleGlzdGlu
Z05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUudG9VSW50NjQoKSk7CiAgICAg
aWYgKCFuYXZpZ2F0aW9uKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IGJhMmQzZmEzY2EyYzhlNGMzNjAwNDM4OWFlZmNkNzAwMTlkZjliNjIuLjkwZDE4ODFmYzAzYjNj
MGViYmE3NmU2MDVjMGM3N2I0MmYzYTg1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNjgzLDYgKzE2ODMsOCBAQCB2b2lkIFdlYlBhZ2U6
OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKGNvbnN0IExvYWRQYXJhbWV0ZXJzJiBs
b2FkUGFyYW1ldAogCiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0KExvYWRQYXJhbWV0ZXJzJiYg
bG9hZFBhcmFtZXRlcnMpCiB7CisgICAgV0VCUEFHRV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAibG9h
ZFJlcXVlc3Q6IG5hdmlnYXRpb25JRD0lIiBQUkl1NjQgIiwgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkPSV1LCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZD0lZCwgZXhpc3RpbmdOZXR3
b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lPSUiIFBSSXU2NCwgbG9hZFBhcmFtZXRl
cnMubmF2aWdhdGlvbklELCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obG9hZFBhcmFtZXRlcnMuc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKSwgbG9hZFBhcmFtZXRlcnMucmVxdWVzdC5pc0FwcElu
aXRpYXRlZCgpLCB2YWx1ZU9yRGVmYXVsdChsb2FkUGFyYW1ldGVycy5leGlzdGluZ05ldHdvcmtS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpLnRvVUludDY0KCkpOworCiAgICAgc2V0TGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQobG9hZFBhcmFtZXRlcnMucmVxdWVzdC5pc0FwcElu
aXRpYXRlZCgpKTsKIAogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKQEAgLTE3NTgsNiAr
MTc2MCw4IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbXBsKHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNoCiAKIHZvaWQgV2ViUGFnZTo6bG9hZERh
dGEoTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycykKIHsKKyAgICBXRUJQQUdFX1JFTEVB
U0VfTE9HKExvYWRpbmcsICJsb2FkRGF0YTogbmF2aWdhdGlvbklEPSUiIFBSSXU2NCAiLCBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ9JXUiLCBsb2FkUGFyYW1ldGVycy5uYXZpZ2F0aW9uSUQs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQpKTsKKwogICAgIHBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKGxvYWRQ
YXJhbWV0ZXJzKTsKIAogICAgIGF1dG8gc2hhcmVkQnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVh
dGUobG9hZFBhcmFtZXRlcnMuZGF0YS5kYXRhKCksIGxvYWRQYXJhbWV0ZXJzLmRhdGEuc2l6ZSgp
KTsKQEAgLTE4NzEsMTQgKzE4NzUsMjEgQEAgdm9pZCBXZWJQYWdlOjpyZWxvYWQodWludDY0X3Qg
bmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRpb25zLCBTYW5kYm94RXh0ZW4KICAgICB9
CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImIGJhY2tGb3J3YXJkSXRlbUlE
LCBGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9s
aWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgYm9vbCBsYXN0TmF2aWdhdGlvbldhc0FwcElu
aXRpYXRlZCkKK3ZvaWQgV2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImIGJhY2tGb3J3YXJkSXRl
bUlELCBGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRl
UG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgYm9vbCBsYXN0TmF2aWdhdGlvbldhc0Fw
cEluaXRpYXRlZCwgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllcj4g
ZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKQogeworICAgIFdF
QlBBR0VfUkVMRUFTRV9MT0coTG9hZGluZywgImdvVG9CYWNrRm9yd2FyZEl0ZW06IG5hdmlnYXRp
b25JRD0lIiBQUkl1NjQgIiwgYmFja0ZvcndhcmRJdGVtSUQ9JXMsIHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZD0ldSwgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ9JWQsIGV4aXN0aW5n
TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZT0lIiBQUkl1NjQsIG5hdmlnYXRp
b25JRCwgYmFja0ZvcndhcmRJdGVtSUQuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCksIGxhc3ROYXZpZ2F0aW9u
V2FzQXBwSW5pdGlhdGVkLCB2YWx1ZU9yRGVmYXVsdChleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyVG9SZXN1bWUpLnRvVUludDY0KCkpOworCiAgICAgU2VuZFN0b3BSZXNwb25z
aXZlbmVzc1RpbWVyIHN0b3BwZXI7CiAKICAgICBtX2xhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkID0gbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ7CiAgICAgaWYgKGF1dG8qIGRvY3Vt
ZW50TG9hZGVyID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKSkKICAgICAgICAgZG9jdW1lbnRMb2FkZXItPnNldExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkKGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsKIAorICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuc2V0RXhpc3RpbmdOZXR3b3JrUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50
aWZpZXJUb1Jlc3VtZSk7CisgICAgYXV0byByZXN1bWluZ0xvYWRTY29wZSA9IG1ha2VTY29wZUV4
aXQoW10geworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVn
eSgpLnNldEV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZShzdGQ6
Om51bGxvcHQpOworICAgIH0pOworCiAgICAgQVNTRVJUKGlzQmFja0ZvcndhcmRMb2FkVHlwZShi
YWNrRm9yd2FyZFR5cGUpKTsKIAogICAgIEhpc3RvcnlJdGVtKiBpdGVtID0gV2ViQmFja0Zvcndh
cmRMaXN0UHJveHk6Oml0ZW1Gb3JJRChiYWNrRm9yd2FyZEl0ZW1JRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDI5MjA3NGVmZGUyZDdkZGI2YjA2
YWIyZDViMWNjMWI4Yzg1ZDM2NS4uZmVkYmU2MDVkNTI2YjA4OGE5NjQ0ZmVlMjY5M2E0NzNiNWY4
ZjNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
MTYwMiw3ICsxNjAyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5hdmlnYXRlVG9QREZMaW5rV2l0
aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmluZyYgdXJsLCBXZWJDb3JlOjpJbnRQb2ludCBkb2N1
bWVudFBvaW50LCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Qb2ludCk7CiAgICAgdm9pZCBnZXRQ
REZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpGbG9hdFNpemUpPiYmKTsKICAgICB2b2lkIHJlbG9hZCh1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJlbG9hZE9wdGlvbnMsIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYmKTsKLSAgICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgV2ViQ29y
ZTo6RnJhbWVMb2FkVHlwZSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBz
dGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYsIGJvb2wgbGFzdE5hdmlnYXRpb25X
YXNBcHBJbml0aWF0ZWQpOworICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBX
ZWJDb3JlOjpGcmFtZUxvYWRUeXBlLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgYm9vbCBsYXN0TmF2aWdh
dGlvbldhc0FwcEluaXRpYXRlZCwgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkSWRl
bnRpZmllcj4gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKTsK
ICAgICB2b2lkIHRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgc2V0SW5pdGlh
bEZvY3VzKGJvb2wgZm9yd2FyZCwgYm9vbCBpc0tleWJvYXJkRXZlbnRWYWxpZCwgY29uc3QgV2Vi
S2V5Ym9hcmRFdmVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB1
cGRhdGVJc0luV2luZG93KGJvb2wgaXNJbml0aWFsU3RhdGUgPSBmYWxzZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCA2ZjkxYTJhNzc0MTY2Y2QyYjg4NmRmZWJiNGJiYThmNTFmZWY4ZjNkLi43YjVmM2Q4Zjg2OWU3
MjRiY2QzOTBlMDcyN2U5MGU1OTlmYTM3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE2Nyw3ICsxNjcsNyBA
QCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERp
cmVjdGlvbiwgZW51bTp1aW50OF90IFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5IHNjcm9sbEdy
YW51bGFyaXR5KQogICAgIENlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKQogCi0gICAgR29U
b0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpC
YWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlELCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5cGUsIGVudW06dWludDhfdCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBv
bGljaWVzLCBib29sIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKQorICAgIEdvVG9CYWNr
Rm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90IFdlYkNv
cmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
c3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2ll
cywgYm9vbCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCwgc3RkOjpvcHRpb25hbDxXZWJL
aXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyPiBleGlzdGluZ05ldHdvcmtSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkK
IAogICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNDBhNThkZTg4NDdmN2NmOTBkN2E3ZTYyMmE1MTk2NmMxZDlk
ZWY5ZS4uNTJhOWY1YTYyNTYzM2M0MTAyZThmMDlmMjgyODdhOTA0MjkzN2UyYiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDIyLTAxLTI1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
UkVHUkVTU0lPTiAoaU9TIDE1LjIpOiBMb2FkaW5nIGdldHMgc3R1Y2sgYWZ0ZXIgYmFjay1uYXZp
Z2F0aW9uIGludm9sdmluZyBDT09QIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NDc1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Nzk0
ODMxNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorCiAyMDIyLTAxLTI0ICBNYXJr
IExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgVmVjdG9yIGFuZCBG
aXhlZFZlY3Rvcjo6ZmluZE1hdGNoaW5nIHRvIGZpbmRJZiB0byBtYXRjaCBzdGwgbmFtaW5nLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggYzkyMmI2M2EyNzE2ZGFlZjQ2MTIx
ZWQzNzczYzdmZDQ2OTUxNTMxOC4uZjQ5NDYzMDVjZjJkYzJhODVmNGE3MmU1ZGI4Mjc0NDY2MTI1
MGJmMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03MzQ4LDYgKzczNDgs
NDUgQEAgVEVTVChQcm9jZXNzU3dhcCwgUmVzcG9uc2VQb2xpY3lEb3dubG9hZEFmdGVyQ09PUFBy
b2Nlc3NTd2FwKQogICAgIH0gd2hpbGUgKGlzRnJvemVuKTsKIH0KIAorVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQoreworICAgIHVzaW5n
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOworCisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAg
ICAgICB7ICIvc291cmNlLmh0bWwiLCB7IHsgeyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIg
fSwgeyAiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiLCAic2FtZS1vcmlnaW4iIH0gfSwgImZv
byIgfSB9LAorICAgICAgICB7ICIvZGVzdGluYXRpb24uaHRtbCIsIHsgImJhciIgfSB9LAorICAg
IH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CisKKyAgICBhdXRvIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKKyAgICBhdXRv
IHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENv
bmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRv
IHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6
cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVh
dHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAg
IGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3lFbmFibGVkIl0pCisgICAgICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAg
ICAgICAgZWxzZSBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3lFbmFibGVkIl0pCisgICAgICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpm
ZWF0dXJlXTsKKyAgICB9CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIG5hdmlnYXRpb25E
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5n
ZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2Vy
dmVyLnJlcXVlc3QoIi9zb3VyY2UuaHRtbCIpXTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAg
IGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0
KCIvZGVzdGluYXRpb24uaHRtbCIpXTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUg
PSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IGdvQmFja107CisgICAgVXRpbDo6cnVuKCZkb25lKTsK
KyAgICBkb25lID0gZmFsc2U7Cit9CisKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7
IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8s
IFllcyB9Owogc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBz
b3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlv
bkNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9y
aWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3
YXAgZXhwZWN0U3dhcCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449965</attachid>
            <date>2022-01-25 14:08:42 -0800</date>
            <delta_ts>2022-01-25 23:01:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235475-20220125140842.patch</filename>
            <type>text/plain</type>
            <size>27923</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBkYjg1MTQxZDBlMmI0
ODg4MTAwMjFhNjhlNjIxNWM1OGExMTliZS4uZTg3ZmQ4MDE4OWFmZjc4ZDY0M2Y3YTU1OTdmOGNl
MzQzOGYxMWFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIyLTAxLTI1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAoaU9TIDE1
LjIpOiBMb2FkaW5nIGdldHMgc3R1Y2sgYWZ0ZXIgYmFjay1uYXZpZ2F0aW9uIGludm9sdmluZyBD
T09QIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM1NDc1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Nzk0ODMxNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkIGlzIHByb3Blcmx5IHByb3BhZ2F0ZWQgZm9yIGJhY2svZm9yd2Fy
ZCBuYXZpZ2F0aW9ucywKKyAgICAgICAgbm90IGp1c3QgcmVndWxhciBsb2FkUmVxdWVzdHMuCisK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRX
aXRoTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9h
ZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb250aW51ZUxv
YWRBZnRlck5ld1dpbmRvd1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Lmg6CisKIDIwMjItMDEtMjUgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIChSRUdSRVNTSU9OIHIyODc0ODUpIFtMRkNdW0lGQ10gSW5jb3JyZWN0IFJUTCBjb250ZW50
IHBvc2l0aW9uIHdoZW4gaW50cnVzaXZlIGZsb2F0IGlzIHByZXNlbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGMz
MDhiYzIzY2VlY2JjYTBhMTM4ZWQwZTUxNzYzYjVjMTdlNjliZC4uZmI2OGM3ZmYxOTZjYTJiMTNi
NDU4MDQ0YThiMzU2Y2NjMDE2YzM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAyMi0w
MS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJ
T04gKGlPUyAxNS4yKTogTG9hZGluZyBnZXRzIHN0dWNrIGFmdGVyIGJhY2stbmF2aWdhdGlvbiBp
bnZvbHZpbmcgQ09PUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNTQ3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc5NDgzMTc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViUGFnZVBy
b3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKSB3YXMgZmFpbGluZyB0byBwYXNz
IHRoZSBpZGVudGlmaWVyIG9mIHRoZQorICAgICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgdGhh
dCBuZWVkcyB0byBiZSByZXN1bWVkIHRvIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1RvQmFja0Zv
cndhcmRJdGVtKCkuCisgICAgICAgIEl0IHdhcyBvbmx5IHBhc3NpbmcgaXQgdG8gUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KCksIHdoaWNoIGlzIHVzZWQgZm9yIG5vbi1iYWNrL2Zv
cndhcmQKKyAgICAgICAgbmF2aWdhdGlvbnMuIEFzIGEgcmVzdWx0LCBpbiBjYXNlIG9mIENPT1Ag
cHJvY2Vzcy1zd2FwIG9uIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uLCB0aGUgbmV0d29yaworICAg
ICAgICBwcm9jZXNzIHdvdWxkIHN0YXJ0IGEgZnJlc2ggbG9hZCBpbnN0ZWFkIG9mIHJlc3VtaW5n
IHRoZSBleGlzdGluZyBvbmUuIFRoZSBmcmVzaCBsb2FkIHdvdWxkIGdldAorICAgICAgICBhIENP
T1AgaGVhZGVyIGFuZCB0aHVzIHRyaWdnZXIgeWV0IGFub3RoZXIgcHJvY2VzcyBzd2FwIChhbmQg
c28gb24gaW4gYSBsb29wKS4KKworICAgICAgICBBbHNvIGZpeCBhbiBpc3N1ZSB3aGVyZSBQcm92
aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSgpIHdvdWxkIGFsd2F5cyB1c2UK
KyAgICAgICAgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlck5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiBldmVuIGluIHRoZSBjYXNlIG9mIGEgQ09PUAorICAgICAgICBwcm9jZXNz
LXN3YXAuIEluIHRoZSBjYXNlIG9mIGEgQ09PUCBwcm9jZXNzLXN3YXAsIHdlIHNob3VsZCBwYXNz
IGluCisgICAgICAgIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJQcm92aXNp
b25hbExvYWRTdGFydGVkLiBUaGlzIHdhcyBjYXVzaW5nIHVzIHRvCisgICAgICAgIGRvIGFuIGV4
dHJhIGNhbGwgdG8gZGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBhbmQgd2FzIGNhdXNpbmcgdGhl
IG5ldyBBUEkgdGVzdCB0byBoaXQKKyAgICAgICAgYW4gYXNzZXJ0aW9uIG9uIGRlYnVnIGJ1aWxk
cy4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lv
bmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpsYXVuY2hQcm9jZXNzRm9yUmVs
b2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVt
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5l
d1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnRyaWdnZXJCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW46CisKIDIwMjItMDEtMjQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyODIzMjApOiBbQ29jb2FdIFVzZXIt
aW5zdGFsbGVkIGZvbnRzIGRvbid0IHdvcmsgaW4gdGhlIEdQVSBQcm9jZXNzIChpbiBXS1dlYlZp
ZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA3MjU0NzM3ZDA2Njhi
ZjYwYTNiYjk4YTU2ZjAwOTgxMDAyNjFmNTA3Li44ZTNiZTVmOWJiY2EyMTMxYzVjODMyOGI0ZDkx
NjdhMzYyZmFiNzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE0
MDEsNyArMTQwMSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVz
dCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmCiAgICAgaWYgKGlzU3lzdGVt
UHJldmlldykKICAgICAgICAgcmVxdWVzdC5zZXRTeXN0ZW1QcmV2aWV3SW5mbyhmcmFtZUxvYWRS
ZXF1ZXN0LnN5c3RlbVByZXZpZXdJbmZvKCkpOwogI2VuZGlmCi0gICAgbG9hZFdpdGhOYXZpZ2F0
aW9uQWN0aW9uKHJlcXVlc3QsIFdURk1vdmUoYWN0aW9uKSwgbmV3TG9hZFR5cGUsIFdURk1vdmUo
Zm9ybVN0YXRlKSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBbdGhpcywgaXNSZWRpcmVj
dCwgc2FtZVVSTCwgbmV3TG9hZFR5cGUsIHByb3RlY3RlZEZyYW1lID0gUmVmIHsgbV9mcmFtZSB9
LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0g
KCkgbXV0YWJsZSB7CisgICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIFdURk1v
dmUoYWN0aW9uKSwgbmV3TG9hZFR5cGUsIFdURk1vdmUoZm9ybVN0YXRlKSwgYWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMLCBmcmFtZUxvYWRSZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCgpLCBbdGhpcywgaXNSZWRpcmVjdCwgc2FtZVVSTCwgbmV3TG9hZFR5cGUsIHByb3RlY3Rl
ZEZyYW1lID0gUmVmIHsgbV9mcmFtZSB9LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25I
YW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChpc1JlZGly
ZWN0KSB7CiAgICAgICAgICAgICBtX3F1aWNrUmVkaXJlY3RDb21pbmcgPSBmYWxzZTsKICAgICAg
ICAgICAgIGlmIChtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIpCkBAIC0xNDc5LDcgKzE0Nzks
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQog
ICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgTmF2aWdhdGlv
bkFjdGlvbiYmIGFjdGlvbiwgRnJhbWVMb2FkVHlwZSB0eXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYm
IGZvcm1TdGF0ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgTmF2aWdhdGlvbkFjdGlvbiYmIGFjdGlvbiwgRnJhbWVMb2Fk
VHlwZSB0eXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEZSQU1FTE9BREVSX1JFTEVB
U0VfTE9HKFJlc291cmNlTG9hZGluZywgImxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbjogZnJhbWUg
bG9hZCBzdGFydGVkIik7CiAKQEAgLTE0OTEsNiArMTQ5MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IE5hdmlnCiAKICAgICBSZWY8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LT5jcmVh
dGVEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBkZWZhdWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwocmVx
dWVzdC51cmwoKSkpOwogICAgIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3
RG9jdW1lbnRMb2FkZXIobV9mcmFtZSwgbG9hZGVyLCBhY3Rpb24uaW5pdGlhdGVkQnlNYWluRnJh
bWUoKSwgYWN0aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7CisgICAgbG9hZGVy
LT5zZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJQcm92aXNpb25hbExvYWRTdGFydGVkKHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0Fm
dGVyUHJvdmlzaW9uYWxMb2FkU3RhcnRlZCk7CiAKICAgICBpZiAoYWN0aW9uLmxvY2tIaXN0b3J5
KCkgPT0gTG9ja0hpc3Rvcnk6OlllcyAmJiBtX2RvY3VtZW50TG9hZGVyKQogICAgICAgICBsb2Fk
ZXItPnNldENsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShtX2RvY3VtZW50TG9hZGVyLT5k
aWRDcmVhdGVHbG9iYWxIaXN0b3J5RW50cnkoKSA/IG1fZG9jdW1lbnRMb2FkZXItPnVybEZvckhp
c3RvcnkoKS5zdHJpbmcoKSA6IG1fZG9jdW1lbnRMb2FkZXItPmNsaWVudFJlZGlyZWN0U291cmNl
Rm9ySGlzdG9yeSgpKTsKQEAgLTMwODIsNyArMzA4Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Omxv
YWRQb3N0UmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBy
ZWZlCiAgICAgaWYgKCFmcmFtZU5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFRoZSBzZWFy
Y2ggZm9yIGEgdGFyZ2V0IGZyYW1lIGlzIGRvbmUgZWFybGllciBpbiB0aGUgY2FzZSBvZiBmb3Jt
IHN1Ym1pc3Npb24uCiAgICAgICAgIGlmIChhdXRvKiB0YXJnZXRGcmFtZSA9IGZvcm1TdGF0ZSA/
IG51bGxwdHIgOiBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGZyYW1lTmFtZSkpIHsKLSAgICAgICAg
ICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS5sb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24od29ya2lu
Z1Jlc291cmNlUmVxdWVzdCwgV1RGTW92ZShhY3Rpb24pLCBsb2FkVHlwZSwgV1RGTW92ZShmb3Jt
U3RhdGUpLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICAgICAgICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS5sb2FkV2l0aE5hdmln
YXRpb25BY3Rpb24od29ya2luZ1Jlc291cmNlUmVxdWVzdCwgV1RGTW92ZShhY3Rpb24pLCBsb2Fk
VHlwZSwgV1RGTW92ZShmb3JtU3RhdGUpLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIHJl
cXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zMTAxLDcgKzMx
MDIsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVz
dCYmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmZQogCiAgICAgLy8gbXVzdCBncmFiIHRoaXMg
bm93LCBzaW5jZSB0aGlzIGxvYWQgbWF5IHN0b3AgdGhlIHByZXZpb3VzIGxvYWQgYW5kIGNsZWFy
IHRoaXMgZmxhZwogICAgIGJvb2wgaXNSZWRpcmVjdCA9IG1fcXVpY2tSZWRpcmVjdENvbWluZzsK
LSAgICBsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24od29ya2luZ1Jlc291cmNlUmVxdWVzdCwgV1RG
TW92ZShhY3Rpb24pLCBsb2FkVHlwZSwgV1RGTW92ZShmb3JtU3RhdGUpLCBhbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkwsIFt0aGlzLCBpc1JlZGlyZWN0LCBwcm90ZWN0ZWRGcmFtZSA9IFJlZiB7
IG1fZnJhbWUgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKCkgbXV0YWJsZSB7CisgICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHdvcmtpbmdSZXNv
dXJjZVJlcXVlc3QsIFdURk1vdmUoYWN0aW9uKSwgbG9hZFR5cGUsIFdURk1vdmUoZm9ybVN0YXRl
KSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCByZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCgpLCBbdGhpcywgaXNSZWRpcmVjdCwgcHJvdGVjdGVkRnJhbWUgPSBSZWYgeyBt
X2ZyYW1lIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
ICgpIG11dGFibGUgewogICAgICAgICBpZiAoaXNSZWRpcmVjdCkgewogICAgICAgICAgICAgbV9x
dWlja1JlZGlyZWN0Q29taW5nID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAobV9wcm92aXNpb25h
bERvY3VtZW50TG9hZGVyKQpAQCAtMzU5Nyw3ICszNTk4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXMKIAogICAgIE5hdmlnYXRpb25BY3Rpb24gbmV3QWN0aW9uIHsgKmZyYW1lLT5kb2N1bWVu
dCgpLCByZXF1ZXN0LCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biwgTmF2aWdhdGlvblR5
cGU6Ok90aGVyLCBhY3Rpb24uc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpLCBudWxscHRy
LCBhY3Rpb24uZG93bmxvYWRBdHRyaWJ1dGUoKSB9OwogICAgIG5ld0FjdGlvbi5zZXRTaG91bGRS
ZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwoYWN0aW9uLnNob3VsZFJlcGxhY2VEb2N1bWVu
dElmSmF2YVNjcmlwdFVSTCgpKTsKLSAgICBtYWluRnJhbWUtPmxvYWRlcigpLmxvYWRXaXRoTmF2
aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBXVEZNb3ZlKG5ld0FjdGlvbiksIEZyYW1lTG9hZFR5cGU6
OlN0YW5kYXJkLCBmb3JtU3RhdGUsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCk7CisgICAg
bWFpbkZyYW1lLT5sb2FkZXIoKS5sb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgV1RG
TW92ZShuZXdBY3Rpb24pLCBGcmFtZUxvYWRUeXBlOjpTdGFuZGFyZCwgZm9ybVN0YXRlLCBhbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8p
OwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpyZXF1ZXN0RnJvbURlbGVnYXRlKFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKQEAgLTM4ODUsNyArMzg4Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdGVt
KiBmcm9tCiAgICAgYWN0aW9uLnNldFRhcmdldEJhY2tGb3J3YXJkSXRlbShpdGVtKTsKICAgICBh
Y3Rpb24uc2V0U291cmNlQmFja0ZvcndhcmRJdGVtKGZyb21JdGVtKTsKIAotICAgIGxvYWRXaXRo
TmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBXVEZNb3ZlKGFjdGlvbiksIGxvYWRUeXBlLCB7IH0s
IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzKTsKKyAgICBsb2FkV2l0aE5hdmlnYXRp
b25BY3Rpb24ocmVxdWVzdCwgV1RGTW92ZShhY3Rpb24pLCBsb2FkVHlwZSwgeyB9LCBBbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkw6Olllcywgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKTsK
IH0KIAogLy8gTG9hZHMgY29udGVudCBpbnRvIHRoaXMgZnJhbWUsIGFzIHNwZWNpZmllZCBieSBo
aXN0b3J5IGl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggYWQ1YTM4MGVm
Yzk2OGM1YTVmNjhmMTc0MGM4NjNlNWU2N2E1MDBkYy4uNmM3ZjUwOGNlMmU2Y2ExMjJjYTFmZGY0
YzU1YTMzMTc0MGEzNzlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM4
MSw3ICszODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9hZFdpdGhEb2N1bWVudExvYWRlcihE
b2N1bWVudExvYWRlciosIEZyYW1lTG9hZFR5cGUsIFJlZlB0cjxGb3JtU3RhdGU+JiYsIEFsbG93
TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10g
eyB9KTsgLy8gQ2FsbHMgY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5CiAgICAgdm9p
ZCBsb2FkKERvY3VtZW50TG9hZGVyJik7IC8vIENhbGxzIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIK
IAotICAgIHZvaWQgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIE5hdmlnYXRpb25BY3Rpb24mJiwgRnJhbWVMb2FkVHlwZSwgUmVmUHRyPEZvcm1TdGF0ZT4m
JiwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgPSBbXSB7IH0pOyAvLyBDYWxscyBsb2FkV2l0aERvY3VtZW50TG9hZGVyCisgICAgdm9pZCBs
b2FkV2l0aE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgTmF2aWdhdGlv
bkFjdGlvbiYmLCBGcmFtZUxvYWRUeXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBBbGxvd05hdmln
YXRpb25Ub0ludmFsaWRVUkwsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsgLy8gQ2FsbHMgbG9hZFdpdGhEb2N1bWVudExv
YWRlcgogCiAgICAgdm9pZCBsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmLCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRUeXBlLCBFdmVudCosIFJlZlB0cjxGb3JtU3Rh
dGU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBsb2FkVVJMKEZy
YW1lTG9hZFJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJhbWVMb2FkVHlwZSwg
RXZlbnQqLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01l
YXN1cmVtZW50PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IGYzODEyMmEz
NGExY2JhOWM0ZjRhYmM2ODM1NDI1OTY5ZDQxMTczOWEuLjYzNDU0YTllMjhmOTVmMjYyMWZlZjFj
ZDdjNTcwMWVkYjY5NTIzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTE5OCw5ICsxOTgsOSBAQCB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNv
cmU6OlJlcwogICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSwgdXNlckRhdGEsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCBleGlzdGluZ05l
dHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpOwogfQogCi12b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdh
dGlvbiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBv
bGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6Omdv
VG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJiBpdGVtLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0
ZVBvbGljaWVzLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyPiBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpCiB7
Ci0gICAgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAi
Z29Ub0JhY2tGb3J3YXJkSXRlbToiKTsKKyAgICBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNF
X0xPRyhQcm9jZXNzU3dhcHBpbmcsICJnb1RvQmFja0ZvcndhcmRJdGVtOiBleGlzdGluZ05ldHdv
cmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWU9JSIgUFJJdTY0LCB2YWx1ZU9yRGVmYXVs
dChleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpLnRvVUludDY0
KCkpOwogCiAgICAgYXV0byBpdGVtU3RhdGVzID0gbV9wYWdlLmJhY2tGb3J3YXJkTGlzdCgpLmZp
bHRlcmVkSXRlbVN0YXRlcyhbdGhpcywgdGFyZ2V0SXRlbSA9ICZpdGVtXShhdXRvJiBpdGVtKSB7
CiAgICAgICAgIGlmIChhdXRvKiBiYWNrRm9yd2FyZENhY2hlRW50cnkgPSBpdGVtLmJhY2tGb3J3
YXJkQ2FjaGVFbnRyeSgpKSB7CkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24s
IFdlYkIKICAgICAgICAgd2Vic2l0ZVBvbGljaWVzRGF0YSA9IHdlYnNpdGVQb2xpY2llcy0+ZGF0
YSgpOwogICAgIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZUJhY2tGb3J3YXJk
TGlzdEZvclJlYXR0YWNoKFdURk1vdmUoaXRlbVN0YXRlcykpKTsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCks
IGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBX
ZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpLCBtX3BhZ2UubGFzdE5h
dmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgaXRlbS5pdGVt
SUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlKCksIHNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSwgbV9wYWdlLmxh
c3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCksIGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9h
ZElkZW50aWZpZXJUb1Jlc3VtZSkpOwogICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVz
c1RpbWVyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5oCmluZGV4IGFhMWY0ODcxMmU1OWJjN2U4YzNjMGQxOGZmMzRkM2U5ZTdiNmM0Y2Qu
LjIyZDJiYjEyY2E2YWQ1OGYyZWY3YjdhOTk1OTNiM2YwNmU2NGE4OGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTA3LDcgKzEwNyw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5n
JiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEs
IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4mJiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7
CiAgICAgdm9pZCBsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+
LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQsIHN0
ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29y
a1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7Ci0gICAgdm9p
ZCBnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYsIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0mLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYpOworICAgIHZvaWQgZ29Ub0Jh
Y2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24mLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwg
UmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+
IGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVs
bG9wdCk7CiAgICAgdm9pZCBjYW5jZWwoKTsKIAogICAgIHZvaWQgdW5mcmVlemVMYXllclRyZWVE
dWVUb1N3aXBlQW5pbWF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCBmNGIzMTBmYWNiN2QxMDQ1ZjQzYmI1NmZkZjAzMjMzYTZkZTdiNjc3Li4yNzMx
Y2NmYmI0YWQ2NTQzYzliZGYyMWFmNmY4NmRkYjAyZmY3MjcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwOTMsNyArMTA5Myw3IEBAIFJlZlB0cjxBUEk6
Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bGF1bmNoUHJvY2Vzc0ZvclJlbG9hZCgpCiAgICAg
fQogCiAgICAgLy8gV2UgYWxsb3cgc3RhbGUgY29udGVudCB3aGVuIHJlbG9hZGluZyBhIFdlYlBy
b2Nlc3MgdGhhdCdzIGJlZW4ga2lsbGVkIG9yIGNyYXNoZWQuCi0gICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwg
bV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgpLCBGcmFtZUxvYWRUeXBl
OjpJbmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIHN0
ZDo6bnVsbG9wdCwgbV9sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCkpOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi0+bmF2aWdh
dGlvbklEKCksIG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5pdGVtSUQoKSwgRnJh
bWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6Ok5vLCBzdGQ6Om51bGxvcHQsIG1fbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQsIHN0
ZDo6bnVsbG9wdCkpOwogICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7
CiAKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKQEAgLTE4NDEsNyArMTg0MSw3IEBAIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtCiAgICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0
KHRyYW5zYWN0aW9uLCB7IG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6
IDAsIGl0ZW0udXJsKCkgfSk7CiAKICAgICBtX3Byb2Nlc3MtPm1hcmtQcm9jZXNzQXNSZWNlbnRs
eVVzZWQoKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVt
KG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsIGl0ZW0uaXRlbUlE
KCksIGZyYW1lTG9hZFR5cGUsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIHN0ZDo6
bnVsbG9wdCwgbV9sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCkpOworICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbiA/IG5hdmlnYXRp
b24tPm5hdmlnYXRpb25JRCgpIDogMCwgaXRlbS5pdGVtSUQoKSwgZnJhbWVMb2FkVHlwZSwgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgc3RkOjpudWxsb3B0LCBtX2xhc3ROYXZpZ2F0
aW9uV2FzQXBwSW5pdGlhdGVkLCBzdGQ6Om51bGxvcHQpKTsKICAgICBtX3Byb2Nlc3MtPnN0YXJ0
UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAgcmV0dXJuIG5hdmlnYXRpb247CkBAIC0zNjI2
LDcgKzM2MjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQ
cm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgcwogICAgICAgICAgICAgYXV0byB0
cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogICAgICAgICAgICAg
bV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0KHRyYW5zYWN0aW9uLCB7IG5hdmln
YXRpb24tPm5hdmlnYXRpb25JRCgpLCBpdGVtLT51cmwoKSB9KTsKIAotICAgICAgICAgICAgbV9w
cm92aXNpb25hbFBhZ2UtPmdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbiwgKml0ZW0sIFdU
Rk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CisgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+
Z29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLCAqaXRlbSwgV1RGTW92ZSh3ZWJzaXRlUG9s
aWNpZXMpLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGV4aXN0aW5nTmV0d29ya1Jlc291
cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIApAQCAtNTY5Myw3ICs1NjkzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRyaWdnZXJCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb24odWludDY0X3QgbmF2aWcKIHsKICAg
ICBBU1NFUlQoYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiAhPSBCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaERlY2lzaW9uOjpTdGF5SW5Hcm91cCk7CiAgICAgUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1fbmF2aWdhdGlvblN0YXRl
LT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwotICAgIFdFQlBBR0VQUk9YWV9S
RUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJ0cmlnZ2VyQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2hGb3JOYXZpZ2F0aW9uOiBQcm9jZXNzLXN3YXBwaW5nIGR1ZSB0byBDcm9zcy1PcmlnaW4t
T3BlbmVyLVBvbGljeSwgbmV3UHJvY2Vzc0lzQ3Jvc3NPcmlnaW5Jc29sYXRlZD0lZCwgbmF2aWdh
dGlvbj0lcCIsIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gPT0gQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbjo6TmV3SXNvbGF0ZWRHcm91cCwgbmF2aWdhdGlvbi5n
ZXQoKSk7CisgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgInRy
aWdnZXJCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb246IFByb2Nlc3Mtc3dh
cHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5LCBuZXdQcm9jZXNzSXNDcm9z
c09yaWdpbklzb2xhdGVkPSVkLCBuYXZpZ2F0aW9uPSVwIGV4aXN0aW5nTmV0d29ya1Jlc291cmNl
TG9hZElkZW50aWZpZXJUb1Jlc3VtZT0lIiBQUkl1NjQsIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoRGVjaXNpb24gPT0gQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbjo6TmV3SXNv
bGF0ZWRHcm91cCwgbmF2aWdhdGlvbi5nZXQoKSwgZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2Fk
SWRlbnRpZmllclRvUmVzdW1lLnRvVUludDY0KCkpOwogICAgIGlmICghbmF2aWdhdGlvbikKICAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiYTJkM2ZhM2NhMmM4ZTRjMzYw
MDQzODlhZWZjZDcwMDE5ZGY5YjYyLi5mYzE4NTA5MGVjODg2MjZhODkwNzg3NDE1M2RiZGZhNzIz
OTlhY2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMTY4Myw2ICsxNjgzLDggQEAgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybURpZFJlY2VpdmVM
b2FkUGFyYW1ldGVycyhjb25zdCBMb2FkUGFyYW1ldGVycyYgbG9hZFBhcmFtZXQKIAogdm9pZCBX
ZWJQYWdlOjpsb2FkUmVxdWVzdChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQogewor
ICAgIFdFQlBBR0VfUkVMRUFTRV9MT0coTG9hZGluZywgImxvYWRSZXF1ZXN0OiBuYXZpZ2F0aW9u
SUQ9JSIgUFJJdTY0ICIsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZD0ldSwgbGFzdE5hdmln
YXRpb25XYXNBcHBJbml0aWF0ZWQ9JWQsIGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50
aWZpZXJUb1Jlc3VtZT0lIiBQUkl1NjQsIGxvYWRQYXJhbWV0ZXJzLm5hdmlnYXRpb25JRCwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCksIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QuaXNBcHBJbml0aWF0ZWQoKSwgdmFsdWVPckRl
ZmF1bHQobG9hZFBhcmFtZXRlcnMuZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmll
clRvUmVzdW1lKS50b1VJbnQ2NCgpKTsKKwogICAgIHNldExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkKGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QuaXNBcHBJbml0aWF0ZWQoKSk7CiAKICNpZiBF
TkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCkBAIC0xNzU4LDYgKzE3NjAsOCBAQCB2b2lkIFdlYlBh
Z2U6OmxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCBzaAogCiB2b2lkIFdlYlBhZ2U6OmxvYWREYXRhKExvYWRQYXJhbWV0ZXJzJiYg
bG9hZFBhcmFtZXRlcnMpCiB7CisgICAgV0VCUEFHRV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAibG9h
ZERhdGE6IG5hdmlnYXRpb25JRD0lIiBQUkl1NjQgIiwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkPSV1IiwgbG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklELCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4obG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKSk7CisKICAgICBw
bGF0Zm9ybURpZFJlY2VpdmVMb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CiAKICAgICBh
dXRvIHNoYXJlZEJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGxvYWRQYXJhbWV0ZXJzLmRh
dGEuZGF0YSgpLCBsb2FkUGFyYW1ldGVycy5kYXRhLnNpemUoKSk7CkBAIC0xODcxLDE0ICsxODc1
LDIwIEBAIHZvaWQgV2ViUGFnZTo6cmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMy
X3QgcmVsb2FkT3B0aW9ucywgU2FuZGJveEV4dGVuCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2U6
OmdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyJiBiYWNrRm9yd2FyZEl0ZW1JRCwgRnJhbWVMb2FkVHlwZSBiYWNr
Rm9yd2FyZFR5cGUsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRl
UG9saWNpZXMsIGJvb2wgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpCit2b2lkIFdlYlBh
Z2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBCYWNr
Rm9yd2FyZEl0ZW1JZGVudGlmaWVyJiBiYWNrRm9yd2FyZEl0ZW1JRCwgRnJhbWVMb2FkVHlwZSBi
YWNrRm9yd2FyZFR5cGUsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJz
aXRlUG9saWNpZXMsIGJvb2wgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQsIHN0ZDo6b3B0
aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29ya1Jlc291
cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkKIHsKKyAgICBXRUJQQUdFX1JFTEVBU0VfTE9HKExv
YWRpbmcsICJnb1RvQmFja0ZvcndhcmRJdGVtOiBuYXZpZ2F0aW9uSUQ9JSIgUFJJdTY0ICIsIGJh
Y2tGb3J3YXJkSXRlbUlEPSVzLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ9JXUsIGxhc3RO
YXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkPSVkLCBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyVG9SZXN1bWU9JSIgUFJJdTY0LCBuYXZpZ2F0aW9uSUQsIGJhY2tGb3J3YXJkSXRl
bUlELnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQpLCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCwgdmFs
dWVPckRlZmF1bHQoZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1l
KS50b1VJbnQ2NCgpKTsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcjsK
IAogICAgIG1fbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgPSBsYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZDsKICAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBjb3JlUGFnZSgp
LT5tYWluRnJhbWUoKS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQogICAgICAgICBkb2N1bWVu
dExvYWRlci0+c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQobGFzdE5hdmlnYXRpb25X
YXNBcHBJbml0aWF0ZWQpOwogCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVy
U3RyYXRlZ3koKS5zZXRFeGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1
bWUoZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKTsKKyAgICBh
dXRvIHJlc3VtaW5nTG9hZFNjb3BlID0gbWFrZVNjb3BlRXhpdChbXSB7CisgICAgICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuc2V0RXhpc3RpbmdOZXR3b3Jr
UmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKHN0ZDo6bnVsbG9wdCk7CisgICAgfSk7CisK
ICAgICBBU1NFUlQoaXNCYWNrRm9yd2FyZExvYWRUeXBlKGJhY2tGb3J3YXJkVHlwZSkpOwogCiAg
ICAgSGlzdG9yeUl0ZW0qIGl0ZW0gPSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6aXRlbUZvcklE
KGJhY2tGb3J3YXJkSXRlbUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCAwMjkyMDc0ZWZkZTJkN2RkYjZiMDZhYjJkNWIxY2MxYjhjODVkMzY1Li5m
ZWRiZTYwNWQ1MjZiMDg4YTk2NDRmZWUyNjkzYTQ3M2I1ZjhmM2NhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNjAyLDcgKzE2MDIsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgbmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3Qg
U3RyaW5nJiB1cmwsIFdlYkNvcmU6OkludFBvaW50IGRvY3VtZW50UG9pbnQsIFdlYkNvcmU6Oklu
dFBvaW50IHNjcmVlblBvaW50KTsKICAgICB2b2lkIGdldFBERkZpcnN0UGFnZVNpemUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0
U2l6ZSk+JiYpOwogICAgIHZvaWQgcmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMy
X3QgcmVsb2FkT3B0aW9ucywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpOwotICAgIHZvaWQg
Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6
OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBv
bGljaWVzRGF0YT4mJiwgYm9vbCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7CisgICAg
dm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2Vi
Q29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUs
IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJz
aXRlUG9saWNpZXNEYXRhPiYmLCBib29sIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkLCBz
dGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyPiBleGlzdGluZ05ldHdv
cmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpOwogICAgIHZvaWQgdHJ5UmVzdG9yZVNj
cm9sbFBvc2l0aW9uKCk7CiAgICAgdm9pZCBzZXRJbml0aWFsRm9jdXMoYm9vbCBmb3J3YXJkLCBi
b29sIGlzS2V5Ym9hcmRFdmVudFZhbGlkLCBjb25zdCBXZWJLZXlib2FyZEV2ZW50JiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHVwZGF0ZUlzSW5XaW5kb3coYm9vbCBp
c0luaXRpYWxTdGF0ZSA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDZmOTFhMmE3NzQxNjZjZDJiODg2
ZGZlYmI0YmJhOGY1MWZlZjhmM2QuLjdiNWYzZDhmODY5ZTcyNGJjZDM5MGUwNzI3ZTkwZTU5OWZh
Mzc5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtMTY3LDcgKzE2Nyw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRp
dGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlCiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkpCiAgICAgQ2VudGVy
U2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAKLSAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBl
IGJhY2tGb3J3YXJkVHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMsIGJvb2wgbGFzdE5hdmln
YXRpb25XYXNBcHBJbml0aWF0ZWQpCisgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJh
Y2tGb3J3YXJkSXRlbUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNr
Rm9yd2FyZFR5cGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6
V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzLCBib29sIGxhc3ROYXZpZ2F0aW9u
V2FzQXBwSW5pdGlhdGVkLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9h
ZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3Vt
ZSkKICAgICBUcnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiAgICAgTG9hZFVSTEluRnJhbWUo
VVJMIHVybCwgU3RyaW5nIHJlZmVycmVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0
MGE1OGRlODg0N2Y3Y2Y5MGQ3YTdlNjIyYTUxOTY2YzFkOWRlZjllLi41MmE5ZjVhNjI1NjMzYzQx
MDJlOGYwOWYyODI4N2E5MDQyOTM3ZTJiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDEtMjUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChpT1MgMTUuMik6
IExvYWRpbmcgZ2V0cyBzdHVjayBhZnRlciBiYWNrLW5hdmlnYXRpb24gaW52b2x2aW5nIENPT1Ag
aGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzU0NzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3OTQ4MzE3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24ubW06CisKIDIwMjItMDEtMjQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbmFtZSBWZWN0b3IgYW5kIEZpeGVkVmVjdG9yOjpmaW5kTWF0Y2hp
bmcgdG8gZmluZElmIHRvIG1hdGNoIHN0bCBuYW1pbmcuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQppbmRleCBjOTIyYjYzYTI3MTZkYWVmNDYxMjFlZDM3NzNjN2ZkNDY5NTE1MzE4Li5m
NDk0NjMwNWNmMmRjMmE4NWY0YTcyZTVkYjgyNzQ0NjYxMjUwYmYzIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczNDgsNiArNzM0OCw0NSBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBSZXNwb25zZVBvbGljeURvd25sb2FkQWZ0ZXJDT09QUHJvY2Vzc1N3YXApCiAgICAgfSB3aGls
ZSAoaXNGcm96ZW4pOwogfQogCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJhY2tBZnRlck5h
dmlnYXRpbmdBd2F5RnJvbUNPT1ApCit7CisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEk7CisKKyAgICBIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi9zb3VyY2UuaHRtbCIs
IHsgeyB7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9LCB7ICJDcm9zcy1PcmlnaW4tT3Bl
bmVyLVBvbGljeSIsICJzYW1lLW9yaWdpbiIgfSB9LCAiZm9vIiB9IH0sCisgICAgICAgIHsgIi9k
ZXN0aW5hdGlvbi5odG1sIiwgeyAiYmFyIiB9IH0sCisgICAgfSwgSFRUUFNlcnZlcjo6UHJvdG9j
b2w6Okh0dHBzKTsKKworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5T
KFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3
ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07Cisg
ICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2Vz
IF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0Vx
dWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuYWJsZWQiXSkKKyAgICAgICAg
ICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICBlbHNlIGlmIChbZmVhdHVy
ZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeUVuYWJsZWQi
XSkKKyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgIH0KKworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJh
dGlvbi5nZXQoKV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BT
T05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXROYXZp
Z2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKworICAgIGRvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgiL3NvdXJjZS5o
dG1sIildOworICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoIi9kZXN0aW5hdGlvbi5odG1sIild
OworICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgW3dlYlZp
ZXcgZ29CYWNrXTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKK30K
KwogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFz
cyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07CiBzdGF0aWMgdm9pZCBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIq
IHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVz
dGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRp
cmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>