<?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>225826</bug_id>
          
          <creation_ts>2021-05-14 14:36:51 -0700</creation_ts>
          <short_desc>[GPUP] WebContent process should not pull audio session category from the GPU Process</short_desc>
          <delta_ts>2021-05-17 09:32:20 -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>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=221985</see_also>
          <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="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760216</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-05-14 14:36:51 -0700</bug_when>
    <thetext>When “Media in GPU Process” is enabled, the audio session category in the GPU Process is decided based on the audio session categories from all WebContent processes. A WebContent process can push audio session category to the GPU Process, but should not read it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760313</commentid>
    <comment_count>1</comment_count>
      <attachid>428691</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-05-14 17:40:23 -0700</bug_when>
    <thetext>Created attachment 428691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760353</commentid>
    <comment_count>2</comment_count>
      <attachid>428706</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-05-14 20:48:10 -0700</bug_when>
    <thetext>Created attachment 428706
Fix build failures on iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760484</commentid>
    <comment_count>3</comment_count>
      <attachid>428706</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-15 15:42:11 -0700</bug_when>
    <thetext>Comment on attachment 428706
Fix build failures on iOS

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

I think on balance changing this from an enum to an enum class is making things worse.

&gt; Source/WebCore/page/DeprecatedGlobalSettings.cpp:157
&gt; +    return (unsigned)AudioSession::sharedSession().categoryOverride();

It’s peculiar to use a C-style cast here. I suggest static_cast.

&gt; Source/WebCore/platform/audio/AudioSession.cpp:116
&gt; +    return return AudioSession::CategoryType::None;

This says &quot;return return&quot;, so I don’t think it will compile.

