<?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>238036</bug_id>
          
          <creation_ts>2022-03-17 12:24:38 -0700</creation_ts>
          <short_desc>Website policies are not respected when doing COOP based process swap</short_desc>
          <delta_ts>2022-03-22 01:02:07 -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>WebKit Process Model</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1852407</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-17 12:24:38 -0700</bug_when>
    <thetext>Website policies are not respected when doing COOP based process swap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852409</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-17 12:24:55 -0700</bug_when>
    <thetext>&lt;rdar://89616625&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852415</commentid>
    <comment_count>2</comment_count>
      <attachid>455004</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-17 12:28:59 -0700</bug_when>
    <thetext>Created attachment 455004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852627</commentid>
    <comment_count>3</comment_count>
      <attachid>455071</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-18 00:07:53 -0700</bug_when>
    <thetext>Created attachment 455071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852628</commentid>
    <comment_count>4</comment_count>
      <attachid>455071</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-18 00:09:45 -0700</bug_when>
    <thetext>Comment on attachment 455071
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3478
&gt; +    m_lastWebsitePolicies = policies;

I am not clearing m_lastWebsitePolicies proactively in didFinish/didFail or earlier as I am not sure this is actually worth it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852705</commentid>
    <comment_count>5</comment_count>
      <attachid>455071</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-18 07:25:29 -0700</bug_when>
    <thetext>Comment on attachment 455071
Patch

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

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3478
&gt;&gt; +    m_lastWebsitePolicies = policies;
&gt; 
&gt; I am not clearing m_lastWebsitePolicies proactively in didFinish/didFail or earlier as I am not sure this is actually worth it.

I think it would look better if we stored the WebsitePolicies on the APINavigation object. This is the object associated with the navigation from the decidePolicyForNavigationAction to the COOP process-swap later on.

It would also greatly reduce the risk of using websitesPolicies from an unrelated navigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853144</commentid>
    <comment_count>6</comment_count>
      <attachid>455228</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-21 03:57:20 -0700</bug_when>
    <thetext>Created attachment 455228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853186</commentid>
    <comment_count>7</comment_count>
      <attachid>455228</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-21 07:23:29 -0700</bug_when>
    <thetext>Comment on attachment 455228
Patch

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

&gt; Source/WebKit/UIProcess/API/APINavigation.h:175
&gt; +    void setWebsitePoliciesForProcessSwap(RefPtr&lt;API::WebsitePolicies&gt;&amp;&amp; policies) { m_websitePoliciesForProcessSwap = WTFMove(policies); }

I am not sure the &quot;ForProcessSwap&quot; part of the name is super helpful.

&gt; Source/WebKit/UIProcess/API/APINavigation.h:176
&gt; +    RefPtr&lt;API::WebsitePolicies&gt; takeWebsitePoliciesForProcessSwap() { return std::exchange(m_websitePoliciesForProcessSwap, { }); }

Why the need to &quot;take&quot; them? Policies are associated with the navigation (and passed during policy decision). I don&apos;t think they really need to be consumed?
Navigation objects are not reused across different navigations after all.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3516
&gt; +            receivedPolicyDecision(policyAction, navigation.ptr(), nullptr, WTFMove(navigationAction), WTFMove(sender), WillContinueLoadInNewProcess::Yes);

It is not clear to me why this new factory with 2 separate calls to receivedPolicyDecision() and 2 separate calls to setWebsitePoliciesForProcessSwap() is better.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3640
&gt; +    auto websitePolicies = navigation.takeWebsitePoliciesForProcessSwap();

This doesn&apos;t seem right. I think this means that if we first do a PSON swap, and then do a COOP swap on response, then the COOP swap still won&apos;t have website policies.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:8312
&gt; +TEST(ProcessSwap, ContentModeInCaseOfCoopProcessSwap)

May be nice to add a test case where we PSON swap before with COOP swap given the bug in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853191</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-21 08:05:28 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3516
&gt; &gt; +            receivedPolicyDecision(policyAction, navigation.ptr(), nullptr, WTFMove(navigationAction), WTFMove(sender), WillContinueLoadInNewProcess::Yes);
&gt; 
&gt; It is not clear to me why this new factory with 2 separate calls to
&gt; receivedPolicyDecision() and 2 separate calls to
&gt; setWebsitePoliciesForProcessSwap() is better.

It seems much more readable to me.
The call to receivedPolicyDecision was not clear to me given it had 3 parameters that were fully different based on shouldProcessSwap.
Now we have a branch for PSON, and another for not PSON.

&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3640
&gt; &gt; +    auto websitePolicies = navigation.takeWebsitePoliciesForProcessSwap();
&gt; 
&gt; This doesn&apos;t seem right. I think this means that if we first do a PSON swap,
&gt; and then do a COOP swap on response, then the COOP swap still won&apos;t have
&gt; website policies.

AIUI, this cannot happen given PSON will give you a well deserved isolated process anyway that should be good enough for all COOP values.
Maybe I misread COOP though. Would be good to add a test if that can indeed happen in practice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853193</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-21 08:07:53 -0700</bug_when>
    <thetext>&gt; AIUI, this cannot happen given PSON will give you a well deserved isolated
&gt; process anyway that should be good enough for all COOP values.
&gt; Maybe I misread COOP though. Would be good to add a test if that can indeed
&gt; happen in practice.

Looking at all COOP policy values, I see how this could be theoretically possible.
That said, I would hope that if we are doing PSON, we never end up doing COOP-based process swap, that would seem wasteful to do so.

I&apos;ll update the patch to make it work no matter what.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853195</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-21 08:09:35 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #9)
&gt; &gt; AIUI, this cannot happen given PSON will give you a well deserved isolated
&gt; &gt; process anyway that should be good enough for all COOP values.
&gt; &gt; Maybe I misread COOP though. Would be good to add a test if that can indeed
&gt; &gt; happen in practice.
&gt; 
&gt; Looking at all COOP policy values, I see how this could be theoretically
&gt; possible.
&gt; That said, I would hope that if we are doing PSON, we never end up doing
&gt; COOP-based process swap, that would seem wasteful to do so.
&gt; 
&gt; I&apos;ll update the patch to make it work no matter what.

Oh, we can definitely PSON swap and then COOP swap. A PSON swap does not give you a truly isolated process in which you can use SharedArrayBuffer for e.g.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853228</commentid>
    <comment_count>11</comment_count>
      <attachid>455253</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-21 09:43:15 -0700</bug_when>
    <thetext>Created attachment 455253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853304</commentid>
    <comment_count>12</comment_count>
      <attachid>455253</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-21 13:03:41 -0700</bug_when>
    <thetext>Comment on attachment 455253
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853558</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-22 00:45:21 -0700</bug_when>
    <thetext>Committed r291606 (248699@main): &lt;https://commits.webkit.org/248699@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455253.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455004</attachid>
            <date>2022-03-17 12:28:59 -0700</date>
            <delta_ts>2022-03-18 00:07:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238036-20220317202857.patch</filename>
            <type>text/plain</type>
            <size>9462</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM1NDIxNjNhZDM0NmE5NGZj
NjI2MDJhMjZmNWE0OGY5YTljNmRmMjAuLmY1NjgzNjY0NmE1M2U2Zjg2MDlkNzQ5Y2RiNGUxYjM0
MzU2MzVkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDMtMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYnNpdGUgcG9saWNpZXMgYXJl
IG5vdCByZXNwZWN0ZWQgd2hlbiBkb2luZyBDT09QIGJhc2VkIHByb2Nlc3Mgc3dhcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDM2CisgICAgICAg
IDxyZGFyOi8vODk2MTY2MjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gY2FzZSBvZiBub3JtYWwgcHJvY2VzcyBzd2FwLCB3ZSBtYWtlIHVzZSBv
ZiB3ZWJzaXRlIHBvbGljaWVzIHNvIGV2ZXJ5dGhpbmcgaXMgZmluZS4KKyAgICAgICAgRm9yIENP
T1AgYmFzZWQgcHJvY2VzcyBzd2FwLCB0aGlzIGhhcHBlbnMgbGF0ZXIgb24sIGF0IGEgcG9pbnQg
d2hlcmUgd2UgbG9zdCB3ZWJzaXRlIHBvbGljaWVzLgorICAgICAgICBUbyBvdmVyY29tZSB0aGlz
LCB3ZSBzdG9yZSB0aGUgbGFzdCB3ZWJzaXRlIHBvbGljaWVzIG9mIGEgV2VicGFnZVByb3h5IGFu
ZCB1c2UgaXQgd2hlbiBkb2luZyBDT09QIGJhc2VkIHByb2Nlc3Mgc3dhcC4KKworICAgICAgICBD
b3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9s
aWN5RGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnRyaWdnZXJCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKwogMjAyMi0wMy0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIE1lZGlhU2FtcGxlIHVzYWdlIGZyb20gY2FudmFz
IGNhcHR1cmUgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggODg2ZTdiZWMyMTMxZGI3Njg4NmFjNjlhM2E2YWI3MjE3OWZmYjZiNy4uOTFjN2I3ODA3ODRk
NGEzOWI1NjVkMjBjNzhiODliNWZiYzgxMTAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0zNDc1LDYgKzM0NzUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlv
biwgQQogICAgICAgICB9CiAgICAgfQogCisgICAgbV9sYXN0V2Vic2l0ZVBvbGljaWVzID0gcG9s
aWNpZXM7CisKICAgICBtX2lzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBsaWNpdGx5U2V0ID0gKHBvbGlj
aWVzICYmIHBvbGljaWVzLT5pc0NhcHRpdmVQb3J0YWxNb2RlRXhwbGljaXRseVNldCgpKSB8fCBt
X2NvbmZpZ3VyYXRpb24tPmlzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBsaWNpdGx5U2V0KCk7CiAgICAg
YXV0byBjYXB0aXZlUG9ydGFsTW9kZSA9IChwb2xpY2llcyA/IHBvbGljaWVzLT5jYXB0aXZlUG9y
dGFsTW9kZUVuYWJsZWQoKSA6IHNob3VsZEVuYWJsZUNhcHRpdmVQb3J0YWxNb2RlKCkpID8gV2Vi
UHJvY2Vzc1Byb3h5OjpDYXB0aXZlUG9ydGFsTW9kZTo6RW5hYmxlZCA6IFdlYlByb2Nlc3NQcm94
eTo6Q2FwdGl2ZVBvcnRhbE1vZGU6OkRpc2FibGVkOwogICAgIHByb2Nlc3MoKS5wcm9jZXNzUG9v
bCgpLnByb2Nlc3NGb3JOYXZpZ2F0aW9uKCp0aGlzLCAqbmF2aWdhdGlvbiwgc291cmNlUHJvY2Vz
cy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY2Fw
dGl2ZVBvcnRhbE1vZGUsIGZyYW1lSW5mbywgV1RGTW92ZSh3ZWJzaXRlRGF0YVN0b3JlKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRp
b24gPSBSZWYgeyAqbmF2aWdhdGlvbiB9LCBuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZp
Z2F0aW9uQWN0aW9uKSwgc291cmNlUHJvY2VzcyA9IHNvdXJjZVByb2Nlc3MuY29weVJlZigpLApA
QCAtMzUxMSw3ICszNTEzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgICAg
IGlmIChzdXNwZW5kZWRQYWdlICYmIHN1c3BlbmRlZFBhZ2UtPnBhZ2VJc0Nsb3NlZE9yQ2xvc2lu
ZygpKQogICAgICAgICAgICAgICAgIHN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwogCi0gICAgICAg
ICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdhdGlvbiwgV1RGTW92ZShz
dXNwZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIHByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIHN0ZDo6ZXhjaGFuZ2UocG9saWNpZXMsIG51bGxwdHIp
KTsKKyAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9u
LCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwg
cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgc3RkOjpleGNoYW5nZShtX2xhc3RX
ZWJzaXRlUG9saWNpZXMsIG51bGxwdHIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IGF1dG8gaXRlbSA9IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA/IG5hdmlnYXRpb24tPnJlbG9h
ZEl0ZW0oKSA6IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKTsKICAgICAgICAgICAgIGlmIChwb2xp
Y3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgaXRlbSkgewpAQCAtNTc2Myw3ICs1NzY1
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRyaWdnZXJCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aEZvck5hdmlnYXRpb24odWludDY0X3QgbmF2aWcKICAgICAvLyBUZWxsIGNvbW1pdHRlZCBwcm9j
ZXNzIHRvIHN0b3AgbG9hZGluZyBzaW5jZSB3ZSdyZSBnb2luZyB0byBkbyB0aGUgcHJvdmlzaW9u
YWwgbG9hZCBpbiBhIHByb3Zpc2lvbmFsIHBhZ2Ugbm93LgogICAgIGlmICghbV9wcm92aXNpb25h
bFBhZ2UpCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BMb2FkaW5nRHVlVG9Q
cm9jZXNzU3dhcCgpKTsKLSAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmln
YXRpb24sIG51bGxwdHIsIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLnJlbGVhc2VOb25OdWxsKCksIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6Olllc0FmdGVyUHJvdmlzaW9uYWxMb2FkU3RhcnRlZCwgbnVsbHB0ciwgZXhpc3RpbmdOZXR3
b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKTsKKyAgICBjb250aW51ZU5hdmlnYXRp
b25Jbk5ld1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIHByb2Nlc3NGb3JOYXZpZ2F0aW9u
LnJlbGVhc2VOb25OdWxsKCksIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUHJvdmlzaW9uYWxMb2FkU3RhcnRlZCwg
c3RkOjpleGNoYW5nZShtX2xhc3RXZWJzaXRlUG9saWNpZXMsIHsgfSksIGV4aXN0aW5nTmV0d29y
a1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIo
dHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMDk0
YjQ1NTY0MWFkZjRkNGYyNGU0ZTdiNGE0YzRiZWE3MGRjMWFhZi4uMDgzZWJmNGYwYjJhZjc5YTFl
NmEwYjZhY2FiYTcyMjJhY2Q4OTU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTMyMzAsNiArMzIzMCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UGxhdGZv
cm1JbWFnZVB0ciBtX2Nyb3BwZWRJbWFnZVJlc3VsdDsKICAgICBDcm9wcGVkSW1hZ2VPdmVybGF5
U3RhdGUgbV9jcm9wcGVkSW1hZ2VPdmVybGF5U3RhdGUgeyBDcm9wcGVkSW1hZ2VPdmVybGF5U3Rh
dGU6OkluYWN0aXZlIH07CiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VN
RU5UUykKKyAgICBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+IG1fbGFzdFdlYnNpdGVQb2xp
Y2llczsKIH07CiAKICNpZmRlZiBfX09CSkNfXwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRiMjM4NjgxZGM2ZDkyNjM0MTVjNGRkNDY3ZjYzZGZm
OWIxNjliYzkuLjBmYmMzZjkyNDI5OTRkYTlhZjI4YWI3YmE4ZWViYzI4Y2Y2NWRhMmYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMi0wMy0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2Vic2l0ZSBwb2xpY2llcyBhcmUgbm90IHJlc3BlY3RlZCB3aGVuIGRvaW5nIENPT1Ag
YmFzZWQgcHJvY2VzcyBzd2FwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzgwMzYKKyAgICAgICAgPHJkYXI6Ly84OTYxNjYyNT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisKIDIwMjItMDMtMTcg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEF1ZGlvQ29udGV4
dCBpcyBzdXNwZW5kZWQgb24gaU9TIHdoZW4gcGFnZSBpcyBiYWNrZ3JvdW5kZWQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGZhOGY2NTc1YjY4ODA5MWZmYmFjY2RjM2Q1MGM3
YzJmZDNiMGVjNzguLjY0Mjg4MDIyZWE5ZTEwMGE5Y2NhNzhiZDRkYjNhMTIyOWI1ZThkY2IgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtODI5MywzICs4MjkzLDg5IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIENhcHRpdmVQb3J0YWxNb2RlU3lzdGVtU2V0dGluZ0NoYW5nZURvZXNO
b3RSZWxvYWRWaWV3c1doZW5Nb2RlCiB9CiAKICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKworVEVTVChQcm9jZXNzU3dhcCwgQ29udGVudE1vZGVJbkNhc2VPZkNvb3BQcm9jZXNz
U3dhcCkKK3sKKyAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKKworICAgIEhUVFBT
ZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiL3NvdXJjZS5odG1sIiwgeyAiZm9vIiB9IH0sCisg
ICAgICAgIHsgIi9kZXN0aW5hdGlvbi5odG1sIiwgeyB7IHsgIkNvbnRlbnQtVHlwZSIsICJ0ZXh0
L2h0bWwiIH0sIHsgIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IiwgInNhbWUtb3JpZ2luIiB9
IH0sICJiYXIiIH0gfSwKKyAgICB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOworCisg
ICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgcHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmdldCgpLnByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiA9IFlFUzsKKyAgICBwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uZ2V0KCkudXNlc1dlYlByb2Nlc3NDYWNoZSA9IFlFUzsKKyAgICBwcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCkucHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5
ID0gWUVTOworICAgIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzU3dhcHNP
bk5hdmlnYXRpb25XaXRoaW5TYW1lTm9uSFRUUEZhbWlseVByb3RvY29sID0gWUVTOworICAgIGF1
dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1
dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9v
bDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpm
ZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAg
ICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbk9wZW5lclBv
bGljeUVuYWJsZWQiXSkKKyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwor
ICAgICAgICBlbHNlIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeUVuYWJsZWQiXSkKKyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OmZlYXR1cmVdOworICAgIH0KKworICAgIGF1dG8gd2VicGFnZVByZWZlcmVuY2VzID0gYWRvcHRO
UyhbW1dLV2VicGFnZVByZWZlcmVuY2VzIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYnBhZ2VQcmVm
ZXJlbmNlcyBzZXRQcmVmZXJyZWRDb250ZW50TW9kZTpXS0NvbnRlbnRNb2RlRGVza3RvcF07CisK
KyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0RGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlczp3
ZWJwYWdlUHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMjQsIDQ3
NjgpIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRv
IG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRp
b25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoIi9zb3VyY2UuaHRtbCIpXTsKKyAgICBVdGlsOjpydW4o
JmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAIm5hdmlnYXRvci51c2VyQWdlbnQ7IiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxs
YWJsZSByZXNwb25zZSwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBkb25l
ID0gdHJ1ZTsKKworICAgICAgICBBU1NFUlRfVFJVRSghZXJyb3IpOworICAgICAgICBOU1N0cmlu
ZyAqdXNlckFnZW50ID0gKE5TU3RyaW5nICopcmVzcG9uc2U7CisgICAgICAgIEFTU0VSVF9UUlVF
KFt1c2VyQWdlbnQgY29udGFpbnNTdHJpbmc6QCJNYWNpbnRvc2g7IEludGVsIE1hYyJdKTsKKyAg
ICB9XTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1
dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgiL2Rlc3RpbmF0aW9uLmh0bWwiKV07CisgICAg
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IudXNlckFnZW50OyIgY29tcGxldGlvbkhhbmRsZXI6
XihpZCBfTnVsbGFibGUgcmVzcG9uc2UsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAg
ICAgICAgZG9uZSA9IHRydWU7CisKKyAgICAgICAgQVNTRVJUX1RSVUUoIWVycm9yKTsKKyAgICAg
ICAgTlNTdHJpbmcgKnVzZXJBZ2VudCA9IChOU1N0cmluZyAqKXJlc3BvbnNlOworICAgICAgICBB
U1NFUlRfVFJVRShbdXNlckFnZW50IGNvbnRhaW5zU3RyaW5nOkAiTWFjaW50b3NoOyBJbnRlbCBN
YWMiXSk7CisgICAgfV07CisgICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7
CisKKyAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAg
IEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKworICAgIFt3ZWJWaWV3IGdvQmFja107IC8vIEJhY2sg
dG8gc291cmNlLmh0bWwuCisgICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7
CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IudXNlckFnZW50
OyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCBfTnVsbGFibGUgcmVzcG9uc2UsIE5TRXJyb3IgKiBf
TnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisKKyAgICAgICAgQVNTRVJU
X1RSVUUoIWVycm9yKTsKKyAgICAgICAgTlNTdHJpbmcgKnVzZXJBZ2VudCA9IChOU1N0cmluZyAq
KXJlc3BvbnNlOworICAgICAgICBBU1NFUlRfVFJVRShbdXNlckFnZW50IGNvbnRhaW5zU3RyaW5n
OkAiTWFjaW50b3NoOyBJbnRlbCBNYWMiXSk7CisgICAgfV07CisgICAgVXRpbDo6cnVuKCZkb25l
KTsKKyAgICBkb25lID0gZmFsc2U7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455071</attachid>
            <date>2022-03-18 00:07:53 -0700</date>
            <delta_ts>2022-03-21 03:57:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238036-20220318080751.patch</filename>
            <type>text/plain</type>
            <size>8682</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM1NDIxNjNhZDM0NmE5NGZj