&gt; Source/WebCore/platform/audio/AudioSession.h:63
&gt; -    enum CategoryType : uint8_t {
&gt; +    enum class CategoryType : uint8_t {

Not sure this is an improvement. Does make it more wordy everywhere. Does it make the code more clear? I’m OK with it, but not sure.

&gt; Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:134
&gt; +    AudioSession::CategoryType category = AudioSession::CategoryType::None;

Could use auto here to make things a little less verbose. Why write AudioSession::CategoryType twice on the same line of code unnecessarily?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760524</commentid>
    <comment_count>4</comment_count>
      <attachid>428706</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-05-15 18:32:36 -0700</bug_when>
    <thetext>Comment on attachment 428706
Fix build failures on iOS

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

&gt;&gt; Source/WebCore/page/DeprecatedGlobalSettings.cpp:157
&gt;&gt; +    return (unsigned)AudioSession::sharedSession().categoryOverride();
&gt; 
&gt; It’s peculiar to use a C-style cast here. I suggest static_cast.

Agree! Will fix it.

&gt;&gt; Source/WebCore/platform/audio/AudioSession.cpp:116
&gt;&gt; +    return return AudioSession::CategoryType::None;
&gt; 
&gt; This says &quot;return return&quot;, so I don’t think it will compile.

Good catch! It is surprising that the bots did not complain.

&gt;&gt; Source/WebCore/platform/audio/AudioSession.h:63
&gt;&gt; +    enum class CategoryType : uint8_t {
&gt; 
&gt; Not sure this is an improvement. Does make it more wordy everywhere. Does it make the code more clear? I’m OK with it, but not sure.

Hmm, it does catch a mistake in AudioSessionIOS.mm though. The below code won&apos;t compile when we use enum class.

if (categoryOverride() &amp;&amp; categoryOverride() != newCategory)

&gt;&gt; Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:134
&gt;&gt; +    AudioSession::CategoryType category = AudioSession::CategoryType::None;
&gt; 
&gt; Could use auto here to make things a little less verbose. Why write AudioSession::CategoryType twice on the same line of code unnecessarily?

Right, will fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760529</commentid>
    <comment_count>5</comment_count>
      <attachid>428706</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-15 18:50:01 -0700</bug_when>
    <thetext>Comment on attachment 428706
Fix build failures on iOS

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

&gt;&gt;&gt; Source/WebCore/platform/audio/AudioSession.h:63
&gt;&gt;&gt; +    enum class CategoryType : uint8_t {
&gt;&gt; 
&gt;&gt; Not sure this is an improvement. Does make it more wordy everywhere. Does it make the code more clear? I’m OK with it, but not sure.
&gt; 
&gt; Hmm, it does catch a mistake in AudioSessionIOS.mm though. The below code won&apos;t compile when we use enum class.
&gt; 
&gt; if (categoryOverride() &amp;&amp; categoryOverride() != newCategory)

Well, that’s a pretty good argument in favor if it actually caught a mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760534</commentid>
    <comment_count>6</comment_count>
      <attachid>428706</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-05-15 19:03:49 -0700</bug_when>
    <thetext>Comment on attachment 428706
Fix build failures on iOS

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/audio/AudioSession.h:63
&gt;&gt;&gt;&gt; +    enum class CategoryType : uint8_t {
&gt;&gt;&gt; 
&gt;&gt;&gt; Not sure this is an improvement. Does make it more wordy everywhere. Does it make the code more clear? I’m OK with it, but not sure.
&gt;&gt; 
&gt;&gt; Hmm, it does catch a mistake in AudioSessionIOS.mm though. The below code won&apos;t compile when we use enum class.
&gt;&gt; 
&gt;&gt; if (categoryOverride() &amp;&amp; categoryOverride() != newCategory)
&gt; 
&gt; Well, that’s a pretty good argument in favor if it actually caught a mistake.

I noticed it when I saw multiple &quot;None&quot;s in different places, e.g., AudioSession, PlatformMediaSession, and AudioStreamDescription.
To be honest I did not expect a simple change here will lead to changes in so many places. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760630</commentid>
    <comment_count>7</comment_count>
      <attachid>428794</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-05-16 10:52:11 -0700</bug_when>
    <thetext>Created attachment 428794
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760784</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-17 09:31:48 -0700</bug_when>
    <thetext>Committed r277584 (237810@main): &lt;https://commits.webkit.org/237810@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428794.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760785</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-17 09:32:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78108250&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428691</attachid>
            <date>2021-05-14 17:40:23 -0700</date>
            <delta_ts>2021-05-14 20:48:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225826-20210514174023.patch</filename>
            <type>text/plain</type>
            <size>33175</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IxNWUxOTc3OTU3Nzc3
NWY5OGMyZDIzODkwOWFhZTgwZGE3ZWExYy4uYTM1NDE4MzhjYzU0N2MwMGFiNzk2NTVmN2IxMjNl
ZDg5ODE0NmQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA1LTE0ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFdlYkNvbnRlbnQg
cHJvY2VzcyBzaG91bGQgbm90IHB1bGwgYXVkaW8gc2Vzc2lvbiBjYXRlZ29yeSBmcm9tIHRoZSBH
UFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI1ODI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2hhbmdlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnkgdG8gYmUgYW4gZW51bSBjbGFzcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vQXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVk
aWFTZXNzaW9uTWFuYWdlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW06CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b25Qcml2YXRlOjpBdWRpb1Nlc3Npb25Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpj
YXRlZ29yeSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lv
bk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbkZvclRva2VuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9TaGFy
ZWRVbml0OjpzdGFydFVuaXQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphdWRpb1Nlc3Npb25DYXRlZ29yeSBjb25z
dCk6CisKIDIwMjEtMDUtMTQgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OOiBbIE1hYyBXSzIgXSBmYXN0L21lZGlhc3RyZWFtL2F1ZGlvLXRyYWNr
LWVuYWJsZWQuaHRtbCBpcyBmbGFreSBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkY2Q0N2E0YjRmYjc1
MzYzZGYwN2UzY2IyZjAzZTgxZDg5NWIyNDUuLmU1ZjJiNWQ1NTVmYTJmNTEyYjNiMTFlZjdhNDEz
NWZhOTlhZGUyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDUtMTQgIFBlbmcg
TGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gV2ViQ29udGVudCBw
cm9jZXNzIHNob3VsZCBub3QgcHVsbCBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5IGZyb20gdGhlIEdQ
VSBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW1vdmUgYGNhdGVnb3J5YCBhbmQgYHJvdXRlU2hhcmluZ1BvbGljeWAgZnJvbSBgUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbmAKKyAgICAgICAgYmVjYXVzZSB3ZSBzaG91bGQgbm90
IHB1bGwgdGhlc2UgcHJvcGVydGllcyBmcm9tIHRoZSBHUFUgcHJvY2Vzcy4KKworICAgICAgICBS
ZW1vdmUgSVBDIG1lc3NhZ2UgYFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Q29uZmlndXJhdGlvbkNoYW5n
ZWRgIGJlY2F1c2UgaXQgaXMgbm90IHVzZWQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21hYy9M
b2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6CisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OmNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6dXBkYXRlQ2F0ZWdvcnkpOgorCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorCisgICAg
ICAgICogVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHku
aDoKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNhdGVnb3J5IGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb25Db25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uOjpkZWNvZGUpOgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHA6CisKIDIwMjEtMDUtMTQgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGBfV0tJbnNwZWN0b3JgIGxlYWtzIGBXZWJJbnNwZWN0b3JV
SVByb3h5YApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDc0YzFhMzQ1NWE3YzlhZTBm
ZjZjYzllZWE3MTc4OTUwYzMwMDlhYjQuLmRlODllOGM3ZjlkNjJjZjg2YmMxM2E2NzdmYTlkY2Ix
NWJjOWRiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMS0wNS0xNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtH
UFVQXSBXZWJDb250ZW50IHByb2Nlc3Mgc2hvdWxkIG5vdCBwdWxsIGF1ZGlvIHNlc3Npb24gY2F0
ZWdvcnkgZnJvbSB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNTgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAg
KCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNl
cyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlOl0pOgorCiAyMDIxLTA1LTEzICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IGQyMGQwYzQxNjVm
ZWY1ZmE1YWZmYmY2OWFhMTVmZjdkMmQ2OTU5OTcuLjk2YTk3OGRmYWIzYTEyYmI2MTYzM2E5ZDQx
NDBiNDYwNzU2NGM4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9TZXNzaW9uLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSkKIEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0CiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTm9uZTsKKyAgICByZXR1cm4gQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmU7CiB9CiAKIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSkKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIEF1
ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpCiBBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBOb25lOworICAgIHJldHVybiByZXR1cm4gQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmU7CiB9CiAKIGZsb2F0IEF1ZGlvU2Vzc2lvbjo6
c2FtcGxlUmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCmluZGV4IGEwZDhhYTI5OTQ1MWQ4MWNiMjY2YTQ2MzJmNjY3ZDhjZDBhNzA5NjEu
LjFkY2NlM2ExMjhiOTdlYTg4YzIyMmI4M2EwNmQzODQxOWIyYTY5MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCkBAIC02MCw3ICs2MCw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7CiAgICAgdmly
dHVhbCB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBlbnVtIENhdGVnb3J5VHlwZSA6IHVpbnQ4X3Qg
eworICAgIGVudW0gY2xhc3MgQ2F0ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUs
CiAgICAgICAgIEFtYmllbnRTb3VuZCwKICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQppbmRleCA1NzI0OGM2YjZhNWMyZDEwZjg1NjlmMDgwYjk1
ZmI3YTEyZDk5NTAzLi43MmIwZGFiODZmOTQyNzljNmMyYjEwZjRkZjFmZDc2ZTNmMWEyNjM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCkBAIC0xMzEsMTQgKzEzMSwxNCBAQCB2b2lk
IE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlU2Vzc2lvblN0YXRlKCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgUm91dGVTaGFyaW5nUG9saWN5IHBvbGljeSA9IFJvdXRlU2hhcmluZ1Bv
bGljeTo6RGVmYXVsdDsKLSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9
IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKyAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRl
Z29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lOwogICAgIGlmIChjYXB0dXJl
Q291bnQpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOwor
ICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVj
b3JkOwogICAgIGVsc2UgaWYgKGhhc0F1ZGlibGVBdWRpb09yVmlkZW9NZWRpYVR5cGUpIHsKLSAg
ICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAgICAgIGNh
dGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1lZGlhUGxheWJhY2s7CiAgICAg
ICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbzsKICAgICB9IGVs
c2UgaWYgKHdlYkF1ZGlvQ291bnQpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpB
bWJpZW50U291bmQ7CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU6OkFtYmllbnRTb3VuZDsKIAogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInNldHRp
bmcgY2F0ZWdvcnkgPSAiLCBjYXRlZ29yeSwgIiwgcG9saWN5ID0gIiwgcG9saWN5KTsKICAgICBB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nl
c3Npb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNz
aW9uSU9TLm1tCmluZGV4IDY5ZDFmYTY2NTM4YjE1ODhhYWQ0NDVjYTQxZWRhNTI1NmYwYTZmNzUu
LmM4YmJjNjE3MzA1NjM4OGNhYjI0MTA3M2QwOTAzNzQ4YzJiOWMyYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQpAQCAt
MTA4LDcgKzEwOCw3IEBAIHB1YmxpYzoKIH07CiAKIEF1ZGlvU2Vzc2lvblByaXZhdGU6OkF1ZGlv
U2Vzc2lvblByaXZhdGUoQXVkaW9TZXNzaW9uKiBzZXNzaW9uKQotICAgIDogbV9jYXRlZ29yeU92
ZXJyaWRlKEF1ZGlvU2Vzc2lvbjo6Tm9uZSkKKyAgICA6IG1fY2F0ZWdvcnlPdmVycmlkZShBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKICAgICBtX2ludGVycnVwdGlvbk9ic2VydmVySGVscGVyID0gYWRvcHROUyhbW1dl
YkludGVycnVwdGlvbk9ic2VydmVySGVscGVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnNlc3Np
b25dKTsKQEAgLTE0OCwyNyArMTQ4LDI3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29y
eShDYXRlZ29yeVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpCiAgICAg
QVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbnMgb3B0aW9ucyA9IDA7CiAKICAgICBzd2l0Y2gg
KG5ld0NhdGVnb3J5KSB7Ci0gICAgY2FzZSBBbWJpZW50U291bmQ6CisgICAgY2FzZSBDYXRlZ29y
eVR5cGU6OkFtYmllbnRTb3VuZDoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vz
c2lvbkNhdGVnb3J5QW1iaWVudDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTb2xvQW1iaWVu
dFNvdW5kOgorICAgIGNhc2UgQ2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kOgogICAgICAg
ICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudDsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYVBsYXliYWNrOgorICAgIGNhc2UgQ2F0ZWdvcnlU
eXBlOjpNZWRpYVBsYXliYWNrOgogICAgICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNz
aW9uQ2F0ZWdvcnlQbGF5YmFjazsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZWNvcmRBdWRp
bzoKKyAgICBjYXNlIENhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW86CiAgICAgICAgIGNhdGVnb3J5
U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVJlY29yZDsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBQbGF5QW5kUmVjb3JkOgorICAgIGNhc2UgQ2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVj
b3JkOgogICAgICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5
QW5kUmVjb3JkOwogICAgICAgICBjYXRlZ29yeU1vZGUgPSBBVkF1ZGlvU2Vzc2lvbk1vZGVWaWRl
b0NoYXQ7CiAgICAgICAgIG9wdGlvbnMgfD0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkFs
bG93Qmx1ZXRvb3RoIHwgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkFsbG93Qmx1ZXRvb3Ro
QTJEUCB8IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25EZWZhdWx0VG9TcGVha2VyIHwgQVZB
dWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkFsbG93QWlyUGxheTsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBBdWRpb1Byb2Nlc3Npbmc6CisgICAgY2FzZSBDYXRlZ29yeVR5cGU6OkF1ZGlvUHJv
Y2Vzc2luZzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
QXVkaW9Qcm9jZXNzaW5nOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE5vbmU6CisgICAgY2Fz
ZSBDYXRlZ29yeVR5cGU6Ok5vbmU6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nl
c3Npb25DYXRlZ29yeUFtYmllbnQ7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE4NCwxOCAr
MTg0LDE4IEBAIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdv
cnkoKSBjb25zdAogewogICAgIE5TU3RyaW5nICpjYXRlZ29yeVN0cmluZyA9IFtbUEFMOjpnZXRB
VkF1ZGlvU2Vzc2lvbkNsYXNzKCkgc2hhcmVkSW5zdGFuY2VdIGNhdGVnb3J5XTsKICAgICBpZiAo
W2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnRdKQot
ICAgICAgICByZXR1cm4gQW1iaWVudFNvdW5kOworICAgICAgICByZXR1cm4gQ2F0ZWdvcnlUeXBl
OjpBbWJpZW50U291bmQ7CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudF0pCi0gICAgICAgIHJldHVybiBTb2xvQW1iaWVudFNv
dW5kOworICAgICAgICByZXR1cm4gQ2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kOwogICAg
IGlmIChbY2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheWJh
Y2tdKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5YmFjazsKKyAgICAgICAgcmV0dXJuIENhdGVn
b3J5VHlwZTo6TWVkaWFQbGF5YmFjazsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6
QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVJlY29yZF0pCi0gICAgICAgIHJldHVybiBSZWNvcmRBdWRp
bzsKKyAgICAgICAgcmV0dXJuIENhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW87CiAgICAgaWYgKFtj
YXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3Jk
XSkKLSAgICAgICAgcmV0dXJuIFBsYXlBbmRSZWNvcmQ7CisgICAgICAgIHJldHVybiBDYXRlZ29y
eVR5cGU6OlBsYXlBbmRSZWNvcmQ7CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3NpbmddKQotICAgICAgICByZXR1cm4gQXVk
aW9Qcm9jZXNzaW5nOwotICAgIHJldHVybiBOb25lOworICAgICAgICByZXR1cm4gQ2F0ZWdvcnlU
eXBlOjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgcmV0dXJuIENhdGVnb3J5VHlwZTo6Tm9uZTsKIH0K
IAogUm91dGVTaGFyaW5nUG9saWN5IEF1ZGlvU2Vzc2lvbjo6cm91dGVTaGFyaW5nUG9saWN5KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRp
b1Nlc3Npb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9T
ZXNzaW9uTWFjLm1tCmluZGV4IGNhNzEwNDk5NzYyZTVhNGZiOGQwOGI1OGM0OGM1NjE1MzhiOGMx
ZDkuLmY4ZTQ0OWQzN2YwOGUxZTI3MTI2MDU0OWY3Nzk0MGMzYmUzNWE2MTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQpA
QCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIE9TU3RhdHVzIGhhbmRsZUJ1ZmZl
clNpemVDaGFuZ2UoQXVkaW9PYmplY3RJRCwgVUludDMyLCBjb25zdCBBdWRpb09iamVjdFByb3Bl
cnR5QWRkcmVzcyosIHZvaWQqIGluQ2xpZW50RGF0YSk7CiAKICAgICBPcHRpb25hbDxib29sPiBs
YXN0TXV0ZWRTdGF0ZTsKLSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSB7
IEF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNh
dGVnb3J5IHsgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUgfTsKICNpZiBFTkFCTEUo
Uk9VVElOR19BUkJJVFJBVElPTikKICAgICBib29sIHNldHVwQXJiaXRyYXRpb25PbmdvaW5nIHsg
ZmFsc2UgfTsKICAgICBPcHRpb25hbDxib29sPiBwbGF5aW5nVG9CbHVldG9vdGg7CkBAIC0yMjgs
NyArMjI4LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSBj
YXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5KQogICAgICAgICBtX3JvdXRpbmdBcmJpdHJhdGlv
bkNsaWVudC0+bGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKTsKICAgICB9CiAKLSAgICBpZiAoY2F0
ZWdvcnkgPT0gQW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IFNvbG9BbWJpZW50U291bmQgfHwg
Y2F0ZWdvcnkgPT0gQXVkaW9Qcm9jZXNzaW5nIHx8IGNhdGVnb3J5ID09IE5vbmUpCisgICAgaWYg
KGNhdGVnb3J5ID09IENhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IENh
dGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZCB8fCBjYXRlZ29yeSA9PSBDYXRlZ29yeVR5cGU6
OkF1ZGlvUHJvY2Vzc2luZyB8fCBjYXRlZ29yeSA9PSBDYXRlZ29yeVR5cGU6Ok5vbmUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIHVzaW5nIFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yID0gQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0
aW5nQXJiaXRyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJl
ZFJvdXRpbmdBcmJpdHJhdG9yLmgKaW5kZXggMWZkZjRiYjA4MjYyMDIzZjg4NGYxOTVkZTVjNDZl
OTFkOGZiOTg5OS4uM2EyNTU1NWM0NTA0ODBkMjliMTQyOTRmYWZhYTk4MjU2N2FhNDg4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdB
cmJpdHJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJl
ZFJvdXRpbmdBcmJpdHJhdG9yLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZW5kUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4oY29uc3QgVG9rZW4mKTsKIAogcHJpdmF0ZToK
LSAgICBPcHRpb25hbDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gbV9jdXJyZW50Q2F0ZWdv
cnkgeyBBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyAgICBPcHRpb25hbDxBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZT4gbV9jdXJyZW50Q2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZTo6Tm9uZSB9OwogICAgIFdlYWtIYXNoU2V0PFRva2VuPiBtX3Rva2VuczsKICAgICBWZWN0b3I8
QXJiaXRyYXRpb25DYWxsYmFjaz4gbV9lbnF1ZXVlZENhbGxiYWNrczsKICAgICBib29sIG1fc2V0
dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLm1tCmlu
ZGV4IDE3NTI3ZTdiNWRiNmI5Yzg4ZmQyZDg5ZTlhMTBhYmY5NTNmZmNmNTAuLjZmZWE1OTJmNjg2
ZWU1Nzc5MDYzMTczNzI2NDYwOWJmMzkxYzk0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IubW0K
QEAgLTc5LDEzICs3OSwxMyBAQCB2b2lkIFNoYXJlZFJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJv
dXRpbmdBcmJpdHJhdGlvbkZvclRva2VuKGNvbnN0IFRva2VuJiB0b2tlbgogCiAgICAgQVZBdWRp
b1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5IGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlv
Um91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5YmFjazsKICAgICBzd2l0Y2ggKHJlcXVlc3Rl
ZENhdGVnb3J5KSB7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s6CisgICAg
Y2FzZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjazoKICAgICAgICAg
YXJiaXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25DYXRlZ29yeVBs
YXliYWNrOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVk
aW86CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW86CiAg
ICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0
ZWdvcnlQbGF5QW5kUmVjb3JkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lv
bjo6UGxheUFuZFJlY29yZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQ
bGF5QW5kUmVjb3JkOgogICAgICAgICBhcmJpdHJhdGlvbkNhdGVnb3J5ID0gQVZBdWRpb1JvdXRp
bmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheUFuZFJlY29yZFZvaWNlOwogICAgICAgICBicmVhazsK
ICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCmluZGV4IDM1NTdhMWVh
ZDFjMTY1NjQ1MTZhY2NjNjg4YjNiOWQzNzk0M2YyY2YuLjUzYzdlN2JjZTM0NTc2MjgyOGU3YTNi
MzlhNzhlOWJhNWUyMzIxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKQEAgLTEw
Myw3ICsxMDMsNyBAQCBPU1N0YXR1cyBCYXNlQXVkaW9TaGFyZWRVbml0OjpzdGFydFVuaXQoKQog
ICAgIGZvckVhY2hDbGllbnQoW10oYXV0byYgY2xpZW50KSB7CiAgICAgICAgIGNsaWVudC5hdWRp
b1VuaXRXaWxsU3RhcnQoKTsKICAgICB9KTsKLSAgICBBU1NFUlQoIURlcHJlY2F0ZWRHbG9iYWxT
ZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSB8fCBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJl
Y29yZCk7CisgICAgQVNTRVJUKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZE1hbmFn
ZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgfHwgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
Y2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCk7
CiAKICAgICBpZiAoYXV0byBlcnJvciA9IHN0YXJ0SW50ZXJuYWwoKSkgewogICAgICAgICBjYXB0
dXJlRmFpbGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDc1ZGI4ODA1ZjQ3OWYyNGIzMzExMzQ3
NWFmZDlmZGRmZDRhNjRiZDEuLmM0OWU2ZmJmMTY3ODlkOTY4Y2MwNTQ3MzRiNzE1NTBhZWZmOWU1
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2Fw
dHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFu
Z2VkKCk7Ci0gICAgQVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5
KCkgPT0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkKTsKKyAgICBBU1NFUlQoQXVkaW9TZXNz
aW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6UGxheUFuZFJlY29yZCk7CiAjZW5kaWYKIAogICAgIGlmICghc2FtcGxlUmF0ZSgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGMxYmUzZGU4M2JmZTY4MWY3Y2Iz
ZWRjNWQzM2E5YTZlMjA2Njc0ZjQuLmI5MTVjOTNmOGY2ODBlMDUyZDY1MjY1ZjVmOWZkZTMzNmU5
YzI5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTU0MTMsMTkgKzU0
MTMsMTkgQEAgU3RyaW5nIEludGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdAog
ewogI2lmIFVTRShBVURJT19TRVNTSU9OKQogICAgIHN3aXRjaCAoQXVkaW9TZXNzaW9uOjpzaGFy
ZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSkgewotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpBbWJpZW50
U291bmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5k
OgogICAgICAgICByZXR1cm4gIkFtYmllbnRTb3VuZCJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lv
bjo6U29sb0FtYmllbnRTb3VuZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpTb2xvQW1iaWVudFNvdW5kOgogICAgICAgICByZXR1cm4gIlNvbG9BbWJpZW50U291bmQiX3M7
Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s6CisgICAgY2FzZSBBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjazoKICAgICAgICAgcmV0dXJuICJNZWRp
YVBsYXliYWNrIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRpbzoKKyAgICBj
YXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbzoKICAgICAgICAgcmV0
dXJuICJSZWNvcmRBdWRpbyJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29y
ZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkOgog
ICAgICAgICByZXR1cm4gIlBsYXlBbmRSZWNvcmQiX3M7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246
OkF1ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpB
dWRpb1Byb2Nlc3Npbmc6CiAgICAgICAgIHJldHVybiAiQXVkaW9Qcm9jZXNzaW5nIl9zOwotICAg
IGNhc2UgQXVkaW9TZXNzaW9uOjpOb25lOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGU6Ok5vbmU6CiAgICAgICAgIHJldHVybiAiTm9uZSJfczsKICAgICB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKaW5kZXggYmU0OTJiYjY4OTgyZWQ0NjI4NmU4
NGRlYTVkZTEwNWVmNjE1NzdlYy4uOWFiMmRjZTRjMDcxNjZiMWMzYTI3MWRiMjExNDM4MWY3NTdj
MTJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKQEAgLTYxLDcgKzYxLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGxlYXZlUm91dGluZ0Ficml0cmF0aW9uKCkgZmluYWw7CiAK
ICAgICBVbmlxdWVSZWY8V2ViQ29yZTo6U2hhcmVkUm91dGluZ0FyYml0cmF0b3I6OlRva2VuPiBt
X3Rva2VuOwotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdv
cnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6Ok5vbmUgfTsKICAgICBBcmJpdHJhdGlvblN0YXR1cyBtX2FyYml0cmF0aW9u
U3RhdHVzIHsgQXJiaXRyYXRpb25TdGF0dXM6Ok5vbmUgfTsKICAgICBXYWxsVGltZSBtX2FyYml0
cmF0aW9uVXBkYXRlVGltZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAppbmRleCA1Y2FiNWE5YjU0
ZDAxODI4NmYxNzMxOTYyZGE0ZDk2N2RkOGUwMTZmLi4yYzA5OTA0NWE3ZjRkZmQ4YzRkOWExMzFj
OTkwNmQxMWI4OGE3ZDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKQEAgLTYwLDggKzYwLDYgQEAg
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6
Y29uZmlndXJhdGlvbigpCiB7CiAgICAgYXV0byYgc2Vzc2lvbiA9IGF1ZGlvU2Vzc2lvbk1hbmFn
ZXIoKS5zZXNzaW9uKCk7CiAgICAgcmV0dXJuIHsKLSAgICAgICAgc2Vzc2lvbi5jYXRlZ29yeSgp
LAotICAgICAgICBzZXNzaW9uLnJvdXRlU2hhcmluZ1BvbGljeSgpLAogICAgICAgICBzZXNzaW9u
LnJvdXRpbmdDb250ZXh0VUlEKCksCiAgICAgICAgIHNlc3Npb24uc2FtcGxlUmF0ZSgpLAogICAg
ICAgICBzZXNzaW9uLmJ1ZmZlclNpemUoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKaW5kZXggMWZlZmFjM2Fj
OGRmYTQ1NjQ1NGM5ODRmYzkxOGM2OWIzNWRiYTYwNy4uMzBlYjExOTU0NmExMTZhMDJhN2EzYWZm
ODZjZWNjYzE4N2FkMTIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKQEAgLTc4LDcgKzc4LDcgQEAgcHJp
dmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKTsKIAogICAgIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvbjsKLSAgICBXZWJDb3JlOjpBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpO
b25lIH07CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29y
eSB7IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIH07CiAgICAgV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91dGVTaGFyaW5nUG9saWN5IHsgV2ViQ29yZTo6
Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0IH07CiAgICAgc2l6ZV90IG1fcHJlZmVycmVkQnVm
ZmVyU2l6ZSB7IDAgfTsKICAgICBib29sIG1fYWN0aXZlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlci5jcHAKaW5kZXggZWI5NDJiODI4YjZmNGYwNDMzNGJkMDQwM2Q0M2E4
MzcwMDlhMTJiNi4uYTI4YjYwYmYyMTRlM2JhN2I0NmQ2MjUyZGIxNzA2MWQzNzQxMmQ4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBib29sIGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVy
cyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSkKIHsKLSAgICByZXR1cm4gY2F0
ZWdvcnkgPT0gQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ7CisgICAgcmV0dXJuIGNhdGVnb3J5
ID09IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQ7CiB9CiAKIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
KCkKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6
OnJlbW92ZVByb3h5KFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBwcm94eSkKIAogdm9pZCBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnVwZGF0ZUNhdGVnb3J5KCkKIHsKLSAgICBBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKyAg
ICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpOb25lOwogICAgIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kgPSBSb3V0ZVNo
YXJpbmdQb2xpY3k6OkRlZmF1bHQ7CiAKICAgICBIYXNoQ291bnRlZFNldDxBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZSwgV1RGOjpJbnRIYXNoPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiwg
V1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4+IGNh
dGVnb3J5Q291bnRzOwpAQCAtODAsMjAgKzgwLDIwIEBAIHZvaWQgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyOjp1cGRhdGVDYXRlZ29yeSgpCiAgICAgICAgIHBvbGljeUNvdW50cy5hZGQo
b3RoZXJQcm94eS5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7CiAgICAgfQogCi0gICAgaWYgKGNhdGVn
b3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCkpCi0gICAgICAg
IGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOwotICAgIGVsc2UgaWYgKGNh
dGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW8pKQotICAgICAg
ICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87Ci0gICAgZWxzZSBpZiAoY2F0
ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKSkKLSAgICAg
ICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7Ci0gICAgZWxzZSBpZiAo
Y2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNvdW5kKSkK
LSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7Ci0gICAg
ZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpBbWJpZW50U291
bmQpKQotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kOwotICAg
IGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9j
ZXNzaW5nKSkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2lu
ZzsKKyAgICBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGU6OlBsYXlBbmRSZWNvcmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRz
LmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbykpCisgICAg
ICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1ZGlvOwor
ICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlOjpNZWRpYVBsYXliYWNrKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjazsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50
cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZCkp
CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNvbG9BbWJp
ZW50U291bmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRl
Z29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6QXVkaW9Qcm9j
ZXNzaW5nKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QXVkaW9Qcm9jZXNzaW5nOwogICAgIGVsc2UKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Np
b246Ok5vbmU7CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok5vbmU7CiAKICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQ7CiAgICAg
aWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtVmlk
ZW8pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAzN2VhNjkzYTZjY2E4N2IwYzky
ZWI0MDA3NmUzOWI5Mjc4ODg2MTBhLi4wMTk0MjlmNDgzMjBjOWNlN2U1ZTdiYTljMTFiZTAwY2Jl
YTFiNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMTAzLDcgKzEwMyw3IEBA
IHB1YmxpYzoKICAgICAgICAgYXV0byBidWZmZXJTaXplID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7CiAgICAgICAgIGlmIChBdWRpb1Nlc3Npb246OnNo
YXJlZFNlc3Npb24oKS5wcmVmZXJyZWRCdWZmZXJTaXplKCkgPiBidWZmZXJTaXplKQogICAgICAg
ICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZShidWZmZXJTaXplKTsKLSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0
Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkLCBSb3V0ZVNoYXJpbmdQb2xpY3k6
OkRlZmF1bHQpOworICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRl
Z29yeShBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCwgUm91dGVTaGFy
aW5nUG9saWN5OjpEZWZhdWx0KTsKICAgICB9CiAKICAgICB2b2lkIHN0YXJ0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaAppbmRleCA0ZDkyZThlN2Q1NmE4ZTQ0OTQ3MTljNTM2
ZjhmOTI3ZGNhOThmNTY0Li42OWNhNGFjYTBhNDczM2Y4ZDdlMjJkZmExOTM1ODQ1N2IzZTBkMjdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oCkBAIC03NCw3ICs3NCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBlbmRSb3V0aW5nQXJiaXRyYXRpb24oKTsKIAogICAgIFdlYlBy
b2Nlc3NQcm94eSYgbV9wcm9jZXNzOwotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIG1fY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyAgICBX
ZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUgfTsKICAgICBBcmJpdHJhdGlvblN0YXR1
cyBtX2FyYml0cmF0aW9uU3RhdHVzIHsgQXJiaXRyYXRpb25TdGF0dXM6Ok5vbmUgfTsKICAgICBX
YWxsVGltZSBtX2FyYml0cmF0aW9uVXBkYXRlVGltZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCmluZGV4
IDE0MmRmZjM0MTg4ZWZjZGI4NDQ0NTg2NGQ2OTA5YzU4MTc1MjA4OTEuLmQ4NmIzN2VhZTAwZjE2
NjNkMDFlMDVmNDEzZTYyNTRkM2Y0YjgwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKQEAgLTk0LDEy
ICs5NCwxMSBAQCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiBSZW1vdGVBdWRpb1Nl
c3Npb246OmNvbmZpZ3VyYXRpb24oKQogdm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldENhdGVn
b3J5KENhdGVnb3J5VHlwZSB0eXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQogewogI2lm
IFBMQVRGT1JNKENPQ09BKQotICAgIGF1dG8mIGNvbmZpZ3VyYXRpb24gPSB0aGlzLT5jb25maWd1
cmF0aW9uKCk7Ci0gICAgaWYgKHR5cGUgPT0gY29uZmlndXJhdGlvbi5jYXRlZ29yeSAmJiBwb2xp
Y3kgPT0gY29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3kpCisgICAgaWYgKHR5cGUgPT0g
bV9jYXRlZ29yeSAmJiBwb2xpY3kgPT0gbV9yb3V0ZVNoYXJpbmdQb2xpY3kpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGNvbmZpZ3VyYXRpb24uY2F0ZWdvcnkgPSB0eXBlOwotICAgIGNvbmZpZ3Vy
YXRpb24ucm91dGVTaGFyaW5nUG9saWN5ID0gcG9saWN5OworICAgIG1fY2F0ZWdvcnkgPSB0eXBl
OworICAgIG1fcm91dGVTaGFyaW5nUG9saWN5ID0gcG9saWN5OwogCiAgICAgZW5zdXJlQ29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRDYXRlZ29y
eSh0eXBlLCBwb2xpY3kpLCB7IH0pOwogI2Vsc2UKQEAgLTEyNSwyMiArMTI0LDEyIEBAIGJvb2wg
UmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wgYWN0aXZlKQog
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgUmVtb3RlQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgp
IGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIGNvbmZpZ3VyYXRpb24o
KS5jYXRlZ29yeTsKKyAgICByZXR1cm4gbV9jYXRlZ29yeTsKICNlbHNlCi0gICAgcmV0dXJuIE5v
bmU7CisgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lOwogI2VuZGlm
CiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKLXsKLSAgICBib29s
IG11dGVkU3RhdGVDaGFuZ2VkID0gIW1fY29uZmlndXJhdGlvbiB8fCBjb25maWd1cmF0aW9uLmlz
TXV0ZWQgIT0gbV9jb25maWd1cmF0aW9uLT5pc011dGVkOwotCi0gICAgbV9jb25maWd1cmF0aW9u
ID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKLQotICAgIGlmIChtdXRlZFN0YXRlQ2hhbmdlZCkK
LSAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwotfQotCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uLmgKaW5kZXggNTQ1Y2NlOThiMzA1ODg2YTdkZDVkMmUzZmMxNzYyOTg5NTE3ZWRmMC4u
ZjU4NjE3ZjliOTlmNzI3YTgwY2Y1NzJhZmE4ZDg1ZmFmMTRiZDE2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5o
CkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplQ29uZmlndXJh
dGlvbklmTmVjZXNzYXJ5KCk7CiAKICAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCBm
aW5hbDsKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uZmlndXJhdGlvbigpLnJvdXRlU2hhcmluZ1BvbGlj
eTsgfQorICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3ko
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3JvdXRlU2hhcmluZ1BvbGljeTsgfQogICAgIFN0cmlu
ZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGNvbmZpZ3VyYXRpb24o
KS5yb3V0aW5nQ29udGV4dFVJRDsgfQogICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBjb25maWd1cmF0aW9uKCkuc2FtcGxlUmF0ZTsgfQogICAgIHNpemVfdCBidWZm
ZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uZmlndXJhdGlvbigpLmJ1ZmZlclNpemU7
IH0KQEAgLTg1LDYgKzg1LDkgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gY29uZmlndXJhdGlvbigpLmlzQWN0aXZlOyB9CiAKICAgICBXZWJQcm9j
ZXNzJiBtX3Byb2Nlc3M7CisKKyAgICBDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeSB7IENhdGVnb3J5
VHlwZTo6Tm9uZSB9OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBtX3JvdXRlU2hh
cmluZ1BvbGljeSB7IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCB9OwogICAg
IE9wdGlvbmFsPFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlv
bjsKICAgICBXZWFrUHRyPEdQVVByb2Nlc3NDb25uZWN0aW9uPiBtX2dwdVByb2Nlc3NDb25uZWN0
aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KaW5kZXggOWYwOGNlM2Yz
MGY5ZDIwMzFlMDYyNGU1M2JjZjgxYzI0ZjM2NzlkMS4uYjRiZWQxNjM5NTViMTFmNDljZTM4OWVi
MTZkODI1MzIwM2ZhMmE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KQEAg
LTI2LDcgKzI2LDYgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb24gTm90UmVmQ291bnRlZCB7Ci0g
ICAgQ29uZmlndXJhdGlvbkNoYW5nZWQoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIEJlZ2luSW50ZXJydXB0aW9uKCkKICAg
ICBFbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpNYXlSZXN1bWUgZmxhZ3Mp
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCmluZGV4IDlmNzU3ZTc5
NmQ3ZDg2OGJmNGRmZGRkOGMyMjFlNzMzNWZkZGYwY2UuLjZmYzhiYThiNjlkOTA4OTY3NWNiNTZl
N2VlNDZhMjA4ODFlYWI5MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlv
bi5oCkBAIC0zMiw5ICszMiw2IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gewotCi0gICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6Tm9uZSB9OwotICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJp
bmdQb2xpY3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBT
dHJpbmcgcm91dGluZ0NvbnRleHRVSUQ7CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSB7IDAgfTsKICAg
ICBzaXplX3QgYnVmZmVyU2l6ZSB7IDAgfTsKQEAgLTQ3LDggKzQ0LDYgQEAgc3RydWN0IFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gewogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAg
IGVuY29kZXIgPDwgY2F0ZWdvcnk7Ci0gICAgICAgIGVuY29kZXIgPDwgcm91dGVTaGFyaW5nUG9s
aWN5OwogICAgICAgICBlbmNvZGVyIDw8IHJvdXRpbmdDb250ZXh0VUlEOwogICAgICAgICBlbmNv
ZGVyIDw8IHNhbXBsZVJhdGU7CiAgICAgICAgIGVuY29kZXIgPDwgYnVmZmVyU2l6ZTsKQEAgLTYy
LDE2ICs1Nyw2IEBAIHN0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIHsKICAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KICAgICBzdGF0aWMgT3B0aW9uYWw8UmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewot
ICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gY2F0
ZWdvcnk7Ci0gICAgICAgIGRlY29kZXIgPj4gY2F0ZWdvcnk7Ci0gICAgICAgIGlmICghY2F0ZWdv
cnkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIE9wdGlvbmFs
PFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcm91dGVTaGFyaW5nUG9saWN5OwotICAgICAg
ICBkZWNvZGVyID4+IHJvdXRlU2hhcmluZ1BvbGljeTsKLSAgICAgICAgaWYgKCFyb3V0ZVNoYXJp
bmdQb2xpY3kpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAgICAgICAgIE9w
dGlvbmFsPFN0cmluZz4gcm91dGluZ0NvbnRleHRVSUQ7CiAgICAgICAgIGRlY29kZXIgPj4gcm91
dGluZ0NvbnRleHRVSUQ7CiAgICAgICAgIGlmICghcm91dGluZ0NvbnRleHRVSUQpCkBAIC0xMTMs
OCArOTgsNiBAQCBzdHJ1Y3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiB7CiAgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgICAgIHJldHVybiB7ewotICAgICAg
ICAgICAgV1RGTW92ZSgqY2F0ZWdvcnkpLAotICAgICAgICAgICAgV1RGTW92ZSgqcm91dGVTaGFy
aW5nUG9saWN5KSwKICAgICAgICAgICAgIFdURk1vdmUoKnJvdXRpbmdDb250ZXh0VUlEKSwKICAg
ICAgICAgICAgICpzYW1wbGVSYXRlLAogICAgICAgICAgICAgKmJ1ZmZlclNpemUsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAppbmRl
eCA1MWMwMGVlODYwOTUzMzM5ODQ5MGI2YmFjODcwZGQ4MDEyOWM5YzM0Li41M2NiMjZlZjQ5OTFh
NTBkZTFhODk3NDg1ZGQzYzZmN2NlZTJhMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCBw
cml2YXRlOgogICAgICAgICBhdXRvIGJ1ZmZlclNpemUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1MDsKICAgICAgICAgaWYgKEF1ZGlvU2Vzc2lvbjo6c2hh
cmVkU2Vzc2lvbigpLnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+IGJ1ZmZlclNpemUpCiAgICAgICAg
ICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXpl
KGJ1ZmZlclNpemUpOwotICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRD
YXRlZ29yeShBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFJvdXRlU2hhcmluZ1BvbGljeTo6
RGVmYXVsdCk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVn
b3J5KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkLCBSb3V0ZVNoYXJp
bmdQb2xpY3k6OkRlZmF1bHQpOwogI2VuZGlmCiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA5YTExNDZiN2I2OTI0
MDA1NGIyNGJlOGRhYzM5NTdiMTIzNDkzYTQ1Li4wM2EzMDY0YmZiZWRkYjE5ZjllZjgyYTc1ZjMx
YzU4ODBlNTY0NTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KQEAgLTQyMyw3ICs0MjMsNyBAQCBwdWJsaWM6CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgICAgICBATk8sIFdlYktpdFN0b3JhZ2VUcmFja2VyRW5hYmxl
ZFByZWZlcmVuY2VLZXksCi0gICAgICAgIEAoQXVkaW9TZXNzaW9uOjpOb25lKSwgV2ViS2l0QXVk
aW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSwKKyAgICAgICAgQChBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6Tm9uZSksIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCiAKICAg
ICAgICAgLy8gUGVyLU9yaWdpbiBRdW90YSBvbiBpT1MgaXMgMjVNQi4gV2hlbiB0aGUgcXVvdGEg
aXMgcmVhY2hlZCBmb3IgYSBwYXJ0aWN1bGFyIG9yaWdpbgogICAgICAgICAvLyB0aGUgcXVvdGEg
Zm9yIHRoYXQgb3JpZ2luIGNhbiBiZSBpbmNyZWFzZWQuIFNlZSBhbHNvIHdlYlZpZXc6ZXhjZWVk
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFGb3JTZWN1cml0eU9yaWdpbjp0b3RhbFNwYWNl
TmVlZGVkIGluIFdlYlVJL1dlYlVJRGVsZWdhdGUubS4KQEAgLTIwNzEsMjUgKzIwNzEsMjUgQEAg
c3RhdGljIFJldGFpblB0cjxOU1N0cmluZz4mIGNsYXNzSUJDcmVhdG9ySUQoKQogICAgICAgICAv
LyB3aGljaCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZToKICAgICAgICAgc3dpdGNoIChvdmVycmlkZSkgewogICAgICAgICBjYXNlIFdlYktpdEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBB
dWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5U29sb0FtYmllbnRTb3VuZDoK
LSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNvdW5kOwor
ICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0Ft
YmllbnRTb3VuZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYktpdEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5TWVkaWFQbGF5YmFjazoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVk
aW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjazsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5UmVjb3JkQXVkaW86Ci0gICAg
ICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87CisgICAgICAgICAg
ICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbzsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
UGxheUFuZFJlY29yZDoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpQbGF5
QW5kUmVjb3JkOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6UGxheUFuZFJlY29yZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdl
YktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5QXVkaW9Qcm9jZXNzaW5nOgotICAgICAgICAgICAgb3Zl
cnJpZGUgPSBBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZzsKKyAgICAgICAgICAgIG92ZXJy
aWRlID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZzsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBB
dWRpb1Nlc3Npb246Ok5vbmU7CisgICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpOb25lOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428706</attachid>
            <date>2021-05-14 20:48:10 -0700</date>
            <delta_ts>2021-05-15 15:42:11 -0700</delta_ts>
            <desc>Fix build failures on iOS</desc>
            <filename>bug-225826-20210514204810.patch</filename>
            <type>text/plain</type>
            <size>35625</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IxNWUxOTc3OTU3Nzc3
NWY5OGMyZDIzODkwOWFhZTgwZGE3ZWExYy4uYTM1NDE4MzhjYzU0N2MwMGFiNzk2NTVmN2IxMjNl
ZDg5ODE0NmQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA1LTE0ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFdlYkNvbnRlbnQg
cHJvY2VzcyBzaG91bGQgbm90IHB1bGwgYXVkaW8gc2Vzc2lvbiBjYXRlZ29yeSBmcm9tIHRoZSBH
UFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI1ODI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2hhbmdlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnkgdG8gYmUgYW4gZW51bSBjbGFzcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vQXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVk
aWFTZXNzaW9uTWFuYWdlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW06CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b25Qcml2YXRlOjpBdWRpb1Nlc3Npb25Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpj
YXRlZ29yeSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lv
bk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbkZvclRva2VuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9TaGFy
ZWRVbml0OjpzdGFydFVuaXQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphdWRpb1Nlc3Npb25DYXRlZ29yeSBjb25z
dCk6CisKIDIwMjEtMDUtMTQgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OOiBbIE1hYyBXSzIgXSBmYXN0L21lZGlhc3RyZWFtL2F1ZGlvLXRyYWNr
LWVuYWJsZWQuaHRtbCBpcyBmbGFreSBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkY2Q0N2E0YjRmYjc1
MzYzZGYwN2UzY2IyZjAzZTgxZDg5NWIyNDUuLmU1ZjJiNWQ1NTVmYTJmNTEyYjNiMTFlZjdhNDEz
NWZhOTlhZGUyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDUtMTQgIFBlbmcg
TGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gV2ViQ29udGVudCBw
cm9jZXNzIHNob3VsZCBub3QgcHVsbCBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5IGZyb20gdGhlIEdQ
VSBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW1vdmUgYGNhdGVnb3J5YCBhbmQgYHJvdXRlU2hhcmluZ1BvbGljeWAgZnJvbSBgUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbmAKKyAgICAgICAgYmVjYXVzZSB3ZSBzaG91bGQgbm90
IHB1bGwgdGhlc2UgcHJvcGVydGllcyBmcm9tIHRoZSBHUFUgcHJvY2Vzcy4KKworICAgICAgICBS
ZW1vdmUgSVBDIG1lc3NhZ2UgYFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Q29uZmlndXJhdGlvbkNoYW5n
ZWRgIGJlY2F1c2UgaXQgaXMgbm90IHVzZWQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21hYy9M
b2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6CisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OmNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6dXBkYXRlQ2F0ZWdvcnkpOgorCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorCisgICAg
ICAgICogVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHku
aDoKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNhdGVnb3J5IGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb25Db25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uOjpkZWNvZGUpOgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHA6CisKIDIwMjEtMDUtMTQgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGBfV0tJbnNwZWN0b3JgIGxlYWtzIGBXZWJJbnNwZWN0b3JV
SVByb3h5YApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDc0YzFhMzQ1NWE3YzlhZTBm
ZjZjYzllZWE3MTc4OTUwYzMwMDlhYjQuLmRlODllOGM3ZjlkNjJjZjg2YmMxM2E2NzdmYTlkY2Ix
NWJjOWRiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMS0wNS0xNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtH
UFVQXSBXZWJDb250ZW50IHByb2Nlc3Mgc2hvdWxkIG5vdCBwdWxsIGF1ZGlvIHNlc3Npb24gY2F0
ZWdvcnkgZnJvbSB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNTgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAg
KCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNl
cyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlOl0pOgorCiAyMDIxLTA1LTEzICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAppbmRleCAyMjkwN2Ji
OThhNDQxOGJhN2UxMjY2M2U1ZWIwZDZjODA5ZDJlYjcwLi4yNjMzY2JjZjc0OWZhNWQyZThlYWM0
Y2EwYzhhMTNlZDU2Yjg0NTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlcHJl
Y2F0ZWRHbG9iYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3MuY3BwCkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBEZXByZWNhdGVk
R2xvYmFsU2V0dGluZ3M6OnNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUodW5zaWduZWQg
c2Vzc2lvbkMKIAogdW5zaWduZWQgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjphdWRpb1Nlc3Np
b25DYXRlZ29yeU92ZXJyaWRlKCkKIHsKLSAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuY2F0ZWdvcnlPdmVycmlkZSgpOworICAgIHJldHVybiAodW5zaWduZWQpQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnlPdmVycmlkZSgpOwogfQogCiB2b2lkIERl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0TmV0d29ya0RhdGFVc2FnZVRyYWNraW5nRW5hYmxl
ZChib29sIHRyYWNraW5nRW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IGQyMGQwYzQxNjVmZWY1ZmE1YWZmYmY2OWFhMTVmZjdk
MmQ2OTU5OTcuLjk2YTk3OGRmYWIzYTEyYmI2MTYzM2E5ZDQxNDBiNDYwNzU2NGM4NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMTAy
LDcgKzEwMiw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUs
IFJvdXRlU2hhcmluZ1BvbGljeSkKIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vz
c2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gTm9uZTsKKyAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok5vbmU7CiB9CiAKIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVn
b3J5VHlwZSkKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnlPdmVycmlkZShDYXRlZ29yeVR5cGUpCiBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRp
b1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBOb25lOworICAgIHJldHVybiByZXR1cm4gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU6Ok5vbmU7CiB9CiAKIGZsb2F0IEF1ZGlvU2Vzc2lvbjo6c2FtcGxlUmF0ZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IGEwZDhh
YTI5OTQ1MWQ4MWNiMjY2YTQ2MzJmNjY3ZDhjZDBhNzA5NjEuLjFkY2NlM2ExMjhiOTdlYTg4YzIy
MmI4M2EwNmQzODQxOWIyYTY5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQXVk
aW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7CiAgICAgdmlydHVhbCB+QXVkaW9TZXNzaW9uKCk7
CiAKLSAgICBlbnVtIENhdGVnb3J5VHlwZSA6IHVpbnQ4X3QgeworICAgIGVudW0gY2xhc3MgQ2F0
ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAgIEFtYmllbnRTb3Vu
ZCwKICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5t
bQppbmRleCA1NzI0OGM2YjZhNWMyZDEwZjg1NjlmMDgwYjk1ZmI3YTEyZDk5NTAzLi43MmIwZGFi
ODZmOTQyNzljNmMyYjEwZjRkZjFmZDc2ZTNmMWEyNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLm1tCkBAIC0xMzEsMTQgKzEzMSwxNCBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJD
b2NvYTo6dXBkYXRlU2Vzc2lvblN0YXRlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUm91dGVT
aGFyaW5nUG9saWN5IHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdDsKLSAgICBB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsK
KyAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpOb25lOwogICAgIGlmIChjYXB0dXJlQ291bnQpCi0gICAgICAgIGNhdGVn
b3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOworICAgICAgICBjYXRlZ29yeSA9IEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkOwogICAgIGVsc2UgaWYgKGhh
c0F1ZGlibGVBdWRpb09yVmlkZW9NZWRpYVR5cGUpIHsKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRp
b1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGU6Ok1lZGlhUGxheWJhY2s7CiAgICAgICAgIHBvbGljeSA9IFJvdXRlU2hh
cmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbzsKICAgICB9IGVsc2UgaWYgKHdlYkF1ZGlvQ291bnQp
Ci0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ7CisgICAgICAg
IGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDsKIAog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInNldHRpbmcgY2F0ZWdvcnkgPSAiLCBjYXRl
Z29yeSwgIiwgcG9saWN5ID0gIiwgcG9saWN5KTsKICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCmluZGV4IDY5ZDFm
YTY2NTM4YjE1ODhhYWQ0NDVjYTQxZWRhNTI1NmYwYTZmNzUuLmIzZDQzOGVhZDMxOWU5M2IxZTVj
YmFiOTI2NzJjMGYzODU1NjFhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQpAQCAtMTA4LDcgKzEwOCw3IEBAIHB1Ymxp
YzoKIH07CiAKIEF1ZGlvU2Vzc2lvblByaXZhdGU6OkF1ZGlvU2Vzc2lvblByaXZhdGUoQXVkaW9T
ZXNzaW9uKiBzZXNzaW9uKQotICAgIDogbV9jYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbjo6
Tm9uZSkKKyAgICA6IG1fY2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZTo6Tm9uZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBtX2ludGVy
cnVwdGlvbk9ic2VydmVySGVscGVyID0gYWRvcHROUyhbW1dlYkludGVycnVwdGlvbk9ic2VydmVy
SGVscGVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnNlc3Npb25dKTsKQEAgLTEzOCw3ICsxMzgs
NyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIG5ld0NhdGVn
b3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saQogCiAgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRv
U3RyaW5nKG5ld0NhdGVnb3J5KS5hc2NpaSgpLmRhdGEoKSk7CiAKLSAgICBpZiAoY2F0ZWdvcnlP
dmVycmlkZSgpICYmIGNhdGVnb3J5T3ZlcnJpZGUoKSAhPSBuZXdDYXRlZ29yeSkgeworICAgIGlm
IChjYXRlZ29yeU92ZXJyaWRlKCkgIT0gIENhdGVnb3J5VHlwZTo6Tm9uZSAmJiBjYXRlZ29yeU92
ZXJyaWRlKCkgIT0gbmV3Q2F0ZWdvcnkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSgpIC0gb3ZlcnJpZGUgc2V0LCBOT1QgY2hhbmdpbmciKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTE0OCwyNyArMTQ4LDI3IEBAIHZvaWQgQXVkaW9TZXNzaW9u
OjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGlj
eSBwb2xpCiAgICAgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbnMgb3B0aW9ucyA9IDA7CiAK
ICAgICBzd2l0Y2ggKG5ld0NhdGVnb3J5KSB7Ci0gICAgY2FzZSBBbWJpZW50U291bmQ6CisgICAg
Y2FzZSBDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcg
PSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBTb2xvQW1iaWVudFNvdW5kOgorICAgIGNhc2UgQ2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNv
dW5kOgogICAgICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlTb2xv
QW1iaWVudDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYVBsYXliYWNrOgorICAgIGNh
c2UgQ2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrOgogICAgICAgICBjYXRlZ29yeVN0cmluZyA9
IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFjazsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBSZWNvcmRBdWRpbzoKKyAgICBjYXNlIENhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW86CiAgICAg
ICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVJlY29yZDsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBQbGF5QW5kUmVjb3JkOgorICAgIGNhc2UgQ2F0ZWdvcnlUeXBl
OjpQbGF5QW5kUmVjb3JkOgogICAgICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9u
Q2F0ZWdvcnlQbGF5QW5kUmVjb3JkOwogICAgICAgICBjYXRlZ29yeU1vZGUgPSBBVkF1ZGlvU2Vz
c2lvbk1vZGVWaWRlb0NoYXQ7CiAgICAgICAgIG9wdGlvbnMgfD0gQVZBdWRpb1Nlc3Npb25DYXRl
Z29yeU9wdGlvbkFsbG93Qmx1ZXRvb3RoIHwgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkFs
bG93Qmx1ZXRvb3RoQTJEUCB8IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25EZWZhdWx0VG9T
cGVha2VyIHwgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkFsbG93QWlyUGxheTsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBdWRpb1Byb2Nlc3Npbmc6CisgICAgY2FzZSBDYXRlZ29yeVR5
cGU6OkF1ZGlvUHJvY2Vzc2luZzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vz
c2lvbkNhdGVnb3J5QXVkaW9Qcm9jZXNzaW5nOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE5v
bmU6CisgICAgY2FzZSBDYXRlZ29yeVR5cGU6Ok5vbmU6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5n
ID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnQ7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
QEAgLTE4NCwxOCArMTg0LDE4IEBAIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vz
c2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAogewogICAgIE5TU3RyaW5nICpjYXRlZ29yeVN0cmluZyA9
IFtbUEFMOjpnZXRBVkF1ZGlvU2Vzc2lvbkNsYXNzKCkgc2hhcmVkSW5zdGFuY2VdIGNhdGVnb3J5
XTsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29y
eUFtYmllbnRdKQotICAgICAgICByZXR1cm4gQW1iaWVudFNvdW5kOworICAgICAgICByZXR1cm4g
Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQ7CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0Vx
dWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudF0pCi0gICAgICAgIHJldHVybiBT
b2xvQW1iaWVudFNvdW5kOworICAgICAgICByZXR1cm4gQ2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVu
dFNvdW5kOwogICAgIGlmIChbY2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5UGxheWJhY2tdKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5YmFjazsKKyAgICAgICAg
cmV0dXJuIENhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjazsKICAgICBpZiAoW2NhdGVnb3J5U3Ry
aW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVJlY29yZF0pCi0gICAgICAgIHJldHVy
biBSZWNvcmRBdWRpbzsKKyAgICAgICAgcmV0dXJuIENhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW87
CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQ
bGF5QW5kUmVjb3JkXSkKLSAgICAgICAgcmV0dXJuIFBsYXlBbmRSZWNvcmQ7CisgICAgICAgIHJl
dHVybiBDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQ7CiAgICAgaWYgKFtjYXRlZ29yeVN0cmlu
ZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3NpbmddKQotICAgICAg
ICByZXR1cm4gQXVkaW9Qcm9jZXNzaW5nOwotICAgIHJldHVybiBOb25lOworICAgICAgICByZXR1
cm4gQ2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgcmV0dXJuIENhdGVnb3J5VHlw
ZTo6Tm9uZTsKIH0KIAogUm91dGVTaGFyaW5nUG9saWN5IEF1ZGlvU2Vzc2lvbjo6cm91dGVTaGFy
aW5nUG9saWN5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9TZXNzaW9uTWFjLm1tCmluZGV4IGNhNzEwNDk5NzYyZTVhNGZiOGQwOGI1OGM0
OGM1NjE1MzhiOGMxZDkuLmY4ZTQ0OWQzN2YwOGUxZTI3MTI2MDU0OWY3Nzk0MGMzYmUzNWE2MTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Np
b25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vz
c2lvbk1hYy5tbQpAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIE9TU3RhdHVz
IGhhbmRsZUJ1ZmZlclNpemVDaGFuZ2UoQXVkaW9PYmplY3RJRCwgVUludDMyLCBjb25zdCBBdWRp
b09iamVjdFByb3BlcnR5QWRkcmVzcyosIHZvaWQqIGluQ2xpZW50RGF0YSk7CiAKICAgICBPcHRp
b25hbDxib29sPiBsYXN0TXV0ZWRTdGF0ZTsKLSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSBjYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlIGNhdGVnb3J5IHsgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUgfTsK
ICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBib29sIHNldHVwQXJiaXRyYXRp
b25PbmdvaW5nIHsgZmFsc2UgfTsKICAgICBPcHRpb25hbDxib29sPiBwbGF5aW5nVG9CbHVldG9v
dGg7CkBAIC0yMjgsNyArMjI4LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENh
dGVnb3J5VHlwZSBjYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5KQogICAgICAgICBtX3JvdXRp
bmdBcmJpdHJhdGlvbkNsaWVudC0+bGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKTsKICAgICB9CiAK
LSAgICBpZiAoY2F0ZWdvcnkgPT0gQW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IFNvbG9BbWJp
ZW50U291bmQgfHwgY2F0ZWdvcnkgPT0gQXVkaW9Qcm9jZXNzaW5nIHx8IGNhdGVnb3J5ID09IE5v
bmUpCisgICAgaWYgKGNhdGVnb3J5ID09IENhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kIHx8IGNh
dGVnb3J5ID09IENhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZCB8fCBjYXRlZ29yeSA9PSBD
YXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZyB8fCBjYXRlZ29yeSA9PSBDYXRlZ29yeVR5cGU6
Ok5vbmUpCiAgICAgICAgIHJldHVybjsKIAogICAgIHVzaW5nIFJvdXRpbmdBcmJpdHJhdGlvbkVy
cm9yID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRy
YXRpb25FcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21h
Yy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLmgKaW5kZXggMWZkZjRiYjA4MjYyMDIzZjg4
NGYxOTVkZTVjNDZlOTFkOGZiOTg5OS4uM2EyNTU1NWM0NTA0ODBkMjliMTQyOTRmYWZhYTk4MjU2
N2FhNDg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1No
YXJlZFJvdXRpbmdBcmJpdHJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZW5kUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4oY29uc3QgVG9rZW4mKTsK
IAogcHJpdmF0ZToKLSAgICBPcHRpb25hbDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gbV9j
dXJyZW50Q2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyAgICBPcHRpb25hbDxBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gbV9jdXJyZW50Q2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OwogICAgIFdlYWtIYXNoU2V0PFRva2VuPiBtX3Rva2VuczsK
ICAgICBWZWN0b3I8QXJiaXRyYXRpb25DYWxsYmFjaz4gbV9lbnF1ZXVlZENhbGxiYWNrczsKICAg
ICBib29sIG1fc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9y
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJp
dHJhdG9yLm1tCmluZGV4IDE3NTI3ZTdiNWRiNmI5Yzg4ZmQyZDg5ZTlhMTBhYmY5NTNmZmNmNTAu
LjZmZWE1OTJmNjg2ZWU1Nzc5MDYzMTczNzI2NDYwOWJmMzkxYzk0OTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0Fy
Yml0cmF0b3IubW0KQEAgLTc5LDEzICs3OSwxMyBAQCB2b2lkIFNoYXJlZFJvdXRpbmdBcmJpdHJh
dG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbkZvclRva2VuKGNvbnN0IFRva2VuJiB0b2tlbgog
CiAgICAgQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5IGFyYml0cmF0aW9uQ2F0ZWdv
cnkgPSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5YmFjazsKICAgICBzd2l0
Y2ggKHJlcXVlc3RlZENhdGVnb3J5KSB7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxh
eWJhY2s6CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFj
azoKICAgICAgICAgYXJiaXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRp
b25DYXRlZ29yeVBsYXliYWNrOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lv
bjo6UmVjb3JkQXVkaW86CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVj
b3JkQXVkaW86CiAgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlvUm91dGluZ0Fy
Yml0cmF0aW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkOgogICAgICAgICBhcmJpdHJhdGlvbkNhdGVnb3J5ID0g
QVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheUFuZFJlY29yZFZvaWNlOwogICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCmlu
ZGV4IDM1NTdhMWVhZDFjMTY1NjQ1MTZhY2NjNjg4YjNiOWQzNzk0M2YyY2YuLjUzYzdlN2JjZTM0
NTc2MjgyOGU3YTNiMzlhNzhlOWJhNWUyMzIxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5p
dC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBPU1N0YXR1cyBCYXNlQXVkaW9TaGFyZWRVbml0Ojpz
dGFydFVuaXQoKQogICAgIGZvckVhY2hDbGllbnQoW10oYXV0byYgY2xpZW50KSB7CiAgICAgICAg
IGNsaWVudC5hdWRpb1VuaXRXaWxsU3RhcnQoKTsKICAgICB9KTsKLSAgICBBU1NFUlQoIURlcHJl
Y2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSB8
fCBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lv
bjo6UGxheUFuZFJlY29yZCk7CisgICAgQVNTRVJUKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6
OnNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgfHwgQXVkaW9TZXNzaW9uOjpzaGFy
ZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxh
eUFuZFJlY29yZCk7CiAKICAgICBpZiAoYXV0byBlcnJvciA9IHN0YXJ0SW50ZXJuYWwoKSkgewog
ICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDc1ZGI4ODA1ZjQ3
OWYyNGIzMzExMzQ3NWFmZDlmZGRmZDRhNjRiZDEuLmM0OWU2ZmJmMTY3ODlkOTY4Y2MwNTQ3MzRi
NzE1NTBhZWZmOWU1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9p
ZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAgIFBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Qcm9k
dWNlQXVkaW9DaGFuZ2VkKCk7Ci0gICAgQVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lv
bigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkKTsKKyAgICBBU1NF
UlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCk7CiAjZW5kaWYKIAogICAgIGlmICghc2Ft
cGxlUmF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGMxYmUzZGU4
M2JmZTY4MWY3Y2IzZWRjNWQzM2E5YTZlMjA2Njc0ZjQuLmI5MTVjOTNmOGY2ODBlMDUyZDY1MjY1
ZjVmOWZkZTMzNmU5YzI5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTU0MTMsMTkgKzU0MTMsMTkgQEAgU3RyaW5nIEludGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdv
cnkoKSBjb25zdAogewogI2lmIFVTRShBVURJT19TRVNTSU9OKQogICAgIHN3aXRjaCAoQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSkgewotICAgIGNhc2UgQXVkaW9TZXNz
aW9uOjpBbWJpZW50U291bmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QW1iaWVudFNvdW5kOgogICAgICAgICByZXR1cm4gIkFtYmllbnRTb3VuZCJfczsKLSAgICBjYXNl
IEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kOgogICAgICAgICByZXR1cm4gIlNvbG9BbWJp
ZW50U291bmQiX3M7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s6CisgICAg
Y2FzZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjazoKICAgICAgICAg
cmV0dXJuICJNZWRpYVBsYXliYWNrIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpSZWNvcmRB
dWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbzoK
ICAgICAgICAgcmV0dXJuICJSZWNvcmRBdWRpbyJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6
UGxheUFuZFJlY29yZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5
QW5kUmVjb3JkOgogICAgICAgICByZXR1cm4gIlBsYXlBbmRSZWNvcmQiX3M7Ci0gICAgY2FzZSBB
dWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3Npbmc6CiAgICAgICAgIHJldHVybiAiQXVkaW9Qcm9jZXNz
aW5nIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpOb25lOgorICAgIGNhc2UgQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmU6CiAgICAgICAgIHJldHVybiAiTm9uZSJfczsKICAgICB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKaW5kZXggYmU0OTJiYjY4
OTgyZWQ0NjI4NmU4NGRlYTVkZTEwNWVmNjE1NzdlYy4uOWFiMmRjZTRjMDcxNjZiMWMzYTI3MWRi
MjExNDM4MWY3NTdjMTJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21h
Yy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKQEAg
LTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxlYXZlUm91dGluZ0Ficml0cmF0aW9u
KCkgZmluYWw7CiAKICAgICBVbmlxdWVSZWY8V2ViQ29yZTo6U2hhcmVkUm91dGluZ0FyYml0cmF0
b3I6OlRva2VuPiBtX3Rva2VuOwotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIG1fY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUgfTsKICAgICBBcmJpdHJhdGlvblN0YXR1cyBt
X2FyYml0cmF0aW9uU3RhdHVzIHsgQXJiaXRyYXRpb25TdGF0dXM6Ok5vbmUgfTsKICAgICBXYWxs
VGltZSBtX2FyYml0cmF0aW9uVXBkYXRlVGltZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAppbmRl
eCA1Y2FiNWE5YjU0ZDAxODI4NmYxNzMxOTYyZGE0ZDk2N2RkOGUwMTZmLi4yYzA5OTA0NWE3ZjRk
ZmQ4YzRkOWExMzFjOTkwNmQxMWI4OGE3ZDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKQEAgLTYw
LDggKzYwLDYgQEAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbigpCiB7CiAgICAgYXV0byYgc2Vzc2lvbiA9IGF1ZGlv
U2Vzc2lvbk1hbmFnZXIoKS5zZXNzaW9uKCk7CiAgICAgcmV0dXJuIHsKLSAgICAgICAgc2Vzc2lv
bi5jYXRlZ29yeSgpLAotICAgICAgICBzZXNzaW9uLnJvdXRlU2hhcmluZ1BvbGljeSgpLAogICAg
ICAgICBzZXNzaW9uLnJvdXRpbmdDb250ZXh0VUlEKCksCiAgICAgICAgIHNlc3Npb24uc2FtcGxl
UmF0ZSgpLAogICAgICAgICBzZXNzaW9uLmJ1ZmZlclNpemUoKSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKaW5k
ZXggMWZlZmFjM2FjOGRmYTQ1NjQ1NGM5ODRmYzkxOGM2OWIzNWRiYTYwNy4uMzBlYjExOTU0NmEx
MTZhMDJhN2EzYWZmODZjZWNjYzE4N2FkMTIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKQEAgLTc4LDcg
Kzc4LDcgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKTsKIAog
ICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvbjsKLSAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpOb25lIH07CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGUgbV9jYXRlZ29yeSB7IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25l
IH07CiAgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91dGVTaGFyaW5nUG9saWN5
IHsgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0IH07CiAgICAgc2l6ZV90IG1f
cHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKICAgICBib29sIG1fYWN0aXZlIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKaW5kZXggZWI5NDJiODI4YjZmNGYwNDMz
NGJkMDQwM2Q0M2E4MzcwMDlhMTJiNi4uYTI4YjYwYmYyMTRlM2JhN2I0NmQ2MjUyZGIxNzA2MWQz
NzQxMmQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKQEAgLTQwLDcgKzQw
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBib29sIGNhdGVnb3J5Q2Fu
TWl4V2l0aE90aGVycyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSkKIHsKLSAg
ICByZXR1cm4gY2F0ZWdvcnkgPT0gQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ7CisgICAgcmV0
dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQ7
CiB9CiAKIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyKCkKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXI6OnJlbW92ZVByb3h5KFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBwcm94eSkK
IAogdm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnVwZGF0ZUNhdGVnb3J5KCkK
IHsKLSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lv
bjo6Tm9uZTsKKyAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lOwogICAgIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xp
Y3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQ7CiAKICAgICBIYXNoQ291bnRlZFNldDxB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV1RGOjpJbnRIYXNoPEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZT4+IGNhdGVnb3J5Q291bnRzOwpAQCAtODAsMjAgKzgwLDIwIEBAIHZvaWQgUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp1cGRhdGVDYXRlZ29yeSgpCiAgICAgICAgIHBvbGlj
eUNvdW50cy5hZGQob3RoZXJQcm94eS5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7CiAgICAgfQogCi0g
ICAgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29y
ZCkpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOwotICAg
IGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVk
aW8pKQotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87Ci0gICAg
ZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXli
YWNrKSkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7Ci0g
ICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpTb2xvQW1i
aWVudFNvdW5kKSkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50
U291bmQ7Ci0gICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9u
OjpBbWJpZW50U291bmQpKQotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVu
dFNvdW5kOwotICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lv
bjo6QXVkaW9Qcm9jZXNzaW5nKSkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkF1
ZGlvUHJvY2Vzc2luZzsKKyAgICBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkOworICAgIGVsc2UgaWYgKGNh
dGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRB
dWRpbykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJl
Y29yZEF1ZGlvOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjazsKKyAgICBlbHNlIGlmIChj
YXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0Ft
YmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU6OlNvbG9BbWJpZW50U291bmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFp
bnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCkpCisgICAgICAgIGNh
dGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDsKKyAgICBl
bHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZTo6QXVkaW9Qcm9jZXNzaW5nKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nOwogICAgIGVsc2UKLSAgICAgICAgY2F0ZWdvcnkg
PSBBdWRpb1Nlc3Npb246Ok5vbmU7CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6Ok5vbmU7CiAKICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRl
ZmF1bHQ7CiAgICAgaWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6
OkxvbmdGb3JtVmlkZW8pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAzN2VhNjkz
YTZjY2E4N2IwYzkyZWI0MDA3NmUzOWI5Mjc4ODg2MTBhLi4wMTk0MjlmNDgzMjBjOWNlN2U1ZTdi
YTljMTFiZTAwY2JlYTFiNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMTAz
LDcgKzEwMyw3IEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBidWZmZXJTaXplID0gQXVkaW9TZXNz
aW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7CiAgICAgICAgIGlmIChBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5wcmVmZXJyZWRCdWZmZXJTaXplKCkgPiBidWZmZXJT
aXplKQogICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKLSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkLCBSb3V0ZVNo
YXJpbmdQb2xpY3k6OkRlZmF1bHQpOworICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29y
ZCwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKICAgICB9CiAKICAgICB2b2lkIHN0YXJ0
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlh
L0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaAppbmRleCA0ZDkyZThlN2Q1NmE4
ZTQ0OTQ3MTljNTM2ZjhmOTI3ZGNhOThmNTY0Li42OWNhNGFjYTBhNDczM2Y4ZDdlMjJkZmExOTM1
ODQ1N2IzZTBkMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oCkBAIC03
NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmRSb3V0aW5nQXJiaXRyYXRpb24oKTsK
IAogICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOwotICAgIFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok5v
bmUgfTsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5
IHsgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUgfTsKICAgICBBcmJp
dHJhdGlvblN0YXR1cyBtX2FyYml0cmF0aW9uU3RhdHVzIHsgQXJiaXRyYXRpb25TdGF0dXM6Ok5v
bmUgfTsKICAgICBXYWxsVGltZSBtX2FyYml0cmF0aW9uVXBkYXRlVGltZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b24uY3BwCmluZGV4IDE0MmRmZjM0MTg4ZWZjZGI4NDQ0NTg2NGQ2OTA5YzU4MTc1MjA4OTEuLmQ4
NmIzN2VhZTAwZjE2NjNkMDFlMDVmNDEzZTYyNTRkM2Y0YjgwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5j
cHAKQEAgLTk0LDEyICs5NCwxMSBAQCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiBS
ZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb24oKQogdm9pZCBSZW1vdGVBdWRpb1Nlc3Np
b246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSB0eXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9s
aWN5KQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGF1dG8mIGNvbmZpZ3VyYXRpb24gPSB0
aGlzLT5jb25maWd1cmF0aW9uKCk7Ci0gICAgaWYgKHR5cGUgPT0gY29uZmlndXJhdGlvbi5jYXRl
Z29yeSAmJiBwb2xpY3kgPT0gY29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3kpCisgICAg
aWYgKHR5cGUgPT0gbV9jYXRlZ29yeSAmJiBwb2xpY3kgPT0gbV9yb3V0ZVNoYXJpbmdQb2xpY3kp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbmZpZ3VyYXRpb24uY2F0ZWdvcnkgPSB0eXBlOwot
ICAgIGNvbmZpZ3VyYXRpb24ucm91dGVTaGFyaW5nUG9saWN5ID0gcG9saWN5OworICAgIG1fY2F0
ZWdvcnkgPSB0eXBlOworICAgIG1fcm91dGVTaGFyaW5nUG9saWN5ID0gcG9saWN5OwogCiAgICAg
ZW5zdXJlQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
OjpTZXRDYXRlZ29yeSh0eXBlLCBwb2xpY3kpLCB7IH0pOwogI2Vsc2UKQEAgLTEyNSwyMiArMTI0
LDEyIEBAIGJvb2wgUmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKGJv
b2wgYWN0aXZlKQogQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgUmVtb3RlQXVkaW9TZXNzaW9u
OjpjYXRlZ29yeSgpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIGNv
bmZpZ3VyYXRpb24oKS5jYXRlZ29yeTsKKyAgICByZXR1cm4gbV9jYXRlZ29yeTsKICNlbHNlCi0g
ICAgcmV0dXJuIE5vbmU7CisgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpO
b25lOwogI2VuZGlmCiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9u
Q2hhbmdlZChSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikK
LXsKLSAgICBib29sIG11dGVkU3RhdGVDaGFuZ2VkID0gIW1fY29uZmlndXJhdGlvbiB8fCBjb25m
aWd1cmF0aW9uLmlzTXV0ZWQgIT0gbV9jb25maWd1cmF0aW9uLT5pc011dGVkOwotCi0gICAgbV9j
b25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKLQotICAgIGlmIChtdXRlZFN0
YXRlQ2hhbmdlZCkKLSAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwotfQotCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmgKaW5kZXggNTQ1Y2NlOThiMzA1ODg2YTdkZDVkMmUzZmMxNzYy
OTg5NTE3ZWRmMC4uZjU4NjE3ZjliOTlmNzI3YTgwY2Y1NzJhZmE4ZDg1ZmFmMTRiZDE2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFs
aXplQ29uZmlndXJhdGlvbklmTmVjZXNzYXJ5KCk7CiAKICAgICBDYXRlZ29yeVR5cGUgY2F0ZWdv
cnkoKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVT
aGFyaW5nUG9saWN5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uZmlndXJhdGlvbigpLnJvdXRl
U2hhcmluZ1BvbGljeTsgfQorICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNo
YXJpbmdQb2xpY3koKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3JvdXRlU2hhcmluZ1BvbGljeTsg
fQogICAgIFN0cmluZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGNv
bmZpZ3VyYXRpb24oKS5yb3V0aW5nQ29udGV4dFVJRDsgfQogICAgIGZsb2F0IHNhbXBsZVJhdGUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBjb25maWd1cmF0aW9uKCkuc2FtcGxlUmF0ZTsgfQogICAg
IHNpemVfdCBidWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uZmlndXJhdGlvbigp
LmJ1ZmZlclNpemU7IH0KQEAgLTg1LDYgKzg1LDkgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWN0
aXZlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uZmlndXJhdGlvbigpLmlzQWN0aXZlOyB9CiAK
ICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CisKKyAgICBDYXRlZ29yeVR5cGUgbV9jYXRlZ29y
eSB7IENhdGVnb3J5VHlwZTo6Tm9uZSB9OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eSBtX3JvdXRlU2hhcmluZ1BvbGljeSB7IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVm
YXVsdCB9OwogICAgIE9wdGlvbmFsPFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24+IG1f
Y29uZmlndXJhdGlvbjsKICAgICBXZWFrUHRyPEdQVVByb2Nlc3NDb25uZWN0aW9uPiBtX2dwdVBy
b2Nlc3NDb25uZWN0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KaW5k
ZXggOWYwOGNlM2YzMGY5ZDIwMzFlMDYyNGU1M2JjZjgxYzI0ZjM2NzlkMS4uYjRiZWQxNjM5NTVi
MTFmNDljZTM4OWViMTZkODI1MzIwM2ZhMmE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVz
c2FnZXMuaW4KQEAgLTI2LDcgKzI2LDYgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb24gTm90UmVm
Q291bnRlZCB7Ci0gICAgQ29uZmlndXJhdGlvbkNoYW5nZWQoc3RydWN0IFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIEJlZ2luSW50ZXJy
dXB0aW9uKCkKICAgICBFbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpNYXlS
ZXN1bWUgZmxhZ3MpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCmlu
ZGV4IDlmNzU3ZTc5NmQ3ZDg2OGJmNGRmZGRkOGMyMjFlNzMzNWZkZGYwY2UuLjZmYzhiYThiNjlk
OTA4OTY3NWNiNTZlN2VlNDZhMjA4ODFlYWI5MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
Q29uZmlndXJhdGlvbi5oCkBAIC0zMiw5ICszMiw2IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
c3RydWN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gewotCi0gICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OwotICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eSByb3V0ZVNoYXJpbmdQb2xpY3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1
bHQgfTsKICAgICBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQ7CiAgICAgZmxvYXQgc2FtcGxlUmF0
ZSB7IDAgfTsKICAgICBzaXplX3QgYnVmZmVyU2l6ZSB7IDAgfTsKQEAgLTQ3LDggKzQ0LDYgQEAg
c3RydWN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gewogICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICB7Ci0gICAgICAgIGVuY29kZXIgPDwgY2F0ZWdvcnk7Ci0gICAgICAgIGVuY29kZXIgPDwgcm91
dGVTaGFyaW5nUG9saWN5OwogICAgICAgICBlbmNvZGVyIDw8IHJvdXRpbmdDb250ZXh0VUlEOwog
ICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7CiAgICAgICAgIGVuY29kZXIgPDwgYnVmZmVy
U2l6ZTsKQEAgLTYyLDE2ICs1Nyw2IEBAIHN0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uIHsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KICAgICBzdGF0aWMgT3B0aW9u
YWw8UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAgICAgewotICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZT4gY2F0ZWdvcnk7Ci0gICAgICAgIGRlY29kZXIgPj4gY2F0ZWdvcnk7Ci0gICAgICAg
IGlmICghY2F0ZWdvcnkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAg
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcm91dGVTaGFyaW5nUG9s
aWN5OwotICAgICAgICBkZWNvZGVyID4+IHJvdXRlU2hhcmluZ1BvbGljeTsKLSAgICAgICAgaWYg
KCFyb3V0ZVNoYXJpbmdQb2xpY3kpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
CiAgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gcm91dGluZ0NvbnRleHRVSUQ7CiAgICAgICAgIGRl
Y29kZXIgPj4gcm91dGluZ0NvbnRleHRVSUQ7CiAgICAgICAgIGlmICghcm91dGluZ0NvbnRleHRV
SUQpCkBAIC0xMTMsOCArOTgsNiBAQCBzdHJ1Y3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiB7CiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgICAgIHJldHVy
biB7ewotICAgICAgICAgICAgV1RGTW92ZSgqY2F0ZWdvcnkpLAotICAgICAgICAgICAgV1RGTW92
ZSgqcm91dGVTaGFyaW5nUG9saWN5KSwKICAgICAgICAgICAgIFdURk1vdmUoKnJvdXRpbmdDb250
ZXh0VUlEKSwKICAgICAgICAgICAgICpzYW1wbGVSYXRlLAogICAgICAgICAgICAgKmJ1ZmZlclNp
emUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcAppbmRleCA1MWMwMGVlODYwOTUzMzM5ODQ5MGI2YmFjODcwZGQ4MDEyOWM5YzM0Li41
M2NiMjZlZjQ5OTFhNTBkZTFhODk3NDg1ZGQzYzZmN2NlZTJhMDI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTE1Myw3
ICsxNTMsNyBAQCBwcml2YXRlOgogICAgICAgICBhdXRvIGJ1ZmZlclNpemUgPSBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1MDsKICAgICAgICAgaWYgKEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+IGJ1ZmZlclNp
emUpCiAgICAgICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJy
ZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOwotICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFJvdXRlU2hh
cmluZ1BvbGljeTo6RGVmYXVsdCk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lv
bigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3Jk
LCBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOwogI2VuZGlmCiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW0KaW5kZXggYjhlODg2YmFkNDJjNjZhYTgwOTNmZTZkM2M2OGY5ODExZDU0NmUzYS4uOTQ4YWYz
MjE5MWQwYTlhYTVjMWQ2NmExNzc1ODBmMjMwNjk3MmZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQpAQCAtMTE0
LDcgKzExNCw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVBdWRpb1Nlc3Npb24oKQogICAgIGlm
ICghV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENh
dGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjaywgV2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNo
YXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6TWVkaWFQbGF5YmFjaywgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQppbmRleCA5YTExNDZiN2I2OTI0MDA1NGIyNGJlOGRhYzM5NTdiMTIz
NDkzYTQ1Li5mZjczODg1YjE4NTRiY2U0ZGMzOTRlNzkxODkxYWRjOTE0MGNmZDMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAg
LTQyMyw3ICs0MjMsNyBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
ICAgICBATk8sIFdlYktpdFN0b3JhZ2VUcmFja2VyRW5hYmxlZFByZWZlcmVuY2VLZXksCi0gICAg
ICAgIEAoQXVkaW9TZXNzaW9uOjpOb25lKSwgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVy
cmlkZSwKKyAgICAgICAgQChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU6Ok5vbmUpKSwgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSwKIAog
ICAgICAgICAvLyBQZXItT3JpZ2luIFF1b3RhIG9uIGlPUyBpcyAyNU1CLiBXaGVuIHRoZSBxdW90
YSBpcyByZWFjaGVkIGZvciBhIHBhcnRpY3VsYXIgb3JpZ2luCiAgICAgICAgIC8vIHRoZSBxdW90
YSBmb3IgdGhhdCBvcmlnaW4gY2FuIGJlIGluY3JlYXNlZC4gU2VlIGFsc28gd2ViVmlldzpleGNl
ZWRlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUZvclNlY3VyaXR5T3JpZ2luOnRvdGFsU3Bh
Y2VOZWVkZWQgaW4gV2ViVUkvV2ViVUlEZWxlZ2F0ZS5tLgpAQCAtMjA2NiwzMCArMjA2NiwzMCBA
QCBzdGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiYgY2xhc3NJQkNyZWF0b3JJRCgpCiAKIC0gKHZv
aWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZToodW5zaWduZWQpb3ZlcnJpZGUKIHsK
LSAgICBpZiAob3ZlcnJpZGUgPiBBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZykgeworICAg
IGlmIChvdmVycmlkZSA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nKSkgewogICAgICAgICAvLyBDbGllbnRzIGFyZSBwYXNz
aW5nIHVzIE9TVHlwZXMgdmFsdWVzIGZyb20gQXVkaW9Ub29sYm94L0F1ZGlvU2Vzc2lvbi5oLAog
ICAgICAgICAvLyB3aGljaCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZToKICAgICAgICAgc3dpdGNoIChvdmVycmlkZSkgewogICAgICAgICBjYXNl
IFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3Zl
cnJpZGUgPSBBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDsKKyAgICAgICAgICAgIG92ZXJyaWRl
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJp
ZW50U291bmQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBB
dWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmll
bnRTb3VuZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJLaXRBdWRpb1Nl
c3Npb25DYXRlZ29yeU1lZGlhUGxheWJhY2s6Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlv
U2Vzc2lvbjo6TWVkaWFQbGF5YmFjazsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5UmVjb3JkQXVkaW86Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6UmVj
b3JkQXVkaW87CisgICAgICAgICAgICBvdmVycmlkZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8pOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3Jk
OgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQ7Cisg
ICAgICAgICAgICBvdmVycmlkZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBXZWJLaXRBdWRpb1Nlc3Npb25DYXRlZ29yeUF1ZGlvUHJvY2Vzc2luZzoKLSAgICAg
ICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgICAg
ICAgICBvdmVycmlkZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246Ok5vbmU7CisgICAg
ICAgICAgICBvdmVycmlkZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZTo6Tm9uZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
</data>
<flag name="review"
          id="449706"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428794</attachid>
            <date>2021-05-16 10:52:11 -0700</date>
            <delta_ts>2021-05-17 09:31:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225826-20210516105210.patch</filename>
            <type>text/plain</type>
            <size>35600</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IxNWUxOTc3OTU3Nzc3
NWY5OGMyZDIzODkwOWFhZTgwZGE3ZWExYy4uNmQ2NDMyNDQ3YWVjNTZlYjdjNDEwNWZkZGU5Njcz
NmY5MzBkZTZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA1LTE0ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFdlYkNvbnRlbnQg
cHJvY2VzcyBzaG91bGQgbm90IHB1bGwgYXVkaW8gc2Vzc2lvbiBjYXRlZ29yeSBmcm9tIHRoZSBH
UFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI1ODI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
Q2hhbmdlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnkgdG8gYmUgYW4gZW51bSBjbGFzcy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vQXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFu
YWdlckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L2lvcy9BdWRpb1Nlc3Npb25JT1MubW06CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25Q
cml2YXRlOjpBdWRpb1Nlc3Npb25Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6c2V0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRl
Z29yeSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZFJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJp
dHJhdGlvbkZvclRva2VuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFz
ZUF1ZGlvU2hhcmVkVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9TaGFyZWRV
bml0OjpzdGFydFVuaXQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphdWRpb1Nlc3Npb25DYXRlZ29yeSBjb25zdCk6
CisKIDIwMjEtMDUtMTQgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OOiBbIE1hYyBXSzIgXSBmYXN0L21lZGlhc3RyZWFtL2F1ZGlvLXRyYWNrLWVu
YWJsZWQuaHRtbCBpcyBmbGFreSBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkY2Q0N2E0YjRmYjc1MzYz
ZGYwN2UzY2IyZjAzZTgxZDg5NWIyNDUuLjQ1MWRiMjAzMWI1ZTVmMzk2NGY3MDI2YzIxYjhhNjkx
MGYxN2I0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDUtMTQgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gV2ViQ29udGVudCBwcm9j
ZXNzIHNob3VsZCBub3QgcHVsbCBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5IGZyb20gdGhlIEdQVSBQ
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjU4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW1v
dmUgYGNhdGVnb3J5YCBhbmQgYHJvdXRlU2hhcmluZ1BvbGljeWAgZnJvbSBgUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbmAKKyAgICAgICAgYmVjYXVzZSB3ZSBzaG91bGQgbm90IHB1bGwg
dGhlc2UgcHJvcGVydGllcyBmcm9tIHRoZSBHUFUgcHJvY2Vzcy4KKworICAgICAgICBSZW1vdmUg
SVBDIG1lc3NhZ2UgYFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Q29uZmlndXJhdGlvbkNoYW5nZWRgIGJl
Y2F1c2UgaXQgaXMgbm90IHVzZWQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21hYy9Mb2NhbEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6CisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OmNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6dXBkYXRlQ2F0ZWdvcnkpOgorCisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorCisgICAgICAgICog
VUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaDoKKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNhdGVnb3J5IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3Nh
Z2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uOjpkZWNvZGUpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisK
IDIwMjEtMDUtMTQgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGBfV0tJbnNwZWN0b3JgIGxlYWtzIGBXZWJJbnNwZWN0b3JVSVByb3h5
YApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDc0YzFhMzQ1NWE3YzlhZTBmZjZjYzll
ZWE3MTc4OTUwYzMwMDlhYjQuLjkwNjZkZGEzYzg0YjBhY2FhMmNjYTc1ODU2NGUyMmJkYzkxMzI1
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0w
NS0xNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBX
ZWJDb250ZW50IHByb2Nlc3Mgc2hvdWxkIG5vdCBwdWxsIGF1ZGlvIHNlc3Npb24gY2F0ZWdvcnkg
ZnJvbSB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNTgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgor
CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJl
ZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRBdWRp
b1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlOl0pOgorCiAyMDIxLTA1LTEzICBNZWdhbiBHYXJkbmVy
ICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRleHRJbmRpY2F0b3Ig
Ym91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAppbmRleCAyMjkwN2JiOThhNDQxOGJh
N2UxMjY2M2U1ZWIwZDZjODA5ZDJlYjcwLi43ZWYzOWE1MjgwYTJjOGQ1ZThkM2YxNWYzMjVlMjg3
MjMyYzY5MzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlcHJlY2F0ZWRHbG9i
YWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFs
U2V0dGluZ3MuY3BwCkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBEZXByZWNhdGVkR2xvYmFsU2V0
dGluZ3M6OnNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUodW5zaWduZWQgc2Vzc2lvbkMK
IAogdW5zaWduZWQgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjphdWRpb1Nlc3Npb25DYXRlZ29y
eU92ZXJyaWRlKCkKIHsKLSAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
Y2F0ZWdvcnlPdmVycmlkZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnlPdmVycmlkZSgpKTsKIH0KIAogdm9p
ZCBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0Vu
YWJsZWQoYm9vbCB0cmFja2luZ0VuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9TZXNzaW9uLmNwcAppbmRleCBkMjBkMGM0MTY1ZmVmNWZhNWFmZmJmNjlhYTE1
ZmY3ZDJkNjk1OTk3Li5mN2EzZWIwZTdkZmQ1Y2RkZmVlMGZjMWM3MzAwMzU4YzE2NzM5ZWY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKQEAg
LTEwMiw3ICsxMDIsNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlU
eXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpCiBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRp
b1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIE5vbmU7CisgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlOjpOb25lOwogfQogCiB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShD
YXRlZ29yeVR5cGUpCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENh
dGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlKQogQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUg
QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gTm9uZTsKKyAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok5vbmU7CiB9CiAKIGZsb2F0IEF1ZGlvU2Vzc2lvbjo6c2FtcGxlUmF0ZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IGEwZDhhYTI5
OTQ1MWQ4MWNiMjY2YTQ2MzJmNjY3ZDhjZDBhNzA5NjEuLjFkY2NlM2ExMjhiOTdlYTg4YzIyMmI4
M2EwNmQzODQxOWIyYTY5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvU2Vzc2lvbi5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQXVkaW9T
ZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7CiAgICAgdmlydHVhbCB+QXVkaW9TZXNzaW9uKCk7CiAK
LSAgICBlbnVtIENhdGVnb3J5VHlwZSA6IHVpbnQ4X3QgeworICAgIGVudW0gY2xhc3MgQ2F0ZWdv
cnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAgIEFtYmllbnRTb3VuZCwK
ICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQpp
bmRleCA1NzI0OGM2YjZhNWMyZDEwZjg1NjlmMDgwYjk1ZmI3YTEyZDk5NTAzLi41NjU0NmViZjA3
OTE3YTQ0YzBiMThmNTJlOWY0Nzg3ZjFiNDE1ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNv
Y29hLm1tCkBAIC0xMzEsMTQgKzEzMSwxNCBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YTo6dXBkYXRlU2Vzc2lvblN0YXRlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUm91dGVTaGFy
aW5nUG9saWN5IHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdDsKLSAgICBBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKyAg
ICBhdXRvIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmU7CiAgICAg
aWYgKGNhcHR1cmVDb3VudCkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlBsYXlB
bmRSZWNvcmQ7CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
OlBsYXlBbmRSZWNvcmQ7CiAgICAgZWxzZSBpZiAoaGFzQXVkaWJsZUF1ZGlvT3JWaWRlb01lZGlh
VHlwZSkgewotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjazsK
KyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5
YmFjazsKICAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlv
OwogICAgIH0gZWxzZSBpZiAod2ViQXVkaW9Db3VudCkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRp
b1Nlc3Npb246OkFtYmllbnRTb3VuZDsKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kOwogCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSLCAic2V0dGluZyBjYXRlZ29yeSA9ICIsIGNhdGVnb3J5LCAiLCBwb2xpY3kgPSAiLCBwb2xp
Y3kpOwogICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KGNhdGVn
b3J5LCBwb2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lv
cy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggNjlkMWZhNjY1MzhiMTU4OGFhZDQ0NWNhNDFlZGE1
MjU2ZjBhNmY3NS4uYjNkNDM4ZWFkMzE5ZTkzYjFlNWNiYWI5MjY3MmMwZjM4NTU2MWE0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9u
SU9TLm1tCkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogfTsKIAogQXVkaW9TZXNzaW9uUHJp
dmF0ZTo6QXVkaW9TZXNzaW9uUHJpdmF0ZShBdWRpb1Nlc3Npb24qIHNlc3Npb24pCi0gICAgOiBt
X2NhdGVnb3J5T3ZlcnJpZGUoQXVkaW9TZXNzaW9uOjpOb25lKQorICAgIDogbV9jYXRlZ29yeU92
ZXJyaWRlKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lKQogewogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogICAgIG1faW50ZXJydXB0aW9uT2JzZXJ2ZXJIZWxwZXIgPSBh
ZG9wdE5TKFtbV2ViSW50ZXJydXB0aW9uT2JzZXJ2ZXJIZWxwZXIgYWxsb2NdIGluaXRXaXRoQ2Fs
bGJhY2s6c2Vzc2lvbl0pOwpAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBw
b2xpCiAKICAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBjYXRl
Z29yeSA9ICVzIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobmV3Q2F0ZWdvcnkpLmFzY2lp
KCkuZGF0YSgpKTsKIAotICAgIGlmIChjYXRlZ29yeU92ZXJyaWRlKCkgJiYgY2F0ZWdvcnlPdmVy
cmlkZSgpICE9IG5ld0NhdGVnb3J5KSB7CisgICAgaWYgKGNhdGVnb3J5T3ZlcnJpZGUoKSAhPSAg
Q2F0ZWdvcnlUeXBlOjpOb25lICYmIGNhdGVnb3J5T3ZlcnJpZGUoKSAhPSBuZXdDYXRlZ29yeSkg
ewogICAgICAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBvdmVy
cmlkZSBzZXQsIE5PVCBjaGFuZ2luZyIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTQ4
LDI3ICsxNDgsMjcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlw
ZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkKICAgICBBVkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5T3B0aW9ucyBvcHRpb25zID0gMDsKIAogICAgIHN3aXRjaCAobmV3Q2F0ZWdvcnkp
IHsKLSAgICBjYXNlIEFtYmllbnRTb3VuZDoKKyAgICBjYXNlIENhdGVnb3J5VHlwZTo6QW1iaWVu
dFNvdW5kOgogICAgICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlB
bWJpZW50OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFNvbG9BbWJpZW50U291bmQ6CisgICAg
Y2FzZSBDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50U291bmQ6CiAgICAgICAgIGNhdGVnb3J5U3Ry
aW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVNvbG9BbWJpZW50OwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIE1lZGlhUGxheWJhY2s6CisgICAgY2FzZSBDYXRlZ29yeVR5cGU6Ok1lZGlhUGxh
eWJhY2s6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBs
YXliYWNrOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFJlY29yZEF1ZGlvOgorICAgIGNhc2Ug
Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5UmVjb3JkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBsYXlB
bmRSZWNvcmQ6CisgICAgY2FzZSBDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQ6CiAgICAgICAg
IGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXlBbmRSZWNvcmQ7CiAg
ICAgICAgIGNhdGVnb3J5TW9kZSA9IEFWQXVkaW9TZXNzaW9uTW9kZVZpZGVvQ2hhdDsKICAgICAg
ICAgb3B0aW9ucyB8PSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uQWxsb3dCbHVldG9vdGgg
fCBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uQWxsb3dCbHVldG9vdGhBMkRQIHwgQVZBdWRp
b1Nlc3Npb25DYXRlZ29yeU9wdGlvbkRlZmF1bHRUb1NwZWFrZXIgfCBBVkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5T3B0aW9uQWxsb3dBaXJQbGF5OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEF1ZGlv
UHJvY2Vzc2luZzoKKyAgICBjYXNlIENhdGVnb3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nOgogICAg
ICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Np
bmc7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTm9uZToKKyAgICBjYXNlIENhdGVnb3J5VHlw
ZTo6Tm9uZToKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
QW1iaWVudDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMTg0LDE4ICsxODQsMTggQEAgQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiB7
CiAgICAgTlNTdHJpbmcgKmNhdGVnb3J5U3RyaW5nID0gW1tQQUw6OmdldEFWQXVkaW9TZXNzaW9u
Q2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdvcnldOwogICAgIGlmIChbY2F0ZWdvcnlTdHJp
bmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudF0pCi0gICAgICAgIHJldHVy
biBBbWJpZW50U291bmQ7CisgICAgICAgIHJldHVybiBDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3Vu
ZDsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29y
eVNvbG9BbWJpZW50XSkKLSAgICAgICAgcmV0dXJuIFNvbG9BbWJpZW50U291bmQ7CisgICAgICAg
IHJldHVybiBDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50U291bmQ7CiAgICAgaWYgKFtjYXRlZ29y
eVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFja10pCi0gICAgICAg
IHJldHVybiBNZWRpYVBsYXliYWNrOworICAgICAgICByZXR1cm4gQ2F0ZWdvcnlUeXBlOjpNZWRp
YVBsYXliYWNrOwogICAgIGlmIChbY2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5UmVjb3JkXSkKLSAgICAgICAgcmV0dXJuIFJlY29yZEF1ZGlvOworICAgICAgICBy
ZXR1cm4gQ2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbzsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5n
IGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXlBbmRSZWNvcmRdKQotICAgICAgICBy
ZXR1cm4gUGxheUFuZFJlY29yZDsKKyAgICAgICAgcmV0dXJuIENhdGVnb3J5VHlwZTo6UGxheUFu
ZFJlY29yZDsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25D
YXRlZ29yeUF1ZGlvUHJvY2Vzc2luZ10pCi0gICAgICAgIHJldHVybiBBdWRpb1Byb2Nlc3Npbmc7
Ci0gICAgcmV0dXJuIE5vbmU7CisgICAgICAgIHJldHVybiBDYXRlZ29yeVR5cGU6OkF1ZGlvUHJv
Y2Vzc2luZzsKKyAgICByZXR1cm4gQ2F0ZWdvcnlUeXBlOjpOb25lOwogfQogCiBSb3V0ZVNoYXJp
bmdQb2xpY3kgQXVkaW9TZXNzaW9uOjpyb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0K
aW5kZXggY2E3MTA0OTk3NjJlNWE0ZmI4ZDA4YjU4YzQ4YzU2MTUzOGI4YzFkOS4uZjhlNDQ5ZDM3
ZjA4ZTFlMjcxMjYwNTQ5Zjc3OTQwYzNiZTM1YTYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLm1tCkBAIC05NCw3ICs5NCw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgT1NTdGF0dXMgaGFuZGxlQnVmZmVyU2l6ZUNoYW5nZShB
dWRpb09iamVjdElELCBVSW50MzIsIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzKiwg
dm9pZCogaW5DbGllbnREYXRhKTsKIAogICAgIE9wdGlvbmFsPGJvb2w+IGxhc3RNdXRlZFN0YXRl
OwotICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5IHsgQXVkaW9TZXNzaW9u
OjpOb25lIH07CisgICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgeyBBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OwogI2lmIEVOQUJMRShST1VUSU5HX0FSQklU
UkFUSU9OKQogICAgIGJvb2wgc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBmYWxzZSB9OwogICAg
IE9wdGlvbmFsPGJvb2w+IHBsYXlpbmdUb0JsdWV0b290aDsKQEAgLTIyOCw3ICsyMjgsNyBAQCB2
b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBSb3V0
ZVNoYXJpbmdQb2xpY3kpCiAgICAgICAgIG1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50LT5sZWF2
ZVJvdXRpbmdBYnJpdHJhdGlvbigpOwogICAgIH0KIAotICAgIGlmIChjYXRlZ29yeSA9PSBBbWJp
ZW50U291bmQgfHwgY2F0ZWdvcnkgPT0gU29sb0FtYmllbnRTb3VuZCB8fCBjYXRlZ29yeSA9PSBB
dWRpb1Byb2Nlc3NpbmcgfHwgY2F0ZWdvcnkgPT0gTm9uZSkKKyAgICBpZiAoY2F0ZWdvcnkgPT0g
Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQgfHwgY2F0ZWdvcnkgPT0gQ2F0ZWdvcnlUeXBlOjpT
b2xvQW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IENhdGVnb3J5VHlwZTo6QXVkaW9Qcm9jZXNz
aW5nIHx8IGNhdGVnb3J5ID09IENhdGVnb3J5VHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgdXNpbmcgUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgPSBBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0
cmF0b3IuaAppbmRleCAxZmRmNGJiMDgyNjIwMjNmODg0ZjE5NWRlNWM0NmU5MWQ4ZmI5ODk5Li4z
YTI1NTU1YzQ1MDQ4MGQyOWIxNDI5NGZhZmFhOTgyNTY3YWE0ODgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0
cmF0b3IuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRSb3V0aW5nQXJi
aXRyYXRpb25Gb3JUb2tlbihjb25zdCBUb2tlbiYpOwogCiBwcml2YXRlOgotICAgIE9wdGlvbmFs
PEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiBtX2N1cnJlbnRDYXRlZ29yeSB7IEF1ZGlvU2Vz
c2lvbjo6Tm9uZSB9OworICAgIE9wdGlvbmFsPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiBt
X2N1cnJlbnRDYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIH07CiAg
ICAgV2Vha0hhc2hTZXQ8VG9rZW4+IG1fdG9rZW5zOwogICAgIFZlY3RvcjxBcmJpdHJhdGlvbkNh
bGxiYWNrPiBtX2VucXVldWVkQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9zZXR1cEFyYml0cmF0aW9u
T25nb2luZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IubW0KaW5kZXggMTc1MjdlN2I1
ZGI2YjljODhmZDJkODllOWExMGFiZjk1M2ZmY2Y1MC4uNmZlYTU5MmY2ODZlZTU3NzkwNjMxNzM3
MjY0NjA5YmYzOTFjOTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbQpAQCAtNzksMTMgKzc5
LDEzIEBAIHZvaWQgU2hhcmVkUm91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0
aW9uRm9yVG9rZW4oY29uc3QgVG9rZW4mIHRva2VuCiAKICAgICBBVkF1ZGlvUm91dGluZ0FyYml0
cmF0aW9uQ2F0ZWdvcnkgYXJiaXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRy
YXRpb25DYXRlZ29yeVBsYXliYWNrOwogICAgIHN3aXRjaCAocmVxdWVzdGVkQ2F0ZWdvcnkpIHsK
LSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjazoKKyAgICBjYXNlIEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrOgogICAgICAgICBhcmJpdHJhdGlvbkNh
dGVnb3J5ID0gQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheWJhY2s7CiAgICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRpbzoKKyAgICBjYXNl
IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbzoKICAgICAgICAgYXJiaXRy
YXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25DYXRlZ29yeVBsYXlBbmRS
ZWNvcmQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVj
b3JkOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQ6
CiAgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9u
Q2F0ZWdvcnlQbGF5QW5kUmVjb3JkVm9pY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFz
ZUF1ZGlvU2hhcmVkVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKaW5kZXggMzU1N2ExZWFkMWMxNjU2NDUxNmFj
Y2M2ODhiM2I5ZDM3OTQzZjJjZi4uNTNjN2U3YmNlMzQ1NzYyODI4ZTdhM2IzOWE3OGU5YmE1ZTIz
MjE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcApAQCAtMTAzLDcgKzEwMyw3IEBA
IE9TU3RhdHVzIEJhc2VBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0VW5pdCgpCiAgICAgZm9yRWFjaENs
aWVudChbXShhdXRvJiBjbGllbnQpIHsKICAgICAgICAgY2xpZW50LmF1ZGlvVW5pdFdpbGxTdGFy
dCgpOwogICAgIH0pOwotICAgIEFTU0VSVCghRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzaG91
bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgpIHx8IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkKTsKKyAgICBB
U1NFUlQoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkoKSB8fCBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09
IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkKTsKIAogICAgIGlmIChh
dXRvIGVycm9yID0gc3RhcnRJbnRlcm5hbCgpKSB7CiAgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZS5jcHAKaW5kZXggNzVkYjg4MDVmNDc5ZjI0YjMzMTEzNDc1YWZkOWZkZGZkNGE2
NGJkMS4uYzQ5ZTZmYmYxNjc4OWQ5NjhjYzA1NDczNGI3MTU1MGFlZmY5ZTVmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
OjpzdGFydFByb2R1Y2luZ0RhdGEoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgp
LnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkuc2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsKLSAgICBB
U1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nl
c3Npb246OlBsYXlBbmRSZWNvcmQpOworICAgIEFTU0VSVChBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5k
UmVjb3JkKTsKICNlbmRpZgogCiAgICAgaWYgKCFzYW1wbGVSYXRlKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggYzFiZTNkZTgzYmZlNjgxZjdjYjNlZGM1ZDMzYTlhNmUy
MDY2NzRmNC4uYjkxNWM5M2Y4ZjY4MGUwNTJkNjUyNjVmNWY5ZmRlMzM2ZTljMjlhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTQxMywxOSArNTQxMywxOSBAQCBTdHJp
bmcgSW50ZXJuYWxzOjphdWRpb1Nlc3Npb25DYXRlZ29yeSgpIGNvbnN0CiB7CiAjaWYgVVNFKEFV
RElPX1NFU1NJT04pCiAgICAgc3dpdGNoIChBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5j
YXRlZ29yeSgpKSB7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDoKKyAgICBj
YXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQ6CiAgICAgICAgIHJl
dHVybiAiQW1iaWVudFNvdW5kIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVu
dFNvdW5kOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50
U291bmQ6CiAgICAgICAgIHJldHVybiAiU29sb0FtYmllbnRTb3VuZCJfczsKLSAgICBjYXNlIEF1
ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjazoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlOjpNZWRpYVBsYXliYWNrOgogICAgICAgICByZXR1cm4gIk1lZGlhUGxheWJhY2siX3M7
Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246OlJlY29yZEF1ZGlvOgorICAgIGNhc2UgQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1ZGlvOgogICAgICAgICByZXR1cm4gIlJlY29yZEF1
ZGlvIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOgorICAgIGNhc2Ug
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQ6CiAgICAgICAgIHJldHVy
biAiUGxheUFuZFJlY29yZCJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNz
aW5nOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2lu
ZzoKICAgICAgICAgcmV0dXJuICJBdWRpb1Byb2Nlc3NpbmciX3M7Ci0gICAgY2FzZSBBdWRpb1Nl
c3Npb246Ok5vbmU6CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZToK
ICAgICAgICAgcmV0dXJuICJOb25lIl9zOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xvY2FsQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IuaAppbmRleCBiZTQ5MmJiNjg5ODJlZDQ2Mjg2ZTg0ZGVhNWRlMTA1ZWY2
MTU3N2VjLi45YWIyZGNlNGMwNzE2NmIxYzNhMjcxZGIyMTE0MzgxZjc1N2MxMmViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xvY2FsQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xvY2FsQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgbGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKSBmaW5hbDsKIAogICAgIFVuaXF1ZVJl
ZjxXZWJDb3JlOjpTaGFyZWRSb3V0aW5nQXJiaXRyYXRvcjo6VG9rZW4+IG1fdG9rZW47Ci0gICAg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeSB7IFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIG1fY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
Tm9uZSB9OwogICAgIEFyYml0cmF0aW9uU3RhdHVzIG1fYXJiaXRyYXRpb25TdGF0dXMgeyBBcmJp
dHJhdGlvblN0YXR1czo6Tm9uZSB9OwogICAgIFdhbGxUaW1lIG1fYXJiaXRyYXRpb25VcGRhdGVU
aW1lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCmluZGV4IDVjYWI1YTliNTRkMDE4Mjg2ZjE3MzE5
NjJkYTRkOTY3ZGQ4ZTAxNmYuLjJjMDk5MDQ1YTdmNGRmZDhjNGQ5YTEzMWM5OTA2ZDExYjg4YTdk
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApAQCAtNjAsOCArNjAsNiBAQCBSZW1vdGVBdWRpb1Nl
c3Npb25Db25maWd1cmF0aW9uIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25maWd1cmF0aW9u
KCkKIHsKICAgICBhdXRvJiBzZXNzaW9uID0gYXVkaW9TZXNzaW9uTWFuYWdlcigpLnNlc3Npb24o
KTsKICAgICByZXR1cm4gewotICAgICAgICBzZXNzaW9uLmNhdGVnb3J5KCksCi0gICAgICAgIHNl
c3Npb24ucm91dGVTaGFyaW5nUG9saWN5KCksCiAgICAgICAgIHNlc3Npb24ucm91dGluZ0NvbnRl
eHRVSUQoKSwKICAgICAgICAgc2Vzc2lvbi5zYW1wbGVSYXRlKCksCiAgICAgICAgIHNlc3Npb24u
YnVmZmVyU2l6ZSgpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaAppbmRleCAxZmVmYWMzYWM4ZGZhNDU2NDU0Yzk4
NGZjOTE4YzY5YjM1ZGJhNjA3Li4zMGViMTE5NTQ2YTExNmEwMmE3YTNhZmY4NmNlY2NjMTg3YWQx
MjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuaApAQCAtNzgsNyArNzgsNyBAQCBwcml2YXRlOgogICAgIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOwogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgbV9ncHVDb25uZWN0aW9uOwotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIG1fY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyAgICBX
ZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUgfTsKICAgICBXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xpY3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQ
b2xpY3k6OkRlZmF1bHQgfTsKICAgICBzaXplX3QgbV9wcmVmZXJyZWRCdWZmZXJTaXplIHsgMCB9
OwogICAgIGJvb2wgbV9hY3RpdmUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyLmNwcAppbmRleCBlYjk0MmI4MjhiNmY0ZjA0MzM0YmQwNDAzZDQzYTgzNzAwOWExMmI2Li5h
MjhiNjBiZjIxNGUzYmE3YjQ2ZDYyNTJkYjE3MDYxZDM3NDEyZDgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtNDAsNyArNDAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogc3RhdGljIGJvb2wgY2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKEF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQogewotICAgIHJldHVybiBjYXRlZ29yeSA9PSBBdWRp
b1Nlc3Npb246OkFtYmllbnRTb3VuZDsKKyAgICByZXR1cm4gY2F0ZWdvcnkgPT0gQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDsKIH0KIAogUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKQpAQCAtNzAsNyAr
NzAsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHko
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkmIHByb3h5KQogCiB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlcjo6dXBkYXRlQ2F0ZWdvcnkoKQogewotICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpOb25lOworICAgIEF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5v
bmU7CiAgICAgUm91dGVTaGFyaW5nUG9saWN5IHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6
RGVmYXVsdDsKIAogICAgIEhhc2hDb3VudGVkU2V0PEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
LCBXVEY6OkludEhhc2g8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+LCBXVEY6OlN0cm9uZ0Vu
dW1IYXNoVHJhaXRzPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPj4gY2F0ZWdvcnlDb3VudHM7
CkBAIC04MCwyMCArODAsMjAgQEAgdm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6
OnVwZGF0ZUNhdGVnb3J5KCkKICAgICAgICAgcG9saWN5Q291bnRzLmFkZChvdGhlclByb3h5LnJv
dXRlU2hhcmluZ1BvbGljeSgpKTsKICAgICB9CiAKLSAgICBpZiAoY2F0ZWdvcnlDb3VudHMuY29u
dGFpbnMoQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkKSkKLSAgICAgICAgY2F0ZWdvcnkgPSBB
dWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQ7Ci0gICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMu
Y29udGFpbnMoQXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRpbykpCi0gICAgICAgIGNhdGVnb3J5ID0g
QXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRpbzsKLSAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5j
b250YWlucyhBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2spKQotICAgICAgICBjYXRlZ29yeSA9
IEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjazsKLSAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50
cy5jb250YWlucyhBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQpKQotICAgICAgICBjYXRl
Z29yeSA9IEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZDsKLSAgICBlbHNlIGlmIChjYXRl
Z29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCkpCi0gICAgICAg
IGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ7Ci0gICAgZWxzZSBpZiAoY2F0
ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nlc3NpbmcpKQotICAg
ICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nOworICAgIGlmIChj
YXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFu
ZFJlY29yZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
OlBsYXlBbmRSZWNvcmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1ZGlvKSkKKyAgICAgICAgY2F0ZWdvcnkg
PSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW87CisgICAgZWxzZSBpZiAo
Y2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1lZGlh
UGxheWJhY2spKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpNZWRpYVBsYXliYWNrOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0
ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZDsKKyAg
ICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6QW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNv
bnRhaW5zKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3NpbmcpKQorICAg
ICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3Np
bmc7CiAgICAgZWxzZQotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKyAg
ICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZTsKIAogICAg
IHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdDsKICAgICBpZiAocG9saWN5Q291
bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbykpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDM3ZWE2OTNhNmNjYTg3YjBjOTJlYjQwMDc2ZTM5Yjky
Nzg4ODYxMGEuLjAxOTQyOWY0ODMyMGM5Y2U3ZTVlN2JhOWMxMWJlMDBjYmVhMWI2OWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgogICAg
ICAgICBhdXRvIGJ1ZmZlclNpemUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1w
bGVSYXRlKCkgLyA1MDsKICAgICAgICAgaWYgKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigp
LnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+IGJ1ZmZlclNpemUpCiAgICAgICAgICAgICBBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUp
OwotICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRp
b1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7Cisg
ICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkLCBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRl
ZmF1bHQpOwogICAgIH0KIAogICAgIHZvaWQgc3RhcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eS5oCmluZGV4IDRkOTJlOGU3ZDU2YThlNDQ5NDcxOWM1MzZmOGY5MjdkY2E5OGY1
NjQuLjY5Y2E0YWNhMGE0NzMzZjhkN2UyMmRmYTE5MzU4NDU3YjNlMGQyN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGVuZFJvdXRpbmdBcmJpdHJhdGlvbigpOwogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBt
X3Byb2Nlc3M7Ci0gICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRl
Z29yeSB7IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworICAgIFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OwogICAgIEFyYml0cmF0aW9uU3RhdHVzIG1fYXJiaXRyYXRp
b25TdGF0dXMgeyBBcmJpdHJhdGlvblN0YXR1czo6Tm9uZSB9OwogICAgIFdhbGxUaW1lIG1fYXJi
aXRyYXRpb25VcGRhdGVUaW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggMTQyZGZmMzQxODhl
ZmNkYjg0NDQ1ODY0ZDY5MDljNTgxNzUyMDg5MS4uZDg2YjM3ZWFlMDBmMTY2M2QwMWUwNWY0MTNl
NjI1NGQzZjRiODBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcApAQCAtOTQsMTIgKzk0LDExIEBAIFJl
bW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29uZmln
dXJhdGlvbigpCiB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlU
eXBlIHR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCiB7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgYXV0byYgY29uZmlndXJhdGlvbiA9IHRoaXMtPmNvbmZpZ3VyYXRpb24oKTsKLSAg
ICBpZiAodHlwZSA9PSBjb25maWd1cmF0aW9uLmNhdGVnb3J5ICYmIHBvbGljeSA9PSBjb25maWd1
cmF0aW9uLnJvdXRlU2hhcmluZ1BvbGljeSkKKyAgICBpZiAodHlwZSA9PSBtX2NhdGVnb3J5ICYm
IHBvbGljeSA9PSBtX3JvdXRlU2hhcmluZ1BvbGljeSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Y29uZmlndXJhdGlvbi5jYXRlZ29yeSA9IHR5cGU7Ci0gICAgY29uZmlndXJhdGlvbi5yb3V0ZVNo
YXJpbmdQb2xpY3kgPSBwb2xpY3k7CisgICAgbV9jYXRlZ29yeSA9IHR5cGU7CisgICAgbV9yb3V0
ZVNoYXJpbmdQb2xpY3kgPSBwb2xpY3k7CiAKICAgICBlbnN1cmVDb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlNldENhdGVnb3J5KHR5cGUsIHBvbGlj
eSksIHsgfSk7CiAjZWxzZQpAQCAtMTI1LDIyICsxMjQsMTIgQEAgYm9vbCBSZW1vdGVBdWRpb1Nl
c3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCBhY3RpdmUpCiBBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZSBSZW1vdGVBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKIHsKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gY29uZmlndXJhdGlvbigpLmNhdGVnb3J5Owor
ICAgIHJldHVybiBtX2NhdGVnb3J5OwogI2Vsc2UKLSAgICByZXR1cm4gTm9uZTsKKyAgICByZXR1
cm4gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmU7CiAjZW5kaWYKIH0KIAotdm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotewotICAgIGJvb2wgbXV0ZWRTdGF0ZUNo
YW5nZWQgPSAhbV9jb25maWd1cmF0aW9uIHx8IGNvbmZpZ3VyYXRpb24uaXNNdXRlZCAhPSBtX2Nv
bmZpZ3VyYXRpb24tPmlzTXV0ZWQ7Ci0KLSAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNv
bmZpZ3VyYXRpb24pOwotCi0gICAgaWYgKG11dGVkU3RhdGVDaGFuZ2VkKQotICAgICAgICBoYW5k
bGVNdXRlZFN0YXRlQ2hhbmdlKCk7Ci19Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaAppbmRl
eCA1NDVjY2U5OGIzMDU4ODZhN2RkNWQyZTNmYzE3NjI5ODk1MTdlZGYwLi5mNTg2MTdmOWI5OWY3
MjdhODBjZjU3MmFmYThkODVmYWYxNGJkMTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKQEAgLTc0LDcgKzc0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluaXRpYWxpemVDb25maWd1cmF0aW9uSWZOZWNlc3Nh
cnkoKTsKIAogICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IGZpbmFsOwotICAgIFdl
YkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdCBmaW5h
bCB7IHJldHVybiBjb25maWd1cmF0aW9uKCkucm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5OyB9CiAgICAgU3RyaW5nIHJvdXRpbmdDb250
ZXh0VUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uZmlndXJhdGlvbigpLnJvdXRpbmdDb250
ZXh0VUlEOyB9CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGNv
bmZpZ3VyYXRpb24oKS5zYW1wbGVSYXRlOyB9CiAgICAgc2l6ZV90IGJ1ZmZlclNpemUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBjb25maWd1cmF0aW9uKCkuYnVmZmVyU2l6ZTsgfQpAQCAtODUsNiAr
ODUsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBjb25maWd1cmF0aW9uKCkuaXNBY3RpdmU7IH0KIAogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2Vz
czsKKworICAgIENhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgQ2F0ZWdvcnlUeXBlOjpOb25lIH07
CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91dGVTaGFyaW5nUG9saWN5IHsg
V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0IH07CiAgICAgT3B0aW9uYWw8UmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbj4gbV9jb25maWd1cmF0aW9uOwogICAgIFdlYWtQ
dHI8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgppbmRleCA5ZjA4Y2UzZjMwZjlkMjAzMWUwNjI0
ZTUzYmNmODFjMjRmMzY3OWQxLi5iNGJlZDE2Mzk1NWIxMWY0OWNlMzg5ZWIxNmQ4MjUzMjAzZmEy
YThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNiBA
QAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCiAKIG1lc3Nh
Z2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsKLSAgICBDb25maWd1cmF0
aW9uQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCiAgICAgQmVnaW5JbnRlcnJ1cHRpb24oKQogICAgIEVuZEludGVycnVw
dGlvbihXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok1heVJlc3VtZSBmbGFncykKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgKaW5kZXggOWY3NTdlNzk2ZDdkODY4YmY0ZGZk
ZGQ4YzIyMWU3MzM1ZmRkZjBjZS4uNmZjOGJhOGI2OWQ5MDg5Njc1Y2I1NmU3ZWU0NmEyMDg4MWVh
YjkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgKQEAgLTMyLDkg
KzMyLDYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgUmVtb3RlQXVkaW9TZXNzaW9u
Q29uZmlndXJhdGlvbiB7Ci0KLSAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSBjYXRlZ29yeSB7IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIH07
Ci0gICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSB7IFdl
YkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCB9OwogICAgIFN0cmluZyByb3V0aW5n
Q29udGV4dFVJRDsKICAgICBmbG9hdCBzYW1wbGVSYXRlIHsgMCB9OwogICAgIHNpemVfdCBidWZm
ZXJTaXplIHsgMCB9OwpAQCAtNDcsOCArNDQsNiBAQCBzdHJ1Y3QgUmVtb3RlQXVkaW9TZXNzaW9u
Q29uZmlndXJhdGlvbiB7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBj
YXRlZ29yeTsKLSAgICAgICAgZW5jb2RlciA8PCByb3V0ZVNoYXJpbmdQb2xpY3k7CiAgICAgICAg
IGVuY29kZXIgPDwgcm91dGluZ0NvbnRleHRVSUQ7CiAgICAgICAgIGVuY29kZXIgPDwgc2FtcGxl
UmF0ZTsKICAgICAgICAgZW5jb2RlciA8PCBidWZmZXJTaXplOwpAQCAtNjIsMTYgKzU3LDYgQEAg
c3RydWN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gewogICAgIHRlbXBsYXRlIDxj
bGFzcyBEZWNvZGVyPgogICAgIHN0YXRpYyBPcHRpb25hbDxSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0gICAgICAgIE9wdGlv
bmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiBjYXRlZ29yeTsKLSAgICAg
ICAgZGVjb2RlciA+PiBjYXRlZ29yeTsKLSAgICAgICAgaWYgKCFjYXRlZ29yeSkKLSAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5PiByb3V0ZVNoYXJpbmdQb2xpY3k7Ci0gICAgICAgIGRlY29kZXIgPj4g
cm91dGVTaGFyaW5nUG9saWN5OwotICAgICAgICBpZiAoIXJvdXRlU2hhcmluZ1BvbGljeSkKLSAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KICAgICAgICAgT3B0aW9uYWw8U3RyaW5n
PiByb3V0aW5nQ29udGV4dFVJRDsKICAgICAgICAgZGVjb2RlciA+PiByb3V0aW5nQ29udGV4dFVJ
RDsKICAgICAgICAgaWYgKCFyb3V0aW5nQ29udGV4dFVJRCkKQEAgLTExMyw4ICs5OCw2IEBAIHN0
cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIHsKICAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAKICAgICAgICAgcmV0dXJuIHt7Ci0gICAgICAgICAgICBXVEZNb3Zl
KCpjYXRlZ29yeSksCi0gICAgICAgICAgICBXVEZNb3ZlKCpyb3V0ZVNoYXJpbmdQb2xpY3kpLAog
ICAgICAgICAgICAgV1RGTW92ZSgqcm91dGluZ0NvbnRleHRVSUQpLAogICAgICAgICAgICAgKnNh
bXBsZVJhdGUsCiAgICAgICAgICAgICAqYnVmZmVyU2l6ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4IDUxYzAwZWU4NjA5
NTMzMzk4NDkwYjZiYWM4NzBkZDgwMTI5YzljMzQuLjUzY2IyNmVmNDk5MWE1MGRlMWE4OTc0ODVk
ZDNjNmY3Y2VlMmEwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIGF1dG8gYnVmZmVyU2l6ZSA9IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBs
ZVJhdGUoKSAvIDUwOwogICAgICAgICBpZiAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
cHJlZmVycmVkQnVmZmVyU2l6ZSgpID4gYnVmZmVyU2l6ZSkKICAgICAgICAgICAgIEF1ZGlvU2Vz
c2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7
Ci0gICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlv
U2Vzc2lvbjo6UGxheUFuZFJlY29yZCwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyAg
ICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQsIFJvdXRlU2hhcmluZ1BvbGljeTo6RGVm
YXVsdCk7CiAjZW5kaWYKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCBiOGU4ODZiYWQ0MmM2NmFh
ODA5M2ZlNmQzYzY4Zjk4MTFkNTQ2ZTNhLi45NDhhZjMyMTkxZDBhOWFhNWMxZDY2YTE3NzU4MGYy
MzA2OTcyZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dl
YlBsdWdpbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lu
cy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbigpCiAgICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNhdGlv
bjo6aXNNb2JpbGVTYWZhcmkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpNZWRpYVBsYXliYWNrLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQp
OworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5
KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrLCBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDlh
MTE0NmI3YjY5MjQwMDU0YjI0YmU4ZGFjMzk1N2IxMjM0OTNhNDUuLmZmNzM4ODViMTg1NGJjZTRk
YzM5NGU3OTE4OTFhZGM5MTQwY2ZkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNDIzLDcgKzQyMyw3IEBAIHB1YmxpYzoK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIEBOTywgV2ViS2l0U3RvcmFnZVRy
YWNrZXJFbmFibGVkUHJlZmVyZW5jZUtleSwKLSAgICAgICAgQChBdWRpb1Nlc3Npb246Ok5vbmUp
LCBXZWJLaXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlLAorICAgICAgICBAKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSkpLCBXZWJLaXRB
dWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlLAogCiAgICAgICAgIC8vIFBlci1PcmlnaW4gUXVv
dGEgb24gaU9TIGlzIDI1TUIuIFdoZW4gdGhlIHF1b3RhIGlzIHJlYWNoZWQgZm9yIGEgcGFydGlj
dWxhciBvcmlnaW4KICAgICAgICAgLy8gdGhlIHF1b3RhIGZvciB0aGF0IG9yaWdpbiBjYW4gYmUg
aW5jcmVhc2VkLiBTZWUgYWxzbyB3ZWJWaWV3OmV4Y2VlZGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhRm9yU2VjdXJpdHlPcmlnaW46dG90YWxTcGFjZU5lZWRlZCBpbiBXZWJVSS9XZWJVSURl
bGVnYXRlLm0uCkBAIC0yMDY2LDMwICsyMDY2LDMwIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNTdHJp
bmc+JiBjbGFzc0lCQ3JlYXRvcklEKCkKIAogLSAodm9pZClzZXRBdWRpb1Nlc3Npb25DYXRlZ29y
eU92ZXJyaWRlOih1bnNpZ25lZClvdmVycmlkZQogewotICAgIGlmIChvdmVycmlkZSA+IEF1ZGlv
U2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nKSB7CisgICAgaWYgKG92ZXJyaWRlID4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3Npbmcp
KSB7CiAgICAgICAgIC8vIENsaWVudHMgYXJlIHBhc3NpbmcgdXMgT1NUeXBlcyB2YWx1ZXMgZnJv
bSBBdWRpb1Rvb2xib3gvQXVkaW9TZXNzaW9uLmgsCiAgICAgICAgIC8vIHdoaWNoIG5lZWQgdG8g
YmUgdHJhbnNsYXRlZCBpbnRvIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOgogICAgICAgICBz
d2l0Y2ggKG92ZXJyaWRlKSB7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnlBbWJpZW50U291bmQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBXZWJLaXRBdWRpb1Nlc3Npb25DYXRlZ29yeVNvbG9BbWJpZW50
U291bmQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRT
b3VuZDsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5TWVkaWFQbGF5YmFj
azoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrOwor
ICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGU6Ok1lZGlhUGxheWJhY2spOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlSZWNvcmRBdWRpbzoKLSAgICAgICAg
ICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRpbzsKKyAgICAgICAgICAgIG92
ZXJyaWRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpSZWNvcmRBdWRpbyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJLaXRB
dWRpb1Nlc3Npb25DYXRlZ29yeVBsYXlBbmRSZWNvcmQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9
IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZDsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVj
b3JkKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5QXVkaW9Qcm9jZXNzaW5nOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nl
c3Npb246OkF1ZGlvUHJvY2Vzc2luZzsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3Npbmcp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBvdmVy
cmlkZSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>