NjI2MDJhMjZmNWE0OGY5YTljNmRmMjAuLmY1NjgzNjY0NmE1M2U2Zjg2MDlkNzQ5Y2RiNGUxYjM0
MzU2MzVkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDMtMTcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYnNpdGUgcG9saWNpZXMgYXJl
IG5vdCByZXNwZWN0ZWQgd2hlbiBkb2luZyBDT09QIGJhc2VkIHByb2Nlc3Mgc3dhcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDM2CisgICAgICAg
IDxyZGFyOi8vODk2MTY2MjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gY2FzZSBvZiBub3JtYWwgcHJvY2VzcyBzd2FwLCB3ZSBtYWtlIHVzZSBv
ZiB3ZWJzaXRlIHBvbGljaWVzIHNvIGV2ZXJ5dGhpbmcgaXMgZmluZS4KKyAgICAgICAgRm9yIENP
T1AgYmFzZWQgcHJvY2VzcyBzd2FwLCB0aGlzIGhhcHBlbnMgbGF0ZXIgb24sIGF0IGEgcG9pbnQg
d2hlcmUgd2UgbG9zdCB3ZWJzaXRlIHBvbGljaWVzLgorICAgICAgICBUbyBvdmVyY29tZSB0aGlz
LCB3ZSBzdG9yZSB0aGUgbGFzdCB3ZWJzaXRlIHBvbGljaWVzIG9mIGEgV2VicGFnZVByb3h5IGFu
ZCB1c2UgaXQgd2hlbiBkb2luZyBDT09QIGJhc2VkIHByb2Nlc3Mgc3dhcC4KKworICAgICAgICBD
b3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9s
aWN5RGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnRyaWdnZXJCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKwogMjAyMi0wMy0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIE1lZGlhU2FtcGxlIHVzYWdlIGZyb20gY2FudmFz
IGNhcHR1cmUgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggODg2ZTdiZWMyMTMxZGI3Njg4NmFjNjlhM2E2YWI3MjE3OWZmYjZiNy4uOTFjN2I3ODA3ODRk
NGEzOWI1NjVkMjBjNzhiODliNWZiYzgxMTAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0zNDc1LDYgKzM0NzUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlv
biwgQQogICAgICAgICB9CiAgICAgfQogCisgICAgbV9sYXN0V2Vic2l0ZVBvbGljaWVzID0gcG9s
aWNpZXM7CisKICAgICBtX2lzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBsaWNpdGx5U2V0ID0gKHBvbGlj
aWVzICYmIHBvbGljaWVzLT5pc0NhcHRpdmVQb3J0YWxNb2RlRXhwbGljaXRseVNldCgpKSB8fCBt
X2NvbmZpZ3VyYXRpb24tPmlzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBsaWNpdGx5U2V0KCk7CiAgICAg
YXV0byBjYXB0aXZlUG9ydGFsTW9kZSA9IChwb2xpY2llcyA/IHBvbGljaWVzLT5jYXB0aXZlUG9y
dGFsTW9kZUVuYWJsZWQoKSA6IHNob3VsZEVuYWJsZUNhcHRpdmVQb3J0YWxNb2RlKCkpID8gV2Vi
UHJvY2Vzc1Byb3h5OjpDYXB0aXZlUG9ydGFsTW9kZTo6RW5hYmxlZCA6IFdlYlByb2Nlc3NQcm94
eTo6Q2FwdGl2ZVBvcnRhbE1vZGU6OkRpc2FibGVkOwogICAgIHByb2Nlc3MoKS5wcm9jZXNzUG9v
bCgpLnByb2Nlc3NGb3JOYXZpZ2F0aW9uKCp0aGlzLCAqbmF2aWdhdGlvbiwgc291cmNlUHJvY2Vz
cy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY2Fw
dGl2ZVBvcnRhbE1vZGUsIGZyYW1lSW5mbywgV1RGTW92ZSh3ZWJzaXRlRGF0YVN0b3JlKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRp
b24gPSBSZWYgeyAqbmF2aWdhdGlvbiB9LCBuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZp
Z2F0aW9uQWN0aW9uKSwgc291cmNlUHJvY2VzcyA9IHNvdXJjZVByb2Nlc3MuY29weVJlZigpLApA
QCAtMzUxMSw3ICszNTEzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgICAg
IGlmIChzdXNwZW5kZWRQYWdlICYmIHN1c3BlbmRlZFBhZ2UtPnBhZ2VJc0Nsb3NlZE9yQ2xvc2lu
ZygpKQogICAgICAgICAgICAgICAgIHN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwogCi0gICAgICAg
ICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdhdGlvbiwgV1RGTW92ZShz
dXNwZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIHByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIHN0ZDo6ZXhjaGFuZ2UocG9saWNpZXMsIG51bGxwdHIp
KTsKKyAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9u
LCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwg
cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgc3RkOjpleGNoYW5nZShtX2xhc3RX
ZWJzaXRlUG9saWNpZXMsIG51bGxwdHIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IGF1dG8gaXRlbSA9IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA/IG5hdmlnYXRpb24tPnJlbG9h
ZEl0ZW0oKSA6IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKTsKICAgICAgICAgICAgIGlmIChwb2xp
Y3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgaXRlbSkgewpAQCAtNTc2Myw3ICs1NzY1
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRyaWdnZXJCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aEZvck5hdmlnYXRpb24odWludDY0X3QgbmF2aWcKICAgICAvLyBUZWxsIGNvbW1pdHRlZCBwcm9j
ZXNzIHRvIHN0b3AgbG9hZGluZyBzaW5jZSB3ZSdyZSBnb2luZyB0byBkbyB0aGUgcHJvdmlzaW9u
YWwgbG9hZCBpbiBhIHByb3Zpc2lvbmFsIHBhZ2Ugbm93LgogICAgIGlmICghbV9wcm92aXNpb25h
bFBhZ2UpCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BMb2FkaW5nRHVlVG9Q
cm9jZXNzU3dhcCgpKTsKLSAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmln
YXRpb24sIG51bGxwdHIsIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLnJlbGVhc2VOb25OdWxsKCksIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6Olllc0FmdGVyUHJvdmlzaW9uYWxMb2FkU3RhcnRlZCwgbnVsbHB0ciwgZXhpc3RpbmdOZXR3
b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKTsKKyAgICBjb250aW51ZU5hdmlnYXRp
b25Jbk5ld1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIHByb2Nlc3NGb3JOYXZpZ2F0aW9u
LnJlbGVhc2VOb25OdWxsKCksIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUHJvdmlzaW9uYWxMb2FkU3RhcnRlZCwg
c3RkOjpleGNoYW5nZShtX2xhc3RXZWJzaXRlUG9saWNpZXMsIHsgfSksIGV4aXN0aW5nTmV0d29y
a1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIo
dHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMDk0
YjQ1NTY0MWFkZjRkNGYyNGU0ZTdiNGE0YzRiZWE3MGRjMWFhZi4uMDgzZWJmNGYwYjJhZjc5YTFl
NmEwYjZhY2FiYTcyMjJhY2Q4OTU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTMyMzAsNiArMzIzMCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UGxhdGZv
cm1JbWFnZVB0ciBtX2Nyb3BwZWRJbWFnZVJlc3VsdDsKICAgICBDcm9wcGVkSW1hZ2VPdmVybGF5
U3RhdGUgbV9jcm9wcGVkSW1hZ2VPdmVybGF5U3RhdGUgeyBDcm9wcGVkSW1hZ2VPdmVybGF5U3Rh
dGU6OkluYWN0aXZlIH07CiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VN
RU5UUykKKyAgICBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+IG1fbGFzdFdlYnNpdGVQb2xp
Y2llczsKIH07CiAKICNpZmRlZiBfX09CSkNfXwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRiMjM4NjgxZGM2ZDkyNjM0MTVjNGRkNDY3ZjYzZGZm
OWIxNjliYzkuLjBmYmMzZjkyNDI5OTRkYTlhZjI4YWI3YmE4ZWViYzI4Y2Y2NWRhMmYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMi0wMy0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2Vic2l0ZSBwb2xpY2llcyBhcmUgbm90IHJlc3BlY3RlZCB3aGVuIGRvaW5nIENPT1Ag
YmFzZWQgcHJvY2VzcyBzd2FwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzgwMzYKKyAgICAgICAgPHJkYXI6Ly84OTYxNjYyNT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisKIDIwMjItMDMtMTcg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEF1ZGlvQ29udGV4
dCBpcyBzdXNwZW5kZWQgb24gaU9TIHdoZW4gcGFnZSBpcyBiYWNrZ3JvdW5kZWQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGZhOGY2NTc1YjY4ODA5MWZmYmFjY2RjM2Q1MGM3
YzJmZDNiMGVjNzguLjQyNGY0NTk2NWRhOTM0ZTUzYWVhY2IxZWMxMDY5ODZiYjdjZWE2NzEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtODI5MywzICs4MjkzLDc4IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIENhcHRpdmVQb3J0YWxNb2RlU3lzdGVtU2V0dGluZ0NoYW5nZURvZXNO
b3RSZWxvYWRWaWV3c1doZW5Nb2RlCiB9CiAKICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKworVEVTVChQcm9jZXNzU3dhcCwgQ29udGVudE1vZGVJbkNhc2VPZkNvb3BQcm9jZXNz
U3dhcCkKK3sKKyAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKKworICAgIEhUVFBT
ZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiL3NvdXJjZS5odG1sIiwgeyAiZm9vIiB9IH0sCisg
ICAgICAgIHsgIi9kZXN0aW5hdGlvbi5odG1sIiwgeyB7IHsgIkNvbnRlbnQtVHlwZSIsICJ0ZXh0
L2h0bWwiIH0sIHsgIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IiwgInNhbWUtb3JpZ2luIiB9
IH0sICJiYXIiIH0gfSwKKyAgICB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOworCisg
ICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uKCk7CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29s
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5n
ZXQoKV0pOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0
aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKworICAgIGF1dG8gd2VicGFn
ZVByZWZlcmVuY2VzID0gYWRvcHROUyhbW1dLV2VicGFnZVByZWZlcmVuY2VzIGFsbG9jXSBpbml0
XSk7CisgICAgW3dlYnBhZ2VQcmVmZXJlbmNlcyBzZXRQcmVmZXJyZWRDb250ZW50TW9kZTpXS0Nv
bnRlbnRNb2RlRGVza3RvcF07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldERlZmF1bHRX
ZWJwYWdlUHJlZmVyZW5jZXM6d2VicGFnZVByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAxMDI0LCA3NjgpIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2
aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlv
bkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7
CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoIi9zb3VyY2UuaHRtbCIp
XTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci51c2VyQWdlbnQ7IiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIF9OdWxsYWJsZSByZXNwb25zZSwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJv
cikgeworICAgICAgICBkb25lID0gdHJ1ZTsKKworICAgICAgICBBU1NFUlRfVFJVRSghZXJyb3Ip
OworICAgICAgICBOU1N0cmluZyAqdXNlckFnZW50ID0gKE5TU3RyaW5nICopcmVzcG9uc2U7Cisg
ICAgICAgIEFTU0VSVF9UUlVFKFt1c2VyQWdlbnQgY29udGFpbnNTdHJpbmc6QCJNYWNpbnRvc2g7
IEludGVsIE1hYyJdKTsKKyAgICB9XTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUg
PSBmYWxzZTsKKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgiL2Rlc3RpbmF0
aW9uLmh0bWwiKV07CisgICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisK
KyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IudXNlckFnZW50OyIg
Y29tcGxldGlvbkhhbmRsZXI6XihpZCBfTnVsbGFibGUgcmVzcG9uc2UsIE5TRXJyb3IgKiBfTnVs
bGFibGUgZXJyb3IpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisKKyAgICAgICAgQVNTRVJUX1RS
VUUoIWVycm9yKTsKKyAgICAgICAgTlNTdHJpbmcgKnVzZXJBZ2VudCA9IChOU1N0cmluZyAqKXJl
c3BvbnNlOworICAgICAgICBBU1NFUlRfVFJVRShbdXNlckFnZW50IGNvbnRhaW5zU3RyaW5nOkAi
TWFjaW50b3NoOyBJbnRlbCBNYWMiXSk7CisgICAgfV07CisgICAgVXRpbDo6cnVuKCZkb25lKTsK
KyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKworICAgIFt3ZWJWaWV3
IGdvQmFja107IC8vIEJhY2sgdG8gc291cmNlLmh0bWwuCisgICAgVXRpbDo6cnVuKCZkb25lKTsK
KyAgICBkb25lID0gZmFsc2U7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJu
YXZpZ2F0b3IudXNlckFnZW50OyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCBfTnVsbGFibGUgcmVz
cG9uc2UsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7
CisKKyAgICAgICAgQVNTRVJUX1RSVUUoIWVycm9yKTsKKyAgICAgICAgTlNTdHJpbmcgKnVzZXJB
Z2VudCA9IChOU1N0cmluZyAqKXJlc3BvbnNlOworICAgICAgICBBU1NFUlRfVFJVRShbdXNlckFn
ZW50IGNvbnRhaW5zU3RyaW5nOkAiTWFjaW50b3NoOyBJbnRlbCBNYWMiXSk7CisgICAgfV07Cisg
ICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7Cit9CisjZW5kaWYgLy8gUExB
VEZPUk0oSU9TX0ZBTUlMWSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455228</attachid>
            <date>2022-03-21 03:57:20 -0700</date>
            <delta_ts>2022-03-21 09:43:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238036-20220321115717.patch</filename>
            <type>text/plain</type>
            <size>17099</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdkNDE3NTU5NTA1NmU0Mjhj
MjJiMzBmZGY2Y2Y2MzA4MzcxZjQ2NTIuLjVkNTdlOGI0YmZiOWU5ZWQ0OTcyNDY4Y2ZiMmFkNDVl
NDZjZDMwODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjItMDMtMjEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYnNpdGUgcG9saWNpZXMgYXJl
IG5vdCByZXNwZWN0ZWQgd2hlbiBkb2luZyBDT09QIGJhc2VkIHByb2Nlc3Mgc3dhcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDM2CisgICAgICAg
IDxyZGFyOi8vODk2MTY2MjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gY2FzZSBvZiBub3JtYWwgcHJvY2VzcyBzd2FwLCB3ZSBtYWtlIHVzZSBv
ZiB3ZWJzaXRlIHBvbGljaWVzIHNvIGV2ZXJ5dGhpbmcgaXMgZmluZS4KKyAgICAgICAgRm9yIENP
T1AgYmFzZWQgcHJvY2VzcyBzd2FwLCB0aGlzIGhhcHBlbnMgbGF0ZXIgb24sIGF0IGEgcG9pbnQg
d2hlcmUgd2UgbG9zdCB3ZWJzaXRlIHBvbGljaWVzLgorICAgICAgICBUbyBvdmVyY29tZSB0aGlz
LCB3ZSBzdG9yZSB0aGUgd2Vic2l0ZSBwb2xpY2llcyB1c2VkIGJ5IGEgbmF2aWdhdGlvbiBpbnNp
ZGUgdGhlIEFQSTo6TmF2aWdhdGlvbiBvYmplY3QuCisgICAgICAgIEl0IGlzIHVzZWQgYnkgY29u
dGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzIHRvIGNvcnJlY3RseSBpbml0aWFsaXplIHRoZSBu
ZXcgV2ViUGFnZSB3ZWJzaXRlIHBvbGljaWVzLgorICAgICAgICBXZSB0aGVuIHNldCB0aGUgd2Vi
c2l0ZSBwb2xpY2llcyBpbiB0aGUgbmF2aWdhdGlvbiBvYmplY3QganVzdCBiZWZvcmUgY29udGlu
dWluZyB0aGUgbG9hZCBpbiB0aGUgc2FtZSBwcm9jZXNzLAorICAgICAgICBhcyBwcm9jZXNzIHN3
YXAgbWF5IGhhcHBlbiBsYXRlciB3aGVuIGluc3BlY3RpbmcgdGhlIHJlc3BvbnNlLgorICAgICAg
ICBNaW5vciByZWZhY3RvcmluZyBpbiBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MgdG8g
Z2V0IHRoZSBwb2xpY2llcyBkaXJlY3RseSBmcm9tIHRoZSBnaXZlbiBOYXZpZ2F0aW9uIG9iamVj
dC4KKyAgICAgICAgTWlub3IgcmVmYWN0b3JpbmcgaW4gcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb24gdG8gbWFrZSB0aGUgY29kZSBkb2luZyBwcm9jZXNzIHN3YXAgY2xlYXJlci4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElOYXZpZ2F0aW9uLmg6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246OnNldFdlYnNpdGVQb2xp
Y2llc0ZvclByb2Nlc3NTd2FwKToKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6dGFrZVdlYnNp
dGVQb2xpY2llc0ZvclByb2Nlc3NTd2FwKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2
ZWRQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGlu
dWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojp0cmlnZ2VyQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hGb3JOYXZpZ2F0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMjItMDMtMTkgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBidWlsZCAoaG9w
ZWZ1bGx5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKaW5k
ZXggOTUxMTc2ZDJmYmZmNmYzYWI5NTZhMTY4NmY0YmQ4NjQ5YzVjMWE3ZC4uN2U5NWVlYTgyNTU3
MzMwMjI5YTdjYWJiY2I0NWQ0NDNkMzVjYTZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJTmF2aWdhdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkFQSVdlYnNpdGVQb2xpY2llcy5oIgog
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJGcmFtZUluZm9EYXRhLmgiCiAj
aW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKQEAgLTE3MSw2ICsxNzIsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRJc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKGJvb2wgdmFsdWUp
IHsgbV9pc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkID0gdmFsdWU7IH0KICAgICBib29sIGlz
TG9hZGVkV2l0aE5hdmlnYXRpb25TaGFyZWQoKSBjb25zdCB7IHJldHVybiBtX2lzTG9hZGVkV2l0
aE5hdmlnYXRpb25TaGFyZWQ7IH0KIAorICAgIHZvaWQgc2V0V2Vic2l0ZVBvbGljaWVzRm9yUHJv
Y2Vzc1N3YXAoUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHBvbGljaWVzKSB7IG1fd2Vi
c2l0ZVBvbGljaWVzRm9yUHJvY2Vzc1N3YXAgPSBXVEZNb3ZlKHBvbGljaWVzKTsgfQorICAgIFJl
ZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4gdGFrZVdlYnNpdGVQb2xpY2llc0ZvclByb2Nlc3NT
d2FwKCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX3dlYnNpdGVQb2xpY2llc0ZvclByb2Nlc3NT
d2FwLCB7IH0pOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmF2aWdhdGlvbihXZWJLaXQ6
OldlYk5hdmlnYXRpb25TdGF0ZSYpOwogICAgIE5hdmlnYXRpb24oV2ViS2l0OjpXZWJOYXZpZ2F0
aW9uU3RhdGUmLCBXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKQEAgLTE5Nyw2ICsy
MDEsNyBAQCBwcml2YXRlOgogICAgIFdlYktpdDo6V2ViQ29udGVudE1vZGUgbV9lZmZlY3RpdmVD
b250ZW50TW9kZSB7IFdlYktpdDo6V2ViQ29udGVudE1vZGU6OlJlY29tbWVuZGVkIH07CiAgICAg
V2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpUaW1lZEFjdGl2aXR5IG1fY2xpZW50TmF2aWdhdGlv
bkFjdGl2aXR5OwogICAgIGJvb2wgbV9pc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkIHsgZmFs
c2UgfTsKKyAgICBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+IG1fd2Vic2l0ZVBvbGljaWVz
Rm9yUHJvY2Vzc1N3YXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGY2YjQ0MDY0NTYwZDUwZTYzNzg4Y2QzN2Ex
MmQ4YTVjMDg0NmIyY2EuLjE1YTRlNjg0ZDE2M2IwYTQwZTIwYTEzYjg2OGE1ZTQ4YTk0M2JmYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzQ5Myw3ICsz
NDkzLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjoga2VlcCB1c2luZyBwcm9jZXNzICVpIGZvciBuYXZpZ2F0
aW9uLCByZWFzb249JSIgUFVCTElDX0xPR19TVFJJTkcsIHByb2Nlc3NJZGVudGlmaWVyKCksIHJl
YXNvbi51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZT4gb3B0aW9uYWxIYW5kbGU7CiAgICAgICAgIGlmIChzaG91bGRQcm9jZXNz
U3dhcCkgewogICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBwcm9jZXNzIHRvIGJlIHVzZWQg
Zm9yIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IGdldCBzaHV0RG93biBub3cgZHVlIHRvIGRlc3Ry
b3lpbmcgU3VzcGVuZGVkUGFnZVByb3h5IG9yIFByb3Zpc2lvbmFsUGFnZVByb3h5IG9iamVjdHMu
CiAgICAgICAgICAgICBhdXRvIHByZXZlbnROYXZpZ2F0aW9uUHJvY2Vzc1NodXRkb3duID0gcHJv
Y2Vzc0Zvck5hdmlnYXRpb24tPnNodXRkb3duUHJldmVudGluZ1Njb3BlKCk7CkBAIC0zNTExLDI0
ICszNTEwLDMwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBCiAgICAgICAgICAgICBpZiAoc3Vz
cGVuZGVkUGFnZSAmJiBzdXNwZW5kZWRQYWdlLT5wYWdlSXNDbG9zZWRPckNsb3NpbmcoKSkKICAg
ICAgICAgICAgICAgICBzdXNwZW5kZWRQYWdlID0gbnVsbHB0cjsKIAotICAgICAgICAgICAgY29u
dGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmlnYXRpb24sIFdURk1vdmUoc3VzcGVuZGVk
UGFnZSksIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLCBzdGQ6OmV4Y2hhbmdlKHBvbGljaWVzLCBudWxscHRyKSk7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGl0ZW0gPSBuYXZpZ2F0aW9uLT5yZWxvYWRJ
dGVtKCkgPyBuYXZpZ2F0aW9uLT5yZWxvYWRJdGVtKCkgOiBuYXZpZ2F0aW9uLT50YXJnZXRJdGVt
KCk7Ci0gICAgICAgICAgICBpZiAocG9saWN5QWN0aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYm
IGl0ZW0pIHsKLSAgICAgICAgICAgICAgICBVUkwgZnVsbFVSTCB7IGl0ZW0tPnVybCgpIH07Ci0g
ICAgICAgICAgICAgICAgaWYgKGZ1bGxVUkwucHJvdG9jb2xJcygiZmlsZSJfcykpIHsKLSAgICAg
ICAgICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25I
YW5kbGU7Ci0gICAgICAgICAgICAgICAgICAgIG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNp
b25IYW5kbGUocHJvY2Vzc0Zvck5hdmlnYXRpb24uZ2V0KCksIGZ1bGxVUkwsIGl0ZW0tPnJlc291
cmNlRGlyZWN0b3J5VVJMKCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwotICAgICAgICAgICAg
ICAgICAgICBvcHRpb25hbEhhbmRsZSA9IFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7
Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgbmF2aWdhdGlvbi0+c2V0V2Vic2l0ZVBv
bGljaWVzRm9yUHJvY2Vzc1N3YXAoV1RGTW92ZShwb2xpY2llcykpOworICAgICAgICAgICAgY29u
dGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmlnYXRpb24sIFdURk1vdmUoc3VzcGVuZGVk
UGFnZSksIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uKTsKKworICAgICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihw
b2xpY3lBY3Rpb24sIG5hdmlnYXRpb24ucHRyKCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlv
bkFjdGlvbiksIFdURk1vdmUoc2VuZGVyKSwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6
WWVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gaXRl
bSA9IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA/IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA6
IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU+IG9wdGlvbmFsSGFuZGxlOworICAgICAgICBpZiAocG9saWN5QWN0
aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYmIGl0ZW0pIHsKKyAgICAgICAgICAgIFVSTCBmdWxs
VVJMIHsgaXRlbS0+dXJsKCkgfTsKKyAgICAgICAgICAgIGlmIChmdWxsVVJMLnByb3RvY29sSXMo
ImZpbGUiX3MpKSB7CisgICAgICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNh
bmRib3hFeHRlbnNpb25IYW5kbGU7CisgICAgICAgICAgICAgICAgbWF5YmVJbml0aWFsaXplU2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZShwcm9jZXNzRm9yTmF2aWdhdGlvbi5nZXQoKSwgZnVsbFVSTCwg
aXRlbS0+cmVzb3VyY2VEaXJlY3RvcnlVUkwoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Cisg
ICAgICAgICAgICAgICAgb3B0aW9uYWxIYW5kbGUgPSBXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25I
YW5kbGUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcmVjZWl2ZWRQb2xp
Y3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24ucHRyKCksIHNob3VsZFByb2Nlc3NT
d2FwID8gbnVsbHB0ciA6IFdURk1vdmUocG9saWNpZXMpLCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rp
b24pLCBXVEZNb3ZlKHNlbmRlciksIFdURk1vdmUob3B0aW9uYWxIYW5kbGUpLCBzaG91bGRQcm9j
ZXNzU3dhcCA/IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3M6OlllcyA6IFdpbGxDb250aW51
ZUxvYWRJbk5ld1Byb2Nlc3M6Ok5vKTsKKyAgICAgICAgbmF2aWdhdGlvbi0+c2V0V2Vic2l0ZVBv
bGljaWVzRm9yUHJvY2Vzc1N3YXAocG9saWNpZXMuZ2V0KCkpOworICAgICAgICByZWNlaXZlZFBv
bGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5wdHIoKSwgV1RGTW92ZShwb2xp
Y2llcyksIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIFdURk1vdmUoc2VuZGVyKSwgV2lsbENv
bnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm8sIFdURk1vdmUob3B0aW9uYWxIYW5kbGUpKTsKICAg
ICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9s
aWN5QWN0aW9uIGFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBSZWZQdHI8QVBJ
OjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzLCBzdGQ6OnZhcmlhbnQ8UmVmPEFQ
STo6TmF2aWdhdGlvblJlc3BvbnNlPiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4+JiYgbmF2
aWdhdGlvbkFjdGlvbk9yUmVzcG9uc2UsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJiBzZW5k
ZXIsIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlLCBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzIHdpbGxDb250aW51ZUxvYWRJ
bk5ld1Byb2Nlc3MpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQ
b2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIFJlZlB0cjxB
UEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMsIHN0ZDo6dmFyaWFudDxSZWY8
QVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPj4mJiBu
YXZpZ2F0aW9uQWN0aW9uT3JSZXNwb25zZSwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmIHNl
bmRlciwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyB3aWxsQ29udGludWVMb2FkSW5OZXdQ
cm9jZXNzLCBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4
dGVuc2lvbkhhbmRsZSkKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAg
ICAgc2VuZGVyLT5zZW5kKFBvbGljeURlY2lzaW9uIHsgc2VuZGVyLT5pZGVudGlmaWVyKCksIGlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgUG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIHN0
ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0pOwpAQCAtMzYxOCw3ICszNjIzLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRlc3Ryb3lQcm92aXNpb25hbFBhZ2UoKQogICAgIG1fcHJvdmlzaW9uYWxQ
YWdlID0gbnVsbHB0cjsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlv
bkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHN0ZDo6dW5pcXVlX3B0
cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYgc3VzcGVuZGVkUGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBuZXdQcm9jZXNzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRl
UG9saWNpZXMsIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4
aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkKK3ZvaWQgV2ViUGFn
ZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmIHN1c3BlbmRl
ZFBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFs
PE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyPiBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyVG9SZXN1bWUpCiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExv
YWRpbmcsICJjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IG5ld1Byb2Nlc3NQSUQ9JWks
IGhhc1N1c3BlbmRlZFBhZ2U9JWkiLCBuZXdQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAh
IXN1c3BlbmRlZFBhZ2UpOwogICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBuYXZpZ2F0aW9u
ICUiIFBSSXU2NCAiICclcycgaW4gYSBuZXcgd2ViIHByb2Nlc3MiLCBuYXZpZ2F0aW9uLm5hdmln
YXRpb25JRCgpLCBuYXZpZ2F0aW9uLmxvZ2dpbmdTdHJpbmcoKSk7CkBAIC0zNjMyLDYgKzM2Mzcs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQ
STo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgcwogICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9
IG51bGxwdHI7CiAgICAgfQogCisgICAgYXV0byB3ZWJzaXRlUG9saWNpZXMgPSBuYXZpZ2F0aW9u
LnRha2VXZWJzaXRlUG9saWNpZXNGb3JQcm9jZXNzU3dhcCgpOwogICAgIGJvb2wgaXNTZXJ2ZXJT
aWRlUmVkaXJlY3QgPSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiAmJiBuYXZp
Z2F0aW9uLmN1cnJlbnRSZXF1ZXN0SXNSZWRpcmVjdCgpOwogICAgIGJvb2wgaXNQcm9jZXNzU3dh
cHBpbmdPbk5hdmlnYXRpb25SZXNwb25zZSA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9
PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUHJvdmlzaW9uYWxMb2FkU3Rh
cnRlZDsKICAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdl
UHJveHk+KCp0aGlzLCBXVEZNb3ZlKG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2Up
LCBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpc1NlcnZlclNpZGVSZWRpcmVjdCwgbmF2aWdh
dGlvbi5jdXJyZW50UmVxdWVzdCgpLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBpc1By
b2Nlc3NTd2FwcGluZ09uTmF2aWdhdGlvblJlc3BvbnNlLCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkp
OwpAQCAtNTc2NSw3ICs1NzcxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRyaWdnZXJCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb24odWludDY0X3QgbmF2aWcKICAgICAvLyBU
ZWxsIGNvbW1pdHRlZCBwcm9jZXNzIHRvIHN0b3AgbG9hZGluZyBzaW5jZSB3ZSdyZSBnb2luZyB0
byBkbyB0aGUgcHJvdmlzaW9uYWwgbG9hZCBpbiBhIHByb3Zpc2lvbmFsIHBhZ2Ugbm93LgogICAg
IGlmICghbV9wcm92aXNpb25hbFBhZ2UpCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OlN0b3BMb2FkaW5nRHVlVG9Qcm9jZXNzU3dhcCgpKTsKLSAgICBjb250aW51ZU5hdmlnYXRpb25J
bk5ld1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLnJl
bGVhc2VOb25OdWxsKCksIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUHJvdmlzaW9uYWxMb2FkU3RhcnRlZCwgbnVs
bHB0ciwgZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKTsKKyAg
ICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIHBy
b2Nlc3NGb3JOYXZpZ2F0aW9uLnJlbGVhc2VOb25OdWxsKCksIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUHJvdmlz
aW9uYWxMb2FkU3RhcnRlZCwgZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRv
UmVzdW1lKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAwOTRiNDU1NjQxYWRmNGQ0ZjI0ZTRlN2I0YTRj
NGJlYTcwZGMxYWFmLi4wMTIxMjY3NTY3NWEwNThiYzgwNTA4ZmU1YTYwMzZmY2Q0MzM4ZDc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTI3MCw3ICsxMjcwLDcg
QEAgcHVibGljOgogCiAgICAgY2xhc3MgUG9saWN5RGVjaXNpb25TZW5kZXI7CiAgICAgZW51bSBj
bGFzcyBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzIDogYm9vbCB7IE5vLCBZZXMgfTsKLSAg
ICB2b2lkIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6
Ok5hdmlnYXRpb24qLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIHN0ZDo6dmFyaWFu
dDxSZWY8QVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9u
Pj4mJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmLCBzdGQ6Om9wdGlvbmFsPFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4gPSB7IH0sIFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBX
aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpObyk7CisgICAgdm9pZCByZWNlaXZlZFBvbGlj
eURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmUHRy
PEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmLCBzdGQ6OnZhcmlhbnQ8UmVmPEFQSTo6TmF2aWdhdGlv
blJlc3BvbnNlPiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4+JiYsIFJlZjxQb2xpY3lEZWNp
c2lvblNlbmRlcj4mJiwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51
ZUxvYWRJbk5ld1Byb2Nlc3M6Ok5vLCBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZT4gPSB7IH0pOwogICAgIHZvaWQgcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24o
V2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qLCBSZWY8QVBJOjpOYXZpZ2F0
aW9uQWN0aW9uPiYmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5
JiwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwg
UmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmKTsKIAogICAgIHZvaWQgYmFja0ZvcndhcmRSZW1v
dmVkSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJik7CkBAIC0y
NTU0LDcgKzI1NTQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXBvcnRQYWdlTG9hZFJlc3Vs
dChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiA9IHsgfSk7CiAKLSAgICB2b2lkIGNvbnRp
bnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9w
dHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgc3RkOjpvcHRpb25hbDxOZXR3b3Jr
UmVzb3VyY2VMb2FkSWRlbnRpZmllcj4gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRp
ZmllclRvUmVzdW1lID0gc3RkOjpudWxsb3B0KTsKKyAgICB2b2lkIGNvbnRpbnVlTmF2aWdhdGlv
bkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVk
UGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0
aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29ya1Jlc291
cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7CiAKICAgICB2b2lkIHNl
dE5lZWRzRm9udEF0dHJpYnV0ZXMoYm9vbCk7CiAgICAgdm9pZCB1cGRhdGVGb250QXR0cmlidXRl
c0FmdGVyRWRpdG9yU3RhdGVDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYzQ4YTY1YThhOWNjODJjMjg1NGM3ZWNiNWNiMGMzNTRj
MGExOTAxLi41NTRiNDI1NGYyY2QzNmFiOGRjNzc0NmY2N2MzNGNkNjA2ZjFkNjdmIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjItMDMtMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYnNpdGUgcG9saWNpZXMgYXJlIG5vdCByZXNwZWN0ZWQgd2hlbiBkb2luZyBDT09QIGJh
c2VkIHByb2Nlc3Mgc3dhcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM4MDM2CisgICAgICAgIDxyZGFyOi8vODk2MTY2MjU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorCiAyMDIyLTAzLTIwICBB
ZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4
IGNsYW5nIHdhcm5pbmcgYWZ0ZXIgcjI5MTIyOQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KaW5kZXggNjExMTFmMjRlMTgwZTAxYjRmOGIzNmFkODlmMGNmMGM1NjMxMGNkNy4uYTEwMjFm
YmMzNWQ5MWM0YWEzNDFlMTNiMzM5YjZmZjFhZDY1YTkzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tCkBAIC04MzA2LDMgKzgzMDYsNzggQEAgVEVTVChQcm9jZXNzU3dhcCwgQ2Fw
dGl2ZVBvcnRhbE1vZGVTeXN0ZW1TZXR0aW5nQ2hhbmdlRG9lc05vdFJlbG9hZFZpZXdzV2hlbk1v
ZGUKIH0KIAogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitURVNUKFByb2Nl
c3NTd2FwLCBDb250ZW50TW9kZUluQ2FzZU9mQ29vcFByb2Nlc3NTd2FwKQoreworICAgIHVzaW5n
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOworCisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAg
ICAgICB7ICIvc291cmNlLmh0bWwiLCB7ICJmb28iIH0gfSwKKyAgICAgICAgeyAiL2Rlc3RpbmF0
aW9uLmh0bWwiLCB7IHsgeyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfSwgeyAiQ3Jvc3Mt
T3JpZ2luLU9wZW5lci1Qb2xpY3kiLCAic2FtZS1vcmlnaW4iIH0gfSwgImJhciIgfSB9LAorICAg
IH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CisKKyAgICBhdXRvIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKKyAgICBhdXRv
IHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENv
bmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRv
IHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6
cHJvY2Vzc1Bvb2wuZ2V0KCldOworCisgICAgYXV0byB3ZWJwYWdlUHJlZmVyZW5jZXMgPSBhZG9w
dE5TKFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBbd2VicGFnZVBy
ZWZlcmVuY2VzIHNldFByZWZlcnJlZENvbnRlbnRNb2RlOldLQ29udGVudE1vZGVEZXNrdG9wXTsK
KyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0RGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlczp3
ZWJwYWdlUHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMjQsIDc2
OCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8g
bmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgiL3NvdXJjZS5odG1sIildOworICAgIFV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAibmF2aWdhdG9yLnVzZXJBZ2VudDsiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgX051bGxh
YmxlIHJlc3BvbnNlLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIGRvbmUg
PSB0cnVlOworCisgICAgICAgIEFTU0VSVF9UUlVFKCFlcnJvcik7CisgICAgICAgIE5TU3RyaW5n
ICp1c2VyQWdlbnQgPSAoTlNTdHJpbmcgKilyZXNwb25zZTsKKyAgICAgICAgQVNTRVJUX1RSVUUo
W3VzZXJBZ2VudCBjb250YWluc1N0cmluZzpAIk1hY2ludG9zaDsgSW50ZWwgTWFjIl0pOworICAg
IH1dOworICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgYXV0
byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCIvZGVzdGluYXRpb24uaHRtbCIpXTsKKyAgICBV
dGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci51c2VyQWdlbnQ7IiBjb21wbGV0aW9uSGFuZGxlcjpe
KGlkIF9OdWxsYWJsZSByZXNwb25zZSwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAg
ICAgICBkb25lID0gdHJ1ZTsKKworICAgICAgICBBU1NFUlRfVFJVRSghZXJyb3IpOworICAgICAg
ICBOU1N0cmluZyAqdXNlckFnZW50ID0gKE5TU3RyaW5nICopcmVzcG9uc2U7CisgICAgICAgIEFT
U0VSVF9UUlVFKFt1c2VyQWdlbnQgY29udGFpbnNTdHJpbmc6QCJNYWNpbnRvc2g7IEludGVsIE1h
YyJdKTsKKyAgICB9XTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsK
KworICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAg
RVhQRUNUX05FKHBpZDEsIHBpZDIpOworCisgICAgW3dlYlZpZXcgZ29CYWNrXTsgLy8gQmFjayB0
byBzb3VyY2UuaHRtbC4KKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsK
KworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci51c2VyQWdlbnQ7
IiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJsZSByZXNwb25zZSwgTlNFcnJvciAqIF9O
dWxsYWJsZSBlcnJvcikgeworICAgICAgICBkb25lID0gdHJ1ZTsKKworICAgICAgICBBU1NFUlRf
VFJVRSghZXJyb3IpOworICAgICAgICBOU1N0cmluZyAqdXNlckFnZW50ID0gKE5TU3RyaW5nICop
cmVzcG9uc2U7CisgICAgICAgIEFTU0VSVF9UUlVFKFt1c2VyQWdlbnQgY29udGFpbnNTdHJpbmc6
QCJNYWNpbnRvc2g7IEludGVsIE1hYyJdKTsKKyAgICB9XTsKKyAgICBVdGlsOjpydW4oJmRvbmUp
OworICAgIGRvbmUgPSBmYWxzZTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455253</attachid>
            <date>2022-03-21 09:43:15 -0700</date>
            <delta_ts>2022-03-22 01:02:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238036-20220321174313.patch</filename>
            <type>text/plain</type>
            <size>28651</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ3Nzc5ZGM2YzQxYTUxMjdm
NmY5ZjAzNDY2YjlmZDA0MjQ3Mzk3ZTUuLjI0OWFiZjVmNTczZTU5MTgxNDI4NjEwZTJlY2VmYjcx
NmQ4ODNlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjItMDMtMjEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYnNpdGUgcG9saWNpZXMgYXJl
IG5vdCByZXNwZWN0ZWQgd2hlbiBkb2luZyBDT09QIGJhc2VkIHByb2Nlc3Mgc3dhcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDM2CisgICAgICAg
IDxyZGFyOi8vODk2MTY2MjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gY2FzZSBvZiBub3JtYWwgcHJvY2VzcyBzd2FwLCB3ZSBtYWtlIHVzZSBv
ZiB3ZWJzaXRlIHBvbGljaWVzIHNvIGV2ZXJ5dGhpbmcgaXMgZmluZS4KKyAgICAgICAgRm9yIENP
T1AgYmFzZWQgcHJvY2VzcyBzd2FwLCB0aGlzIGhhcHBlbnMgbGF0ZXIgb24sIGF0IGEgcG9pbnQg
d2hlcmUgd2UgbG9zdCB3ZWJzaXRlIHBvbGljaWVzLgorICAgICAgICBUbyBvdmVyY29tZSB0aGlz
LCB3ZSBzdG9yZSB0aGUgd2Vic2l0ZSBwb2xpY2llcyB1c2VkIGJ5IGEgbmF2aWdhdGlvbiBpbnNp
ZGUgdGhlIEFQSTo6TmF2aWdhdGlvbiBvYmplY3QuCisgICAgICAgIEl0IGlzIHVzZWQgYnkgY29u
dGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzIHRvIGNvcnJlY3RseSBpbml0aWFsaXplIHRoZSBu
ZXcgV2ViUGFnZSB3ZWJzaXRlIHBvbGljaWVzLgorICAgICAgICBXZSB0aGVuIHNldCB0aGUgd2Vi
c2l0ZSBwb2xpY2llcyBpbiB0aGUgbmF2aWdhdGlvbiBvYmplY3QganVzdCBiZWZvcmUgY29udGlu
dWluZyB0aGUgbG9hZCBpbiB0aGUgc2FtZSBwcm9jZXNzLAorICAgICAgICBhcyBwcm9jZXNzIHN3
YXAgbWF5IGhhcHBlbiBsYXRlciB3aGVuIGluc3BlY3RpbmcgdGhlIHJlc3BvbnNlLgorICAgICAg
ICBNaW5vciByZWZhY3RvcmluZyBpbiBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MgdG8g
Z2V0IHRoZSBwb2xpY2llcyBkaXJlY3RseSBmcm9tIHRoZSBnaXZlbiBOYXZpZ2F0aW9uIG9iamVj
dC4KKyAgICAgICAgTWlub3IgcmVmYWN0b3JpbmcgaW4gcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb24gdG8gbWFrZSB0aGUgY29kZSBkb2luZyBwcm9jZXNzIHN3YXAgY2xlYXJlci4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElOYXZpZ2F0aW9uLmg6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246OnNldFdlYnNpdGVQb2xp
Y2llc0ZvclByb2Nlc3NTd2FwKToKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6dGFrZVdlYnNp
dGVQb2xpY2llc0ZvclByb2Nlc3NTd2FwKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2
ZWRQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGlu
dWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojp0cmlnZ2VyQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hGb3JOYXZpZ2F0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMjItMDMtMjEgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VmlkZW9TYW1wbGVPYnNlcnZlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUgdG8gVmlkZW9GcmFt
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKaW5kZXggOTUx
MTc2ZDJmYmZmNmYzYWI5NTZhMTY4NmY0YmQ4NjQ5YzVjMWE3ZC4uODVhNGM5ODljMjNmZjY4ZWNk
ZjJkMThlMjFjMGRlNWM0Mjg2ZDg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSU5hdmlnYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJTmF2aWdhdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkFQSVdlYnNpdGVQb2xpY2llcy5oIgogI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJGcmFtZUluZm9EYXRhLmgiCiAjaW5jbHVk
ZSAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKQEAgLTE3MSw2ICsxNzIsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRJc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKGJvb2wgdmFsdWUpIHsgbV9p
c0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkID0gdmFsdWU7IH0KICAgICBib29sIGlzTG9hZGVk
V2l0aE5hdmlnYXRpb25TaGFyZWQoKSBjb25zdCB7IHJldHVybiBtX2lzTG9hZGVkV2l0aE5hdmln
YXRpb25TaGFyZWQ7IH0KIAorICAgIHZvaWQgc2V0V2Vic2l0ZVBvbGljaWVzKFJlZlB0cjxBUEk6
OldlYnNpdGVQb2xpY2llcz4mJiBwb2xpY2llcykgeyBtX3dlYnNpdGVQb2xpY2llcyA9IFdURk1v
dmUocG9saWNpZXMpOyB9CisgICAgQVBJOjpXZWJzaXRlUG9saWNpZXMqIHdlYnNpdGVQb2xpY2ll
cygpIHsgcmV0dXJuIG1fd2Vic2l0ZVBvbGljaWVzLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgTmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYpOwogICAgIE5h
dmlnYXRpb24oV2ViS2l0OjpXZWJOYXZpZ2F0aW9uU3RhdGUmLCBXZWJLaXQ6OldlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qKTsKQEAgLTE5Nyw2ICsyMDEsNyBAQCBwcml2YXRlOgogICAgIFdlYktpdDo6
V2ViQ29udGVudE1vZGUgbV9lZmZlY3RpdmVDb250ZW50TW9kZSB7IFdlYktpdDo6V2ViQ29udGVu
dE1vZGU6OlJlY29tbWVuZGVkIH07CiAgICAgV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpUaW1l
ZEFjdGl2aXR5IG1fY2xpZW50TmF2aWdhdGlvbkFjdGl2aXR5OwogICAgIGJvb2wgbV9pc0xvYWRl
ZFdpdGhOYXZpZ2F0aW9uU2hhcmVkIHsgZmFsc2UgfTsKKyAgICBSZWZQdHI8QVBJOjpXZWJzaXRl
UG9saWNpZXM+IG1fd2Vic2l0ZVBvbGljaWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBmNmI0NDA2NDU2MGQ1
MGU2Mzc4OGNkMzdhMTJkOGE1YzA4NDZiMmNhLi4zNWRiNjcxZmY1NWVmMmFiNGQ0Y2YzNmYyYWE1
YTYwMTJhNjZkYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTM0MjIsMTIgKzM0MjIsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyU2VydmljZVdv
cmtlckVudGl0bGVtZW50T3ZlcnJpZGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgKICNlbmRpZgog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24o
UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBS
ZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbywgUmVmUHRyPEFQSTo6
V2Vic2l0ZVBvbGljaWVzPiYmIHBvbGljaWVzLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYg
c2VuZGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlv
biwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uLCBQcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkZy
YW1lUHJveHkmIGZyYW1lLCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8sIFJlZjxQb2xp
Y3lEZWNpc2lvblNlbmRlcj4mJiBzZW5kZXIpCiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0Vf
TE9HKExvYWRpbmcsICJyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjogZnJhbWVJRD0l
bGx1LCBpc01haW5GcmFtZT0lZCwgbmF2aWdhdGlvbklEPSVsbHUsIHBvbGljeUFjdGlvbj0ldSIs
IGZyYW1lLmZyYW1lSUQoKS50b1VJbnQ2NCgpLCBmcmFtZS5pc01haW5GcmFtZSgpLCBuYXZpZ2F0
aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCAodW5zaWduZWQpcG9saWN5QWN0
aW9uKTsKIAogICAgIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiB3ZWJzaXRlRGF0YVN0b3JlID0gbV93
ZWJzaXRlRGF0YVN0b3JlLmNvcHlSZWYoKTsKLSAgICBpZiAocG9saWNpZXMpIHsKKyAgICBpZiAo
YXV0byogcG9saWNpZXMgPSBuYXZpZ2F0aW9uLT53ZWJzaXRlUG9saWNpZXMoKSkgewogICAgICAg
ICBpZiAocG9saWNpZXMtPndlYnNpdGVEYXRhU3RvcmUoKSAmJiBwb2xpY2llcy0+d2Vic2l0ZURh
dGFTdG9yZSgpICE9IHdlYnNpdGVEYXRhU3RvcmUucHRyKCkpIHsKICAgICAgICAgICAgIHdlYnNp
dGVEYXRhU3RvcmUgPSAqcG9saWNpZXMtPndlYnNpdGVEYXRhU3RvcmUoKTsKICAgICAgICAgICAg
IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xp
ZW50OjpZZXM7CkBAIC0zNDM3LDE4ICszNDM3LDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNl
aXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBB
CiAgICAgfQogCiAgICAgaWYgKG5hdmlnYXRpb24gJiYgIW5hdmlnYXRpb24tPnVzZXJDb250ZW50
RXh0ZW5zaW9uc0VuYWJsZWQoKSkgewotICAgICAgICBpZiAoIXBvbGljaWVzKQotICAgICAgICAg
ICAgcG9saWNpZXMgPSBBUEk6OldlYnNpdGVQb2xpY2llczo6Y3JlYXRlKCk7Ci0gICAgICAgIHBv
bGljaWVzLT5zZXRDb250ZW50QmxvY2tlcnNFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgaWYgKCFu
YXZpZ2F0aW9uLT53ZWJzaXRlUG9saWNpZXMoKSkKKyAgICAgICAgICAgIG5hdmlnYXRpb24tPnNl
dFdlYnNpdGVQb2xpY2llcyhBUEk6OldlYnNpdGVQb2xpY2llczo6Y3JlYXRlKCkpOworICAgICAg
ICBuYXZpZ2F0aW9uLT53ZWJzaXRlUG9saWNpZXMoKS0+c2V0Q29udGVudEJsb2NrZXJzRW5hYmxl
ZChmYWxzZSk7CiAgICAgfQogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBp
ZiAobmF2aWdhdGlvbiAmJiAoIXBvbGljaWVzIHx8IHBvbGljaWVzLT5kZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc1N0YXRlKCkgPT0gV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KSkgeworICAgIGlmIChuYXZpZ2F0aW9uICYmICgh
bmF2aWdhdGlvbi0+d2Vic2l0ZVBvbGljaWVzKCkgfHwgbmF2aWdhdGlvbi0+d2Vic2l0ZVBvbGlj
aWVzKCktPmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoKSA9PSBXZWJDb3Jl
OjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQpKSB7CiAg
ICAgICAgIGF1dG8gZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uID0gd2Vic2l0ZURhdGFTdG9y
ZS0+ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCkuY2FjaGVkRGV2
aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChuYXZp
Z2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpLnVybCgpKSk7CiAgICAgICAgIGlmIChkZXZpY2VPcmll
bnRhdGlvblBlcm1pc3Npb24gIT0gV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZTo6UHJvbXB0KSB7Ci0gICAgICAgICAgICBpZiAoIXBvbGljaWVzKQotICAg
ICAgICAgICAgICAgIHBvbGljaWVzID0gQVBJOjpXZWJzaXRlUG9saWNpZXM6OmNyZWF0ZSgpOwot
ICAgICAgICAgICAgcG9saWNpZXMtPnNldERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
U3RhdGUoZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uKTsKKyAgICAgICAgICAgIGlmICghbmF2
aWdhdGlvbi0+d2Vic2l0ZVBvbGljaWVzKCkpCisgICAgICAgICAgICAgICAgbmF2aWdhdGlvbi0+
c2V0V2Vic2l0ZVBvbGljaWVzKEFQSTo6V2Vic2l0ZVBvbGljaWVzOjpjcmVhdGUoKSk7CisgICAg
ICAgICAgICBuYXZpZ2F0aW9uLT53ZWJzaXRlUG9saWNpZXMoKS0+c2V0RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NTdGF0ZShkZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb24pOwogICAg
ICAgICB9CiAgICAgfQogI2VuZGlmCkBAIC0zNDYyLDcgKzM0NjIsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGlj
eUFjdGlvbiwgQQogICAgICAgICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lBY3Rpb246OkRvd25sb2Fk
OwogCiAgICAgaWYgKHBvbGljeUFjdGlvbiAhPSBQb2xpY3lBY3Rpb246OlVzZSB8fCAhZnJhbWUu
aXNNYWluRnJhbWUoKSB8fCAhbmF2aWdhdGlvbikgewotICAgICAgICByZWNlaXZlZFBvbGljeURl
Y2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbiwgV1RGTW92ZShwb2xpY2llcyksIFdURk1v
dmUobmF2aWdhdGlvbkFjdGlvbiksIFdURk1vdmUoc2VuZGVyKSk7CisgICAgICAgIHJlY2VpdmVk
UG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLCBuYXZpZ2F0aW9uLT53ZWJz
aXRlUG9saWNpZXMoKSwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwgV1RGTW92ZShzZW5kZXIp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzQ3NSwxMyArMzQ3NSwxMiBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0
aW9uIHBvbGljeUFjdGlvbiwgQQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9pc0NhcHRpdmVQ
b3J0YWxNb2RlRXhwbGljaXRseVNldCA9IChwb2xpY2llcyAmJiBwb2xpY2llcy0+aXNDYXB0aXZl
UG9ydGFsTW9kZUV4cGxpY2l0bHlTZXQoKSkgfHwgbV9jb25maWd1cmF0aW9uLT5pc0NhcHRpdmVQ
b3J0YWxNb2RlRXhwbGljaXRseVNldCgpOwotICAgIGF1dG8gY2FwdGl2ZVBvcnRhbE1vZGUgPSAo
cG9saWNpZXMgPyBwb2xpY2llcy0+Y2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkKCkgOiBzaG91bGRF
bmFibGVDYXB0aXZlUG9ydGFsTW9kZSgpKSA/IFdlYlByb2Nlc3NQcm94eTo6Q2FwdGl2ZVBvcnRh
bE1vZGU6OkVuYWJsZWQgOiBXZWJQcm9jZXNzUHJveHk6OkNhcHRpdmVQb3J0YWxNb2RlOjpEaXNh
YmxlZDsKLSAgICBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yTmF2aWdhdGlvbigq
dGhpcywgKm5hdmlnYXRpb24sIHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkwsIHBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGNhcHRpdmVQb3J0YWxNb2RlLCBmcmFtZUluZm8s
IFdURk1vdmUod2Vic2l0ZURhdGFTdG9yZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgcG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uID0gUmVmIHsgKm5hdmlnYXRpb24gfSwg
bmF2aWdhdGlvbkFjdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHNvdXJjZVByb2Nl
c3MgPSBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwKLSAgICAgICAgcG9saWNpZXMgPSBXVEZNb3Zl
KHBvbGljaWVzKSwgc2VuZGVyID0gV1RGTW92ZShzZW5kZXIpLCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50XSAoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzRm9yTmF2aWdhdGlvbiwg
U3VzcGVuZGVkUGFnZVByb3h5KiBkZXN0aW5hdGlvblN1c3BlbmRlZFBhZ2UsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uKSBtdXRhYmxlIHsKKyAgICBtX2lzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBsaWNpdGx5
U2V0ID0gKG5hdmlnYXRpb24tPndlYnNpdGVQb2xpY2llcygpICYmIG5hdmlnYXRpb24tPndlYnNp
dGVQb2xpY2llcygpLT5pc0NhcHRpdmVQb3J0YWxNb2RlRXhwbGljaXRseVNldCgpKSB8fCBtX2Nv
bmZpZ3VyYXRpb24tPmlzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBsaWNpdGx5U2V0KCk7CisgICAgYXV0
byBjYXB0aXZlUG9ydGFsTW9kZSA9IChuYXZpZ2F0aW9uLT53ZWJzaXRlUG9saWNpZXMoKSA/IG5h
dmlnYXRpb24tPndlYnNpdGVQb2xpY2llcygpLT5jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQoKSA6
IHNob3VsZEVuYWJsZUNhcHRpdmVQb3J0YWxNb2RlKCkpID8gV2ViUHJvY2Vzc1Byb3h5OjpDYXB0
aXZlUG9ydGFsTW9kZTo6RW5hYmxlZCA6IFdlYlByb2Nlc3NQcm94eTo6Q2FwdGl2ZVBvcnRhbE1v
ZGU6OkRpc2FibGVkOworICAgIHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JOYXZp
Z2F0aW9uKCp0aGlzLCAqbmF2aWdhdGlvbiwgc291cmNlUHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJj
ZVVSTCwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY2FwdGl2ZVBvcnRhbE1vZGUsIGZy
YW1lSW5mbywgV1RGTW92ZSh3ZWJzaXRlRGF0YVN0b3JlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9LCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24gPSBSZWYgeyAqbmF2aWdh
dGlvbiB9LCBuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwgc291
cmNlUHJvY2VzcyA9IHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzZW5kZXIgPSBXVEZNb3ZlKHNl
bmRlciksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnRdIChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLCBTdXNwZW5kZWRQYWdlUHJveHkqIGRlc3RpbmF0aW9u
U3VzcGVuZGVkUGFnZSwgY29uc3QgU3RyaW5nJiByZWFzb24pIG11dGFibGUgewogICAgICAgICAv
LyBJZiB0aGUgbmF2aWdhdGlvbiBoYXMgYmVlbiBkZXN0cm95ZWQsIHRoZW4gbm8gbmVlZCB0byBw
cm9jZWVkLgogICAgICAgICBpZiAoaXNDbG9zZWQoKSB8fCAhbmF2aWdhdGlvblN0YXRlKCkuaGFz
TmF2aWdhdGlvbihuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSkpIHsKLSAgICAgICAgICAgIHJl
Y2VpdmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLnB0cigpLCBXVEZN
b3ZlKHBvbGljaWVzKSwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwgV1RGTW92ZShzZW5kZXIp
KTsKKyAgICAgICAgICAgIHJlY2VpdmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZp
Z2F0aW9uLnB0cigpLCBuYXZpZ2F0aW9uLT53ZWJzaXRlUG9saWNpZXMoKSwgV1RGTW92ZShuYXZp
Z2F0aW9uQWN0aW9uKSwgV1RGTW92ZShzZW5kZXIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCkBAIC0zNDkzLDcgKzM0OTIsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2
ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQQog
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9j
ZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOiBrZWVwIHVzaW5n
IHByb2Nlc3MgJWkgZm9yIG5hdmlnYXRpb24sIHJlYXNvbj0lIiBQVUJMSUNfTE9HX1NUUklORywg
cHJvY2Vzc0lkZW50aWZpZXIoKSwgcmVhc29uLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgICAgIHN0
ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBvcHRpb25hbEhhbmRsZTsKICAg
ICAgICAgaWYgKHNob3VsZFByb2Nlc3NTd2FwKSB7CiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUg
dGhlIHByb2Nlc3MgdG8gYmUgdXNlZCBmb3IgdGhlIG5hdmlnYXRpb24gZG9lcyBub3QgZ2V0IHNo
dXREb3duIG5vdyBkdWUgdG8gZGVzdHJveWluZyBTdXNwZW5kZWRQYWdlUHJveHkgb3IgUHJvdmlz
aW9uYWxQYWdlUHJveHkgb2JqZWN0cy4KICAgICAgICAgICAgIGF1dG8gcHJldmVudE5hdmlnYXRp
b25Qcm9jZXNzU2h1dGRvd24gPSBwcm9jZXNzRm9yTmF2aWdhdGlvbi0+c2h1dGRvd25QcmV2ZW50
aW5nU2NvcGUoKTsKQEAgLTM1MTEsMjQgKzM1MDksMjggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJl
Y2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24s
IEEKICAgICAgICAgICAgIGlmIChzdXNwZW5kZWRQYWdlICYmIHN1c3BlbmRlZFBhZ2UtPnBhZ2VJ
c0Nsb3NlZE9yQ2xvc2luZygpKQogICAgICAgICAgICAgICAgIHN1c3BlbmRlZFBhZ2UgPSBudWxs
cHRyOwogCi0gICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdh
dGlvbiwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlv
biksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIHN0ZDo6ZXhjaGFuZ2UocG9s
aWNpZXMsIG51bGxwdHIpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gaXRl
bSA9IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA/IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA6
IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKTsKLSAgICAgICAgICAgIGlmIChwb2xpY3lBY3Rpb24g
PT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgaXRlbSkgewotICAgICAgICAgICAgICAgIFVSTCBmdWxs
VVJMIHsgaXRlbS0+dXJsKCkgfTsKLSAgICAgICAgICAgICAgICBpZiAoZnVsbFVSTC5wcm90b2Nv
bElzKCJmaWxlIl9zKSkgewotICAgICAgICAgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKLSAgICAgICAgICAgICAgICAgICAgbWF5YmVJ
bml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShwcm9jZXNzRm9yTmF2aWdhdGlvbi5nZXQo
KSwgZnVsbFVSTCwgaXRlbS0+cmVzb3VyY2VEaXJlY3RvcnlVUkwoKSwgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSk7Ci0gICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsSGFuZGxlID0gV1RGTW92ZShz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBj
b250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdhdGlvbiwgV1RGTW92ZShzdXNwZW5k
ZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24pOworCisgICAgICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9u
KHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5wdHIoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0
aW9uQWN0aW9uKSwgV1RGTW92ZShzZW5kZXIpLCBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNz
OjpZZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBp
dGVtID0gbmF2aWdhdGlvbi0+cmVsb2FkSXRlbSgpID8gbmF2aWdhdGlvbi0+cmVsb2FkSXRlbSgp
IDogbmF2aWdhdGlvbi0+dGFyZ2V0SXRlbSgpOworICAgICAgICBzdGQ6Om9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gb3B0aW9uYWxIYW5kbGU7CisgICAgICAgIGlmIChwb2xpY3lB
Y3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgaXRlbSkgeworICAgICAgICAgICAgVVJMIGZ1
bGxVUkwgeyBpdGVtLT51cmwoKSB9OworICAgICAgICAgICAgaWYgKGZ1bGxVUkwucHJvdG9jb2xJ
cygiZmlsZSJfcykpIHsKKyAgICAgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
c2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKKyAgICAgICAgICAgICAgICBtYXliZUluaXRpYWxpemVT
YW5kYm94RXh0ZW5zaW9uSGFuZGxlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uLmdldCgpLCBmdWxsVVJM
LCBpdGVtLT5yZXNvdXJjZURpcmVjdG9yeVVSTCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsK
KyAgICAgICAgICAgICAgICBvcHRpb25hbEhhbmRsZSA9IFdURk1vdmUoc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICByZWNlaXZlZFBv
bGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5wdHIoKSwgc2hvdWxkUHJvY2Vz
c1N3YXAgPyBudWxscHRyIDogV1RGTW92ZShwb2xpY2llcyksIFdURk1vdmUobmF2aWdhdGlvbkFj
dGlvbiksIFdURk1vdmUoc2VuZGVyKSwgV1RGTW92ZShvcHRpb25hbEhhbmRsZSksIHNob3VsZFBy
b2Nlc3NTd2FwID8gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzIDogV2lsbENvbnRp
bnVlTG9hZEluTmV3UHJvY2Vzczo6Tm8pOworICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9u
KHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5wdHIoKSwgbmF2aWdhdGlvbi0+d2Vic2l0ZVBvbGlj
aWVzKCksIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIFdURk1vdmUoc2VuZGVyKSwgV2lsbENv
bnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm8sIFdURk1vdmUob3B0aW9uYWxIYW5kbGUpKTsKICAg
ICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9s
aWN5QWN0aW9uIGFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBSZWZQdHI8QVBJ
OjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzLCBzdGQ6OnZhcmlhbnQ8UmVmPEFQ
STo6TmF2aWdhdGlvblJlc3BvbnNlPiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4+JiYgbmF2
aWdhdGlvbkFjdGlvbk9yUmVzcG9uc2UsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJiBzZW5k
ZXIsIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlLCBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzIHdpbGxDb250aW51ZUxvYWRJ
bk5ld1Byb2Nlc3MpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQ
b2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIFJlZlB0cjxB
UEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMsIHN0ZDo6dmFyaWFudDxSZWY8
QVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPj4mJiBu
YXZpZ2F0aW9uQWN0aW9uT3JSZXNwb25zZSwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmIHNl
bmRlciwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyB3aWxsQ29udGludWVMb2FkSW5OZXdQ
cm9jZXNzLCBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4
dGVuc2lvbkhhbmRsZSkKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAg
ICAgc2VuZGVyLT5zZW5kKFBvbGljeURlY2lzaW9uIHsgc2VuZGVyLT5pZGVudGlmaWVyKCksIGlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgUG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIHN0
ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0pOwpAQCAtMzYxOCw3ICszNjIwLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRlc3Ryb3lQcm92aXNpb25hbFBhZ2UoKQogICAgIG1fcHJvdmlzaW9uYWxQ
YWdlID0gbnVsbHB0cjsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlv
bkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHN0ZDo6dW5pcXVlX3B0
cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYgc3VzcGVuZGVkUGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBuZXdQcm9jZXNzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRl
UG9saWNpZXMsIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4
aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkKK3ZvaWQgV2ViUGFn
ZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmIHN1c3BlbmRl
ZFBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFs
PE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyPiBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyVG9SZXN1bWUpCiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExv
YWRpbmcsICJjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IG5ld1Byb2Nlc3NQSUQ9JWks
IGhhc1N1c3BlbmRlZFBhZ2U9JWkiLCBuZXdQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAh
IXN1c3BlbmRlZFBhZ2UpOwogICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBuYXZpZ2F0aW9u
ICUiIFBSSXU2NCAiICclcycgaW4gYSBuZXcgd2ViIHByb2Nlc3MiLCBuYXZpZ2F0aW9uLm5hdmln
YXRpb25JRCgpLCBuYXZpZ2F0aW9uLmxvZ2dpbmdTdHJpbmcoKSk7CkBAIC0zNjMyLDYgKzM2MzQs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQ
STo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgcwogICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9
IG51bGxwdHI7CiAgICAgfQogCisgICAgUmVmUHRyIHdlYnNpdGVQb2xpY2llcyA9IG5hdmlnYXRp
b24ud2Vic2l0ZVBvbGljaWVzKCk7CiAgICAgYm9vbCBpc1NlcnZlclNpZGVSZWRpcmVjdCA9IHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uICYmIG5hdmlnYXRpb24uY3VycmVudFJl
cXVlc3RJc1JlZGlyZWN0KCk7CiAgICAgYm9vbCBpc1Byb2Nlc3NTd2FwcGluZ09uTmF2aWdhdGlv
blJlc3BvbnNlID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzQWZ0ZXJQcm92aXNpb25hbExvYWRTdGFydGVkOwogICAgIG1fcHJv
dmlzaW9uYWxQYWdlID0gbWFrZVVuaXF1ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRoaXMsIFdU
Rk1vdmUobmV3UHJvY2VzcyksIFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIG5hdmlnYXRpb24ubmF2
aWdhdGlvbklEKCksIGlzU2VydmVyU2lkZVJlZGlyZWN0LCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1
ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGlzUHJvY2Vzc1N3YXBwaW5nT25O
YXZpZ2F0aW9uUmVzcG9uc2UsIHdlYnNpdGVQb2xpY2llcy5nZXQoKSk7CkBAIC01NDkzLDE2ICs1
NDk2LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgUmVmIGxpc3RlbmVyID0gZnJh
bWUuc2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgZnJhbWUgPSBSZWYgeyBmcmFtZSB9LCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciks
IG5hdmlnYXRpb24sIG5hdmlnYXRpb25BY3Rpb24sIGZyYW1lSW5mbywgdXNlckRhdGFPYmplY3Qg
PSBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5n
ZXQoKV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiBw
b2xpY2llcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJu
aW5nLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc0FwcEJvdW5k
RG9tYWluKSBtdXRhYmxlIHsKICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRp
bmcsICJkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOiBsaXN0ZW5lciBjYWxsZWQ6IGZy
YW1lSUQ9JWxsdSwgaXNNYWluRnJhbWU9JWQsIG5hdmlnYXRpb25JRD0lbGx1LCBwb2xpY3lBY3Rp
b249JXUsIHNhZmVCcm93c2luZ1dhcm5pbmc9JWQsIGlzQXBwQm91bmREb21haW49JWQiLCBmcmFt
ZS0+ZnJhbWVJRCgpLnRvVUludDY0KCksIGZyYW1lLT5pc01haW5GcmFtZSgpLCBuYXZpZ2F0aW9u
ID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCAodW5zaWduZWQpcG9saWN5QWN0aW9u
LCAhIXNhZmVCcm93c2luZ1dhcm5pbmcsICEhaXNBcHBCb3VuZERvbWFpbik7CiAKLSAgICAgICAg
YXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzLCBmcmFtZSwgZnJh
bWVJbmZvLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5hdmlnYXRpb24sIG5hdmlnYXRpb25B
Y3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBwb2xpY2llcyA9IFJlZlB0ciB7IHBvbGljaWVzIH1dIChQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgbmF2aWdhdGlvbi0+c2V0V2Vic2l0ZVBvbGlj
aWVzKFdURk1vdmUocG9saWNpZXMpKTsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzLCBmcmFtZSwgZnJhbWVJbmZvLCBzZW5kZXIgPSBXVEZNb3Zl
KHNlbmRlciksIG5hdmlnYXRpb24sIG5hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRp
b25BY3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50XSAoUG9saWN5QWN0aW9uIHBv
bGljeUFjdGlvbikgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1l
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXBvbGljaWVzKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFuYXZpZ2F0aW9uLT53ZWJzaXRlUG9saWNpZXMoKSkgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoYXV0byogZGVmYXVsdFBvbGljaWVzID0gbV9jb25maWd1cmF0aW9uLT5kZWZhdWx0V2Vi
c2l0ZVBvbGljaWVzKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBwb2xpY2llcyA9IGRlZmF1
bHRQb2xpY2llcy0+Y29weSgpOworICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbi0+
c2V0V2Vic2l0ZVBvbGljaWVzKGRlZmF1bHRQb2xpY2llcy0+Y29weSgpKTsKICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHBvbGljaWVzKQorICAgICAgICAgICAgICAgIGlm
IChhdXRvKiBwb2xpY2llcyA9IG5hdmlnYXRpb24tPndlYnNpdGVQb2xpY2llcygpKQogICAgICAg
ICAgICAgICAgICAgICBuYXZpZ2F0aW9uLT5zZXRFZmZlY3RpdmVDb250ZW50TW9kZShlZmZlY3Rp
dmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMoKnBvbGljaWVzLCBuYXZpZ2F0aW9u
LT5jdXJyZW50UmVxdWVzdCgpKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZWNlaXZl
ZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCks
IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQs
IGZyYW1lLCBmcmFtZUluZm8sIFdURk1vdmUocG9saWNpZXMpLCBXVEZNb3ZlKHNlbmRlcikpOwor
ICAgICAgICAgICAgcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9u
LCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFtZSwgZnJhbWVJbmZvLCBXVEZNb3ZlKHNlbmRlcikpOwog
ICAgICAgICB9OwogCiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQpAQCAtNTc2NSw3ICs1
NzY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRyaWdnZXJCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaEZvck5hdmlnYXRpb24odWludDY0X3QgbmF2aWcKICAgICAvLyBUZWxsIGNvbW1pdHRlZCBw
cm9jZXNzIHRvIHN0b3AgbG9hZGluZyBzaW5jZSB3ZSdyZSBnb2luZyB0byBkbyB0aGUgcHJvdmlz
aW9uYWwgbG9hZCBpbiBhIHByb3Zpc2lvbmFsIHBhZ2Ugbm93LgogICAgIGlmICghbV9wcm92aXNp
b25hbFBhZ2UpCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BMb2FkaW5nRHVl
VG9Qcm9jZXNzU3dhcCgpKTsKLSAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5h
dmlnYXRpb24sIG51bGxwdHIsIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLnJlbGVhc2VOb25OdWxsKCks
IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQ6Olllc0FmdGVyUHJvdmlzaW9uYWxMb2FkU3RhcnRlZCwgbnVsbHB0ciwgZXhpc3RpbmdO
ZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKTsKKyAgICBjb250aW51ZU5hdmln
YXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIHByb2Nlc3NGb3JOYXZpZ2F0
aW9uLnJlbGVhc2VOb25OdWxsKCksIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUHJvdmlzaW9uYWxMb2FkU3RhcnRl
ZCwgZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCAwOTRiNDU1NjQxYWRmNGQ0ZjI0ZTRlN2I0YTRjNGJlYTcwZGMxYWFmLi44
MTdkM2YyOGZjYWIyNjE1MWUzMzA5ODY1YjQ1MzZjMTAxM2MxZjRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTI3MCw4ICsxMjcwLDggQEAgcHVibGljOgogCiAg
ICAgY2xhc3MgUG9saWN5RGVjaXNpb25TZW5kZXI7CiAgICAgZW51bSBjbGFzcyBXaWxsQ29udGlu
dWVMb2FkSW5OZXdQcm9jZXNzIDogYm9vbCB7IE5vLCBZZXMgfTsKLSAgICB2b2lkIHJlY2VpdmVk
UG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qLCBS
ZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIHN0ZDo6dmFyaWFudDxSZWY8QVBJOjpOYXZp
Z2F0aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPj4mJiwgUmVmPFBvbGlj
eURlY2lzaW9uU2VuZGVyPiYmLCBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZT4gPSB7IH0sIFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2Fk
SW5OZXdQcm9jZXNzOjpObyk7Ci0gICAgdm9pZCByZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiosIFJlZjxBUEk6Ok5h
dmlnYXRpb25BY3Rpb24+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkZyYW1l
UHJveHkmLCBjb25zdCBGcmFtZUluZm9EYXRhJiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVz
PiYmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOworICAgIHZvaWQgcmVjZWl2ZWRQb2xp
Y3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiosIFJlZlB0
cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgc3RkOjp2YXJpYW50PFJlZjxBUEk6Ok5hdmlnYXRp
b25SZXNwb25zZT4sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+PiYmLCBSZWY8UG9saWN5RGVj
aXNpb25TZW5kZXI+JiYsIFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGlu
dWVMb2FkSW5OZXdQcm9jZXNzOjpObywgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+ID0geyB9KTsKKyAgICB2b2lkIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
KFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmPEFQSTo6TmF2aWdh
dGlvbkFjdGlvbj4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94
eSYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOwog
CiAgICAgdm9pZCBiYWNrRm9yd2FyZFJlbW92ZWRJdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3
YXJkSXRlbUlkZW50aWZpZXImKTsKIApAQCAtMjU1NCw3ICsyNTU0LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcmVwb3J0UGFnZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYgPSB7IH0pOwogCi0gICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJ
OjpOYXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNp
ZXM+JiYsIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0
aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7
CisgICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9u
Jiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiwgUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyPiBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUgPSBz
dGQ6Om51bGxvcHQpOwogCiAgICAgdm9pZCBzZXROZWVkc0ZvbnRBdHRyaWJ1dGVzKGJvb2wpOwog
ICAgIHZvaWQgdXBkYXRlRm9udEF0dHJpYnV0ZXNBZnRlckVkaXRvclN0YXRlQ2hhbmdlKCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjdlNWFl
ZGU0MTU1MTVhNjNjMDQ2NjQ2NTQ3MTkwYzBiZjU4OTVlYS4uY2YwZjVkOTEyOGFiZDJkY2JhYWNi
MjcwYjQ5MTIxNzM5ZWU2MDMyYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTIxICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJzaXRlIHBvbGljaWVzIGFyZSBub3Qg
cmVzcGVjdGVkIHdoZW4gZG9pbmcgQ09PUCBiYXNlZCBwcm9jZXNzIHN3YXAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAzNgorICAgICAgICA8cmRh
cjovLzg5NjE2NjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbToKKwogMjAyMi0wMy0yMSAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBEZWJpYW4gU3RhYmxlIGJ1aWxkIGFm
dGVyIHIyOTE1NDMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDYxMTExZjI0
ZTE4MGUwMWI0ZjhiMzZhZDg5ZjBjZjBjNTYzMTBjZDcuLjMxYmZmZDUzOTUxNWFhMjJhN2M4ODE5
YTExMjE2Y2YyOTIxYTNlMTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAt
ODMwNiwzICs4MzA2LDE1MiBAQCBURVNUKFByb2Nlc3NTd2FwLCBDYXB0aXZlUG9ydGFsTW9kZVN5
c3RlbVNldHRpbmdDaGFuZ2VEb2VzTm90UmVsb2FkVmlld3NXaGVuTW9kZQogfQogCiAjZW5kaWYK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitURVNUKFByb2Nlc3NTd2FwLCBDb250ZW50TW9k
ZUluQ2FzZU9mQ29vcFByb2Nlc3NTd2FwKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJOworCisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvc291cmNlLmh0
bWwiLCB7ICJmb28iIH0gfSwKKyAgICAgICAgeyAiL2Rlc3RpbmF0aW9uLmh0bWwiLCB7IHsgeyAi
Q29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfSwgeyAiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xp
Y3kiLCAic2FtZS1vcmlnaW4iIH0gfSwgImJhciIgfSB9LAorICAgIH0sIEhUVFBTZXJ2ZXI6OlBy
b3RvY29sOjpIdHRwcyk7CisKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBz
b25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKKyAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRv
cHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCld
OworCisgICAgYXV0byB3ZWJwYWdlUHJlZmVyZW5jZXMgPSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBbd2VicGFnZVByZWZlcmVuY2VzIHNldFByZWZl
cnJlZENvbnRlbnRNb2RlOldLQ29udGVudE1vZGVEZXNrdG9wXTsKKyAgICBbd2ViVmlld0NvbmZp
Z3VyYXRpb24gc2V0RGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlczp3ZWJwYWdlUHJlZmVyZW5jZXMu
Z2V0KCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMjQsIDc2OCkgY29uZmlndXJhdGlvbjp3
ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRl
ID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBb
d2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsK
KworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVx
dWVzdCgiL3NvdXJjZS5odG1sIildOworICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9
IGZhbHNlOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLnVz
ZXJBZ2VudDsiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgX051bGxhYmxlIHJlc3BvbnNlLCBOU0Vy
cm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIGRvbmUgPSB0cnVlOworCisgICAgICAg
IEFTU0VSVF9UUlVFKCFlcnJvcik7CisgICAgICAgIE5TU3RyaW5nICp1c2VyQWdlbnQgPSAoTlNT
dHJpbmcgKilyZXNwb25zZTsKKyAgICAgICAgQVNTRVJUX1RSVUUoW3VzZXJBZ2VudCBjb250YWlu
c1N0cmluZzpAIk1hY2ludG9zaDsgSW50ZWwgTWFjIl0pOworICAgIH1dOworICAgIFV0aWw6OnJ1
bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZl
ci5yZXF1ZXN0KCIvZGVzdGluYXRpb24uaHRtbCIpXTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOwor
ICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5h
dmlnYXRvci51c2VyQWdlbnQ7IiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJsZSByZXNw
b25zZSwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBkb25lID0gdHJ1ZTsK
KworICAgICAgICBBU1NFUlRfVFJVRSghZXJyb3IpOworICAgICAgICBOU1N0cmluZyAqdXNlckFn
ZW50ID0gKE5TU3RyaW5nICopcmVzcG9uc2U7CisgICAgICAgIEFTU0VSVF9UUlVFKFt1c2VyQWdl
bnQgY29udGFpbnNTdHJpbmc6QCJNYWNpbnRvc2g7IEludGVsIE1hYyJdKTsKKyAgICB9XTsKKyAg
ICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1dG8gcGlkMiA9
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIHBp
ZDIpOworCisgICAgW3dlYlZpZXcgZ29CYWNrXTsgLy8gQmFjayB0byBzb3VyY2UuaHRtbC4KKyAg
ICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci51c2VyQWdlbnQ7IiBjb21wbGV0aW9uSGFuZGxl
cjpeKGlkIF9OdWxsYWJsZSByZXNwb25zZSwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgewor
ICAgICAgICBkb25lID0gdHJ1ZTsKKworICAgICAgICBBU1NFUlRfVFJVRSghZXJyb3IpOworICAg
ICAgICBOU1N0cmluZyAqdXNlckFnZW50ID0gKE5TU3RyaW5nICopcmVzcG9uc2U7CisgICAgICAg
IEFTU0VSVF9UUlVFKFt1c2VyQWdlbnQgY29udGFpbnNTdHJpbmc6QCJNYWNpbnRvc2g7IEludGVs
IE1hYyJdKTsKKyAgICB9XTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxz
ZTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgQ29udGVudE1vZGVJbkNhc2VPZlBTT05UaGVuQ29v
cFByb2Nlc3NTd2FwKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOworCisg
ICAgSFRUUFNlcnZlciBzZXJ2ZXIxKHsKKyAgICAgICAgeyAiL3NvdXJjZS5odG1sIiwgeyAiZm9v
IiB9IH0sCisgICAgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKKworICAgIEhUVFBT
ZXJ2ZXIgc2VydmVyMih7CisgICAgICAgIHsgIi9kZXN0aW5hdGlvbi5odG1sIiwgeyB7IHsgIkNv
bnRlbnQtVHlwZSIsICJ0ZXh0L2h0bWwiIH0sIHsgIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5
IiwgInNhbWUtb3JpZ2luIiB9IH0sICJiYXIiIH0gfSwKKyAgICB9LCBIVFRQU2VydmVyOjpQcm90
b2NvbDo6SHR0cCk7CisKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Q
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKKyAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHRO
UyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOwor
CisgICAgYXV0byB3ZWJwYWdlUHJlZmVyZW5jZXMgPSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJlZmVy
ZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBbd2VicGFnZVByZWZlcmVuY2VzIHNldFByZWZlcnJl
ZENvbnRlbnRNb2RlOldLQ29udGVudE1vZGVEZXNrdG9wXTsKKyAgICBbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gc2V0RGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlczp3ZWJwYWdlUHJlZmVyZW5jZXMuZ2V0
KCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMjQsIDc2OCkgY29uZmlndXJhdGlvbjp3ZWJW
aWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0g
YWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2Vi
VmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKwor
ICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIxLnJlcXVl
c3QoIi9zb3VyY2UuaHRtbCIpXTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBm
YWxzZTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci51c2Vy
QWdlbnQ7IiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJsZSByZXNwb25zZSwgTlNFcnJv
ciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBkb25lID0gdHJ1ZTsKKworICAgICAgICBB
U1NFUlRfVFJVRSghZXJyb3IpOworICAgICAgICBOU1N0cmluZyAqdXNlckFnZW50ID0gKE5TU3Ry
aW5nICopcmVzcG9uc2U7CisgICAgICAgIEFTU0VSVF9UUlVFKFt1c2VyQWdlbnQgY29udGFpbnNT
dHJpbmc6QCJNYWNpbnRvc2g7IEludGVsIE1hYyJdKTsKKyAgICB9XTsKKyAgICBVdGlsOjpydW4o
JmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIy
LnJlcXVlc3QoIi9kZXN0aW5hdGlvbi5odG1sIildOworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgZG9uZSA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2
aWdhdG9yLnVzZXJBZ2VudDsiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgX051bGxhYmxlIHJlc3Bv
bnNlLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIGRvbmUgPSB0cnVlOwor
CisgICAgICAgIEFTU0VSVF9UUlVFKCFlcnJvcik7CisgICAgICAgIE5TU3RyaW5nICp1c2VyQWdl
bnQgPSAoTlNTdHJpbmcgKilyZXNwb25zZTsKKyAgICAgICAgQVNTRVJUX1RSVUUoW3VzZXJBZ2Vu
dCBjb250YWluc1N0cmluZzpAIk1hY2ludG9zaDsgSW50ZWwgTWFjIl0pOworICAgIH1dOworICAg
IFV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgYXV0byBwaWQyID0g
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgcGlk
Mik7CisKKyAgICBbd2ViVmlldyBnb0JhY2tdOyAvLyBCYWNrIHRvIHNvdXJjZS5odG1sLgorICAg
IFV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLnVzZXJBZ2VudDsiIGNvbXBsZXRpb25IYW5kbGVy
Ol4oaWQgX051bGxhYmxlIHJlc3BvbnNlLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7Cisg
ICAgICAgIGRvbmUgPSB0cnVlOworCisgICAgICAgIEFTU0VSVF9UUlVFKCFlcnJvcik7CisgICAg
ICAgIE5TU3RyaW5nICp1c2VyQWdlbnQgPSAoTlNTdHJpbmcgKilyZXNwb25zZTsKKyAgICAgICAg
QVNTRVJUX1RSVUUoW3VzZXJBZ2VudCBjb250YWluc1N0cmluZzpAIk1hY2ludG9zaDsgSW50ZWwg
TWFjIl0pOworICAgIH1dOworICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNl
OworfQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCg==
</data>
<flag name="commit-queue"
          id="483308"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>