<?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>219227</bug_id>
          
          <creation_ts>2020-11-20 14:45:39 -0800</creation_ts>
          <short_desc>[Media In GPU Process][MSE] Add the support to forward initialization segment from the GPU Process to Web processes</short_desc>
          <delta_ts>2020-12-01 17:45:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1709664</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-20 14:45:39 -0800</bug_when>
    <thetext>[Media In GPU Process][MSE] Add the support to forward initialization segment from the GPU Process to Web processes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709795</commentid>
    <comment_count>1</comment_count>
      <attachid>414772</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-21 16:31:12 -0800</bug_when>
    <thetext>Created attachment 414772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709800</commentid>
    <comment_count>2</comment_count>
      <attachid>414774</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-21 17:03:41 -0800</bug_when>
    <thetext>Created attachment 414774
Fix build failures on the WPE port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709824</commentid>
    <comment_count>3</comment_count>
      <attachid>414784</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-21 22:03:40 -0800</bug_when>
    <thetext>Created attachment 414784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710384</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-27 14:46:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/71768350&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711092</commentid>
    <comment_count>5</comment_count>
      <attachid>414784</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-01 10:34:28 -0800</bug_when>
    <thetext>Comment on attachment 414784
Patch

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

This would have been better as two patches, one for the remote track cleanup/simplification, and another for the new initialization segment work.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:504
&gt; +    ASSERT(m_audioTracks.contains(&amp;track));
&gt; +    auto audioTrack = m_audioTracks.get(&amp;track);
&gt; +    m_webProcessConnection-&gt;send(Messages::MediaPlayerPrivateRemote::RemoveRemoteAudioTrack(audioTrack-&gt;identifier()), m_id);

This will now crash in a release build if the track is not in the map.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:517
&gt; +    ASSERT(m_videoTracks.contains(&amp;track));
&gt; +    auto videoTrack = m_videoTracks.get(&amp;track);
&gt; +    m_webProcessConnection-&gt;send(Messages::MediaPlayerPrivateRemote::RemoveRemoteVideoTrack(videoTrack-&gt;identifier()), m_id);

Ditto

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:530
&gt;      ASSERT(m_textTracks.contains(&amp;track));
&gt; +    auto textTrack = m_textTracks.get(&amp;track);
&gt; +    m_webProcessConnection-&gt;send(Messages::MediaPlayerPrivateRemote::RemoveRemoteTextTrack(textTrack-&gt;identifier()), m_id);

Ditto

&gt; Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp:74
&gt; +        auto description = audioTrackInfo.description;
&gt; +        segmentInfo.audioTracks.append({ { description-&gt;codec(), description-&gt;isVideo(), description-&gt;isAudio(), description-&gt;isText() }, identifier });

This would be clearer/cleaner if you defined a MediaDescriptionInfo constructor that took a MediaDescription&amp;.

&gt; Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp:80
&gt; +        auto description = videoTrackInfo.description;
&gt; +        segmentInfo.videoTracks.append({ { description-&gt;codec(), description-&gt;isVideo(), description-&gt;isAudio(), description-&gt;isText() }, identifier });

Ditto

&gt; Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp:86
&gt; +        auto description = textTrackInfo.description;
&gt; +        segmentInfo.textTracks.append({ { description-&gt;codec(), description-&gt;isVideo(), description-&gt;isAudio(), description-&gt;isText() }, identifier });

Ditto

&gt; Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:170
&gt; +        info.description = adoptRef(*new RemoteMediaDescription(audioTrack.description));

`RemoteMediaDescription::create(track.description)` or `RemoteMediaDescription::create(track)` would be more idiomatic

&gt; Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:177
&gt; +        info.description = adoptRef(*new RemoteMediaDescription(videoTrack.description));

Ditto

&gt; Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:184
&gt; +        info.description = adoptRef(*new RemoteMediaDescription(textTrack.description));

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711150</commentid>
    <comment_count>6</comment_count>
      <attachid>415158</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-12-01 13:50:03 -0800</bug_when>
    <thetext>Created attachment 415158
Updated patch based on Eric&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711164</commentid>
    <comment_count>7</comment_count>
      <attachid>414784</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-12-01 14:13:51 -0800</bug_when>
    <thetext>Comment on attachment 414784
Patch

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

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:504
&gt;&gt; +    m_webProcessConnection-&gt;send(Messages::MediaPlayerPrivateRemote::RemoveRemoteAudioTrack(audioTrack-&gt;identifier()), m_id);
&gt; 
&gt; This will now crash in a release build if the track is not in the map.

Good point! Added a protection here.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:517
&gt;&gt; +    m_webProcessConnection-&gt;send(Messages::MediaPlayerPrivateRemote::RemoveRemoteVideoTrack(videoTrack-&gt;identifier()), m_id);
&gt; 
&gt; Ditto

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:530
&gt;&gt; +    m_webProcessConnection-&gt;send(Messages::MediaPlayerPrivateRemote::RemoveRemoteTextTrack(textTrack-&gt;identifier()), m_id);
&gt; 
&gt; Ditto

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp:74
&gt;&gt; +        segmentInfo.audioTracks.append({ { description-&gt;codec(), description-&gt;isVideo(), description-&gt;isAudio(), description-&gt;isText() }, identifier });
&gt; 
&gt; This would be clearer/cleaner if you defined a MediaDescriptionInfo constructor that took a MediaDescription&amp;.

Agree. Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp:80
&gt;&gt; +        segmentInfo.videoTracks.append({ { description-&gt;codec(), description-&gt;isVideo(), description-&gt;isAudio(), description-&gt;isText() }, identifier });
&gt; 
&gt; Ditto

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp:86
&gt;&gt; +        segmentInfo.textTracks.append({ { description-&gt;codec(), description-&gt;isVideo(), description-&gt;isAudio(), description-&gt;isText() }, identifier });
&gt; 
&gt; Ditto

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:170
&gt;&gt; +        info.description = adoptRef(*new RemoteMediaDescription(audioTrack.description));
&gt; 
&gt; `RemoteMediaDescription::create(track.description)` or `RemoteMediaDescription::create(track)` would be more idiomatic

Fixed by adding a static create() function in RemoteMediaDescription.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:177
&gt;&gt; +        info.description = adoptRef(*new RemoteMediaDescription(videoTrack.description));
&gt; 
&gt; Ditto

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:184
&gt;&gt; +        info.description = adoptRef(*new RemoteMediaDescription(textTrack.description));
&gt; 
&gt; Ditto

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711167</commentid>
    <comment_count>8</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-12-01 14:16:56 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #5)
&gt; Comment on attachment 414784 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=414784&amp;action=review
&gt; 
&gt; This would have been better as two patches, one for the remote track
&gt; cleanup/simplification, and another for the new initialization segment work.
&gt; 
Agree!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711231</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-01 17:45:09 -0800</bug_when>
    <thetext>Committed r270334: &lt;https://trac.webkit.org/changeset/270334&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415158.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414772</attachid>
            <date>2020-11-21 16:31:12 -0800</date>
            <delta_ts>2020-11-21 17:03:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219227-20201121163112.patch</filename>
            <type>text/plain</type>
            <size>114187</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhhZWEyNTVhOTI4YWFhZGUy
MzlhZGMxMDBkZjUwMTMxOWU1Y2YxMDEuLjdhNzBmMmVjOWY4NWQ5MmE2YjJjMTU2YjhhYzg0Y2M0
Nzg0NTRiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDIwLTExLTIxICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIEluIEdQVSBQcm9jZXNz
XVtNU0VdIEFkZCB0aGUgc3VwcG9ydCB0byBmb3J3YXJkIGluaXRpYWxpemF0aW9uIHNlZ21lbnQg
ZnJvbSB0aGUgR1BVIFByb2Nlc3MgdG8gV2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MjI3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBzdXBwb3J0
IHRvIGZvcndhcmQgYHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KClgCisgICAgICAgIGNhbGxiYWNrIGZyb20gdGhlIHNvdXJjZSBidWZmZXIgcGFyc2Vy
IHJ1bm5pbmcgaW4gdGhlIEdQVSBwcm9jZXNzIHRvIHRoZSBgU291cmNlQnVmZmVyUHJpdmF0ZVJl
bW90ZWAKKyAgICAgICAgcnVubmluZyBpbiB0aGUgV2ViIHByb2Nlc3MsIHdoaWNoIGluIHR1cm4g
cHJvdmlkZXMgdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQgdG8gYFNvdXJjZUJ1ZmZlcmAuCisK
KyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvSW5pdGlhbGl6YXRpb25TZWdt
ZW50SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6SW5pdGlhbGl6YXRpb25TZWdtZW50
SW5mbzo6VHJhY2tJbmZvcm1hdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
SW5pdGlhbGl6YXRpb25TZWdtZW50SW5mbzo6VHJhY2tJbmZvcm1hdGlvbjo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6SW5pdGlhbGl6YXRpb25TZWdtZW50SW5mbzo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6SW5pdGlhbGl6YXRpb25TZWdtZW50SW5mbzo6ZGVjb2RlKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVkaW9UcmFja1Byb3h5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp+UmVtb3RlQXVkaW9U
cmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25m
aWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94
eTo6d2lsbFJlbW92ZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Ry
YWNrUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQ
cm94eS5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluLgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFEZXNjcmlwdGlvbi5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFEZXNjcmlwdGlvbkluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhRGVzY3JpcHRpb25JbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYURlc2NyaXB0aW9uOjpSZW1vdGVNZWRpYURlc2NyaXB0aW9uKToKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpsb2FkTWVkaWFTb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjphZGRSZW1vdGVBdWRpb1RyYWNr
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjphZGRSZW1v
dGVWaWRlb1RyYWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjphZGRSZW1vdGVUZXh0VHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkUmVtb3ZlQXVkaW9U
cmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxh
eWVyRGlkQWRkVmlkZW9UcmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6Om1lZGlhUGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1v
dmVUZXh0VHJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojph
dWRpb1RyYWNrU2V0RW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnZpZGVvVHJhY2tTZXRTZWxlY3RlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnRleHRUcmFja1NldE1vZGUpOiBEZWxl
dGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5OjpSZW1vdGVN
ZWRpYVNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTb3VyY2VQcm94
eTo6YWRkU291cmNlQnVmZmVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhU291cmNlUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU291cmNlQnVmZmVyUHJv
eHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpS
ZW1vdGVTb3VyY2VCdWZmZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5Ojpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94
eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNr
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6flJlbW90ZVRl
eHRUcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OmNv
bmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJv
eHk6OndpbGxSZW1vdmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6
YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5Ojp1cGRh
dGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92
ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkR2Vu
ZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5Ojp1cGRhdGVH
ZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92
ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6cGFy
c2VXZWJWVFRGaWxlSGVhZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJv
eHk6OnBhcnNlV2ViVlRUQ3VlRGF0YSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVUZXh0VHJhY2tQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4
dFRyYWNrUHJveHkubWVzc2FnZXMuaW46IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbi4KKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3RlVmlkZW9UcmFja1Byb3h5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp+UmVtb3RlVmlkZW9U
cmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25m
aWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94
eTo6d2lsbFJlbW92ZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1Ry
YWNrUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQ
cm94eS5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGU6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9U
cmFja1ByaXZhdGVSZW1vdGU6OnNldEVuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVBdWRpb1RyYWNrKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVUZXh0VHJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZpZGVv
VHJhY2spOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNvdXJj
ZVByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU291cmNlUHJp
dmF0ZVJlbW90ZTo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjphZGRTb3VyY2VCdWZmZXIpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OnJlYWR5U3RhdGUgY29uc3QpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZTo6cmVhZHlTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZh
dGVSZW1vdGU6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdt
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6OlRl
eHRUcmFja1ByaXZhdGVSZW1vdGU6OnNldE1vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpzZXRTZWxlY3RlZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaDoKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6CisKIDIwMjAtMTEt
MTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xl
YW4gdXAgc29tZSBjb2RlIGluIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAppbmRleCA2Mjg0NDUzMjUwMzM1MTA3ZmQ1NDk4MjIzMmI4YjllYWVjOGU2OGNiLi44OGUxNTFi
MTIyMjRmZWJjYzg5M2I1M2Q2ODVlM2VjMWIwMTBjZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAg
LTEyNiw2ICsxMjYsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kCiAKICAgICBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyCisgICAgR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1RyYWNrUHJveHkKICAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5CiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkKICAg
ICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkKQEAgLTEzOSw2ICsxNDAs
OCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcgogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFTb3VyY2VQcm94eQogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJv
eHkKKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5CisgICAgR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkKIAogICAgIEdQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5CiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAppbmRleCBlZGI2Y2E1OTc5ZDJmNGRlZjhiMmIyZTc3M2Y5ZDY5YWU3
ODZlN2U5Li5lNTFjYWVkMjFlMTg2Y2YyYTE3M2NiOGEzMzMxMmJlMGIzMDRiYjAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yNSw2ICsy
NSw3IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BV
UHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1By
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUZhY3RvcnlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0zNyw2ICszOCw4IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Lm1lc3Nh
Z2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1By
b3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZp
ZGVvVHJhY2tQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRp
YS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNzU2NzlmNTVmNWFlMzk5YjVlYWY0NzdmMTg5MzI1
NmJjMjQ4ODQ0ZC4uZTg4YjJjMjFmYTcxN2M3N2QyMzAyY2I1MThiYTRhZDNlZGUyNTc0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0x
NTcsNiArMTU3LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGwKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RN
RmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9y
eVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKQEAgLTIzOSw2ICsyNDIsMTIgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNZXNzYWdlc1IKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU291cmNlQnVmZmVyUHJveHlN
ZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFj
a1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5z
cGVjdG9yUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzc3MDFiMDFjM2MxYTJjMzAwZTFkZDJkNzJlNmI4
NTIzN2Y0MjRiNS4uNjgxNDg1NWZmOWQyM2FmMGE3N2U1ZmRhNmRmZDJmZDU1MDk3NmY2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjQyLDYgKzI0Miw3IEBAIE1FU1NBR0VfUkVD
RUlWRVJTID0gXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkgXAogCUdQVVByb2Nl
c3MvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlclByb3h5IFwKIAlHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwKKwlHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvVHJhY2tQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0
b3J5UHJveHkgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eSBcCiAJ
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1Qcm94eSBcCkBAIC0yNTAsNiArMjUxLDgg
QEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlciBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5
IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5IFwKKwlHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5IFwKKwlHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVZpZGVvVHJhY2tQcm94eSBcCiAJV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyBcCiAJV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2VzcyBcCiAjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvSW5pdGlhbGl6YXRpb25TZWdt
ZW50SW5mby5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL0luaXRpYWxpemF0aW9u
U2VnbWVudEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDM0OGVmZDFlMzdiNzA2N2UyOGVlYmFlNjZhOTJl
MjBhMDNlNWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL0luaXRpYWxpemF0aW9uU2VnbWVudEluZm8uaApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUo
TUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIu
aCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KKyNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgSW5pdGlhbGl6YXRpb25TZWdtZW50SW5mbyB7CisgICAg
TWVkaWFUaW1lIGR1cmF0aW9uOworCisgICAgc3RydWN0IFRyYWNrSW5mb3JtYXRpb24geworICAg
ICAgICBNZWRpYURlc2NyaXB0aW9uSW5mbyBkZXNjcmlwdGlvbjsKKyAgICAgICAgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyOworCisgICAgICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+CisgICAgICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgZGVzY3JpcHRpb247CisgICAgICAgICAg
ICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8
Y2xhc3MgRGVjb2Rlcj4KKyAgICAgICAgc3RhdGljIE9wdGlvbmFsPFRyYWNrSW5mb3JtYXRpb24+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgICAgICB7CisgICAgICAgICAgICBPcHRpb25h
bDxNZWRpYURlc2NyaXB0aW9uSW5mbz4gbWVkaWFEZXNjcmlwdGlvbjsKKyAgICAgICAgICAgIGRl
Y29kZXIgPj4gbWVkaWFEZXNjcmlwdGlvbjsKKyAgICAgICAgICAgIGlmICghbWVkaWFEZXNjcmlw
dGlvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgICAg
ICBPcHRpb25hbDxUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyPiBpZGVudGlmaWVyOworICAg
ICAgICAgICAgZGVjb2RlciA+PiBpZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFpZGVudGlm
aWVyKQorICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgICAg
IHJldHVybiB7eworICAgICAgICAgICAgICAgIFdURk1vdmUoKm1lZGlhRGVzY3JpcHRpb24pLAor
ICAgICAgICAgICAgICAgIFdURk1vdmUoKmlkZW50aWZpZXIpCisgICAgICAgICAgICB9fTsKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICBWZWN0b3I8VHJhY2tJbmZvcm1hdGlvbj4gYXVkaW9UcmFj
a3M7CisgICAgVmVjdG9yPFRyYWNrSW5mb3JtYXRpb24+IHZpZGVvVHJhY2tzOworICAgIFZlY3Rv
cjxUcmFja0luZm9ybWF0aW9uPiB0ZXh0VHJhY2tzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgZW5jb2RlciA8PCBkdXJhdGlvbjsKKyAgICAgICAgZW5jb2RlciA8PCBhdWRpb1RyYWNr
czsKKyAgICAgICAgZW5jb2RlciA8PCB2aWRlb1RyYWNrczsKKyAgICAgICAgZW5jb2RlciA8PCB0
ZXh0VHJhY2tzOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0
YXRpYyBPcHRpb25hbDxJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPE1lZGlhVGltZT4gZHVyYXRpb247Cisg
ICAgICAgIGRlY29kZXIgPj4gZHVyYXRpb247CisgICAgICAgIGlmICghZHVyYXRpb24pCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFZlY3RvcjxU
cmFja0luZm9ybWF0aW9uPj4gYXVkaW9UcmFja3M7CisgICAgICAgIGRlY29kZXIgPj4gYXVkaW9U
cmFja3M7CisgICAgICAgIGlmICghYXVkaW9UcmFja3MpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFZlY3RvcjxUcmFja0luZm9ybWF0aW9uPj4g
dmlkZW9UcmFja3M7CisgICAgICAgIGRlY29kZXIgPj4gdmlkZW9UcmFja3M7CisgICAgICAgIGlm
ICghdmlkZW9UcmFja3MpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
ICAgIE9wdGlvbmFsPFZlY3RvcjxUcmFja0luZm9ybWF0aW9uPj4gdGV4dFRyYWNrczsKKyAgICAg
ICAgZGVjb2RlciA+PiB0ZXh0VHJhY2tzOworICAgICAgICBpZiAoIXRleHRUcmFja3MpCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAg
ICAgICAgV1RGTW92ZSgqZHVyYXRpb24pLAorICAgICAgICAgICAgV1RGTW92ZSgqYXVkaW9UcmFj
a3MpLAorICAgICAgICAgICAgV1RGTW92ZSgqdmlkZW9UcmFja3MpLAorICAgICAgICAgICAgV1RG
TW92ZSgqdGV4dFRyYWNrcykKKyAgICAgICAgfX07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmluZGV4IGEyYWNmMDVkNDE0ZTE3NWM3ZDEyYWM1MzU5
OGQ4MzlmNjM2MTJhY2EuLjkzZTJmMjdkODJlOGY5MjRmNzg1YzUwYTY1MDUwNWFkYjZhMzY3MjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Ry
YWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1RyYWNrUHJveHkuY3BwCkBAIC0yOSw3ICsyOSwxMCBAQAogCiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24uaCIKIApAQCAtMzcsMTQgKzQwLDIwIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVtb3RlQXVkaW9UcmFja1Byb3h5
OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcGxheWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbiwgQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKLSAgICA6
IG1fcGxheWVyKHBsYXllcikKK1JlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVkaW9UcmFj
a1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Ms
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQXVkaW9UcmFja1ByaXZh
dGUmIHRyYWNrUHJpdmF0ZSwgTWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1lZGlhUGxheWVySWRlbnRp
ZmllcikKKyAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX3dlYlByb2Nlc3ND
b25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAgLCBtX3RyYWNrUHJpdmF0ZSh0cmFj
a1ByaXZhdGUpCisgICAgLCBtX21lZGlhUGxheWVySWRlbnRpZmllcihtZWRpYVBsYXllcklkZW50
aWZpZXIpCiB7CiAgICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKLSAgICBtX3dl
YlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OkFkZFJlbW90ZUF1ZGlvVHJhY2sobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBt
X3BsYXllci5pZGVuZGlmaWVyKCkpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlUmVjZWl2ZXJNYXAoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
VHJhY2tQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQo
KSwgKnRoaXMpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVBdWRpb1RyYWNr
KG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIp
OworfQorCitSZW1vdGVBdWRpb1RyYWNrUHJveHk6On5SZW1vdGVBdWRpb1RyYWNrUHJveHkoKQor
eworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKIFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJh
dGlvbigpCkBAIC02NCwxMiArNzMsMTIgQEAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKIAogdm9pZCBSZW1vdGVB
dWRpb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKCkKIHsKLSAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJl
bW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChtX2lkZW50aWZpZXIsIGNvbmZpZ3Vy
YXRpb24oKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OlJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChtX2lkZW50aWZpZXIsIGNv
bmZpZ3VyYXRpb24oKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1v
dGVBdWRpb1RyYWNrUHJveHk6OndpbGxSZW1vdmUoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3ZlUmVt
b3RlQXVkaW9UcmFjayhtX2lkZW50aWZpZXIpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6
ZW5hYmxlZENoYW5nZWQoYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaAppbmRleCBkOTY2NDNjNTNiOWUzYjU3MmZi
MTlmYTUzNDkzN2VhYmRiNDZiZjEzLi5jZDMxNjk4NGY2M2VlOTM2OGMyNmU1N2Q3NzgwMGE4ZTE4
Mjg1MjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9UcmFja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvVHJhY2tQcm94eS5oCkBAIC0yOCwzNCArMjgsMzkgQEAKIAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvVHJh
Y2tQcml2YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1RyYWNrQmFzZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAog
bmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBz
dHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKLWNsYXNzIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk7CiAKIGNsYXNzIFJlbW90ZUF1ZGlvVHJhY2tQcm94eSBmaW5hbAogICAgIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZUF1ZGlvVHJhY2tQcm94eSwgV1RGOjpE
ZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KLSAgICAsIHByaXZhdGUgV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVDbGllbnQgeworICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0
ZUNsaWVudAorICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxSZW1vdGVBdWRpb1RyYWNrUHJveHk+IGNyZWF0ZShSZW1vdGVNZWRpYVBs
YXllclByb3h5JiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9UcmFja1By
b3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJv
Y2VzcywgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVtb3RlQXVkaW9UcmFja1Byb3h5KHBsYXllciwgaWRlbnRpZmllciwgV1RGTW92
ZShjb25uZWN0aW9uKSwgdHJhY2tQcml2YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlbW90ZUF1ZGlvVHJhY2tQcm94eShjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlm
aWVyLCB0cmFja1ByaXZhdGUsIG1lZGlhUGxheWVySWRlbnRpZmllcikpOwogICAgIH0KIAotICAg
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVBdWRpb1RyYWNrUHJveHkoKTsK
IAotICAgIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV90cmFja1ByaXZhdGUtPnNl
dEVuYWJsZWQoZW5hYmxlZCk7IH0KKyAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH07CiAKIHByaXZhdGU6Ci0g
ICAgUmVtb3RlQXVkaW9UcmFja1Byb3h5KFJlbW90ZU1lZGlhUGxheWVyUHJveHkmLCBUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZSYpOworICAgIFJlbW90ZUF1ZGlvVHJhY2tQcm94eShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6
QXVkaW9UcmFja1ByaXZhdGUmLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIpOwogCiAg
ICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJv
b2wpIGZpbmFsOwpAQCAtNjYsMTMgKzcxLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYW5ndWFn
ZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFJlbW92ZSgp
IGZpbmFsOwogCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7
IG1fdHJhY2tQcml2YXRlLT5zZXRFbmFibGVkKGVuYWJsZWQpOyB9CisKICAgICBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCk7CiAgICAgdm9pZCBjb25maWd1
cmF0aW9uQ2hhbmdlZCgpOwogCi0gICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgbV9wbGF5ZXI7
CisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNz
OwogICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVmPFdlYkNv
cmU6OkF1ZGlvVHJhY2tQcml2YXRlPiBtX3RyYWNrUHJpdmF0ZTsKKyAgICBXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIgbV9tZWRpYVBsYXllcklkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1RyYWNrUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIxMDU0ZjgzYmIyODA3Njc1MjliZDhiMzI1ZWZhMWZmMWVkZGUzNTQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5
Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9UcmFj
a1Byb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIFNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFEZXNjcmlwdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NzY2ODRjZGFjNmQwZWI5MzY5ZTRm
Zjk1ZGQ1OTc2MzBhNDhmMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFEZXNjcmlwdGlvbi5oCkBAIC0wLDAgKzEsMTEyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5j
b2Rlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFEZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVj
dCBNZWRpYURlc2NyaXB0aW9uSW5mbyB7CisgICAgQXRvbVN0cmluZyBtX2NvZGVjOworICAgIGJv
b2wgbV9pc1ZpZGVvIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNBdWRpbyB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2lzVGV4dCB7IGZhbHNlIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAg
ICBlbmNvZGVyIDw8IG1fY29kZWM7CisgICAgICAgIGVuY29kZXIgPDwgbV9pc1ZpZGVvOworICAg
ICAgICBlbmNvZGVyIDw8IG1faXNBdWRpbzsKKyAgICAgICAgZW5jb2RlciA8PCBtX2lzVGV4dDsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9u
YWw8TWVkaWFEZXNjcmlwdGlvbkluZm8+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiBjb2RlYzsKKyAgICAgICAgZGVjb2RlciA+PiBjb2Rl
YzsKKyAgICAgICAgaWYgKCFjb2RlYykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNWaWRlbzsKKyAgICAgICAgZGVjb2RlciA+PiBp
c1ZpZGVvOworICAgICAgICBpZiAoIWlzVmlkZW8pCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzQXVkaW87CisgICAgICAgIGRlY29k
ZXIgPj4gaXNBdWRpbzsKKyAgICAgICAgaWYgKCFpc0F1ZGlvKQorICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxib29sPiBpc1RleHQ7CisgICAgICAg
IGRlY29kZXIgPj4gaXNUZXh0OworICAgICAgICBpZiAoIWlzVGV4dCkKKyAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHt7CisgICAgICAgICAgICBXVEZN
b3ZlKCpjb2RlYyksCisgICAgICAgICAgICAqaXNWaWRlbywKKyAgICAgICAgICAgICppc0F1ZGlv
LAorICAgICAgICAgICAgKmlzVGV4dAorICAgICAgICB9fTsKKyAgICB9Cit9OworCitjbGFzcyBS
ZW1vdGVNZWRpYURlc2NyaXB0aW9uIDogcHVibGljIFdlYkNvcmU6Ok1lZGlhRGVzY3JpcHRpb24g
eworcHVibGljOgorICAgIFJlbW90ZU1lZGlhRGVzY3JpcHRpb24oY29uc3QgTWVkaWFEZXNjcmlw
dGlvbkluZm8mIGRlc2NyaXB0aW9uSW5mbykKKyAgICAgICAgOiBtX2NvZGVjKGRlc2NyaXB0aW9u
SW5mby5tX2NvZGVjKQorICAgICAgICAsIG1faXNWaWRlbyhkZXNjcmlwdGlvbkluZm8ubV9pc1Zp
ZGVvKQorICAgICAgICAsIG1faXNBdWRpbyhkZXNjcmlwdGlvbkluZm8ubV9pc0F1ZGlvKQorICAg
ICAgICAsIG1faXNUZXh0KGRlc2NyaXB0aW9uSW5mby5tX2lzVGV4dCkKKyAgICB7CisgICAgfQor
CisgICAgdmlydHVhbCB+UmVtb3RlTWVkaWFEZXNjcmlwdGlvbigpID0gZGVmYXVsdDsKKworICAg
IEF0b21TdHJpbmcgY29kZWMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvZGVjOyB9CisgICAg
Ym9vbCBpc1ZpZGVvKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc1ZpZGVvOyB9CisgICAgYm9v
bCBpc0F1ZGlvKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc0F1ZGlvOyB9CisgICAgYm9vbCBp
c1RleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzVGV4dDt9CisKK3ByaXZhdGU6CisgICAg
QXRvbVN0cmluZyBtX2NvZGVjOworICAgIGJvb2wgbV9pc1ZpZGVvIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1faXNBdWRpbyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzVGV4dCB7IGZhbHNlIH07Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA1YWIxYjZm
YTY3ZjFmZjExMTczYzg3ZTk3NThmZWI5NzljMjhiMzNiLi41NTcyMWJlZTFhMzQ2YjljZmVhOWFh
ODcwMWY4OWUyNGUzOGY3ZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC00NSw2ICs0NSw4IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1v
dGVUZXh0VHJhY2tQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvVHJhY2tQcm94eS5oIgor
I2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCisjaW5jbHVk
ZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0UmVjdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KQEAgLTEzNCw3ICsxMzYsNyBAQCB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQoVVJMJiYgdXJsLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+JgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmxvYWRNZWRpYVNvdXJjZShVUkwmJiB1cmwsIGNvbnN0IFdlYkNvcmU6OkNv
bnRlbnRUeXBlJiBjb250ZW50VHlwZSwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1lZGlh
U291cmNlSWRlbnRpZmllcikKIHsKLSAgICBtX21lZGlhU291cmNlUHJveHkgPSBhZG9wdFJlZigq
bmV3IFJlbW90ZU1lZGlhU291cmNlUHJveHkobWVkaWFTb3VyY2VJZGVudGlmaWVyLCBtX21hbmFn
ZXIuZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpKSk7CisgICAgbV9tZWRpYVNvdXJjZVByb3h5
ID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVNvdXJjZVByb3h5KG1fbWFuYWdlci5ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKCksIG1lZGlhU291cmNlSWRlbnRpZmllciwgKnRoaXMpKTsKICAg
ICBtX3BsYXllci0+bG9hZCh1cmwsIGNvbnRlbnRUeXBlLCBtX21lZGlhU291cmNlUHJveHkuZ2V0
KCkpOwogfQogI2VuZGlmCkBAIC00NTcsNjkgKzQ1OSw3NSBAQCBib29sIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCgpCiAgICAgcmV0
dXJuIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZDsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGUmIHRyYWNrKQorVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjphZGRSZW1vdGVBdWRpb1RyYWNrUHJveHkoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGUmIHRyYWNrKQogewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHRyYWNr
LnNldExvZ2dlcihtZWRpYVBsYXllckxvZ2dlcigpLCBtZWRpYVBsYXllckxvZ0lkZW50aWZpZXIo
KSk7CiAjZW5kaWYKLSAgICBtX2F1ZGlvVHJhY2tzLnNldCgmdHJhY2ssIFJlbW90ZUF1ZGlvVHJh
Y2tQcm94eTo6Y3JlYXRlKCp0aGlzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLmNvcHlSZWYoKSwgdHJhY2spKTsKLX0KIAot
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92ZUF1ZGlvVHJh
Y2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrKQotewotICAgIEFTU0VSVChtX2F1
ZGlvVHJhY2tzLmNvbnRhaW5zKCZ0cmFjaykpOwotICAgIG1fYXVkaW9UcmFja3MucmVtb3ZlKCZ0
cmFjayk7CisgICAgYXV0byBpZGVudGlmaWVyID0gVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKKyAgICBtX2F1ZGlvVHJhY2tzLnNldCgmdHJhY2ssIFJlbW90ZUF1ZGlv
VHJhY2tQcm94eTo6Y3JlYXRlKG1fbWFuYWdlci5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCks
IGlkZW50aWZpZXIsIHRyYWNrLCBtX2lkKSk7CisgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAK
LXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6YXVkaW9UcmFja1NldEVuYWJsZWQoVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBib29sIGVuYWJsZWQpCitUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmFkZFJlbW90ZVZpZGVv
VHJhY2tQcm94eShXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiB7Ci0gICAgZm9y
IChhdXRvJiB0cmFjayA6IG1fYXVkaW9UcmFja3MudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHRy
YWNrLT5pZGVudGlmaWVyKCkgPT0gdHJhY2tJRCkgewotICAgICAgICAgICAgdHJhY2stPnNldEVu
YWJsZWQoZW5hYmxlZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Cisj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgdHJhY2suc2V0TG9nZ2VyKG1lZGlhUGxheWVy
TG9nZ2VyKCksIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKTsKKyNlbmRpZgogCi0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgYXV0byBpZGVudGlmaWVyID0gVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBtX3ZpZGVvVHJhY2tzLnNldCgmdHJhY2ss
IFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y3JlYXRlKG1fbWFuYWdlci5ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKCksIGlkZW50aWZpZXIsIHRyYWNrLCBtX2lkKSk7CisgICAgcmV0dXJuIGlkZW50
aWZpZXI7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRB
ZGRWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJiB0cmFjaykKK1RyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6YWRkUmVtb3RlVGV4
dFRyYWNrUHJveHkoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2spCiB7CiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdHJhY2suc2V0TG9nZ2VyKG1lZGlhUGxheWVy
TG9nZ2VyKCksIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKTsKICNlbmRpZgotICAgIG1fdmlk
ZW9UcmFja3Muc2V0KCZ0cmFjaywgUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpjcmVhdGUoKnRoaXMs
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIG1fd2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY29weVJlZigpLCB0cmFjaykpOworCisgICAgYXV0byBpZGVudGlmaWVyID0gVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBtX3RleHRUcmFja3Mu
c2V0KCZ0cmFjaywgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmNyZWF0ZShtX21hbmFnZXIuZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcygpLCBpZGVudGlmaWVyLCB0cmFjaywgbV9pZCkpOworICAgIHJl
dHVybiBpZGVudGlmaWVyOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlh
UGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYgdHJh
Y2spCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkQXVkaW9U
cmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiB7Ci0gICAgQVNTRVJUKG1f
dmlkZW9UcmFja3MuY29udGFpbnMoJnRyYWNrKSk7Ci0gICAgbV92aWRlb1RyYWNrcy5yZW1vdmUo
JnRyYWNrKTsKKyAgICBhZGRSZW1vdGVBdWRpb1RyYWNrUHJveHkodHJhY2spOwogfQogCi12b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvVHJhY2tTZXRTZWxlY3RlZChUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGJvb2wgc2VsZWN0ZWQpCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFjayhXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiB7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdmlk
ZW9UcmFja3MudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT5pZGVudGlmaWVyKCkgPT0g
dHJhY2tJRCkgewotICAgICAgICAgICAgdHJhY2stPnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KKyAgICBBU1NFUlQobV9hdWRpb1Ry
YWNrcy5jb250YWlucygmdHJhY2spKTsKKyAgICBhdXRvIGF1ZGlvVHJhY2sgPSBtX2F1ZGlvVHJh
Y2tzLmdldCgmdHJhY2spOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhhdWRp
b1RyYWNrLT5pZGVudGlmaWVyKCkpLCBtX2lkKTsKKyAgICBtX2F1ZGlvVHJhY2tzLnJlbW92ZSgm
dHJhY2spOworfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1Ry
YWNrUHJpdmF0ZSYgdHJhY2spCit7CisgICAgYWRkUmVtb3RlVmlkZW9UcmFja1Byb3h5KHRyYWNr
KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92
ZVZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIEFT
U0VSVChtX3ZpZGVvVHJhY2tzLmNvbnRhaW5zKCZ0cmFjaykpOworICAgIGF1dG8gdmlkZW9UcmFj
ayA9IG1fdmlkZW9UcmFja3MuZ2V0KCZ0cmFjayk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVSZW1vdGVW
aWRlb1RyYWNrKHZpZGVvVHJhY2stPmlkZW50aWZpZXIoKSksIG1faWQpOworICAgIG1fdmlkZW9U
cmFja3MucmVtb3ZlKCZ0cmFjayk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSYgdHJhY2spCiB7Ci0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgdHJhY2suc2V0TG9n
Z2VyKG1lZGlhUGxheWVyTG9nZ2VyKCksIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKTsKLSNl
bmRpZgotICAgIG1fdGV4dFRyYWNrcy5zZXQoJnRyYWNrLCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6
Y3JlYXRlKCp0aGlzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBt
X3dlYlByb2Nlc3NDb25uZWN0aW9uLmNvcHlSZWYoKSwgdHJhY2spKTsKKyAgICBhZGRSZW1vdGVU
ZXh0VHJhY2tQcm94eSh0cmFjayk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYgdHJhY2spCiB7CiAgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucygmdHJhY2sp
KTsKKyAgICBhdXRvIHRleHRUcmFjayA9IG1fdGV4dFRyYWNrcy5nZXQoJnRyYWNrKTsKKyAgICBt
X3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OlJlbW92ZVJlbW90ZVRleHRUcmFjayh0ZXh0VHJhY2stPmlkZW50aWZpZXIoKSksIG1f
aWQpOwogICAgIG1fdGV4dFRyYWNrcy5yZW1vdmUoJnRyYWNrKTsKIH0KIApAQCAtNTI4LDE4ICs1
MzYsNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnRleHRUcmFja1JlcHJlc2VudGF0
aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJbnRSZWN0JgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGV4dFRyYWNrU2V0TW9kZShUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1By
aXZhdGU6Ok1vZGUgbW9kZSkKLXsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90ZXh0VHJhY2tz
LnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+aWRlbnRpZmllcigpID09IHRyYWNrSUQp
IHsKLSAgICAgICAgICAgIHRyYWNrLT5zZXRNb2RlKG1vZGUpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRl
ZCgpCiB7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpSZXNvdXJjZU5vdFN1cHBvcnRlZCgpLCBtX2lkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5oCmluZGV4IDIyZTJjODA3NDhmOWQ4ZTc0NmNjOTM0ZGFjNDE3MjM0NGQyMWE5MTcuLmI4
MjQ3NzEzYWRhZjFjNDUzZWE0YzY1ODFkYWQ0M2JiMWUwYzIwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApA
QCAtNzQsOCArNzQsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgTGF5ZXJIb3N0aW5n
Q29udGV4dElEID0gdWludDMyX3Q7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwotY2xhc3Mg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OwogY2xhc3MgUmVtb3RlQXVkaW9UcmFja1By
b3h5OworY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OwogY2xhc3MgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiBjbGFzcyBSZW1vdGVUZXh0VHJhY2tQcm94eTsKIGNs
YXNzIFJlbW90ZVZpZGVvVHJhY2tQcm94eTsKQEAgLTE0MywxMCArMTQzLDYgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0U2hvdWxkRGlzYWJsZVNsZWVwKGJvb2wpOwogICAgIHZvaWQgc2V0UmF0ZShk
b3VibGUpOwogCi0gICAgdm9pZCBhdWRpb1RyYWNrU2V0RW5hYmxlZChUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBib29sKTsKLSAgICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKLSAgICB2b2lkIHRleHRUcmFja1NldE1v
ZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZTo6TW9kZSk7Ci0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNldFZpZGVv
SW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpNYWNo
U2VuZFJpZ2h0Jik7CiAjZW5kaWYKQEAgLTE5NCw2ICsxOTAsMTAgQEAgcHVibGljOgogCiAgICAg
UmVmUHRyPFdlYkNvcmU6Ok1lZGlhUGxheWVyPiBtZWRpYVBsYXllcigpIHsgcmV0dXJuIG1fcGxh
eWVyOyB9CiAKKyAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGFkZFJlbW90ZUF1ZGlv
VHJhY2tQcm94eShXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYpOworICAgIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgYWRkUmVtb3RlVmlkZW9UcmFja1Byb3h5KFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlJik7CisgICAgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBhZGRSZW1v
dGVUZXh0VHJhY2tQcm94eShXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CisKIHBy
aXZhdGU6CiAgICAgLy8gTWVkaWFQbGF5ZXJDbGllbnQKICAgICB2b2lkIG1lZGlhUGxheWVyTmV0
d29ya1N0YXRlQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMjEzLDYgKzIxMyw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZUF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhX
ZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJE
aWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7Cisg
ICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFj
ayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CiAKICAgICAvLyBOb3Qg
aW1wbGVtZW50ZWQKICAgICB2b2lkIG1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQoKSBm
aW5hbDsKQEAgLTI0OSw5ICsyNTEsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJT
aG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBTdHJpbmcm
IG1lZGlhUGxheWVyTWVkaWFDYWNoZURpcmVjdG9yeSgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9p
ZCBtZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2
YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJD
b3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7Ci0KICAgICB2b2lkIHRleHRUcmFj
a1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmlu
YWw7CiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNz
YWdlcy5pbgppbmRleCBlM2ZkYTEwZWYyZGJjMzBiOGRjMzE5MmU0MDRhMmYxOGY3NDgwYjRjLi4w
OGVhMTVjYzY2YjJlYTlkMDcwZGE2YmI3MWY4OGI3NDUxY2YwMTU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjUsMTAgKzY1LDYgQEAgbWVzc2FnZXMgLT4gUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIFNldEJ1ZmZlcmluZ1BvbGlj
eShXZWJDb3JlOjpNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5IHBvbGljeSkKIAotICAgIEF1
ZGlvVHJhY2tTZXRFbmFibGVkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0
cmFja0lELCBib29sIGVuYWJsZWQpCi0gICAgVmlkZW9UcmFja1NldFNlbGVjdGVkKFdlYktpdDo6
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBib29sIGVuYWJsZWQpCi0gICAg
VGV4dFRyYWNrU2V0TW9kZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUg
bW9kZSkKLQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNldFZpZGVvSW5saW5lU2l6ZUZlbmNl
ZChXZWJDb3JlOjpJbnRTaXplIHNpemUsIE1hY2hTZW5kUmlnaHQgbWFjaFNlbmRSaWdodCkKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhU291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhU291cmNlUHJveHkuY3BwCmluZGV4IGY0MjBmZDc2ODkxNzkwZDZlN2FmYzk1MjI3MjA2
MTRiZjgyNmU5Y2EuLmFmN2JlNTEyZWFjMmQxYWU2NTRhZTA5Y2I1MmQ5NGIzOWIyYzYwNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJj
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFTb3VyY2VQcm94eS5jcHAKQEAgLTM5LDkgKzM5LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6UmVt
b3RlTWVkaWFTb3VyY2VQcm94eShSZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAg
ICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCitSZW1vdGVNZWRpYVNvdXJjZVByb3h5OjpSZW1v
dGVNZWRpYVNvdXJjZVByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MsIFJlbW90ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1v
dGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVNZWRpYVBsYXllclByb3h5KQorICAgIDogbV9jb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgLCBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vh
a1B0cihyZW1vdGVNZWRpYVBsYXllclByb3h5KSkKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVNvdXJjZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmll
ci50b1VJbnQ2NCgpLCAqdGhpcyk7CiB9CkBAIC05MywxMyArOTQsMTYgQEAgdm9pZCBSZW1vdGVN
ZWRpYVNvdXJjZVByb3h5OjpmYWlsZWRUb0NyZWF0ZVJlbmRlcmVyKFJlbmRlcmVyVHlwZSkKIAog
dm9pZCBSZW1vdGVNZWRpYVNvdXJjZVByb3h5OjphZGRTb3VyY2VCdWZmZXIoY29uc3QgV2ViQ29y
ZTo6Q29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBBZGRTb3VyY2VCdWZmZXJDYWxsYmFjayYmIGNh
bGxiYWNrKQogeworICAgIGlmICghbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KQorICAgICAgICBy
ZXR1cm47CisKICAgICBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJp
dmF0ZTsKICAgICBNZWRpYVNvdXJjZVByaXZhdGU6OkFkZFN0YXR1cyBzdGF0dXMgPSBtX3ByaXZh
dGUtPmFkZFNvdXJjZUJ1ZmZlcihjb250ZW50VHlwZSwgc291cmNlQnVmZmVyUHJpdmF0ZSk7CiAK
ICAgICBPcHRpb25hbDxSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyPiByZW1vdGVTb3VyY2VJ
ZGVudGlmaWVyOwogICAgIGlmIChzdGF0dXMgPT0gTWVkaWFTb3VyY2VQcml2YXRlOjpBZGRTdGF0
dXM6Ok9rKSB7CiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IFJlbW90ZVNvdXJjZUJ1ZmZlcklk
ZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgICAgIGF1dG8gcmVtb3RlU291cmNlQnVmZmVyUHJv
eHkgPSBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6Y3JlYXRlKGlkZW50aWZpZXIsIG1fY29ubmVj
dGlvblRvV2ViUHJvY2Vzcywgc291cmNlQnVmZmVyUHJpdmF0ZS5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICAgICAgYXV0byByZW1vdGVTb3VyY2VCdWZmZXJQcm94eSA9IFJlbW90ZVNvdXJjZUJ1ZmZl
clByb3h5OjpjcmVhdGUobV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCBzb3Vy
Y2VCdWZmZXJQcml2YXRlLnJlbGVhc2VOb25OdWxsKCksICptX3JlbW90ZU1lZGlhUGxheWVyUHJv
eHkpOwogICAgICAgICBtX3NvdXJjZUJ1ZmZlcnMuYXBwZW5kKFdURk1vdmUocmVtb3RlU291cmNl
QnVmZmVyUHJveHkpKTsKICAgICAgICAgcmVtb3RlU291cmNlSWRlbnRpZmllciA9IGlkZW50aWZp
ZXI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVNvdXJjZVByb3h5LmgKaW5kZXggNmJmYmZhZmIyMDQ0NzgzMGQ3MzBjMzhjNTVk
OTE2MDIyYzIzZDMxNi4uNTk2OGM3YmJkMTg5Y2Q0NzllZjRhZWFiNGQ0NDk5NTMzZmQzZDY1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291
cmNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFTb3VyY2VQcm94eS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YVNvdXJjZVByaXZhdGVDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNw
YWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwpAQCAtNTAsMTMgKzUxLDE0IEBAIGNsYXNzIFBs
YXRmb3JtVGltZVJhbmdlczsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTsKIAogY2xhc3Mg
UmVtb3RlTWVkaWFTb3VyY2VQcm94eSBmaW5hbAogICAgIDogcHVibGljIFdlYkNvcmU6Ok1lZGlh
U291cmNlUHJpdmF0ZUNsaWVudAogICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUmVtb3RlTWVkaWFT
b3VyY2VQcm94eShSZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmKTsKKyAgICBSZW1vdGVNZWRpYVNvdXJjZVByb3h5KEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmLCBSZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVy
UHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVNZWRpYVNvdXJjZVByb3h5KCk7CiAKICAgICAv
LyBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQgb3ZlcnJpZGVzCkBAIC04MCw5ICs4MiwxMSBAQCBw
cml2YXRlOgogICAgIHVzaW5nIEFkZFNvdXJjZUJ1ZmZlckNhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGU6OkFkZFN0YXR1cywgT3B0aW9u
YWw8UmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcj4gcmVtb3RlU291cmNlQnVmZmVySWRlbnRp
Zmllcik+OwogICAgIHZvaWQgYWRkU291cmNlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRU
eXBlJiwgQWRkU291cmNlQnVmZmVyQ2FsbGJhY2smJik7CiAKLSAgICBSZW1vdGVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBSZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGU+
IG1fcHJpdmF0ZTsKKyAgICBXZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+IG1fcmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTsKKwogICAgIFZlY3RvcjxSZWZQdHI8UmVtb3RlU291cmNlQnVmZmVy
UHJveHk+PiBtX3NvdXJjZUJ1ZmZlcnM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcAppbmRleCAy
NDVjZjQwZGZjNmZjNzI0MTc0OTljOTk2ZWVhOTVmMGEzYThkNjlhLi41NmU4Nzk1YmFkNzVlNmUy
MGIzZjlhNTYwYThmZWZkNjgyZWMwNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKQEAgLTMwLDYg
KzMwLDggQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEYXRhUmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiSW5pdGlhbGl6YXRpb25TZWdtZW50SW5mby5oIgorI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVTb3VyY2VCdWZmZXJQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpAQCAtMzgsMTYgKzQw
LDE3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
UmVmPFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5PiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6Y3Jl
YXRlKFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgUmVmPFNvdXJjZUJ1ZmZlclBy
aXZhdGU+JiYgc291cmNlQnVmZmVyUHJpdmF0ZSkKK1JlZjxSZW1vdGVTb3VyY2VCdWZmZXJQcm94
eT4gUmVtb3RlU291cmNlQnVmZmVyUHJveHk6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZh
dGUsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCiB7Ci0g
ICAgYXV0byByZW1vdGVTb3VyY2VCdWZmZXJQcm94eSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlU291
cmNlQnVmZmVyUHJveHkoaWRlbnRpZmllciwgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgV1RGTW92
ZShzb3VyY2VCdWZmZXJQcml2YXRlKSkpOworICAgIGF1dG8gcmVtb3RlU291cmNlQnVmZmVyUHJv
eHkgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KGNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MsIGlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZSksIHJlbW90
ZU1lZGlhUGxheWVyUHJveHkpKTsKICAgICByZXR1cm4gcmVtb3RlU291cmNlQnVmZmVyUHJveHk7
CiB9CiAKLVJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eShS
ZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRl
PiYmIHNvdXJjZUJ1ZmZlclByaXZhdGUpCi0gICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikK
LSAgICAsIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQor
UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFJlbW90ZVNvdXJjZUJ1
ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFNvdXJjZUJ1ZmZlclByaXZhdGU+JiYgc291
cmNlQnVmZmVyUHJpdmF0ZSwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5
ZXJQcm94eSkKKyAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX3NvdXJjZUJ1
ZmZlclByaXZhdGUoV1RGTW92ZShzb3VyY2VCdWZmZXJQcml2YXRlKSkKKyAgICAsIG1fcmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihyZW1vdGVNZWRpYVBsYXllclByb3h5KSkKIHsK
ICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgKnRoaXMpOwogICAgIG1fc291
cmNlQnVmZmVyUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAtNTgsOSArNjEsMzIgQEAgUmVt
b3RlU291cmNlQnVmZmVyUHJveHk6On5SZW1vdGVTb3VyY2VCdWZmZXJQcm94eSgpCiAgICAgbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCi12b2lkIFJlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5Ojpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9u
U2VnbWVudChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKQordm9pZCBSZW1vdGVTb3VyY2VC
dWZmZXJQcm94eTo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNl
Z21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBzZWdtZW50KQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgaWYgKCFtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkpCisgICAgICAg
IHJldHVybjsKKworICAgIEluaXRpYWxpemF0aW9uU2VnbWVudEluZm8gc2VnbWVudEluZm87Cisg
ICAgc2VnbWVudEluZm8uZHVyYXRpb24gPSBzZWdtZW50LmR1cmF0aW9uOworICAgIGZvciAoYXV0
byYgYXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7CisgICAgICAgIGF1dG8g
aWRlbnRpZmllciA9IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eS0+YWRkUmVtb3RlQXVkaW9UcmFj
a1Byb3h5KCphdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24g
PSBhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKKyAgICAgICAgc2VnbWVudEluZm8uYXVkaW9U
cmFja3MuYXBwZW5kKHsgeyBkZXNjcmlwdGlvbi0+Y29kZWMoKSwgZGVzY3JpcHRpb24tPmlzVmlk
ZW8oKSwgZGVzY3JpcHRpb24tPmlzQXVkaW8oKSwgZGVzY3JpcHRpb24tPmlzVGV4dCgpIH0sIGlk
ZW50aWZpZXIgfSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiB2aWRlb1RyYWNrSW5mbyA6IHNl
Z21lbnQudmlkZW9UcmFja3MpIHsKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gbV9yZW1vdGVN
ZWRpYVBsYXllclByb3h5LT5hZGRSZW1vdGVWaWRlb1RyYWNrUHJveHkoKnZpZGVvVHJhY2tJbmZv
LnRyYWNrKTsKKyAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IHZpZGVvVHJhY2tJbmZvLmRlc2Ny
aXB0aW9uOworICAgICAgICBzZWdtZW50SW5mby52aWRlb1RyYWNrcy5hcHBlbmQoeyB7IGRlc2Ny
aXB0aW9uLT5jb2RlYygpLCBkZXNjcmlwdGlvbi0+aXNWaWRlbygpLCBkZXNjcmlwdGlvbi0+aXNB
dWRpbygpLCBkZXNjcmlwdGlvbi0+aXNUZXh0KCkgfSwgaWRlbnRpZmllciB9KTsKKyAgICB9CisK
KyAgICBmb3IgKGF1dG8mIHRleHRUcmFja0luZm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKKyAg
ICAgICAgYXV0byBpZGVudGlmaWVyID0gbV9yZW1vdGVNZWRpYVBsYXllclByb3h5LT5hZGRSZW1v
dGVUZXh0VHJhY2tQcm94eSgqdGV4dFRyYWNrSW5mby50cmFjayk7CisgICAgICAgIGF1dG8gZGVz
Y3JpcHRpb24gPSB0ZXh0VHJhY2tJbmZvLmRlc2NyaXB0aW9uOworICAgICAgICBzZWdtZW50SW5m
by50ZXh0VHJhY2tzLmFwcGVuZCh7IHsgZGVzY3JpcHRpb24tPmNvZGVjKCksIGRlc2NyaXB0aW9u
LT5pc1ZpZGVvKCksIGRlc2NyaXB0aW9uLT5pc0F1ZGlvKCksIGRlc2NyaXB0aW9uLT5pc1RleHQo
KSB9LCBpZGVudGlmaWVyIH0pOworICAgIH0KKworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6
U291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoc2VnbWVu
dEluZm8pLCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5
Ojpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShXZWJDb3JlOjpNZWRpYVNhbXBs
ZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291
cmNlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVT
b3VyY2VCdWZmZXJQcm94eS5oCmluZGV4IDM5MGMwY2UxYzI3YjYwOGRjOTdhYWZhNTE4NjM2MTg4
MGMzYWY0ZDMuLjZiOGJmOGI1N2NjMGM4ZDlkNTQxMWU5NjUyMWI0NWE5NGE4ZTNiMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VC
dWZmZXJQcm94eS5oCkBAIC00NywxMyArNDcsMTUgQEAgY2xhc3MgTWVkaWFTYW1wbGU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5OworCiBjbGFz
cyBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eSBmaW5hbAogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8
UmVtb3RlU291cmNlQnVmZmVyUHJveHk+CiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudAogICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1v
dGVTb3VyY2VCdWZmZXJQcm94eT4gY3JlYXRlKFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIs
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBSZWY8V2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZT4mJik7CisgICAgc3RhdGljIFJlZjxSZW1vdGVTb3VyY2VCdWZmZXJQcm94eT4gY3JlYXRl
KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
LCBSZWY8V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZT4mJiwgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSYpOwogICAgIHZpcnR1YWwgflJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KCk7CiAKICAgICB2
b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNv
bnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpIGZpbmFsOwpAQCAtNzAsNyArNzIsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9y
KGludCBlcnJvckNvZGUpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIFJlbW90ZVNvdXJjZUJ1ZmZl
clByb3h5KFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmLCBSZWY8V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZT4mJik7CisgICAgUmVtb3Rl
U291cmNlQnVmZmVyUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJlbW90ZVNvdXJj
ZUJ1ZmZlcklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlPiYmLCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5Jik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
JikgZmluYWw7CkBAIC03OCw5ICs4MCwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhcHBlbmQo
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKLSAgICBSZW1vdGVTb3VyY2VCdWZmZXJJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciBt
X2lkZW50aWZpZXI7CiAgICAgUmVmPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGU+IG1fc291
cmNlQnVmZmVyUHJpdmF0ZTsKKyAgICBXZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+IG1f
cmVtb3RlTWVkaWFQbGF5ZXJQcm94eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQ
cm94eS5jcHAKaW5kZXggYmVjZGMyMmMzMDkyYTEwYmJkODcxODI0YTAyYjNhYzE0NmY3MjAxNy4u
Njc0NDhlOWE3NDhmMThhZGE0NTI1OTA5YmEyY2QzMTQwYjIyNTFlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3Bw
CkBAIC0yOSw5ICsyOSwxMiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCisj
aW5jbHVkZSAiUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRleHRU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JU09WVFRDdWUuaD4KQEAgLTQxLDE0ICs0
NCwyMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LVJlbW90ZVRleHRUcmFja1Byb3h5OjpSZW1vdGVUZXh0VHJhY2tQcm94eShSZW1vdGVNZWRpYVBs
YXllclByb3h5JiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUpCi0gICAgOiBtX3BsYXllcihwbGF5ZXIpCitSZW1vdGVUZXh0VHJh
Y2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlhUGxheWVy
SWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQotICAgICwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24p
KQogICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQorICAgICwgbV9tZWRpYVBsYXll
cklkZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewogICAgIG1fdHJhY2tQcml2YXRl
LT5zZXRDbGllbnQodGhpcyk7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVUZXh0VHJhY2sobV9pZGVu
dGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOworICAgIG1f
Y29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVRleHRUcmFja1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCAqdGhpcyk7CisgICAgbV9jb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OkFkZFJlbW90ZVRleHRUcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSks
IG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKK30KKworUmVtb3RlVGV4dFRyYWNrUHJveHk6On5S
ZW1vdGVUZXh0VHJhY2tQcm94eSgpCit7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
VGV4dFRyYWNrUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUlu
dDY0KCkpOwogfQogCiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgUmVtb3Rl
VGV4dFRyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQpAQCAtNzYsMTIgKzg1LDEyIEBAIFRleHRU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVUZXh0VHJhY2tQcm94eTo6Y29u
ZmlndXJhdGlvbigpCiAKIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb25D
aGFuZ2VkKCkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJlbW90ZVRleHRUcmFja0NvbmZpZ3VyYXRpb25DaGFu
Z2VkKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigp
KTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3RlVGV4dFRyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OndpbGxSZW1vdmUoKQog
ewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6UmVtb3ZlUmVtb3RlVGV4dFRyYWNrKG1faWRlbnRpZmllciksIG1fcGxh
eWVyLmlkZW5kaWZpZXIoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIHZvaWQg
UmVtb3RlVGV4dFRyYWNrUHJveHk6OmlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikKQEAgLTEw
MSw1NCArMTEwLDU0IEBAIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6Omxhbmd1YWdlQ2hhbmdl
ZChjb25zdCBBdG9tU3RyaW5nJikKIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkRGF0
YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qg
dm9pZCogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkRGF0YUN1ZSht
X2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIo
KSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZERhdGFDdWUobV9pZGVudGlmaWVyLCBz
dGFydCwgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
OF90Kj4oZGF0YSksIGxlbmd0aCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKICNp
ZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmFkZERh
dGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmIGN1ZURhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSkK
IHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OkFkZERhdGFDdWVXaXRoVHlwZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBl
bmQsIGN1ZURhdGEtPmVuY29kYWJsZVZhbHVlKCksIHR5cGUpLCBtX3BsYXllci5pZGVuZGlmaWVy
KCkpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGREYXRhQ3VlV2l0aFR5cGUobV9pZGVu
dGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLT5lbmNvZGFibGVWYWx1ZSgpLCB0eXBlKSwgbV9t
ZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5Ojp1
cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBjdWVEYXRhKQogewotICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6VXBk
YXRlRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxlVmFs
dWUoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OlVwZGF0ZURhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLmVuY29kYWJs
ZVZhbHVlKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlVGV4
dFRyYWNrUHJveHk6OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3Qg
TWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIGN1ZURhdGEpCiB7Ci0g
ICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpSZW1vdmVEYXRhQ3VlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0
YS5lbmNvZGFibGVWYWx1ZSgpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6UmVtb3ZlRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1
ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KICNl
bmRpZgogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGRHZW5lcmljQ3VlKEluYmFuZEdl
bmVyaWNDdWUmIGN1ZSkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZEdlbmVyaWNDdWUobV9pZGVudGlmaWVy
LCBjdWUuY3VlRGF0YSgpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6QWRkR2VuZXJpY0N1ZShtX2lkZW50aWZpZXIsIGN1ZS5jdWVEYXRhKCkpLCBt
X21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6
OnVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5kR2VuZXJpY0N1ZSYgY3VlKQogewotICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
VXBkYXRlR2VuZXJpY0N1ZShtX2lkZW50aWZpZXIsIGN1ZS5jdWVEYXRhKCkpLCBtX3BsYXllci5p
ZGVuZGlmaWVyKCkpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpVcGRhdGVHZW5lcmljQ3Vl
KG1faWRlbnRpZmllciwgY3VlLmN1ZURhdGEoKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsK
IH0KIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRH
ZW5lcmljQ3VlJiBjdWUpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVHZW5lcmljQ3VlKG1faWRlbnRp
ZmllciwgY3VlLmN1ZURhdGEoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OlJlbW92ZUdlbmVyaWNDdWUobV9pZGVudGlmaWVyLCBjdWUuY3VlRGF0
YSgpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVRleHRUcmFj
a1Byb3h5OjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQogewotICAgIG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6UGFyc2VXZWJWVFRGaWxlSGVhZGVyKG1faWRlbnRpZmllciwgaGVhZGVyKSwgbV9wbGF5
ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UGFyc2VXZWJWVFRG
aWxlSGVhZGVyKG1faWRlbnRpZmllciwgaGVhZGVyKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIp
OwogfQogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpwYXJzZVdlYlZUVEN1ZURhdGEoY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UGFyc2VXZWJW
VFRDdWVEYXRhKG1faWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBsZW5ndGgpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigp
KTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UGFyc2VXZWJWVFRDdWVEYXRhKG1faWRlbnRp
ZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGRhdGEpLCBsZW5ndGgpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJl
bW90ZVRleHRUcmFja1Byb3h5OjpwYXJzZVdlYlZUVEN1ZURhdGEoSVNPV2ViVlRUQ3VlJiYgY3Vl
RGF0YSkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OlBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChtX2lkZW50aWZp
ZXIsIGN1ZURhdGEpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOworICAgIG1fY29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpQYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QobV9pZGVudGlmaWVyLCBjdWVEYXRhKSwg
bV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1By
b3h5LmgKaW5kZXggMTE1Yzg5YmYwMGExYThkMzAzZThjNTE5Y2ZjYzVhMWUwNjcxMGY0ZC4uYWZk
YjczMjViNzc3NDcyZjRhOGNiOTI3NDhjMzc3MmQzNGVmOTZjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmgKQEAgLTI4
LDM2ICsyOCwzOSBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFj
a0Jhc2UuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewotCiBjbGFz
cyBDb25uZWN0aW9uOwotCitjbGFzcyBEZWNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTsKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M7CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAK
IGNsYXNzIFJlbW90ZVRleHRUcmFja1Byb3h5IGZpbmFsCiAgICAgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8UmVtb3RlVGV4dFRyYWNrUHJveHksIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6
Ok1haW4+Ci0gICAgLCBwcml2YXRlIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVDbGll
bnQgeworICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
CisgICAgLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlbW90ZVRleHRUcmFja1Byb3h5PiBjcmVhdGUoUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYgdHJhY2tQcml2YXRlKQorICAgIHN0YXRpYyBSZWY8UmVtb3RlVGV4dFRyYWNrUHJveHk+
IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVu
dGlmaWVyIG1lZGlhUGxheWVySWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlbW90ZVRleHRUcmFja1Byb3h5KHBsYXllciwgaWRlbnRpZmllciwgV1RGTW92
ZShjb25uZWN0aW9uKSwgdHJhY2tQcml2YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlbW90ZVRleHRUcmFja1Byb3h5KGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50aWZp
ZXIsIHRyYWNrUHJpdmF0ZSwgbWVkaWFQbGF5ZXJJZGVudGlmaWVyKSk7CiAgICAgfQogCi0gICAg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9pZGVudGlmaWVyOyB9OworICAgIHZpcnR1YWwgflJlbW90ZVRleHRUcmFja1Byb3h5KCk7CiAK
LSAgICB2b2lkIHNldE1vZGUoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSBt
b2RlKSB7IG1fdHJhY2tQcml2YXRlLT5zZXRNb2RlKG1vZGUpOyB9CisgICAgVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlVGV4dFRyYWNrUHJveHkoUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eSYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKKyAgICBSZW1vdGVUZXh0
VHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVySWRlbnRpZmllcik7CiAKICAgICAvLyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xp
ZW50CiAgICAgdmlydHVhbCB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCk7CkBAIC04MiwxMyAr
ODUsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3Ry
aW5nJikgZmluYWw7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwor
ICAgIHZvaWQgc2V0TW9kZShXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1v
ZGUpIHsgbV90cmFja1ByaXZhdGUtPnNldE1vZGUobW9kZSk7IH0KKwogICAgIFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCk7CiAgICAgdm9pZCBjb25m
aWd1cmF0aW9uQ2hhbmdlZCgpOwogCi0gICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgbV9wbGF5
ZXI7CisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOwogICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAg
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVmPFdl
YkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU+IG1fdHJhY2tQcml2YXRlOworICAgIFdlYkNv
cmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBtX21lZGlhUGxheWVySWRlbnRpZmllcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhlZmNlNjc1NDMzYzIyYjdkNTVlMGE3NTQ2OTQxZTJmOWZlM2VhM2MKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNr
UHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVUZXh0
VHJhY2tQcm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBTZXRNb2RlKGVudW06dWludDhfdCBXZWJD
b3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFj
a1Byb3h5LmNwcAppbmRleCA1YzQ2ZWVjYWExNTlmMGYzYjc0OTAzZjJmNjcwMjI5NGVmMmQ4MjVk
Li4zNTBmOGVhNzMwN2JkMjM3YWE4M2Y2Y2M5NDViNTYxMGRmNmYxYzcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5
LmNwcApAQCAtMjksMjIgKzI5LDMxIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvVHJh
Y2tQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLVJlbW90ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3RlVmlkZW9UcmFja1Byb3h5KFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFZpZGVvVHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUpCi0gICAgOiBtX3BsYXllcihwbGF5ZXIpCitSZW1vdGVWaWRlb1Ry
YWNrUHJveHk6OlJlbW90ZVZpZGVvVHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlhUGxheWVySWRl
bnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQotICAgICwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQog
ICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQorICAgICwgbV9tZWRpYVBsYXllcklk
ZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewogICAgIG1fdHJhY2tQcml2YXRlLT5z
ZXRDbGllbnQodGhpcyk7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVWaWRlb1RyYWNrKG1faWRlbnRp
ZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6QWRkUmVtb3RlVmlkZW9UcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSks
IG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKK30KKworUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp+
UmVtb3RlVmlkZW9UcmFja1Byb3h5KCkKK3sKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZVJlY2VpdmVyTWFwKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVWaWRlb1RyYWNrUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRv
VUludDY0KCkpOwogfQogCiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVW
aWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQpAQCAtNjQsMTIgKzczLDEyIEBAIFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmln
dXJhdGlvbigpCiAKIHZvaWQgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hh
bmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5n
ZWQobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkp
OworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp3aWxsUmVtb3ZlKCkK
IHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OlJlbW92ZVJlbW90ZVZpZGVvVHJhY2sobV9pZGVudGlmaWVyKSwgbV9w
bGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9p
ZCBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OnNlbGVjdGVkQ2hhbmdlZChib29sKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5o
CmluZGV4IGRkZjAyYzhmZTgzMmRjM2VkZmJiOWVjMGQ1NWI1MjY0OWRiMmI3OTguLjYwZWE3YjA5
ZmYyZDg3ZTI2NjkzNTllMWZlZGVhYTA3YTNlNTc5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgKQEAgLTI4LDM0
ICsyOCwzOSBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9UcmFja0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rp
b247CitjbGFzcyBEZWNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTsKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBz
dHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3RlVmlk
ZW9UcmFja1Byb3h5IGZpbmFsCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVt
b3RlVmlkZW9UcmFja1Byb3h5LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgotICAgICwg
cHJpdmF0ZSBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCB7CisgICAgLCBwcml2YXRl
IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlQ2xpZW50CisgICAgLCBwcml2YXRlIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbW90ZVZpZGVvVHJhY2tQ
cm94eT4gY3JlYXRlKFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHBsYXllciwgVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24sIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgc3Rh
dGljIFJlZjxSZW1vdGVWaWRlb1RyYWNrUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUs
IFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVWaWRlb1RyYWNrUHJveHko
cGxheWVyLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCB0cmFja1ByaXZhdGUpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlVmlkZW9UcmFja1Byb3h5KGNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50aWZpZXIsIHRyYWNrUHJpdmF0ZSwgbWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKSk7CiAgICAgfQogCi0gICAgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworICAgIHZpcnR1YWwg
flJlbW90ZVZpZGVvVHJhY2tQcm94eSgpOwogCi0gICAgdm9pZCBzZXRTZWxlY3RlZChib29sIHNl
bGVjdGVkKSB7IG1fdHJhY2tQcml2YXRlLT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7IH0KKyAgICBU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X2lkZW50aWZpZXI7IH07CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlVmlkZW9UcmFja1Byb3h5KFJl
bW90ZU1lZGlhUGxheWVyUHJveHkmLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpOworICAgIFJl
bW90ZVZpZGVvVHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmLCBXZWJDb3Jl
OjpNZWRpYVBsYXllcklkZW50aWZpZXIpOwogCiAgICAgLy8gVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQKICAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChib29sKSBmaW5hbDsKQEAgLTY2LDEzICs3MSwx
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcm
KSBmaW5hbDsKICAgICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAorICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAg
dm9pZCBzZXRTZWxlY3RlZChib29sIHNlbGVjdGVkKSB7IG1fdHJhY2tQcml2YXRlLT5zZXRTZWxl
Y3RlZChzZWxlY3RlZCk7IH0KKwogICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
IGNvbmZpZ3VyYXRpb24oKTsKICAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAKLSAg
ICBSZW1vdGVNZWRpYVBsYXllclByb3h5JiBtX3BsYXllcjsKKyAgICBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV93
ZWJQcm9jZXNzQ29ubmVjdGlvbjsKICAgICBSZWY8V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU+
IG1fdHJhY2tQcml2YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBtX21l
ZGlhUGxheWVySWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRl
b1RyYWNrUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmUwZjEwMGZkODdiNjc4ZGNhOGI1
NDY2ZWY3ZjMxNzA5ZmEzM2MyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCAr
MSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVWaWRlb1RyYWNrUHJveHkgTm90UmVmQ291bnRlZCB7
CisgICAgU2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA1NzNlZDNkOGVlOWJiZjQxMDMxNjhl
NzlhMDU3ZjlkYmRiOWI4Njk1Li5jYTBhZTI4NDExYTgzZGU0YmYzZmUwOGIwMTJlNDA1NTQ4ZDhi
NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIwOCw2
ICsyMDgsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgog
ICAgICAgICAnU3RyaW5nJywKICAgICAgICAgJ1dlYkNvcmU6OkNvbG9yU3BhY2UnLAogICAgICAg
ICAnV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCcsCisgICAgICAgICdXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6Rmx1c2hJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtQnVmZmVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25G
bGFncycsCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXInLApAQCAtMjQwLDcg
KzI0MSw2IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAg
ICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXInLAogICAgICAgICAnV2Vi
S2l0OjpEaXNwbGF5TGlua09ic2VydmVySUQnLAotICAgICAgICAnV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZsdXNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkRvd25sb2FkSUQnLAogICAg
ICAgICAnV2ViS2l0OjpHZW9sb2NhdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDc2MWQ4MzUxZWZjYjU2MTEwOWM1M2YwMGU1MDA5
NzA2NmUyM2FlNy4uZTZmYmRhNTAwZDBiNzllOTgxZGQzMThiMWNjM2RjMTk1MjA3YzYxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00
MTYsNiArNDE2LDkgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3Nh
Z2VzLmggKi87IH07CiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JV
SU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVz
c2FnZXMuaCAqLzsgfTsKKwkJMUQwMzY5QUMyNTY3OTY5OTAwNDQwMzcyIC8qIFJlbW90ZVRleHRU
cmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDM2OUFBMjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0
VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTFEMDM2OUFEMjU2Nzk2QUIw
MDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQwMzY5QTUyNTY3OTQz
QjAwNDQwMzcyIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CisJCTFEMDM2OUFFMjU2Nzk2QjkwMDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUQwMzY5QTIyNTY3OTQzQjAwNDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QjIzQTlERjU1MDA3
MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKQEAgLTI4
MDYsNiArMjgwOSwxNSBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVj
dG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJ
bnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
Ykluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYklu
c3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVj
dG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNw
ZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3Bl
Y3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJ
MUQwMzY5QTIyNTY3OTQzQjAwNDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRp
b1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OworCQkxRDAzNjlBMzI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFj
a1Byb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZUF1ZGlvVHJhY2tQ
cm94eU1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJMUQwMzY5QTQyNTY3OTQzQjAwNDQwMzcyIC8qIFJlbW90ZVZpZGVv
VHJhY2tQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZVZpZGVvVHJhY2tQcm94
eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJh
Y2tQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJ
CTFEMDM2OUE1MjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKKwkJMUQwMzY5QTYyNTY3OTQzQzAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFj
a1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94
eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2
OUE3MjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDAzNjlBODI1Njc5NDNDMDA0NDAz
NzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQwMzY5QTkyNTY3OTQzQzAwNDQw
MzcyIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmg7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUFBMjU2Nzk0M0Mw
MDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJl
c291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MTcsNiArMjgyOSwx
MSBAQAogCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQ0RDczNkMyM0E5REY2MDAwNzE3
QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0RkI0
MEIyNTY1Qzg5QTAwMUFDMkFEIC8qIEluaXRpYWxpemF0aW9uU2VnbWVudEluZm8uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5pdGlhbGl6YXRpb25TZWdtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDRGQjQwQzI1NjVDQkY5MDAxQUMyQUQgLyogUmVtb3RlTWVkaWFEZXNjcmlw
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYURlc2NyaXB0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENkUyN0REMjU2NkU4MzAwMEFDN0FFQiAvKiBSZW1vdGVB
dWRpb1RyYWNrUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9UcmFja1Byb3h5Lm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDZFMjdERTI1NjZFODU4
MDBBQzdBRUIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZVZpZGVvVHJhY2tQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUQ2RTI3REYyNTY2RTg2QjAwQUM3QUVCIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5Lm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVtb3RlVGV4dFRyYWNrUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEOTdFQzdEMjQwODk4RDIwMDQ2NkZGQSAvKiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQw
ODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTcyNyw2ICs1NzQ0LDcg
QEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2Nv
YSAqLywKIAkJCQlDREE5NTk0NDI0MTJDNERBMDA5MTBFRUYgLyogaW9zICovLAorCQkJCTFENEZC
NDBCMjU2NUM4OUEwMDFBQzJBRCAvKiBJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvLmggKi8sCiAJ
CQkJOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcCAqLywKIAkJCQk5QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuaCAqLywKIAkJCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyog
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCkBAIC01NzM5LDYg
KzU3NTcsNyBAQAogCQkJCTQxMkZGOTI3MjUzODJEODUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyUHJveHkuaCAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyog
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBE
N0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8sCisJCQkJMUQ2RTI3REQyNTY2RTgzMDAw
QUM3QUVCIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREFD
MjA3OTIzRkIxRTIxMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcCAqLywKIAkJ
CQlDREFDMjA3ODIzRkIxRTIxMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmggKi8s
CiAJCQkJQ0RBQzIwN0MyM0ZCMUVGOTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eS5t
ZXNzYWdlcy5pbiAqLywKQEAgLTU3NjAsNiArNTc3OSw3IEBACiAJCQkJQ0RFNTU0RjkyNDA1ODIw
ODAwOEEzRERCIC8qIFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5jcHAgKi8sCiAJCQkJQ0RF
NTU0RjgyNDA1ODIwODAwOEEzRERCIC8qIFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5oICov
LAogCQkJCUNERTU1NTAwMjQwNTgyODQwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1TZXNzaW9u
UHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJMUQ0RkI0MEMyNTY1Q0JGOTAwMUFDMkFEIC8qIFJl
bW90ZU1lZGlhRGVzY3JpcHRpb24uaCAqLywKIAkJCQkwNzI1RUZBRDIzOUIwMjQ1MDBBNTM4QTkg
LyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovLAogCQkJCTA3MjVFRkFDMjM5
QUUzODUwMEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oICovLAogCQkJ
CTA3MjVFRkFCMjM5QUUzODQwMEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLywKQEAgLTU3ODQsOCArNTgwNCwxMCBAQAogCQkJCTFERDJBNjY2MjU2
MUVEMDQwMEZGN0I2RiAvKiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbiAqLywK
IAkJCQkwN0UxOUYwNzIzRDREQzg4MDA5NEZGQjQgLyogUmVtb3RlVGV4dFRyYWNrUHJveHkuY3Bw
ICovLAogCQkJCTA3RTE5RjA2MjNENERDODgwMDk0RkZCNCAvKiBSZW1vdGVUZXh0VHJhY2tQcm94
eS5oICovLAorCQkJCTFENkUyN0RGMjU2NkU4NkIwMEFDN0FFQiAvKiBSZW1vdGVUZXh0VHJhY2tQ
cm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFCQzU4NDIzQ0MyQzA5MDA2ODBEN0MgLyogUmVt
b3RlVmlkZW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU4NTIzQ0MyQzA5MDA2ODBEN0Mg
LyogUmVtb3RlVmlkZW9UcmFja1Byb3h5LmggKi8sCisJCQkJMUQ2RTI3REUyNTY2RTg1ODAwQUM3
QUVCIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwN0UxOUYw
NTIzRDREQzg4MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24u
aCAqLywKIAkJCQkwNzFCQzU3QjIzQ0E1MzI0MDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oICovLAogCQkJCTA3MUJDNTdEMjNDQTU2RDIwMDY4MEQ3QyAvKiBUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8sCkBAIC0xMDM0Nyw2ICsxMDM2OSw5IEBACiAJ
CQkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNERDUzNTc3MjQwRERFMDcw
MEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAor
CQkJCTFEMDM2OUEyMjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTFEMDM2OUE3MjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1v
dGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlcy5oICovLAorCQkJCTFEMDM2OUEzMjU2Nzk0M0IwMDQ0
MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkw
RkYyNEEyQjE4NzlFNEJDMDAzQUJGMEQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQUMyMEYyMjNGQzM4M0EwMDIxREVFMyAvKiBSZW1v
dGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQUMyMEYzMjNG
QzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oICovLApAQCAt
MTAzOTYsNiArMTA0MjEsMTIgQEAKIAkJCQkxREQyQTY2QjI1NjIwMjFFMDBGRjdCNkYgLyogUmVt
b3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFERDJBNjY5
MjU2MjAyMUUwMEZGN0I2RiAvKiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VzLmggKi8s
CiAJCQkJMUREMkE2NkEyNTYyMDIxRTAwRkY3QjZGIC8qIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJMUQwMzY5QUEyNTY3OTQzQzAwNDQwMzcyIC8qIFJl
bW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkxRDAzNjlBNjI1
Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlcy5oICovLAorCQkJ
CTFEMDM2OUE4MjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oICovLAorCQkJCTFEMDM2OUE1MjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1vdGVWaWRl
b1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTFEMDM2OUE0MjU2Nzk0M0Iw
MDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oICovLAorCQkJCTFEMDM2
OUE5MjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaCAqLywKIAkJCQlBNTVCQTgyMTFCQTI1QkI4MDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVj
dG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUE1NUJBODIyMUJBMjVCQjgwMDdD
RDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUJCQkU0
OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFJlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKQEAgLTEzMTc2LDYgKzEzMjA3LDcgQEAKIAkJCQkxQTBDMjI3RjI0NTExMzBBMDBF
RDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVy
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEMDM2OUFF
MjU2Nzk2QjkwMDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMjRBMkQxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEQUMyMEY3MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFE
RUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMzE5Nyw2ICsxMzIyOSw4IEBACiAJCQkJMUFDMTMzODUxODU5MEM0NjAwRjNF
QzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGNTk0N0E3MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxREQyQTY2RTI1
NjIwMjFFMDBGRjdCNkYgLyogUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQwMzY5QUMyNTY3OTY5OTAwNDQwMzcyIC8qIFJlbW90
ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFE
MDM2OUFEMjU2Nzk2QUIwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8q
IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFCQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBSZW1vdGVXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMThFNjkxNzE2OUI2NjdCMDA5
QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggM2RmMGIxYzA5YjM0YTc3ODhmOTEw
YTQyYTA1NWNhNTAwYWE5NWJmZC4uNzIxYzBhYTkyMDcyNGU5YjMzYjU4NjUzMDMxMzdiNmNhNTQ5
MDBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTI5LDE0ICsyOSwxNSBAQAog
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgotI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvVHJhY2tQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotICAgIDogbV9wbGF5ZXIocGxheWVyKQorQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICA6IG1f
Y29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZpZXIpCiB7
CiAgICAgdXBkYXRlQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKQEAgLTQ1
LDcgKzQ2LDcgQEAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWUKIHZvaWQgQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGU6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIGlmIChlbmFibGVkICE9
IHRoaXMtPmVuYWJsZWQoKSkKLSAgICAgICAgbV9wbGF5ZXIuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkF1ZGlvVHJhY2tTZXRFbmFibGVkKG1faWRl
bmRpZmllciwgZW5hYmxlZCksIG1fcGxheWVyLml0ZW50aWZpZXIoKSk7CisgICAgICAgIG1fY29u
bmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6OlNldEVuYWJsZWQo
ZW5hYmxlZCksIG1faWRlbmRpZmllcik7CiAKICAgICBBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0RW5h
YmxlZChlbmFibGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaAppbmRleCBkMjhjMDdlNDdk
OWY2MDMyNjQ5ZTAwNGU4YmViNmNlYTIwYTRlOGVjLi4yOTA3YThlNjc5NTQ3YjI5Mjc4NzllMDg3
MmEwNTlhZDk0NGE5MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0yOCw5ICsyOCwx
NCBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0F1ZGlvVHJhY2tQcml2YXRlLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29u
bmVjdGlvbjsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTsKQEAgLTM5LDE1ICs0NCwxNSBAQCBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbjsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlIGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIFJlZjxBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKHBsYXllciwgaWRlbmRpZmllciwg
V1RGTW92ZShjb25maWd1cmF0aW9uKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShjb25uZWN0aW9uLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNv
bmZpZ3VyYXRpb24pKSk7CiAgICAgfQogCiAgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiwgVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAg
ICBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24mLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAg
ICAgdXNpbmcgQXVkaW9UcmFja0tpbmQgPSBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2lu
ZDsKICAgICBBdWRpb1RyYWNrS2luZCBraW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9raW5k
OyB9CkBAIC01Nyw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3RyYWNrSW5kZXg7IH0KICAgICB2b2lkIHNldEVuYWJsZWQoYm9v
bCkgZmluYWw7CiAKLSAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1fcGxheWVyOworICAg
IElQQzo6Q29ubmVjdGlvbiYgbV9jb25uZWN0aW9uOwogICAgIEF1ZGlvVHJhY2tLaW5kIG1fa2lu
ZCB7IE5vbmUgfTsKICAgICBBdG9tU3RyaW5nIG1faWQ7CiAgICAgQXRvbVN0cmluZyBtX2xhYmVs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGI4YTQ3MjIzNDE2ZGEyNWQ4YjJj
MWIyNTNmMGFiMGYzMzc5YTkxMDEuLmRhNDBjNDBlNjBlODA3ZTJmMjNjNGY5ZTVlZTE2MGZmN2Vj
YzJjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTQ1NSw3ICs0NTUsNyBA
QCBGbG9hdFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXR1cmFsU2l6ZSgpIGNvbnN0
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlQXVkaW9UcmFjayhUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9h
dWRpb1RyYWNrcy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKLSAgICAgICAgcmV0dXJuIEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZpZXIsIFdURk1vdmUoY29u
ZmlndXJhdGlvbikpOworICAgICAgICByZXR1cm4gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OmNy
ZWF0ZShjb25uZWN0aW9uKCksIGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwog
ICAgIH0pOwogICAgIEFTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiAKQEAgLTQ4Niw3ICs0
ODYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmFkZFJlbW90ZVRleHRUcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdGV4dFRyYWNrcy5lbnN1cmUoaWRlbnRp
ZmllciwgWyZdIHsKLSAgICAgICAgcmV0dXJuIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0
ZSgqdGhpcywgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisgICAgICAgIHJl
dHVybiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUoY29ubmVjdGlvbigpLCBpZGVudGlm
aWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKICAgICB9KTsKICAgICBBU1NFUlQoYWRkUmVz
dWx0LmlzTmV3RW50cnkpOwogCkBAIC01OTksNyArNTk5LDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGUKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRlb1RyYWNr
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgYXV0byBhZGRSZXN1bHQg
PSBtX3ZpZGVvVHJhY2tzLmVuc3VyZShpZGVudGlmaWVyLCBbJl0gewotICAgICAgICByZXR1cm4g
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSgqdGhpcywgaWRlbnRpZmllciwgV1RGTW92
ZShjb25maWd1cmF0aW9uKSk7CisgICAgICAgIHJldHVybiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZTo6Y3JlYXRlKGNvbm5lY3Rpb24oKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9u
KSk7CiAgICAgfSk7CiAgICAgQVNTRVJUKGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggMGQ2MTNjNGRiMmE0OTZiNzczYTZhMTcyYTdjYjc4ZTJj
MDEyNTQ5ZS4uZDhmZGNmYzRlNzBhOTkyYTFhNWExYjU2MjQwYjI5MzFjZTU4MTVlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0xNTIsNiArMTUyLDEyIEBAIHB1YmxpYzoKICAgICB2
b2lkIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKGNvbnN0IFN0cmluZyYsIElQQzo6RGF0
YVJlZmVyZW5jZSYmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKyAgICBS
ZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+IGF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QgeyByZXR1cm4gbV9h
dWRpb1RyYWNrcy5nZXQoaWRlbnRpZmllcik7IH0KKyAgICBSZWZQdHI8VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGU+IHZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWRlbnRpZmllcikgY29uc3QgeyByZXR1cm4gbV92aWRlb1RyYWNrcy5nZXQoaWRlbnRp
Zmllcik7IH0KKyAgICBSZWZQdHI8VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZT4gdGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0
IHsgcmV0dXJuIG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcik7IH0KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lkIGN1cnJlbnRQbGF5YmFj
a1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJvb2wpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCmluZGV4IGY0Y2M4YmNiMmJmZmIzZjEwOTg1N2U3
ZDZkYTdmNmE5NTBlNmZhZWIuLjNjMzI3Y2Y5NDM5MGQ2YjgyYzcwODVhMmI2MWUyZmZkYTcxMWU2
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBAIC00
Miw2ICs0MiwxMCBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVm
Q291bnRlZCB7CiAgICAgUmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCkKICAgICBSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJh
dGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQs
IHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJh
dGlvbikKIAorICAgIEFkZFJlbW90ZVZpZGVvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBSZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFdl
YktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lEKQorICAgIFJlbW90ZVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiBjb25maWd1cmF0aW9uKQorCiAgICAgQWRkUmVtb3RlVGV4dFRyYWNrKFdlYktpdDo6
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUZXh0
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIFJlbW92
ZVJlbW90ZVRleHRUcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCkKICAgICBSZW1vdGVUZXh0VHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKQEAgLTYxLDEwICs2
NSw2IEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBOb3RSZWZDb3VudGVk
IHsKICAgICBVcGRhdGVHZW5lcmljQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEgY3VlKQogICAgIFJl
bW92ZUdlbmVyaWNDdWUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNr
SUQsIHN0cnVjdCBXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSBjdWUpCiAKLSAgICBBZGRSZW1vdGVW
aWRlb1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBz
dHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b24pCi0gICAgUmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgdHJhY2tJRCkKLSAgICBSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNo
YW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVj
dCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikK
LQogICAgIFJlcXVlc3RSZXNvdXJjZShXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxv
YWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucykgLT4gKCkgQXN5bmMKICAgICBSZW1vdmVSZXNvdXJj
ZShXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyKQogICAgIFNlbmRIMlBpbmcoVVJMIHVybCkgLT4gKEV4cGVjdGVkPFNlY29u
ZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3Rl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2
YXRlUmVtb3RlLmNwcAppbmRleCAyNmJjZmE1YWExNWEzZTJlOTZjOTk1ZjhiZTM0N2E5NmFmZTk2
NDQyLi4wYWM3ODcyMGJhYzRkNDI4ZDEyNDcwNDg5ODY1OTM5MzhmZjc4NWRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJl
bW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNv
dXJjZVByaXZhdGVSZW1vdGUuY3BwCkBAIC00NiwyMiArNDYsMjIgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8TWVkaWFTb3VyY2VQcml2YXRl
UmVtb3RlPiBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmNyZWF0ZShHUFVQcm9jZXNzQ29ubmVj
dGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFJlbW90ZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUmIG1pbWVUeXBlQ2FjaGUs
IGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWVyUHJpdmF0ZSwgTWVkaWFTb3Vy
Y2VQcml2YXRlQ2xpZW50KiBjbGllbnQpCitSZWY8TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlPiBN
ZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24sIFJlbW90ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUmIG1pbWVUeXBlQ2FjaGUsIGNvbnN0IE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgbWVkaWFQbGF5ZXJQcml2YXRlLCBNZWRpYVNvdXJjZVBy
aXZhdGVDbGllbnQqIGNsaWVudCkKIHsKLSAgICBhdXRvIG1lZGlhU291cmNlUHJpdmF0ZSA9IGFk
b3B0UmVmKCpuZXcgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKGdwdVByb2Nlc3NDb25uZWN0aW9u
LCBpZGVudGlmaWVyLCBtaW1lVHlwZUNhY2hlLCBwbGF5ZXJQcml2YXRlLCBjbGllbnQpKTsKKyAg
ICBhdXRvIG1lZGlhU291cmNlUHJpdmF0ZSA9IGFkb3B0UmVmKCpuZXcgTWVkaWFTb3VyY2VQcml2
YXRlUmVtb3RlKGdwdVByb2Nlc3NDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBtaW1lVHlwZUNhY2hl
LCBtZWRpYVBsYXllclByaXZhdGUsIGNsaWVudCkpOwogICAgIGNsaWVudC0+c2V0UHJpdmF0ZUFu
ZE9wZW4obWVkaWFTb3VyY2VQcml2YXRlLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIG1lZGlhU291
cmNlUHJpdmF0ZTsKIH0KIAotTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVBy
aXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBS
ZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlJiBtaW1lVHlwZUNhY2hlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUmIHBsYXllclByaXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogY2xpZW50KQorTWVk
aWFTb3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlJiBtaW1lVHlw
ZUNhY2hlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1lZGlhUGxheWVyUHJpdmF0
ZSwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KiBjbGllbnQpCiAgICAgOiBtX2dwdVByb2Nlc3ND
b25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCiAgICAgLCBtX21pbWVUeXBlQ2FjaGUobWltZVR5cGVDYWNoZSkKLSAgICAsIG1fcGxh
eWVyUHJpdmF0ZShtYWtlV2Vha1B0cihwbGF5ZXJQcml2YXRlKSkKKyAgICAsIG1fbWVkaWFQbGF5
ZXJQcml2YXRlKG1ha2VXZWFrUHRyKG1lZGlhUGxheWVyUHJpdmF0ZSkpCiAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgLCBtX2xvZ2dlcihtX3Bs
YXllclByaXZhdGUtPm1lZGlhUGxheWVyTG9nZ2VyKCkpCi0gICAgLCBtX2xvZ0lkZW50aWZpZXIo
bV9wbGF5ZXJQcml2YXRlLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKKyAgICAsIG1fbG9n
Z2VyKG1fbWVkaWFQbGF5ZXJQcml2YXRlLT5tZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9s
b2dJZGVudGlmaWVyKG1fbWVkaWFQbGF5ZXJQcml2YXRlLT5tZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIoKSkKICNlbmRpZgogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CkBAIC05NSw3
ICs5NSw3IEBAIE1lZGlhU291cmNlUHJpdmF0ZTo6QWRkU3RhdHVzIE1lZGlhU291cmNlUHJpdmF0
ZVJlbW90ZTo6YWRkU291cmNlQnVmZmVyKGNvbnN0IENvCiAKICAgICBpZiAoc3RhdHVzID09IEFk
ZFN0YXR1czo6T2spIHsKICAgICAgICAgQVNTRVJUKHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZp
ZXIuaGFzVmFsdWUoKSk7Ci0gICAgICAgIGF1dG8gbmV3U291cmNlQnVmZmVyID0gU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sICpyZW1vdGVT
b3VyY2VCdWZmZXJJZGVudGlmaWVyLCAqdGhpcyk7CisgICAgICAgIGF1dG8gbmV3U291cmNlQnVm
ZmVyID0gU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKG1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24sICpyZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCAqdGhpcywgKm1fbWVkaWFQbGF5
ZXJQcml2YXRlKTsKICAgICAgICAgb3V0UHJpdmF0ZSA9IG5ld1NvdXJjZUJ1ZmZlci5jb3B5UmVm
KCk7CiAgICAgICAgIG1fc291cmNlQnVmZmVycy5hcHBlbmQoV1RGTW92ZShuZXdTb3VyY2VCdWZm
ZXIpKTsKICAgICB9CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBNZWRpYVNvdXJjZVByaXZhdGVS
ZW1vdGU6OnVubWFya0VuZE9mU3RyZWFtKCkKIAogTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVk
aWFTb3VyY2VQcml2YXRlUmVtb3RlOjpyZWFkeVN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9wbGF5ZXJQcml2YXRlID8gbV9wbGF5ZXJQcml2YXRlLT5yZWFkeVN0YXRlKCkgOiBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CisgICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXJQ
cml2YXRlID8gbV9tZWRpYVBsYXllclByaXZhdGUtPnJlYWR5U3RhdGUoKSA6IE1lZGlhUGxheWVy
OjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZzsKIH0KIAogdm9pZCBNZWRpYVNvdXJjZVByaXZhdGVS
ZW1vdGU6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJl
bW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNvdXJjZVBy
aXZhdGVSZW1vdGUuaAppbmRleCAwMWM5NDQyNWI0OGIzOTZlOTY3YzRlODIxNGRmYjZlNTM1YTU1
MGJkLi43NzgzNGY3YTE5ZGNiMGI5NGVkNTJmNjY4MDBlNjA1YzMxNTM0Nzk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJl
bW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3Vy
Y2VQcml2YXRlUmVtb3RlLmgKQEAgLTU0LDggKzU0LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24m
LCBSZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZSYsIGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYsIFdlYkNvcmU6Ok1lZGlhU291
cmNlUHJpdmF0ZUNsaWVudCopOwogICAgIHZpcnR1YWwgfk1lZGlhU291cmNlUHJpdmF0ZVJlbW90
ZSgpOwogCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiBwbGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3BsYXllclByaXZhdGUuZ2V0KCk7IH0KLQogICAgIC8vIE1lZGlhU291cmNlUHJpdmF0
ZSBvdmVycmlkZXMKICAgICBBZGRTdGF0dXMgYWRkU291cmNlQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OkNvbnRlbnRUeXBlJiwgUmVmUHRyPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGU+JikgZmlu
YWw7CiAgICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKSBmaW5hbDsKQEAgLTc3LDcgKzc1LDcgQEAg
cHJpdmF0ZToKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bjsKICAgICBSZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJl
bW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgbV9taW1lVHlwZUNhY2hlOwotICAgIFdlYWtQ
dHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBtX3BsYXllclByaXZhdGU7CisgICAgV2Vha1B0
cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IG1fbWVkaWFQbGF5ZXJQcml2YXRlOwogICAgIFJl
ZlB0cjxXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ+IG1fY2xpZW50OwogICAgIFZl
Y3RvcjxSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZT4+IG1fc291cmNlQnVmZmVyczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggNmY0NTQ4YTEwNzRkZGJjNmFj
ZTcxN2YzN2QyNjliOGVkOTVlODM5NC4uODM5NTMzZGY1MTUzNTQ3OTk5MTdhMWFhOWU1ZmQ2ZmJj
ODQ3MWJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9T
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCkBAIC0yOCwxMiArMjgs
MTUgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
IAorI2luY2x1ZGUgIkluaXRpYWxpemF0aW9uU2VnbWVudEluZm8uaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAi
TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiUmVtb3RlU291cmNlQnVmZmVy
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNz
YWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKQEAgLTQ1
LDE1ICs0OCwxNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKLVJlZjxTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlPiBTb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlOjpjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9u
LCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZp
ZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZSYgbWVkaWFTb3VyY2VQcml2YXRlKQor
UmVmPFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU+IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6
OmNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFJlbW90
ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciwgY29u
c3QgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlJiBtZWRpYVNvdXJjZVByaXZhdGUsIGNvbnN0IE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgbWVkaWFQbGF5ZXJQcml2YXRlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24sIHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIG1lZGlhU291cmNlUHJpdmF0ZSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24sIHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIG1lZGlhU291
cmNlUHJpdmF0ZSwgbWVkaWFQbGF5ZXJQcml2YXRlKSk7CiB9CiAKLVNvdXJjZUJ1ZmZlclByaXZh
dGVSZW1vdGU6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24m
IGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIHJlbW90
ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZSYg
bWVkaWFTb3VyY2VQcml2YXRlKQorU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24sIFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgcmVtb3RlU291cmNlQnVmZmVySWRlbnRp
ZmllciwgY29uc3QgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlJiBtZWRpYVNvdXJjZVByaXZhdGUs
IGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgbWVkaWFQbGF5ZXJQcml2YXRlKQogICAg
IDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1f
cmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcihyZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
KQogICAgICwgbV9tZWRpYVNvdXJjZVByaXZhdGUobWFrZVdlYWtQdHIobWVkaWFTb3VyY2VQcml2
YXRlKSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJQcml2YXRlKG1ha2VXZWFrUHRyKG1lZGlhUGxheWVy
UHJpdmF0ZSkpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21l
ZGlhU291cmNlUHJpdmF0ZS0+bG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIobV9tZWRp
YVNvdXJjZVByaXZhdGUtPm5leHRTb3VyY2VCdWZmZXJMb2dJZGVudGlmaWVyKCkpCkBAIC05OCw3
ICsxMDIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnJlbW92ZWRGcm9tTWVk
aWFTb3VyY2UoKQogCiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBTb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlOjpyZWFkeVN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tZWRpYVNvdXJjZVBy
aXZhdGUgPyBtX21lZGlhU291cmNlUHJpdmF0ZS0+cGxheWVyKCktPnJlYWR5U3RhdGUoKSA6IE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZzsKKyAgICByZXR1cm4gbV9tZWRpYVBs
YXllclByaXZhdGUgPyBtX21lZGlhUGxheWVyUHJpdmF0ZS0+cmVhZHlTdGF0ZSgpIDogTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGU6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpCkBAIC0x
NTIsNiArMTU2LDM4IEBAIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6Y2FuU3dpdGNo
VG9UeXBlKGNvbnN0IENvbnRlbnRUeXBlJikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoSW5pdGlhbGl6YXRpb25TZWdtZW50SW5mbyYmIHNlZ21lbnRJ
bmZvKQoreworICAgIGlmICghbV9jbGllbnQgfHwgIW1fbWVkaWFQbGF5ZXJQcml2YXRlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXph
dGlvblNlZ21lbnQgc2VnbWVudDsKKyAgICBzZWdtZW50LmR1cmF0aW9uID0gc2VnbWVudEluZm8u
ZHVyYXRpb247CisKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBzZWdtZW50SW5mby5hdWRp
b1RyYWNrcykgeworICAgICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXph
dGlvblNlZ21lbnQ6OkF1ZGlvVHJhY2tJbmZvcm1hdGlvbiBpbmZvOworICAgICAgICBpbmZvLnRy
YWNrID0gbV9tZWRpYVBsYXllclByaXZhdGUtPmF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKGF1ZGlv
VHJhY2suaWRlbnRpZmllcik7CisgICAgICAgIGluZm8uZGVzY3JpcHRpb24gPSBhZG9wdFJlZigq
bmV3IFJlbW90ZU1lZGlhRGVzY3JpcHRpb24oYXVkaW9UcmFjay5kZXNjcmlwdGlvbikpOworICAg
ICAgICBzZWdtZW50LmF1ZGlvVHJhY2tzLmFwcGVuZChpbmZvKTsKKyAgICB9CisKKyAgICBmb3Ig
KGF1dG8mIHZpZGVvVHJhY2sgOiBzZWdtZW50SW5mby52aWRlb1RyYWNrcykgeworICAgICAgICBT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQ6OlZpZGVvVHJh
Y2tJbmZvcm1hdGlvbiBpbmZvOworICAgICAgICBpbmZvLnRyYWNrID0gbV9tZWRpYVBsYXllclBy
aXZhdGUtPnZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKHZpZGVvVHJhY2suaWRlbnRpZmllcik7Cisg
ICAgICAgIGluZm8uZGVzY3JpcHRpb24gPSBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhRGVzY3Jp
cHRpb24odmlkZW9UcmFjay5kZXNjcmlwdGlvbikpOworICAgICAgICBzZWdtZW50LnZpZGVvVHJh
Y2tzLmFwcGVuZChpbmZvKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIHRleHRUcmFjayA6IHNl
Z21lbnRJbmZvLnRleHRUcmFja3MpIHsKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dDo6SW5pdGlhbGl6YXRpb25TZWdtZW50OjpUZXh0VHJhY2tJbmZvcm1hdGlvbiBpbmZvOworICAg
ICAgICBpbmZvLnRyYWNrID0gbV9tZWRpYVBsYXllclByaXZhdGUtPnRleHRUcmFja1ByaXZhdGVS
ZW1vdGUodGV4dFRyYWNrLmlkZW50aWZpZXIpOworICAgICAgICBpbmZvLmRlc2NyaXB0aW9uID0g
YWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYURlc2NyaXB0aW9uKHRleHRUcmFjay5kZXNjcmlwdGlv
bikpOworICAgICAgICBzZWdtZW50LnRleHRUcmFja3MuYXBwZW5kKGluZm8pOworICAgIH0KKwor
ICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9u
U2VnbWVudChXVEZNb3ZlKHNlZ21lbnQpKTsKK30KKwogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudDo6QXBwZW5kUmVzdWx0IGFwcGVuZFJlc3VsdCkKIHsKICAgICBpZiAobV9jbGll
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGI5YTAxYjA2MjVlM2I3YzdmMDEx
ODRhODNjMzZlNTQ5MTIyZjA5YTguLjAwZGU5Yzc1OWRlNTBlNzBiZmQ0MzU5NzM3NmM4MTU1ZmVk
YzIzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zMCwxMCArMzAsMTIgQEAK
ICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgogI2luY2x1ZGUgIlJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIuaCIKKyNpbmNs
dWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9D
b250ZW50VHlwZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NvdXJjZUJ1ZmZlclByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgpAQCAtNDQsMTEgKzQ2LDEyIEBACiBuYW1lc3BhY2UgSVBDIHsKIGNs
YXNzIENvbm5lY3Rpb247CiBjbGFzcyBEZWNvZGVyOwotY2xhc3MgRGF0YVJlZmVyZW5jZTsKIH0K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0cnVjdCBJbml0aWFsaXphdGlvblNlZ21lbnRJbmZv
OworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwogY2xhc3MgTWVkaWFTb3VyY2VQcml2
YXRlUmVtb3RlOwogCiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlIGZpbmFsCkBAIC02
MCwxMyArNjMsMTMgQEAgY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZSBmaW5hbAogI2Vu
ZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
PiBjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmKTsKKyAgICBzdGF0aWMgUmVmPFNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU+IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFJl
bW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90
ZSYsIGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYpOwogICAgIHZpcnR1YWwgflNvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUoKTsKIAogICAgIHZvaWQgY2xlYXJNZWRpYVNvdXJjZSgpIHsg
bV9tZWRpYVNvdXJjZVByaXZhdGUgPSBudWxscHRyOyB9CiAKIHByaXZhdGU6Ci0gICAgU291cmNl
QnVmZmVyUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFJlbW90ZVNvdXJjZUJ1
ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZSYpOworICAgIFNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBSZW1vdGVTb3Vy
Y2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmLCBjb25z
dCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmKTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZh
dGUgb3ZlcnJpZGVzCiAgICAgdm9pZCBzZXRDbGllbnQoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudCopIGZpbmFsOwpAQCAtODcsMTEgKzkwLDE0IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBjYW5Td2l0Y2hUb1R5cGUoY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmKSBmaW5hbDsKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
JikgZmluYWw7CisKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KEluaXRpYWxpemF0aW9uU2VnbWVudEluZm8mJik7CiAgICAgdm9pZCBz
b3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudDo6QXBwZW5kUmVzdWx0KTsKIAogICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBt
X2dwdVByb2Nlc3NDb25uZWN0aW9uOwogICAgIFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIg
bV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyOwogICAgIFdlYWtQdHI8TWVkaWFTb3VyY2VQ
cml2YXRlUmVtb3RlPiBtX21lZGlhU291cmNlUHJpdmF0ZTsKKyAgICBXZWFrUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZT4gbV9tZWRpYVBsYXllclByaXZhdGU7CiAgICAgV2ViQ29yZTo6U291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CiAKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbgppbmRleCBhYTE5ODIxMWNlOTlhYmFkNWI4ZWUwN2ZkNGUxNzdiZGZhOTVhNDBjLi40
MDY0MmY2MDM2ZWY3ZTExZTIzYjgwZjVhNDUxZDc2ZjNlZDI4YzRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBAIC0yNiw2ICsyNiw3IEBACiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiBtZXNzYWdlcyAt
PiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgeworICAgIFNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KHN0cnVjdCBXZWJLaXQ6
OkluaXRpYWxpemF0aW9uU2VnbWVudEluZm8gc2VnbWVudENvbmZpZ3VyYXRpb24pCiAgICAgU291
cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZh
dGVDbGllbnQ6OkFwcGVuZFJlc3VsdCBhcHBlbmRSZXN1bHQpCiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUuY3BwCmluZGV4IDExNzkzN2ZlMmQzY2NmY2M4MWY4OTk5MTRkNWE5ZjY4MGM3MGIzNDcu
LjczMjIzYjg2ODQyMTNhMGJkOGY3MTI4MmE4ZThkZWE2MTU5OTVlYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmNwcApAQCAtMjksMTcgKzI5LDE4IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiAKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgotI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHRUcmFja1By
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVRleHRUcmFja1By
aXZhdGVSZW1vdGU6OlRleHRUcmFja1ByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlJiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIDog
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZShjb25maWd1cmF0aW9uLmN1ZUZvcm1hdCkK
LSAgICAsIG1fcGxheWVyKHBsYXllcikKKyAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQog
ICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZpZXIpCiB7CiAgICAgdXBkYXRlQ29uZmlndXJhdGlv
bihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKQEAgLTQ4LDcgKzQ5LDcgQEAgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUmIHBsYXllciwKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0TW9kZShUZXh0VHJh
Y2tNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgIT0gbV9tb2RlKQotICAgICAgICBtX3BsYXll
ci5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VGV4
dFRyYWNrU2V0TW9kZShtX2lkZW5kaWZpZXIsIG1vZGUpLCBtX3BsYXllci5pdGVudGlmaWVyKCkp
OworICAgICAgICBtX2Nvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6UmVtb3RlVGV4dFRyYWNrUHJv
eHk6OlNldE1vZGUobW9kZSksIG1faWRlbmRpZmllcik7CiAKICAgICBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlOjpzZXRNb2RlKG1vZGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAppbmRleCBiN2Nl
ZGI3ZTgzOTRmOTliYTljZmIwYTJhYzJhOTc4MTFiM2M0MThmLi5kNTQyNDQyYzg0NGU1NDgzZmQz
Y2VkNzg1MDVkY2ExODY5NGFlNGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgogCiBu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBEYXRhUmVmZXJlbmNlOwog
fQogCkBAIC01MCw5ICs1MSw5IEBAIGNsYXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGUgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1YmxpYzoKIAotICAgIHN0YXRp
YyBSZWY8VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICBz
dGF0aWMgUmVmPFRleHRUcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5
ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShjb25uZWN0aW9uLCBpZGVuZGlm
aWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAgICAgfQogCiAgICAgdm9pZCBhZGREYXRh
Q3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5j
ZSYmKTsKQEAgLTk5LDkgKzEwMCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzRGVmYXVsdCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1faXNEZWZhdWx0OyB9CiAKIHByaXZhdGU6Ci0gICAgVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsK
KyAgICBUZXh0VHJhY2tQcml2YXRlUmVtb3RlKElQQzo6Q29ubmVjdGlvbiYsIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYp
OwogCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBtX3BsYXllcjsKKyAgICBJUEM6OkNv
bm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKICAgICBBdG9tU3RyaW5nIG1faWQ7CiAgICAgQXRvbVN0
cmluZyBtX2xhYmVsOwogICAgIEF0b21TdHJpbmcgbV9sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZS5jcHAKaW5kZXggM2Y2OTQ5MGE5MmQxZmRiZTA0NWQwNmFlYjJlOGZiNGJjZmY5NmFk
MC4uYWM2ZWEwMTQyNzFjMzMxMjZjZDc1MmIzZmZkM2I3ODU0MzlkZTY1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTI5LDEzICsyOSwxNCBAQAogCiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oIgotI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VzLmgiCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24pCi0gICAgOiBtX3BsYXllcihwbGF5ZXIpCitWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIDogbV9jb25uZWN0
aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW5kaWZpZXIoaWRlbmRpZmllcikKIHsKICAgICB1
cGRhdGVDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpOwpAQCAtNDQsNyArNDUs
NyBAQCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZQogdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZTo6c2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkKIHsKICAgICBpZiAoc2VsZWN0ZWQgIT0gdGhp
cy0+c2VsZWN0ZWQoKSkKLSAgICAgICAgbV9wbGF5ZXIuY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvVHJhY2tTZXRTZWxlY3RlZChtX2lkZW5k
aWZpZXIsIHNlbGVjdGVkKSwgbV9wbGF5ZXIuaXRlbnRpZmllcigpKTsKKyAgICAgICAgbV9jb25u
ZWN0aW9uLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6U2V0U2VsZWN0ZWQo
c2VsZWN0ZWQpLCBtX2lkZW5kaWZpZXIpOwogCiAgICAgVmlkZW9UcmFja1ByaXZhdGU6OnNldFNl
bGVjdGVkKHNlbGVjdGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaAppbmRleCA2MTI5OGE2
NWVkZDMzMjdhYmU1OTU1NTEyMjQzNmVlNWFiZGI0M2Q4Li5mMzZlMDZiMTAyZDI0YzI5ZWNlODUw
ZWE2ZDEzNjY1MzgyYTRiYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0zMiwxNyAr
MzIsMjIgQEAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgogCituYW1lc3BhY2UgSVBDIHsKK2Ns
YXNzIENvbm5lY3Rpb247Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU7CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bjsKIAotY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUgOiBwdWJsaWMgV2ViQ29yZTo6Vmlk
ZW9UcmFja1ByaXZhdGUgeworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUKKyAgICA6IHB1
YmxpYyBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxh
eWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBSZWY8Vmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIs
IFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoY29ubmVjdGlvbiwgaWRlbmRpZmllciwgV1RGTW92ZShj
b25maWd1cmF0aW9uKSkpOwogICAgIH0KIAogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwpAQCAtNTQsMTIgKzU5LDEyIEBAIHB1
YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9s
YW5ndWFnZTsgfQogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90
cmFja0luZGV4OyB9CiAKLXByb3RlY3RlZDoKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUmLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworcHJpdmF0ZToKKyAgICBWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24mLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAgICAgdm9pZCBz
ZXRTZWxlY3RlZChib29sKSBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYg
bV9wbGF5ZXI7CisgICAgSVBDOjpDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CiAgICAgVmlkZW9U
cmFja0tpbmQgbV9raW5kIHsgTm9uZSB9OwogICAgIEF0b21TdHJpbmcgbV9pZDsKICAgICBBdG9t
U3RyaW5nIG1fbGFiZWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414774</attachid>
            <date>2020-11-21 17:03:41 -0800</date>
            <delta_ts>2020-11-21 22:03:39 -0800</delta_ts>
            <desc>Fix build failures on the WPE port</desc>
            <filename>bug-219227-20201121170340.patch</filename>
            <type>text/plain</type>
            <size>115409</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY5YjIzYWM5ZjVlYWI3
ZTU0NmMwMjljMWRmZDYwNTM3YzRmZmFhYS4uNjE1NjRmNTExZDhkYjYxMWY2N2VhMzhiMzRhOTZk
ZTM3YmI3ZDY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTExLTIxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIEluIEdQVSBQcm9j
ZXNzXVtNU0VdIEFkZCB0aGUgc3VwcG9ydCB0byBmb3J3YXJkIGluaXRpYWxpemF0aW9uIHNlZ21l
bnQgZnJvbSB0aGUgR1BVIFByb2Nlc3MgdG8gV2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MjI3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorCiAyMDIw
LTExLTE4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtX
ZWIgQW5pbWF0aW9uc10gRW5zdXJlIHdlIGRvbid0IHNjaGVkdWxlIGFuaW1hdGlvbiB1ZHBhdGVz
IHdoZW4gdGhlcmUgYXJlIG5vIHN0eWxlcyB0byB1cGRhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGFlYTI1NWE5
MjhhYWFkZTIzOWFkYzEwMGRmNTAxMzE5ZTVjZjEwMS4uN2E3MGYyZWM5Zjg1ZDkyYTZiMmMxNTZi
OGFjODRjYzQ3ODQ1NGJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTggQEAKKzIwMjAtMTEtMjEg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgSW4gR1BV
IFByb2Nlc3NdW01TRV0gQWRkIHRoZSBzdXBwb3J0IHRvIGZvcndhcmQgaW5pdGlhbGl6YXRpb24g
c2VnbWVudCBmcm9tIHRoZSBHUFUgUHJvY2VzcyB0byBXZWIgcHJvY2Vzc2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyMjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhl
IHN1cHBvcnQgdG8gZm9yd2FyZCBgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoKWAKKyAgICAgICAgY2FsbGJhY2sgZnJvbSB0aGUgc291cmNlIGJ1ZmZl
ciBwYXJzZXIgcnVubmluZyBpbiB0aGUgR1BVIHByb2Nlc3MgdG8gdGhlIGBTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlYAorICAgICAgICBydW5uaW5nIGluIHRoZSBXZWIgcHJvY2Vzcywgd2hpY2gg
aW4gdHVybiBwcm92aWRlcyB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudCB0byBgU291cmNlQnVm
ZmVyYC4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9Jbml0aWFsaXph
dGlvblNlZ21lbnRJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXphdGlv
blNlZ21lbnRJbmZvOjpUcmFja0luZm9ybWF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvOjpUcmFja0luZm9ybWF0aW9uOjpkZWNv
ZGUpOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvOjpkZWNv
ZGUpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1Ry
YWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6On5SZW1v
dGVBdWRpb1RyYWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1RyYWNrUHJv
eHk6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9U
cmFja1Byb3h5Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvVHJhY2tQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4uCisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYURlc2NyaXB0aW9uLmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpNZWRpYURlc2NyaXB0aW9uSW5mbzo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFEZXNjcmlwdGlvbkluZm86OmRlY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhRGVzY3JpcHRpb246OlJlbW90ZU1lZGlhRGVzY3JpcHRpb24p
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWRNZWRpYVNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmFkZFJlbW90ZUF1
ZGlvVHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OmFkZFJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmFkZFJlbW90ZVRleHRUcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1v
dmVBdWRpb1RyYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJEaWRBZGRWaWRlb1RyYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJh
Y2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ckRpZFJlbW92ZVRleHRUcmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OmF1ZGlvVHJhY2tTZXRFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9UcmFja1NldFNlbGVjdGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGV4dFRyYWNrU2V0TW9k
ZSk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFT
b3VyY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6
OlJlbW90ZU1lZGlhU291cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNv
dXJjZVByb3h5OjphZGRTb3VyY2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFTb3VyY2VQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlU291cmNlQnVmZmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTb3VyY2VC
dWZmZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU291cmNlQnVmZmVy
UHJveHk6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U291cmNlQnVmZmVyUHJveHk6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5OjpSZW1vdGVU
ZXh0VHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5Ojp+
UmVtb3RlVGV4dFRyYWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQ
cm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6d2lsbFJlbW92ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFj
a1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJv
eHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94
eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5
OjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6
OnVwZGF0ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94
eTo6cmVtb3ZlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1By
b3h5OjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cGFyc2VXZWJWVFRDdWVEYXRhKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVUZXh0VHJhY2tQcm94eS5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2Vz
LmluLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1Ry
YWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6On5SZW1v
dGVWaWRlb1RyYWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJv
eHk6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9U
cmFja1Byb3h5Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVZpZGVvVHJhY2tQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4uCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0
OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0RW5hYmxlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVRleHRU
cmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVt
b3RlVmlkZW9UcmFjayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFT
b3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmFkZFNvdXJjZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZSBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3Rl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJl
bW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlOjpyZWFkeVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZTo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0
VHJhY2tQcml2YXRlUmVtb3RlOjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdl
YktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0TW9kZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKToK
KyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnNldFNlbGVjdGVkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKToKKwog
MjAyMC0xMS0xOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDbGVhbiB1cCBzb21lIGNvZGUgaW4gU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGYyYzNiNjRlNjRlMTc5Mjg4NGU3ODcxYTEwNzkxZDg3YTZhYzhmMmIu
LmM5ZWM1ZTQ1Nzc2OWYxZWU4ZWNiZmRjYmYwNWZiOWE5MmE5YjliMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTAwNiw2ICsxMDA2LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL0xvZ2dpbmcuaAogICAgIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmgKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgKKyAgICBwbGF0Zm9y
bS9NZWRpYURlc2NyaXB0aW9uLmgKICAgICBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCiAgICAgcGxh
dGZvcm0vTWVkaWFTZWxlY3Rpb25PcHRpb24uaAogICAgIHBsYXRmb3JtL01lZGlhU2Vzc2lvbklk
ZW50aWZpZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggNjI4NDQ1MzI1MDMzNTEwN2ZkNTQ5ODIy
MzJiOGI5ZWFlYzhlNjhjYi4uODhlMTUxYjEyMjI0ZmViY2M4OTNiNTNkNjg1ZTNlYzFiMDEwY2Q0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xMjYsNiArMTI2LDcgQEAgc2V0KFdlYktpdF9NRVNT
QUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZAogCiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5CiAgICAgR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eQogICAgIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNRmFjdG9yeVByb3h5CiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0
YW5jZVByb3h5CkBAIC0xMzksNiArMTQwLDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxF
UwogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIKICAgICBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkKICAgICBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5CisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVU
ZXh0VHJhY2tQcm94eQorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5
CiAKICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eQogICAgIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZWRiNmNhNTk3
OWQyZjRkZWY4YjJiMmU3NzNmOWQ2OWFlNzg2ZTdlOS4uZTUxY2FlZDIxZTE4NmNmMmExNzNjYjhh
MzMzMTJiZTBiMzA0YmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdApAQCAtMjUsNiArMjUsNyBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzgsOCBAQCAkKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlclBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDc1Njc5
ZjU1ZjVhZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQuLmU4OGIyYzIxZmE3MTdjNzdkMjMw
MmNiNTE4YmE0YWQzZWRlMjU3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTU3LDYgKzE1Nyw5IEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZXNSZXBsCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9U
cmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNETUZh
Y3RvcnlQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCkBAIC0yMzks
NiArMjQyLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXNSCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlc1Jl
cGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHRU
cmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVv
VHJhY2tQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM3NzAx
YjAxYzNjMWEyYzMwMGUxZGQyZDcyZTZiODUyMzdmNDI0YjUuLjY4MTQ4NTVmZjlkMjNhZjBhNzdl
NWZkYTZkZmQyZmQ1NTA5NzZmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI0
Miw2ICsyNDIsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETVByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25I
ZWxwZXJQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlciBcCisJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkgXAogCUdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlUHJveHkgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RN
UHJveHkgXApAQCAtMjUwLDYgKzI1MSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCUdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAogCUdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eSBcCisJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eSBc
CisJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkgXAogCVdlYkF1dGhuUHJv
Y2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgXAogCVdlYkF1dGhuUHJvY2Vzcy9X
ZWJBdXRoblByb2Nlc3MgXAogIwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL0luaXRpYWxpemF0aW9uU2VnbWVudEluZm8uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9Jbml0aWFsaXphdGlvblNlZ21lbnRJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQzNDhl
ZmQxZTM3YjcwNjdlMjhlZWJhZTY2YTkyZTIwYTAzZTVkMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9Jbml0aWFsaXphdGlvblNlZ21lbnRJbmZvLmgK
QEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1ZGUgIkRlY29k
ZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFEZXNjcmlw
dGlvbi5oIgorI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlIDx3dGYvTWVkaWFUaW1lLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IEluaXRpYWxp
emF0aW9uU2VnbWVudEluZm8geworICAgIE1lZGlhVGltZSBkdXJhdGlvbjsKKworICAgIHN0cnVj
dCBUcmFja0luZm9ybWF0aW9uIHsKKyAgICAgICAgTWVkaWFEZXNjcmlwdGlvbkluZm8gZGVzY3Jp
cHRpb247CisgICAgICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcjsK
KworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgorICAgICAgICB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBlbmNvZGVyIDw8
IGRlc2NyaXB0aW9uOworICAgICAgICAgICAgZW5jb2RlciA8PCBpZGVudGlmaWVyOworICAgICAg
ICB9CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgICAgIHN0YXRpYyBP
cHRpb25hbDxUcmFja0luZm9ybWF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICAg
ICAgeworICAgICAgICAgICAgT3B0aW9uYWw8TWVkaWFEZXNjcmlwdGlvbkluZm8+IG1lZGlhRGVz
Y3JpcHRpb247CisgICAgICAgICAgICBkZWNvZGVyID4+IG1lZGlhRGVzY3JpcHRpb247CisgICAg
ICAgICAgICBpZiAoIW1lZGlhRGVzY3JpcHRpb24pCisgICAgICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICAgICAgT3B0aW9uYWw8VHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllcj4gaWRlbnRpZmllcjsKKyAgICAgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsK
KyAgICAgICAgICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgICAgICBXVEZN
b3ZlKCptZWRpYURlc2NyaXB0aW9uKSwKKyAgICAgICAgICAgICAgICBXVEZNb3ZlKCppZGVudGlm
aWVyKQorICAgICAgICAgICAgfX07CisgICAgICAgIH0KKyAgICB9OworCisgICAgVmVjdG9yPFRy
YWNrSW5mb3JtYXRpb24+IGF1ZGlvVHJhY2tzOworICAgIFZlY3RvcjxUcmFja0luZm9ybWF0aW9u
PiB2aWRlb1RyYWNrczsKKyAgICBWZWN0b3I8VHJhY2tJbmZvcm1hdGlvbj4gdGV4dFRyYWNrczsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgZHVyYXRpb247CisgICAg
ICAgIGVuY29kZXIgPDwgYXVkaW9UcmFja3M7CisgICAgICAgIGVuY29kZXIgPDwgdmlkZW9UcmFj
a3M7CisgICAgICAgIGVuY29kZXIgPDwgdGV4dFRyYWNrczsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8SW5pdGlhbGl6YXRpb25TZWdt
ZW50SW5mbz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBPcHRpb25h
bDxNZWRpYVRpbWU+IGR1cmF0aW9uOworICAgICAgICBkZWNvZGVyID4+IGR1cmF0aW9uOworICAg
ICAgICBpZiAoIWR1cmF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgICAgICBPcHRpb25hbDxWZWN0b3I8VHJhY2tJbmZvcm1hdGlvbj4+IGF1ZGlvVHJhY2tzOwor
ICAgICAgICBkZWNvZGVyID4+IGF1ZGlvVHJhY2tzOworICAgICAgICBpZiAoIWF1ZGlvVHJhY2tz
KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxW
ZWN0b3I8VHJhY2tJbmZvcm1hdGlvbj4+IHZpZGVvVHJhY2tzOworICAgICAgICBkZWNvZGVyID4+
IHZpZGVvVHJhY2tzOworICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxWZWN0b3I8VHJhY2tJbmZvcm1h
dGlvbj4+IHRleHRUcmFja3M7CisgICAgICAgIGRlY29kZXIgPj4gdGV4dFRyYWNrczsKKyAgICAg
ICAgaWYgKCF0ZXh0VHJhY2tzKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgIFdURk1vdmUoKmR1cmF0aW9uKSwKKyAgICAg
ICAgICAgIFdURk1vdmUoKmF1ZGlvVHJhY2tzKSwKKyAgICAgICAgICAgIFdURk1vdmUoKnZpZGVv
VHJhY2tzKSwKKyAgICAgICAgICAgIFdURk1vdmUoKnRleHRUcmFja3MpCisgICAgICAgIH19Owor
ICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAppbmRleCBh
MmFjZjA1ZDQxNGUxNzVjN2QxMmFjNTM1OThkODM5ZjYzNjEyYWNhLi45M2UyZjI3ZDgyZThmOTI0
Zjc4NWM1MGE2NTA1MDVhZGI2YTM2NzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtMjksNyArMjks
MTAgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Ry
YWNrUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIK
ICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAKQEAgLTM3LDE0
ICs0MCwyMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLVJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVkaW9UcmFja1Byb3h5KFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIEF1ZGlvVHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUpCi0gICAgOiBtX3BsYXllcihwbGF5ZXIpCitSZW1vdGVBdWRpb1Ry
YWNrUHJveHk6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlhUGxheWVySWRl
bnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQotICAgICwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQog
ICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQorICAgICwgbV9tZWRpYVBsYXllcklk
ZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewogICAgIG1fdHJhY2tQcml2YXRlLT5z
ZXRDbGllbnQodGhpcyk7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVBdWRpb1RyYWNrKG1faWRlbnRp
ZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6QWRkUmVtb3RlQXVkaW9UcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSks
IG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKK30KKworUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp+
UmVtb3RlQXVkaW9UcmFja1Byb3h5KCkKK3sKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZVJlY2VpdmVyTWFwKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb1RyYWNrUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRv
VUludDY0KCkpOwogfQogCiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVB
dWRpb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQpAQCAtNjQsMTIgKzczLDEyIEBAIFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmln
dXJhdGlvbigpCiAKIHZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hh
bmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5n
ZWQobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkp
OworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp3aWxsUmVtb3ZlKCkK
IHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OlJlbW92ZVJlbW90ZUF1ZGlvVHJhY2sobV9pZGVudGlmaWVyKSwgbV9w
bGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9p
ZCBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmVuYWJsZWRDaGFuZ2VkKGJvb2wpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgK
aW5kZXggZDk2NjQzYzUzYjllM2I1NzJmYjE5ZmE1MzQ5MzdlYWJkYjQ2YmYxMy4uY2QzMTY5ODRm
NjNlZTkzNjhjMjZlNTdkNzc4MDBhOGUxODI4NTI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaApAQCAtMjgsMzQg
KzI4LDM5IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFja0Jhc2UuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlv
bjsKK2NsYXNzIERlY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247Ci1jbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5OwogCiBjbGFzcyBSZW1vdGVBdWRp
b1RyYWNrUHJveHkgZmluYWwKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1v
dGVBdWRpb1RyYWNrUHJveHksIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+Ci0gICAgLCBw
cml2YXRlIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IHsKKyAgICAsIHByaXZhdGUg
V2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVDbGllbnQKKyAgICAsIHByaXZhdGUgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9UcmFja1By
b3h5PiBjcmVhdGUoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcGxheWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbiwgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZUF1ZGlvVHJhY2tQcm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1lZGlhUGxheWVySWRlbnRpZmllcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvVHJhY2tQcm94eShw
bGF5ZXIsIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbiksIHRyYWNrUHJpdmF0ZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb1RyYWNrUHJveHkoY29ubmVj
dGlvblRvV2ViUHJvY2VzcywgaWRlbnRpZmllciwgdHJhY2tQcml2YXRlLCBtZWRpYVBsYXllcklk
ZW50aWZpZXIpKTsKICAgICB9CiAKLSAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH07CisgICAgdmlydHVhbCB+
UmVtb3RlQXVkaW9UcmFja1Byb3h5KCk7CiAKLSAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCBlbmFi
bGVkKSB7IG1fdHJhY2tQcml2YXRlLT5zZXRFbmFibGVkKGVuYWJsZWQpOyB9CisgICAgVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9OwogCiBwcml2YXRlOgotICAgIFJlbW90ZUF1ZGlvVHJhY2tQcm94eShSZW1vdGVN
ZWRpYVBsYXllclByb3h5JiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmKTsKKyAgICBSZW1vdGVB
dWRpb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJJZGVudGlmaWVyKTsKIAogICAgIC8vIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50CiAg
ICAgdm9pZCBlbmFibGVkQ2hhbmdlZChib29sKSBmaW5hbDsKQEAgLTY2LDEzICs3MSwxNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5h
bDsKICAgICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBz
ZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3RyYWNrUHJpdmF0ZS0+c2V0RW5hYmxlZChlbmFi
bGVkKTsgfQorCiAgICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbigpOwogICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIAotICAgIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkmIG1fcGxheWVyOworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKLSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dlYlByb2Nlc3ND
b25uZWN0aW9uOwogICAgIFJlZjxXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZT4gbV90cmFja1By
aXZhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1fbWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94
eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTA1NGY4M2JiMjgwNzY3NTI5YmQ4YjMyNWVmYTFm
ZjFlZGRlMzU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21l
c3NhZ2VzIC0+IFJlbW90ZUF1ZGlvVHJhY2tQcm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBTZXRF
bmFibGVkKGJvb2wgZW5hYmxlZCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFEZXNjcmlwdGlvbi5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhRGVzY3JpcHRpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jODc2Njg0Y2RhYzZkMGViOTM2OWU0ZmY5NWRkNTk3NjMwYTQ4ZjEyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhRGVzY3JpcHRp
b24uaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAi
RGVjb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
RGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9tU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTWVkaWFEZXNjcmlwdGlvbkluZm8geworICAgIEF0
b21TdHJpbmcgbV9jb2RlYzsKKyAgICBib29sIG1faXNWaWRlbyB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2lzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1RleHQgeyBmYWxzZSB9OworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBtX2NvZGVjOworICAgICAgICBl
bmNvZGVyIDw8IG1faXNWaWRlbzsKKyAgICAgICAgZW5jb2RlciA8PCBtX2lzQXVkaW87CisgICAg
ICAgIGVuY29kZXIgPDwgbV9pc1RleHQ7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERl
Y29kZXI+CisgICAgc3RhdGljIE9wdGlvbmFsPE1lZGlhRGVzY3JpcHRpb25JbmZvPiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gY29kZWM7
CisgICAgICAgIGRlY29kZXIgPj4gY29kZWM7CisgICAgICAgIGlmICghY29kZWMpCisgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzVmlk
ZW87CisgICAgICAgIGRlY29kZXIgPj4gaXNWaWRlbzsKKyAgICAgICAgaWYgKCFpc1ZpZGVvKQor
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxib29s
PiBpc0F1ZGlvOworICAgICAgICBkZWNvZGVyID4+IGlzQXVkaW87CisgICAgICAgIGlmICghaXNB
dWRpbykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9u
YWw8Ym9vbD4gaXNUZXh0OworICAgICAgICBkZWNvZGVyID4+IGlzVGV4dDsKKyAgICAgICAgaWYg
KCFpc1RleHQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJl
dHVybiB7eworICAgICAgICAgICAgV1RGTW92ZSgqY29kZWMpLAorICAgICAgICAgICAgKmlzVmlk
ZW8sCisgICAgICAgICAgICAqaXNBdWRpbywKKyAgICAgICAgICAgICppc1RleHQKKyAgICAgICAg
fX07CisgICAgfQorfTsKKworY2xhc3MgUmVtb3RlTWVkaWFEZXNjcmlwdGlvbiA6IHB1YmxpYyBX
ZWJDb3JlOjpNZWRpYURlc2NyaXB0aW9uIHsKK3B1YmxpYzoKKyAgICBSZW1vdGVNZWRpYURlc2Ny
aXB0aW9uKGNvbnN0IE1lZGlhRGVzY3JpcHRpb25JbmZvJiBkZXNjcmlwdGlvbkluZm8pCisgICAg
ICAgIDogbV9jb2RlYyhkZXNjcmlwdGlvbkluZm8ubV9jb2RlYykKKyAgICAgICAgLCBtX2lzVmlk
ZW8oZGVzY3JpcHRpb25JbmZvLm1faXNWaWRlbykKKyAgICAgICAgLCBtX2lzQXVkaW8oZGVzY3Jp
cHRpb25JbmZvLm1faXNBdWRpbykKKyAgICAgICAgLCBtX2lzVGV4dChkZXNjcmlwdGlvbkluZm8u
bV9pc1RleHQpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZU1lZGlhRGVzY3Jp
cHRpb24oKSA9IGRlZmF1bHQ7CisKKyAgICBBdG9tU3RyaW5nIGNvZGVjKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9jb2RlYzsgfQorICAgIGJvb2wgaXNWaWRlbygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1faXNWaWRlbzsgfQorICAgIGJvb2wgaXNBdWRpbygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1faXNBdWRpbzsgfQorICAgIGJvb2wgaXNUZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9p
c1RleHQ7fQorCitwcml2YXRlOgorICAgIEF0b21TdHJpbmcgbV9jb2RlYzsKKyAgICBib29sIG1f
aXNWaWRlbyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzQXVkaW8geyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc1RleHQgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKaW5kZXggNWFiMWI2ZmE2N2YxZmYxMTE3M2M4N2U5NzU4ZmViOTc5YzI4YjMz
Yi4uNTU3MjFiZWUxYTM0NmI5Y2ZlYTlhYTg3MDFmODllMjRlMzhmN2YwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcApAQCAtNDUsNiArNDUsOCBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlVGV4dFRyYWNrUHJveHkuaCIKICNpbmNsdWRlICJS
ZW1vdGVWaWRlb1RyYWNrUHJveHkuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0xheW91dFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CkBAIC0x
MzQsNyArMTM2LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpsb2FkKFVSTCYmIHVy
bCwgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpsb2FkTWVkaWFTb3VyY2UoVVJM
JiYgdXJsLCBjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYgY29udGVudFR5cGUsIFJlbW90ZU1l
ZGlhU291cmNlSWRlbnRpZmllciBtZWRpYVNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9tZWRp
YVNvdXJjZVByb3h5ID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVNvdXJjZVByb3h5KG1lZGlh
U291cmNlSWRlbnRpZmllciwgbV9tYW5hZ2VyLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSkp
OworICAgIG1fbWVkaWFTb3VyY2VQcm94eSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eShtX21hbmFnZXIuZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpLCBtZWRpYVNvdXJj
ZUlkZW50aWZpZXIsICp0aGlzKSk7CiAgICAgbV9wbGF5ZXItPmxvYWQodXJsLCBjb250ZW50VHlw
ZSwgbV9tZWRpYVNvdXJjZVByb3h5LmdldCgpKTsKIH0KICNlbmRpZgpAQCAtNDU3LDY5ICs0NTks
NzUgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclJlbmRlcmluZ0Nh
bkJlQWNjZWxlcmF0ZWQoKQogICAgIHJldHVybiBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQ7
CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRp
b1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjaykKK1RyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6YWRkUmVtb3RlQXVkaW9UcmFj
a1Byb3h5KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjaykKIHsKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICB0cmFjay5zZXRMb2dnZXIobWVkaWFQbGF5ZXJMb2dnZXIoKSwg
bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpOwogI2VuZGlmCi0gICAgbV9hdWRpb1RyYWNrcy5z
ZXQoJnRyYWNrLCBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNyZWF0ZSgqdGhpcywgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi5j
b3B5UmVmKCksIHRyYWNrKSk7Ci19CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVk
aWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiB0
cmFjaykKLXsKLSAgICBBU1NFUlQobV9hdWRpb1RyYWNrcy5jb250YWlucygmdHJhY2spKTsKLSAg
ICBtX2F1ZGlvVHJhY2tzLnJlbW92ZSgmdHJhY2spOworICAgIGF1dG8gaWRlbnRpZmllciA9IFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgbV9hdWRpb1RyYWNr
cy5zZXQoJnRyYWNrLCBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNyZWF0ZShtX21hbmFnZXIuZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpLCBpZGVudGlmaWVyLCB0cmFjaywgbV9pZCkpOworICAg
IHJldHVybiBpZGVudGlmaWVyOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmF1
ZGlvVHJhY2tTZXRFbmFibGVkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwg
Ym9vbCBlbmFibGVkKQorVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjphZGRSZW1vdGVWaWRlb1RyYWNrUHJveHkoV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGUmIHRyYWNrKQogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX2F1ZGlvVHJhY2tzLnZh
bHVlcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+aWRlbnRpZmllcigpID09IHRyYWNrSUQpIHsK
LSAgICAgICAgICAgIHRyYWNrLT5zZXRFbmFibGVkKGVuYWJsZWQpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgfQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIHRy
YWNrLnNldExvZ2dlcihtZWRpYVBsYXllckxvZ2dlcigpLCBtZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIoKSk7CisjZW5kaWYKIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGF1dG8gaWRl
bnRpZmllciA9IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAg
bV92aWRlb1RyYWNrcy5zZXQoJnRyYWNrLCBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNyZWF0ZSht
X21hbmFnZXIuZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpLCBpZGVudGlmaWVyLCB0cmFjaywg
bV9pZCkpOworICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2spCitUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmFkZFJlbW90ZVRleHRUcmFja1Byb3h5KFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGUmIHRyYWNrKQogewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHRy
YWNrLnNldExvZ2dlcihtZWRpYVBsYXllckxvZ2dlcigpLCBtZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIoKSk7CiAjZW5kaWYKLSAgICBtX3ZpZGVvVHJhY2tzLnNldCgmdHJhY2ssIFJlbW90ZVZpZGVv
VHJhY2tQcm94eTo6Y3JlYXRlKCp0aGlzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLmNvcHlSZWYoKSwgdHJhY2spKTsKKwor
ICAgIGF1dG8gaWRlbnRpZmllciA9IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVy
YXRlKCk7CisgICAgbV90ZXh0VHJhY2tzLnNldCgmdHJhY2ssIFJlbW90ZVRleHRUcmFja1Byb3h5
OjpjcmVhdGUobV9tYW5hZ2VyLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSwgaWRlbnRpZmll
ciwgdHJhY2ssIG1faWQpKTsKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KIAotdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soV2ViQ29y
ZTo6VmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUm
IHRyYWNrKQogewotICAgIEFTU0VSVChtX3ZpZGVvVHJhY2tzLmNvbnRhaW5zKCZ0cmFjaykpOwot
ICAgIG1fdmlkZW9UcmFja3MucmVtb3ZlKCZ0cmFjayk7CisgICAgYWRkUmVtb3RlQXVkaW9UcmFj
a1Byb3h5KHRyYWNrKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb1Ry
YWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBib29s
IHNlbGVjdGVkKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJl
bW92ZUF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrKQogewotICAg
IGZvciAoYXV0byYgdHJhY2sgOiBtX3ZpZGVvVHJhY2tzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlm
ICh0cmFjay0+aWRlbnRpZmllcigpID09IHRyYWNrSUQpIHsKLSAgICAgICAgICAgIHRyYWNrLT5z
ZXRTZWxlY3RlZChzZWxlY3RlZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgQVNTRVJUKG1fYXVkaW9UcmFja3MuY29udGFpbnMoJnRyYWNrKSk7CisgICAgYXV0
byBhdWRpb1RyYWNrID0gbV9hdWRpb1RyYWNrcy5nZXQoJnRyYWNrKTsKKyAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJl
bW92ZVJlbW90ZUF1ZGlvVHJhY2soYXVkaW9UcmFjay0+aWRlbnRpZmllcigpKSwgbV9pZCk7Cisg
ICAgbV9hdWRpb1RyYWNrcy5yZW1vdmUoJnRyYWNrKTsKK30KIAotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZEFkZFZp
ZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIGFkZFJl
bW90ZVZpZGVvVHJhY2tQcm94eSh0cmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQ
cml2YXRlJiB0cmFjaykKK3sKKyAgICBBU1NFUlQobV92aWRlb1RyYWNrcy5jb250YWlucygmdHJh
Y2spKTsKKyAgICBhdXRvIHZpZGVvVHJhY2sgPSBtX3ZpZGVvVHJhY2tzLmdldCgmdHJhY2spOwor
ICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6UmVtb3ZlUmVtb3RlVmlkZW9UcmFjayh2aWRlb1RyYWNrLT5pZGVudGlmaWVy
KCkpLCBtX2lkKTsKKyAgICBtX3ZpZGVvVHJhY2tzLnJlbW92ZSgmdHJhY2spOwogfQogCiB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKFdlYkNv
cmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewotI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAotICAgIHRyYWNrLnNldExvZ2dlcihtZWRpYVBsYXllckxvZ2dlcigpLCBtZWRpYVBs
YXllckxvZ0lkZW50aWZpZXIoKSk7Ci0jZW5kaWYKLSAgICBtX3RleHRUcmFja3Muc2V0KCZ0cmFj
aywgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmNyZWF0ZSgqdGhpcywgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi5jb3B5UmVmKCks
IHRyYWNrKSk7CisgICAgYWRkUmVtb3RlVGV4dFRyYWNrUHJveHkodHJhY2spOwogfQogCiB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRyYWNrKFdl
YkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewogICAgIEFTU0VSVChtX3Rl
eHRUcmFja3MuY29udGFpbnMoJnRyYWNrKSk7CisgICAgYXV0byB0ZXh0VHJhY2sgPSBtX3RleHRU
cmFja3MuZ2V0KCZ0cmFjayk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVSZW1vdGVUZXh0VHJhY2sodGV4
dFRyYWNrLT5pZGVudGlmaWVyKCkpLCBtX2lkKTsKICAgICBtX3RleHRUcmFja3MucmVtb3ZlKCZ0
cmFjayk7CiB9CiAKQEAgLTUyOCwxOCArNTM2LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Ojp0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVjdCYK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OnRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCi17Ci0gICAgZm9yIChh
dXRvJiB0cmFjayA6IG1fdGV4dFRyYWNrcy52YWx1ZXMoKSkgewotICAgICAgICBpZiAodHJhY2st
PmlkZW50aWZpZXIoKSA9PSB0cmFja0lEKSB7Ci0gICAgICAgICAgICB0cmFjay0+c2V0TW9kZSht
b2RlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlh
UGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQoKQogewogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVzb3VyY2VOb3RT
dXBwb3J0ZWQoKSwgbV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAyMmUyYzgwNzQ4ZjlkOGU3NDZj
YzkzNGRhYzQxNzIzNDRkMjFhOTE3Li5iODI0NzcxM2FkYWYxYzQ1M2VhNGM2NTgxZGFkNDNiYjFl
MGMyMDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTc0LDggKzc0LDggQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVpbnQzMl90OwogY2xhc3MgTGF5
ZXJIb3N0aW5nQ29udGV4dDsKLWNsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTsK
IGNsYXNzIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTsKK2NsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3Mg
UmVtb3RlVGV4dFRyYWNrUHJveHk7CiBjbGFzcyBSZW1vdGVWaWRlb1RyYWNrUHJveHk7CkBAIC0x
NDMsMTAgKzE0Myw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZERpc2FibGVTbGVlcChi
b29sKTsKICAgICB2b2lkIHNldFJhdGUoZG91YmxlKTsKIAotICAgIHZvaWQgYXVkaW9UcmFja1Nl
dEVuYWJsZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7Ci0gICAgdm9pZCB2
aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7
Ci0gICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUpOwotCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwogI2VuZGlmCkBAIC0xOTQsNiAr
MTkwLDEwIEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVBsYXllcj4gbWVk
aWFQbGF5ZXIoKSB7IHJldHVybiBtX3BsYXllcjsgfQogCisgICAgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBhZGRSZW1vdGVBdWRpb1RyYWNrUHJveHkoV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGUmKTsKKyAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGFkZFJlbW90ZVZpZGVv
VHJhY2tQcm94eShXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpOworICAgIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgYWRkUmVtb3RlVGV4dFRyYWNrUHJveHkoV2ViQ29yZTo6SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSYpOworCiBwcml2YXRlOgogICAgIC8vIE1lZGlhUGxheWVyQ2xpZW50
CiAgICAgdm9pZCBtZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKSBmaW5hbDsKQEAgLTIx
Myw2ICsyMTMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRp
b1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBtZWRp
YVBsYXllckRpZEFkZFZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmKSBmaW5h
bDsKICAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRl
b1RyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJh
Y2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVk
aWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSYpIGZpbmFsOwogCiAgICAgLy8gTm90IGltcGxlbWVudGVkCiAgICAgdm9pZCBtZWRpYVBsYXll
clJlc291cmNlTm90U3VwcG9ydGVkKCkgZmluYWw7CkBAIC0yNDksOSArMjUxLDYgQEAgcHJpdmF0
ZToKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3Qg
ZmluYWw7CiAgICAgY29uc3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJlY3Rvcnko
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soV2Vi
Q29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5
ZXJEaWRSZW1vdmVUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZp
bmFsOwotCiAgICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZTNmZGExMGVmMmRiYzMwYjhk
YzMxOTJlNDA0YTJmMThmNzQ4MGI0Yy4uMDhlYTE1Y2M2NmIyZWE5ZDA3MGRhNmJiNzFmODhiNzQ1
MWNmMDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTY1LDEwICs2
NSw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7
CiAKICAgICBTZXRCdWZmZXJpbmdQb2xpY3koV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OkJ1ZmZlcmlu
Z1BvbGljeSBwb2xpY3kpCiAKLSAgICBBdWRpb1RyYWNrU2V0RW5hYmxlZChXZWJLaXQ6OlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQotICAgIFZpZGVv
VHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgYm9vbCBlbmFibGVkKQotICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpJbmJh
bmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCi0KICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBNYWNoU2Vu
ZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCBmNDIw
ZmQ3Njg5MTc5MGQ2ZTdhZmM5NTIyNzIwNjE0YmY4MjZlOWNhLi5hZjdiZTUxMmVhYzJkMWFlNjU0
YWUwOWNiNTJkOTRiMzliMmM2MDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwCkBAIC0zOSw5ICszOSwx
MCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJl
bW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNlUHJveHkoUmVtb3RlTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAg
ICAsIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorUmVt
b3RlTWVkaWFTb3VyY2VQcm94eTo6UmVtb3RlTWVkaWFTb3VyY2VQcm94eShHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSkKKyAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3JlbW90
ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkpCiB7
CiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgKnRoaXMpOwogfQpAQCAtOTMs
MTMgKzk0LDE2IEBAIHZvaWQgUmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6ZmFpbGVkVG9DcmVhdGVS
ZW5kZXJlcihSZW5kZXJlclR5cGUpCiAKIHZvaWQgUmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6YWRk
U291cmNlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgQWRk
U291cmNlQnVmZmVyQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKKyAgICBpZiAoIW1fcmVtb3RlTWVk
aWFQbGF5ZXJQcm94eSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZl
clByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGU7CiAgICAgTWVkaWFTb3VyY2VQcml2YXRlOjpB
ZGRTdGF0dXMgc3RhdHVzID0gbV9wcml2YXRlLT5hZGRTb3VyY2VCdWZmZXIoY29udGVudFR5cGUs
IHNvdXJjZUJ1ZmZlclByaXZhdGUpOwogCiAgICAgT3B0aW9uYWw8UmVtb3RlU291cmNlQnVmZmVy
SWRlbnRpZmllcj4gcmVtb3RlU291cmNlSWRlbnRpZmllcjsKICAgICBpZiAoc3RhdHVzID09IE1l
ZGlhU291cmNlUHJpdmF0ZTo6QWRkU3RhdHVzOjpPaykgewogICAgICAgICBhdXRvIGlkZW50aWZp
ZXIgPSBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgICAgICBh
dXRvIHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5ID0gUmVtb3RlU291cmNlQnVmZmVyUHJveHk6OmNy
ZWF0ZShpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIHNvdXJjZUJ1ZmZlclBy
aXZhdGUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGF1dG8gcmVtb3RlU291cmNlQnVmZmVy
UHJveHkgPSBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6Y3JlYXRlKG1fY29ubmVjdGlvblRvV2Vi
UHJvY2VzcywgaWRlbnRpZmllciwgc291cmNlQnVmZmVyUHJpdmF0ZS5yZWxlYXNlTm9uTnVsbCgp
LCAqbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KTsKICAgICAgICAgbV9zb3VyY2VCdWZmZXJzLmFw
cGVuZChXVEZNb3ZlKHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KSk7CiAgICAgICAgIHJlbW90ZVNv
dXJjZUlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5oCmluZGV4IDZi
ZmJmYWZiMjA0NDc4MzBkNzMwYzM4YzU1ZDkxNjAyMmMyM2QzMTYuLjU5NjhjN2JiZDE4OWNkNDc5
ZWY0YWVhYjRkNDQ5OTUzM2ZkM2Q2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Lmg+CiAjaW5jbHVk
ZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlvbjsKQEAg
LTUwLDEzICs1MSwxNCBAQCBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7CiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk7CiAKIGNsYXNzIFJlbW90ZU1lZGlhU291cmNlUHJveHkgZmluYWwKICAg
ICA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQKICAgICAsIHByaXZh
dGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIFJlbW90ZU1lZGlhU291cmNlUHJveHkoUmVtb3RlTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgUmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlTWVk
aWFTb3VyY2VQcm94eSgpOwogCiAgICAgLy8gTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50IG92ZXJy
aWRlcwpAQCAtODAsOSArODIsMTEgQEAgcHJpdmF0ZToKICAgICB1c2luZyBBZGRTb3VyY2VCdWZm
ZXJDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFTb3VyY2VQ
cml2YXRlOjpBZGRTdGF0dXMsIE9wdGlvbmFsPFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXI+
IHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpPjsKICAgICB2b2lkIGFkZFNvdXJjZUJ1ZmZl
cihjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIEFkZFNvdXJjZUJ1ZmZlckNhbGxiYWNrJiYp
OwogCi0gICAgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAg
UmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWZQdHI8V2Vi
Q29yZTo6TWVkaWFTb3VyY2VQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgV2Vha1B0cjxSZW1vdGVN
ZWRpYVBsYXllclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7CisKICAgICBWZWN0b3I8
UmVmUHRyPFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Pj4gbV9zb3VyY2VCdWZmZXJzOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eS5jcHAKaW5kZXggMjQ1Y2Y0MGRmYzZmYzcyNDE3NDk5Yzk5NmVlYTk1ZjBh
M2E4ZDY5YS4uNTZlODc5NWJhZDc1ZTZlMjBiM2Y5YTU2MGE4ZmVmZDY4MmVjMDY3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNl
QnVmZmVyUHJveHkuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkluaXRpYWxpemF0aW9u
U2VnbWVudEluZm8uaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCiAjaW5j
bHVkZSAiUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KQEAgLTM4LDE2ICs0MCwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZW1vdGVTb3VyY2VCdWZmZXJQcm94eT4gUmVt
b3RlU291cmNlQnVmZmVyUHJveHk6OmNyZWF0ZShSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZhdGUpCitS
ZWY8UmVtb3RlU291cmNlQnVmZmVyUHJveHk+IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpjcmVh
dGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgUmVt
b3RlU291cmNlQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8U291cmNlQnVmZmVyUHJp
dmF0ZT4mJiBzb3VyY2VCdWZmZXJQcml2YXRlLCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1v
dGVNZWRpYVBsYXllclByb3h5KQogewotICAgIGF1dG8gcmVtb3RlU291cmNlQnVmZmVyUHJveHkg
PSBhZG9wdFJlZigqbmV3IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KGlkZW50aWZpZXIsIGNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MsIFdURk1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZSkpKTsKKyAgICBh
dXRvIHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5ID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVTb3VyY2VC
dWZmZXJQcm94eShjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCBXVEZNb3ZlKHNv
dXJjZUJ1ZmZlclByaXZhdGUpLCByZW1vdGVNZWRpYVBsYXllclByb3h5KSk7CiAgICAgcmV0dXJu
IHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OwogfQogCi1SZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6
UmVtb3RlU291cmNlQnVmZmVyUHJveHkoUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4mJiBzb3VyY2VCdWZmZXJQcml2YXRlKQotICAgIDog
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
Y29ubmVjdGlvblRvV2ViUHJvY2VzcykKK1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpSZW1vdGVT
b3VyY2VCdWZmZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxT
b3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZhdGUsIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQogICAgICwgbV9zb3VyY2VCdWZmZXJQcml2YXRlKFdURk1vdmUoc291cmNlQnVmZmVy
UHJpdmF0ZSkpCisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVt
b3RlTWVkaWFQbGF5ZXJQcm94eSkpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU291
cmNlQnVmZmVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUlu
dDY0KCksICp0aGlzKTsKICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPnNldENsaWVudCh0aGlz
KTsKQEAgLTU4LDkgKzYxLDMyIEBAIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Ojp+UmVtb3RlU291
cmNlQnVmZmVyUHJveHkoKQogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKIH0KIAotdm9pZCBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdt
ZW50JikKK3ZvaWQgUmVtb3RlU291cmNlQnVmZmVyUHJveHk6OnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVu
dCYgc2VnbWVudCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICghbV9yZW1vdGVN
ZWRpYVBsYXllclByb3h5KQorICAgICAgICByZXR1cm47CisKKyAgICBJbml0aWFsaXphdGlvblNl
Z21lbnRJbmZvIHNlZ21lbnRJbmZvOworICAgIHNlZ21lbnRJbmZvLmR1cmF0aW9uID0gc2VnbWVu
dC5kdXJhdGlvbjsKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRp
b1RyYWNrcykgeworICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBtX3JlbW90ZU1lZGlhUGxheWVy
UHJveHktPmFkZFJlbW90ZUF1ZGlvVHJhY2tQcm94eSgqYXVkaW9UcmFja0luZm8udHJhY2spOwor
ICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gYXVkaW9UcmFja0luZm8uZGVzY3JpcHRpb247Cisg
ICAgICAgIHNlZ21lbnRJbmZvLmF1ZGlvVHJhY2tzLmFwcGVuZCh7IHsgZGVzY3JpcHRpb24tPmNv
ZGVjKCksIGRlc2NyaXB0aW9uLT5pc1ZpZGVvKCksIGRlc2NyaXB0aW9uLT5pc0F1ZGlvKCksIGRl
c2NyaXB0aW9uLT5pc1RleHQoKSB9LCBpZGVudGlmaWVyIH0pOworICAgIH0KKworICAgIGZvciAo
YXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7CisgICAgICAgIGF1
dG8gaWRlbnRpZmllciA9IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eS0+YWRkUmVtb3RlVmlkZW9U
cmFja1Byb3h5KCp2aWRlb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgIGF1dG8gZGVzY3JpcHRp
b24gPSB2aWRlb1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKKyAgICAgICAgc2VnbWVudEluZm8udmlk
ZW9UcmFja3MuYXBwZW5kKHsgeyBkZXNjcmlwdGlvbi0+Y29kZWMoKSwgZGVzY3JpcHRpb24tPmlz
VmlkZW8oKSwgZGVzY3JpcHRpb24tPmlzQXVkaW8oKSwgZGVzY3JpcHRpb24tPmlzVGV4dCgpIH0s
IGlkZW50aWZpZXIgfSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2tJbmZvIDog
c2VnbWVudC50ZXh0VHJhY2tzKSB7CisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IG1fcmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS0+YWRkUmVtb3RlVGV4dFRyYWNrUHJveHkoKnRleHRUcmFja0luZm8u
dHJhY2spOworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gdGV4dFRyYWNrSW5mby5kZXNjcmlw
dGlvbjsKKyAgICAgICAgc2VnbWVudEluZm8udGV4dFRyYWNrcy5hcHBlbmQoeyB7IGRlc2NyaXB0
aW9uLT5jb2RlYygpLCBkZXNjcmlwdGlvbi0+aXNWaWRlbygpLCBkZXNjcmlwdGlvbi0+aXNBdWRp
bygpLCBkZXNjcmlwdGlvbi0+aXNUZXh0KCkgfSwgaWRlbnRpZmllciB9KTsKKyAgICB9CisKKyAg
ICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OlNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5p
dGlhbGl6YXRpb25TZWdtZW50KHNlZ21lbnRJbmZvKSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9p
ZCBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVT
YW1wbGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaAppbmRleCAzOTBjMGNl
MWMyN2I2MDhkYzk3YWFmYTUxODYzNjE4ODBjM2FmNGQzLi42YjhiZjhiNTdjYzBjOGQ5ZDU0MTFl
OTY1MjFiNDVhOTRhOGUzYjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaApAQCAtNDcsMTMgKzQ3LDE1IEBA
IGNsYXNzIE1lZGlhU2FtcGxlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTsKKwogY2xhc3MgUmVtb3RlU291cmNlQnVmZmVyUHJveHkgZmluYWwK
ICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5PgogICAgICwg
cHVibGljIFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQKICAgICAsIHByaXZhdGUg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlU291cmNlQnVmZmVyUHJveHk+IGNyZWF0ZShSZW1v
dGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVm
PFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGU+JiYpOworICAgIHN0YXRpYyBSZWY8UmVtb3Rl
U291cmNlQnVmZmVyUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVt
b3RlU291cmNlQnVmZmVySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZh
dGU+JiYsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eSgpOwogCiAgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2
ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5h
bDsKQEAgLTcwLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihpbnQgZXJyb3JDb2RlKSBmaW5hbDsKIAogcHJpdmF0
ZToKLSAgICBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eShSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVmPFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clByaXZhdGU+JiYpOworICAgIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZT4mJiwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYpOwogCiAgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwpAQCAtNzgsOSArODAsMTAgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgYXBwZW5kKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCi0g
ICAgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIFJlbW90
ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZjxXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQcml2YXRlPiBtX3NvdXJjZUJ1ZmZlclByaXZhdGU7CisgICAgV2Vha1B0cjxS
ZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCmluZGV4IGJlY2RjMjJjMzA5MmExMGJi
ZDg3MTgyNGEwMmIzYWMxNDZmNzIwMTcuLjY3NDQ4ZTlhNzQ4ZjE4YWRhNDUyNTkwOWJhMmNkMzE0
MGIyMjUxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAtMjksOSArMjksMTIgQEAKIAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEYXRh
UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHRUcmFja1Byb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5o
IgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
SVNPVlRUQ3VlLmg+CkBAIC00MSwxNCArNDQsMjAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4
dFRyYWNrUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcGxheWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQotICAgIDogbV9wbGF5
ZXIocGxheWVyKQorUmVtb3RlVGV4dFRyYWNrUHJveHk6OlJlbW90ZVRleHRUcmFja1Byb3h5KEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlLCBNZWRpYVBsYXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVy
KQorICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mp
CiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJp
dmF0ZSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmll
cikKIHsKICAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwotICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
QWRkUmVtb3RlVGV4dFRyYWNrKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9wbGF5
ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZVJl
Y2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVUZXh0VHJhY2tQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgKnRo
aXMpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVUZXh0VHJhY2sobV9pZGVu
dGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7Cit9CisK
K1JlbW90ZVRleHRUcmFja1Byb3h5Ojp+UmVtb3RlVGV4dFRyYWNrUHJveHkoKQoreworICAgIG1f
Y29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVRleHRUcmFja1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZVRleHRUcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkK
QEAgLTc2LDEyICs4NSwxMiBAQCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYg
UmVtb3RlVGV4dFRyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQogCiB2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdGVU
ZXh0VHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24o
KSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJl
bW90ZVRleHRUcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJh
dGlvbigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5Ojp3aWxsUmVtb3ZlKCkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJlbW92ZVJlbW90ZVRleHRU
cmFjayhtX2lkZW50aWZpZXIpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjppZENoYW5nZWQo
Y29uc3QgQXRvbVN0cmluZyYpCkBAIC0xMDEsNTQgKzExMCw1NCBAQCB2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5OjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpCiAKIHZvaWQgUmVt
b3RlVGV4dFRyYWNrUHJveHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsK
LSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OkFkZERhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBJUEM6OkRh
dGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0
aCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpB
ZGREYXRhQ3VlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBsZW5ndGgpKSwgbV9tZWRpYVBs
YXllcklkZW50aWZpZXIpOwogfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCiB2b2lkIFJl
bW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiBjdWVE
YXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGREYXRhQ3VlV2l0aFR5
cGUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLT5lbmNvZGFibGVWYWx1ZSgpLCB0
eXBlKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
QWRkRGF0YUN1ZVdpdGhUeXBlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0YS0+ZW5j
b2RhYmxlVmFsdWUoKSwgdHlwZSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogdm9p
ZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3Vl
RGF0YSkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OlVwZGF0ZURhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwg
ZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwor
ICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpVcGRhdGVEYXRhQ3VlKG1faWRlbnRpZmllciwgc3Rh
cnQsIGVuZCwgY3VlRGF0YS5lbmNvZGFibGVWYWx1ZSgpKSwgbV9tZWRpYVBsYXllcklkZW50aWZp
ZXIpOwogfQogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNvbnN0
IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlJiBjdWVEYXRhKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3ZlRGF0YUN1ZShtX2lkZW50
aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlk
ZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJlbW92ZURhdGFDdWUobV9p
ZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkpLCBtX21lZGlh
UGxheWVySWRlbnRpZmllcik7CiB9CiAjZW5kaWYKIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94
eTo6YWRkR2VuZXJpY0N1ZShJbmJhbmRHZW5lcmljQ3VlJiBjdWUpCiB7Ci0gICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpB
ZGRHZW5lcmljQ3VlKG1faWRlbnRpZmllciwgY3VlLmN1ZURhdGEoKSksIG1fcGxheWVyLmlkZW5k
aWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZEdlbmVyaWNDdWUobV9pZGVu
dGlmaWVyLCBjdWUuY3VlRGF0YSgpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2
b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5Ojp1cGRhdGVHZW5lcmljQ3VlKEluYmFuZEdlbmVyaWND
dWUmIGN1ZSkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlVwZGF0ZUdlbmVyaWNDdWUobV9pZGVudGlmaWVyLCBj
dWUuY3VlRGF0YSgpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6VXBkYXRlR2VuZXJpY0N1ZShtX2lkZW50aWZpZXIsIGN1ZS5jdWVEYXRhKCkpLCBt
X21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6
OnJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kR2VuZXJpY0N1ZSYgY3VlKQogewotICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
UmVtb3ZlR2VuZXJpY0N1ZShtX2lkZW50aWZpZXIsIGN1ZS5jdWVEYXRhKCkpLCBtX3BsYXllci5p
ZGVuZGlmaWVyKCkpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVHZW5lcmljQ3Vl
KG1faWRlbnRpZmllciwgY3VlLmN1ZURhdGEoKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsK
IH0KIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0
cmluZyYmIGhlYWRlcikKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlBhcnNlV2ViVlRURmlsZUhlYWRlcihtX2lk
ZW50aWZpZXIsIGhlYWRlciksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OlBhcnNlV2ViVlRURmlsZUhlYWRlcihtX2lkZW50aWZpZXIsIGhlYWRlciks
IG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94
eTo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkK
IHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OlBhcnNlV2ViVlRUQ3VlRGF0YShtX2lkZW50aWZpZXIsIElQQzo6RGF0
YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3Ro
KSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlBh
cnNlV2ViVlRUQ3VlRGF0YShtX2lkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIG1fbWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cGFyc2VXZWJWVFRD
dWVEYXRhKElTT1dlYlZUVEN1ZSYmIGN1ZURhdGEpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpQYXJzZVdlYlZU
VEN1ZURhdGFTdHJ1Y3QobV9pZGVudGlmaWVyLCBjdWVEYXRhKSwgbV9wbGF5ZXIuaWRlbmRpZmll
cigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0
KG1faWRlbnRpZmllciwgY3VlRGF0YSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5oCmluZGV4IDExNWM4OWJmMDBhMWE4ZDMwM2U4
YzUxOWNmY2M1YTFlMDY3MTBmNGQuLmFmZGI3MzI1Yjc3NzQ3MmY0YThjYjkyNzQ4YzM3NzJkMzRl
Zjk2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVU
ZXh0VHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVUZXh0VHJhY2tQcm94eS5oCkBAIC0yOCwzNiArMjgsMzkgQEAKIAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0luYmFuZFRleHRU
cmFja1ByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhY2tCYXNlLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgog
CiBuYW1lc3BhY2UgSVBDIHsKLQogY2xhc3MgQ29ubmVjdGlvbjsKLQorY2xhc3MgRGVjb2RlcjsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHk7
CitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0IFRleHRUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVUZXh0VHJhY2tQcm94eSBmaW5h
bAogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZVRleHRUcmFja1Byb3h5
LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgotICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50IHsKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudAorICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdGVUZXh0VHJhY2tQcm94eT4gY3Jl
YXRlKFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdl
YkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0aWMg
UmVmPFJlbW90ZVRleHRUcmFja1Byb3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUs
IFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVUZXh0VHJhY2tQcm94eShw
bGF5ZXIsIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbiksIHRyYWNrUHJpdmF0ZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVUZXh0VHJhY2tQcm94eShjb25uZWN0
aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB0cmFja1ByaXZhdGUsIG1lZGlhUGxheWVySWRl
bnRpZmllcikpOwogICAgIH0KIAotICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVUZXh0VHJhY2tQcm94eSgpOwogCi0gICAgdm9pZCBzZXRNb2RlKFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUgbW9kZSkgeyBtX3RyYWNrUHJpdmF0ZS0+c2V0TW9kZSht
b2RlKTsgfQorICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVRleHRU
cmFja1Byb3h5KFJlbW90ZU1lZGlhUGxheWVyUHJveHkmLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJik7CisgICAgUmVtb3RlVGV4dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGUmLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIpOwogCiAgICAgLy8g
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lk
KiwgdW5zaWduZWQpOwpAQCAtODIsMTMgKzg1LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYW5n
dWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFJlbW92
ZSgpIGZpbmFsOwogCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIHNldE1vZGUoV2ViQ29yZTo6SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSBtb2RlKSB7IG1fdHJhY2tQcml2YXRlLT5zZXRNb2RlKG1v
ZGUpOyB9CisKICAgICBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgY29uZmln
dXJhdGlvbigpOwogICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIAotICAgIFJlbW90
ZU1lZGlhUGxheWVyUHJveHkmIG1fcGxheWVyOworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uOwogICAgIFJlZjxXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBt
X3RyYWNrUHJpdmF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgbV9tZWRp
YVBsYXllcklkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJh
Y2tQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWZjZTY3NTQzM2MyMmI3ZDU1ZTBhNzU0
Njk0MWUyZjlmZTNlYTNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbWVzc2FnZXMgLT4gUmVtb3RlVGV4dFRyYWNrUHJveHkgTm90UmVmQ291bnRlZCB7CisgICAg
U2V0TW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9k
ZSBtb2RlKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKaW5kZXggNWM0NmVlY2FhMTU5ZjBm
M2I3NDkwM2YyZjY3MDIyOTRlZjJkODI1ZC4uMzUwZjhlYTczMDdiZDIzN2FhODNmNmNjOTQ1YjU2
MTBkZjZmMWM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKQEAgLTI5LDIyICsyOSwzMSBAQAogCiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIK
KyNpbmNsdWRlICJSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90
ZVZpZGVvVHJhY2tQcm94eShSZW1vdGVNZWRpYVBsYXllclByb3h5JiBwbGF5ZXIsIFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQotICAgIDogbV9wbGF5
ZXIocGxheWVyKQorUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1RyYWNrUHJveHko
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJh
Y2tQcml2YXRlLCBNZWRpYVBsYXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyKQor
ICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAg
ICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0
ZSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikK
IHsKICAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwotICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRk
UmVtb3RlVmlkZW9UcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fcGxheWVy
LmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNl
aXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlVmlkZW9UcmFja1By
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCAqdGhp
cyk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZFJlbW90ZVZpZGVvVHJhY2sobV9pZGVu
dGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7Cit9CisK
K1JlbW90ZVZpZGVvVHJhY2tQcm94eTo6flJlbW90ZVZpZGVvVHJhY2tQcm94eSgpCit7CisgICAg
bV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkK
QEAgLTY0LDEyICs3MywxMiBAQCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1v
dGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQogCiB2b2lkIFJlbW90ZVZpZGVvVHJh
Y2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3RlVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigp
KSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVt
b3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJh
dGlvbigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVZpZGVv
VHJhY2tQcm94eTo6d2lsbFJlbW92ZSgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVSZW1vdGVWaWRl
b1RyYWNrKG1faWRlbnRpZmllciksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKIHZvaWQgUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpzZWxlY3Rl
ZENoYW5nZWQoYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaAppbmRleCBkZGYwMmM4ZmU4MzJkYzNlZGZiYjllYzBk
NTViNTI2NDlkYjJiNzk4Li42MGVhN2IwOWZmMmQ4N2UyNjY5MzU5ZTFmZWRlYWEwN2EzZTU3OTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9U
cmFja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZp
ZGVvVHJhY2tQcm94eS5oCkBAIC0yOCwzNCArMjgsMzkgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKIAorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhY2tCYXNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNw
YWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKIH0KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHk7CitjbGFzcyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247CiAKIGNsYXNzIFJlbW90ZVZpZGVvVHJhY2tQcm94eSBmaW5hbAogICAgIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZVZpZGVvVHJhY2tQcm94eSwgV1RGOjpEZXN0cnVj
dGlvblRocmVhZDo6TWFpbj4KLSAgICAsIHByaXZhdGUgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGVDbGllbnQgeworICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZUNsaWVu
dAorICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxSZW1vdGVWaWRlb1RyYWNrUHJveHk+IGNyZWF0ZShSZW1vdGVNZWRpYVBsYXllclBy
b3h5JiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVm
PElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0
ZSYgdHJhY2tQcml2YXRlKQorICAgIHN0YXRpYyBSZWY8UmVtb3RlVmlkZW9UcmFja1Byb3h5PiBj
cmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2Vzcywg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpWaWRlb1Ry
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIg
bWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVtb3RlVmlkZW9UcmFja1Byb3h5KHBsYXllciwgaWRlbnRpZmllciwgV1RGTW92ZShjb25u
ZWN0aW9uKSwgdHJhY2tQcml2YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZVZpZGVvVHJhY2tQcm94eShjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB0
cmFja1ByaXZhdGUsIG1lZGlhUGxheWVySWRlbnRpZmllcikpOwogICAgIH0KIAotICAgIFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVWaWRlb1RyYWNrUHJveHkoKTsKIAotICAg
IHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkgeyBtX3RyYWNrUHJpdmF0ZS0+c2V0U2Vs
ZWN0ZWQoc2VsZWN0ZWQpOyB9CisgICAgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OwogCiBwcml2YXRlOgotICAg
IFJlbW90ZVZpZGVvVHJhY2tQcm94eShSZW1vdGVNZWRpYVBsYXllclByb3h5JiwgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6Vmlk
ZW9UcmFja1ByaXZhdGUmKTsKKyAgICBSZW1vdGVWaWRlb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlZp
ZGVvVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIAogICAg
IC8vIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50CiAgICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9v
bCkgZmluYWw7CkBAIC02NiwxMyArNzEsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxhbmd1YWdl
Q2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkg
ZmluYWw7CiAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkg
eyBtX3RyYWNrUHJpdmF0ZS0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOyB9CisKICAgICBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCk7CiAgICAgdm9pZCBjb25m
aWd1cmF0aW9uQ2hhbmdlZCgpOwogCi0gICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgbV9wbGF5
ZXI7CisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOwogICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAg
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVmPFdl
YkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlPiBtX3RyYWNrUHJpdmF0ZTsKKyAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllcklkZW50aWZpZXIgbV9tZWRpYVBsYXllcklkZW50aWZpZXI7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJlMGYxMDBmZDg3YjY3OGRjYThiNTQ2NmVmN2YzMTcwOWZhMzNjMjAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1By
b3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlVmlkZW9U
cmFja1Byb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIFNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQp
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggNTczZWQzZDhlZTliYmY0MTAzMTY4ZTc5YTA1N2Y5ZGJkYjliODY5NS4uY2EwYWUyODQxMWE4
M2RlNGJmM2ZlMDhiMDEyZTQwNTU0OGQ4YjU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC0yMDgsNiArMjA4LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90
X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAgICdXZWJD
b3JlOjpDb2xvclNwYWNlJywKICAgICAgICAgJ1dlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQnLAor
ICAgICAgICAnV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1l
bnRJZGVudGlmaWVyJywKQEAgLTI0MCw3ICsyNDEsNiBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3Rf
YmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6RGlzcGxheUxpbmtPYnNlcnZlcklEJywKLSAg
ICAgICAgJ1dlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXInLAogICAgICAgICAn
V2ViS2l0OjpEb3dubG9hZElEJywKICAgICAgICAgJ1dlYktpdDo6R2VvbG9jYXRpb25JZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDA3NjFk
ODM1MWVmY2I1NjExMDljNTNmMDBlNTAwOTcwNjZlMjNhZTcuLmU2ZmJkYTUwMGQwYjc5ZTk4MWRk
MzE4YjFjYzNkYzE5NTIwN2M2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE2LDYgKzQxNiw5IEBACiAJCTFDQThCOTQ2MTI3Qzg4
MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIg
LyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkxQ0JCRTRBMDE5QjY2QzUz
MDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCQkU0OUUxOUI2NkM1MzAwNkI3
RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUNCQkU0
QTExOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlGMTlCNjZDNTMwMDZC
N0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi87IH07CisJCTFEMDM2OUFDMjU2Nzk2
OTkwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAzNjlBQTI1Njc5
NDNDMDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OworCQkxRDAzNjlBRDI1Njc5NkFCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFEMDM2OUE1MjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkxRDAzNjlBRTI1Njc5NkI5MDA0NDAzNzIg
LyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDM2OUEyMjU2Nzk0M0IwMDQ0MDM3
MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkx
RDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2
MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0
RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmggKi87IH07CkBAIC0yODA2LDYgKzI4MDksMTUgQEAKIAkJMUNBOEI5NDQxMjdD
ODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4
MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUYxOUI2
NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUEyMjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1v
dGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQwMzY5QTMyNTY3OTQzQjAw
NDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVz
Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUE0MjU2Nzk0
M0IwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDAzNjlBNTI1Njc5NDNCMDA0NDAzNzIgLyogUmVt
b3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFJlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUE2MjU2Nzk0M0Mw
MDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OworCQkxRDAzNjlBNzI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlQXVk
aW9UcmFja1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlQXVkaW9UcmFja1By
b3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9U
cmFja1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJMUQwMzY5QTgyNTY3OTQzQzAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2Fn
ZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXNS
ZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHRUcmFja1By
b3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCTFEMDM2OUE5MjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNz
YWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2Fn
ZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJh
Y2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OworCQkxRDAzNjlBQTI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlVGV4dFRyYWNrUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllclByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4
MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQz
MkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yODE3LDYgKzI4MjksMTEgQEAKIAkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTFENEZCNDBCMjU2NUM4OUEwMDFBQzJBRCAvKiBJbml0aWFsaXph
dGlvblNlZ21lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluaXRpYWxpemF0aW9uU2VnbWVudElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0RkI0MEMyNTY1Q0JGOTAwMUFD
MkFEIC8qIFJlbW90ZU1lZGlhRGVzY3JpcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVk
aWFEZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDZFMjdERDI1
NjZFODMwMDBBQzdBRUIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUQ2RTI3REUyNTY2RTg1ODAwQUM3QUVCIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94
eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVWaWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENkUyN0RGMjU2NkU4NkIwMEFDN0FFQiAvKiBS
ZW1vdGVUZXh0VHJhY2tQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVRleHRUcmFja1Byb3h5
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDk3RUM3RDI0MDg5
OEQyMDA0NjZGRkEgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURBNDA4OUUyM0E4Mjc3ODAw
NThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTU3MjcsNiArNTc0NCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxRDBFQ0VB
OTIzRkM4NEJCMDBEMTcyRjYgLyogY29jb2EgKi8sCiAJCQkJQ0RBOTU5NDQyNDEyQzREQTAwOTEw
RUVGIC8qIGlvcyAqLywKKwkJCQkxRDRGQjQwQjI1NjVDODlBMDAxQUMyQUQgLyogSW5pdGlhbGl6
YXRpb25TZWdtZW50SW5mby5oICovLAogCQkJCTlCMTIyOUNDMjNGRjI1RjIwMDhDQTc1MSAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOUIxMjI5Q0IyM0ZGMjVG
MjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi8sCiAJCQkJOUIx
MjI5Q0YyM0ZGMjgxNDAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluICovLApAQCAtNTczOSw2ICs1NzU3LDcgQEAKIAkJCQk0MTJGRjkyNzI1MzgyRDg1
MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmggKi8sCiAJCQkJMDcx
QkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJ
CQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICov
LAorCQkJCTFENkUyN0REMjU2NkU4MzAwMEFDN0FFQiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHku
bWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0RBQzIwNzkyM0ZCMUUyMTAwMjFERUUzIC8qIFJlbW90ZUNE
TUZhY3RvcnlQcm94eS5jcHAgKi8sCiAJCQkJQ0RBQzIwNzgyM0ZCMUUyMTAwMjFERUUzIC8qIFJl
bW90ZUNETUZhY3RvcnlQcm94eS5oICovLAogCQkJCUNEQUMyMDdDMjNGQjFFRjkwMDIxREVFMyAv
KiBSZW1vdGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC01NzYwLDYgKzU3Nzks
NyBAQAogCQkJCUNERTU1NEY5MjQwNTgyMDgwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1TZXNz
aW9uUHJveHkuY3BwICovLAogCQkJCUNERTU1NEY4MjQwNTgyMDgwMDhBM0REQiAvKiBSZW1vdGVM
ZWdhY3lDRE1TZXNzaW9uUHJveHkuaCAqLywKIAkJCQlDREU1NTUwMDI0MDU4Mjg0MDA4QTNEREIg
LyogUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTFENEZC
NDBDMjU2NUNCRjkwMDFBQzJBRCAvKiBSZW1vdGVNZWRpYURlc2NyaXB0aW9uLmggKi8sCiAJCQkJ
MDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
LmNwcCAqLywKIAkJCQkwNzI1RUZBQzIzOUFFMzg1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkuaCAqLywKIAkJCQkwNzI1RUZBQjIzOUFFMzg0MDBBNTM4QTkgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC01Nzg0LDggKzU4
MDQsMTAgQEAKIAkJCQkxREQyQTY2NjI1NjFFRDA0MDBGRjdCNkYgLyogUmVtb3RlU291cmNlQnVm
ZmVyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDdFMTlGMDcyM0Q0REM4ODAwOTRGRkI0IC8q
IFJlbW90ZVRleHRUcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwN0UxOUYwNjIzRDREQzg4MDA5NEZG
QjQgLyogUmVtb3RlVGV4dFRyYWNrUHJveHkuaCAqLywKKwkJCQkxRDZFMjdERjI1NjZFODZCMDBB
QzdBRUIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1
ODQyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJ
MDcxQkM1ODUyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5oICovLAor
CQkJCTFENkUyN0RFMjU2NkU4NTgwMEFDN0FFQiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkubWVz
c2FnZXMuaW4gKi8sCiAJCQkJMDdFMTlGMDUyM0Q0REM4ODAwOTRGRkI0IC8qIFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDcxQkM1N0IyM0NBNTMyNDAwNjgw
RDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkwNzFCQzU3
RDIzQ0E1NkQyMDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovLApA
QCAtMTAzNDcsNiArMTAzNjksOSBAQAogCQkJCUNERDUzNTcxMjQwRERFMDYwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RENTM1
NzIyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCAq
LywKIAkJCQlDREQ1MzU3NzI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQkxRDAzNjlBMjI1Njc5NDNCMDA0NDAzNzIgLyog
UmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkxRDAzNjlB
NzI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXMuaCAqLywK
KwkJCQkxRDAzNjlBMzI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVz
c2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREFDMjBG
MjIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQlDREFDMjBGMzIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9y
eVByb3h5TWVzc2FnZXMuaCAqLywKQEAgLTEwMzk2LDYgKzEwNDIxLDEyIEBACiAJCQkJMUREMkE2
NkIyNTYyMDIxRTAwRkY3QjZGIC8qIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQkxREQyQTY2OTI1NjIwMjFFMDBGRjdCNkYgLyogUmVtb3RlU291cmNl
QnVmZmVyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFERDJBNjZBMjU2MjAyMUUwMEZGN0I2RiAv
KiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTFEMDM2
OUFBMjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCisJCQkJMUQwMzY5QTYyNTY3OTQzQzAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFj
a1Byb3h5TWVzc2FnZXMuaCAqLywKKwkJCQkxRDAzNjlBODI1Njc5NDNDMDA0NDAzNzIgLyogUmVt
b3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQkxRDAzNjlBNTI1Njc5
NDNCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKKwkJCQkxRDAzNjlBNDI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5
TWVzc2FnZXMuaCAqLywKKwkJCQkxRDAzNjlBOTI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlVmlk
ZW9UcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJQTU1QkE4MjExQkEyNUJCODAw
N0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQlBNTVCQTgyMjFCQTI1QkI4MDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlN
ZXNzYWdlcy5oICovLAogCQkJCTFCQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBSZW1vdGVXZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMzE3Niw2ICsxMzIwNyw3IEBA
CiAJCQkJMUEwQzIyN0YyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1Nv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAwRUQ2MTREIC8q
IFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMTIyOUNF
MjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxRDAzNjlBRTI1Njc5NkI5MDA0NDAzNzIgLyogUmVtb3RlQXVkaW9U
cmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJE
MTg3OUU0QkMwMDNBQkYwRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREFDMjBGNzIzRkM3MjZDMDAyMURFRTMgLyog
UmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEQUMyMEY4MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTMxOTcsNiArMTMyMjksOCBAQAog
CQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5NDdBNzE4N0I1MTc2MDA0Mzc4
NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUREMkE2NkUyNTYyMDIxRTAwRkY3QjZGIC8qIFJlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEMDM2OUFD
MjU2Nzk2OTkwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDAzNjlBRDI1Njc5NkFCMDA0NDAzNzIgLyogUmVtb3Rl
VmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1
NUJBODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQkJCRTRBMDE5QjY2QzUzMDA2QjdEODEg
LyogUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTE4RTY5MTcxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCmlu
ZGV4IDNkZjBiMWMwOWIzNGE3Nzg4ZjkxMGE0MmEwNTVjYTUwMGFhOTViZmQuLjcyMWMwYWE5MjA3
MjRlOWIzM2I1ODY1MzAzMTM3YjZjYTU0OTAwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
Y3BwCkBAIC0yOSwxNCArMjksMTUgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aCIKLSNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVy
LCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKLSAgICA6
IG1fcGxheWVyKHBsYXllcikKK0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1f
aWRlbmRpZmllcihpZGVuZGlmaWVyKQogewogICAgIHVwZGF0ZUNvbmZpZ3VyYXRpb24oV1RGTW92
ZShjb25maWd1cmF0aW9uKSk7CkBAIC00NSw3ICs0Niw3IEBAIEF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBs
YXllCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKIHsKICAgICBpZiAoZW5hYmxlZCAhPSB0aGlzLT5lbmFibGVkKCkpCi0gICAgICAgIG1fcGxh
eWVyLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpB
dWRpb1RyYWNrU2V0RW5hYmxlZChtX2lkZW5kaWZpZXIsIGVuYWJsZWQpLCBtX3BsYXllci5pdGVu
dGlmaWVyKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6UmVtb3RlQXVk
aW9UcmFja1Byb3h5OjpTZXRFbmFibGVkKGVuYWJsZWQpLCBtX2lkZW5kaWZpZXIpOwogCiAgICAg
QXVkaW9UcmFja1ByaXZhdGU6OnNldEVuYWJsZWQoZW5hYmxlZCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmgKaW5kZXggZDI4YzA3ZTQ3ZDlmNjAzMjY0OWUwMDRlOGJlYjZjZWEyMGE0ZThlYy4u
MjkwN2E4ZTY3OTU0N2IyOTI3ODc5ZTA4NzJhMDU5YWQ5NDRhOTM5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGUuaApAQCAtMjgsOSArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
IAorI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgogCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CkBAIC0zOSwxNSArNDQsMTUgQEAg
c3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpCiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0
aW9uKQorICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRl
bmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoY29ubmVjdGlv
biwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAogICAgIHZv
aWQgdXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYp
OwogCiBwcml2YXRlOgotICAgIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoSVBDOjpD
b25uZWN0aW9uJiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHVzaW5nIEF1ZGlvVHJhY2tLaW5kID0gV2ViQ29y
ZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQ7CiAgICAgQXVkaW9UcmFja0tpbmQga2luZCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fa2luZDsgfQpAQCAtNTcsNyArNjIsNyBAQCBwcml2YXRlOgog
ICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFja0luZGV4OyB9
CiAgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wpIGZpbmFsOwogCi0gICAgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlJiBtX3BsYXllcjsKKyAgICBJUEM6OkNvbm5lY3Rpb24mIG1fY29ubmVjdGlvbjsK
ICAgICBBdWRpb1RyYWNrS2luZCBtX2tpbmQgeyBOb25lIH07CiAgICAgQXRvbVN0cmluZyBtX2lk
OwogICAgIEF0b21TdHJpbmcgbV9sYWJlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApp
bmRleCBiOGE0NzIyMzQxNmRhMjVkOGIyYzFiMjUzZjBhYjBmMzM3OWE5MTAxLi5kYTQwYzQwZTYw
ZTgwN2UyZjIzYzRmOWU1ZWUxNjBmZjdlY2MyY2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCkBAIC00NTUsNyArNDU1LDcgQEAgRmxvYXRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6bmF0dXJhbFNpemUoKSBjb25zdAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OmFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsK
ICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fYXVkaW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsm
XSB7Ci0gICAgICAgIHJldHVybiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKCp0aGlz
LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICAgICAgcmV0dXJuIEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUoY29ubmVjdGlvbigpLCBpZGVudGlmaWVyLCBX
VEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKICAgICB9KTsKICAgICBBU1NFUlQoYWRkUmVzdWx0Lmlz
TmV3RW50cnkpOwogCkBAIC00ODYsNyArNDg2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGUK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVUZXh0VHJhY2soVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBt
X3RleHRUcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7Ci0gICAgICAgIHJldHVybiBUZXh0
VHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZpZXIsIFdURk1vdmUoY29u
ZmlndXJhdGlvbikpOworICAgICAgICByZXR1cm4gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6Y3Jl
YXRlKGNvbm5lY3Rpb24oKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiAg
ICAgfSk7CiAgICAgQVNTRVJUKGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIApAQCAtNTk5LDcgKzU5
OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3VlKFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92aWRlb1RyYWNrcy5lbnN1cmUoaWRlbnRpZmll
ciwgWyZdIHsKLSAgICAgICAgcmV0dXJuIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUo
KnRoaXMsIGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgICAgICByZXR1
cm4gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShjb25uZWN0aW9uKCksIGlkZW50aWZp
ZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogICAgIH0pOwogICAgIEFTU0VSVChhZGRSZXN1
bHQuaXNOZXdFbnRyeSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDBkNjEzYzRk
YjJhNDk2Yjc3M2E2YTE3MmE3Y2I3OGUyYzAxMjU0OWUuLmQ4ZmRjZmM0ZTcwYTk5MmExYTVhMWI1
NjI0MGIyOTMxY2U1ODE1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMTUyLDYg
KzE1MiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJl
ZChjb25zdCBTdHJpbmcmLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCisgICAgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlPiBh
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50
aWZpZXIpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9UcmFja3MuZ2V0KGlkZW50aWZpZXIpOyB9Cisg
ICAgUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPiB2aWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0IHsgcmV0dXJu
IG1fdmlkZW9UcmFja3MuZ2V0KGlkZW50aWZpZXIpOyB9CisgICAgUmVmUHRyPFRleHRUcmFja1By
aXZhdGVSZW1vdGU+IHRleHRUcmFja1ByaXZhdGVSZW1vdGUoVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVudGlmaWVyKSBjb25zdCB7IHJldHVybiBtX3RleHRUcmFja3MuZ2V0KGlkZW50
aWZpZXIpOyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CiAgICAgdm9pZCBjdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChib29sKTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgppbmRl
eCBmNGNjOGJjYjJiZmZiM2YxMDk4NTdlN2Q2ZGE3ZjZhOTUwZTZmYWViLi4zYzMyN2NmOTQzOTBk
NmI4MmM3MDg1YTJiNjFlMmZmZGE3MTFlNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5tZXNzYWdlcy5pbgpAQCAtNDIsNiArNDIsMTAgQEAgbWVzc2FnZXMgLT4gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewogICAgIFJlbW92ZVJlbW90ZUF1ZGlv
VHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCiAgICAg
UmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAKKyAgICBBZGRSZW1vdGVWaWRlb1RyYWNr
KFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAg
UmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCkKKyAgICBSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6
OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKwogICAgIEFk
ZFJlbW90ZVRleHRUcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgc3RydWN0IFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24g
Y29uZmlndXJhdGlvbikKICAgICBSZW1vdmVSZW1vdGVUZXh0VHJhY2soV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCiAgICAgUmVtb3RlVGV4dFRyYWNrQ29uZmln
dXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNr
SUQsIHN0cnVjdCBXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNv
bmZpZ3VyYXRpb24pCkBAIC02MSwxMCArNjUsNiBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUgTm90UmVmQ291bnRlZCB7CiAgICAgVXBkYXRlR2VuZXJpY0N1ZShXZWJLaXQ6
OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYkNvcmU6Okdl
bmVyaWNDdWVEYXRhIGN1ZSkKICAgICBSZW1vdmVHZW5lcmljQ3VlKFdlYktpdDo6VHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViQ29yZTo6R2VuZXJpY0N1ZURh
dGEgY3VlKQogCi0gICAgQWRkUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQotICAgIFJlbW92ZVJlbW90ZVZpZGVvVHJhY2so
V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCi0gICAgUmVtb3Rl
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCi0KICAgICBSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+ICgp
IEFzeW5jCiAgICAgUmVtb3ZlUmVzb3VyY2UoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikKICAgICBTZW5kSDJQaW5nKFVS
TCB1cmwpIC0+IChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1
bHQpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMjZiY2ZhNWFhMTVh
M2UyZTk2Yzk5NWY4YmUzNDdhOTZhZmU5NjQ0Mi4uMGFjNzg3MjBiYWM0ZDQyOGQxMjQ3MDQ4OTg2
NTkzOTM4ZmY3ODVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcApAQCAtNDYsMjIg
KzQ2LDIyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotUmVmPE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZT4gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3Rl
OjpjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1v
dGVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNSU1F
VHlwZUNhY2hlJiBtaW1lVHlwZUNhY2hlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUm
IHBsYXllclByaXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogY2xpZW50KQorUmVmPE1l
ZGlhU291cmNlUHJpdmF0ZVJlbW90ZT4gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpjcmVhdGUo
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hl
JiBtaW1lVHlwZUNhY2hlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1lZGlhUGxh
eWVyUHJpdmF0ZSwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgYXV0
byBtZWRpYVNvdXJjZVByaXZhdGUgPSBhZG9wdFJlZigqbmV3IE1lZGlhU291cmNlUHJpdmF0ZVJl
bW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgbWltZVR5cGVDYWNoZSwgcGxh
eWVyUHJpdmF0ZSwgY2xpZW50KSk7CisgICAgYXV0byBtZWRpYVNvdXJjZVByaXZhdGUgPSBhZG9w
dFJlZigqbmV3IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwg
aWRlbnRpZmllciwgbWltZVR5cGVDYWNoZSwgbWVkaWFQbGF5ZXJQcml2YXRlLCBjbGllbnQpKTsK
ICAgICBjbGllbnQtPnNldFByaXZhdGVBbmRPcGVuKG1lZGlhU291cmNlUHJpdmF0ZS5jb3B5UmVm
KCkpOwogICAgIHJldHVybiBtZWRpYVNvdXJjZVByaXZhdGU7CiB9CiAKLU1lZGlhU291cmNlUHJp
dmF0ZVJlbW90ZTo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9u
JiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwgY29u
c3QgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXJQcml2YXRlLCBNZWRpYVNvdXJjZVBy
aXZhdGVDbGllbnQqIGNsaWVudCkKK01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6TWVkaWFTb3Vy
Y2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlv
biwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxh
eWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwgY29uc3QgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlJiBtZWRpYVBsYXllclByaXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogY2xp
ZW50KQogICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikK
ICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9taW1lVHlwZUNhY2hlKG1p
bWVUeXBlQ2FjaGUpCi0gICAgLCBtX3BsYXllclByaXZhdGUobWFrZVdlYWtQdHIocGxheWVyUHJp
dmF0ZSkpCisgICAgLCBtX21lZGlhUGxheWVyUHJpdmF0ZShtYWtlV2Vha1B0cihtZWRpYVBsYXll
clByaXZhdGUpKQogICAgICwgbV9jbGllbnQoY2xpZW50KQogI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAotICAgICwgbV9sb2dnZXIobV9wbGF5ZXJQcml2YXRlLT5tZWRpYVBsYXllckxvZ2dlcigp
KQotICAgICwgbV9sb2dJZGVudGlmaWVyKG1fcGxheWVyUHJpdmF0ZS0+bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkpCisgICAgLCBtX2xvZ2dlcihtX21lZGlhUGxheWVyUHJpdmF0ZS0+bWVkaWFQ
bGF5ZXJMb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihtX21lZGlhUGxheWVyUHJpdmF0
ZS0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwpAQCAtOTUsNyArOTUsNyBAQCBNZWRpYVNvdXJjZVByaXZhdGU6OkFk
ZFN0YXR1cyBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBD
bwogCiAgICAgaWYgKHN0YXR1cyA9PSBBZGRTdGF0dXM6Ok9rKSB7CiAgICAgICAgIEFTU0VSVChy
ZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLmhhc1ZhbHVlKCkpOwotICAgICAgICBhdXRvIG5l
d1NvdXJjZUJ1ZmZlciA9IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX2dwdVBy
b2Nlc3NDb25uZWN0aW9uLCAqcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciwgKnRoaXMpOwor
ICAgICAgICBhdXRvIG5ld1NvdXJjZUJ1ZmZlciA9IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6
OmNyZWF0ZShtX2dwdVByb2Nlc3NDb25uZWN0aW9uLCAqcmVtb3RlU291cmNlQnVmZmVySWRlbnRp
ZmllciwgKnRoaXMsICptX21lZGlhUGxheWVyUHJpdmF0ZSk7CiAgICAgICAgIG91dFByaXZhdGUg
PSBuZXdTb3VyY2VCdWZmZXIuY29weVJlZigpOwogICAgICAgICBtX3NvdXJjZUJ1ZmZlcnMuYXBw
ZW5kKFdURk1vdmUobmV3U291cmNlQnVmZmVyKSk7CiAgICAgfQpAQCAtMTIwLDcgKzEyMCw3IEBA
IHZvaWQgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjp1bm1hcmtFbmRPZlN0cmVhbSgpCiAKIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlIE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGxheWVyUHJpdmF0ZSA/IG1fcGxheWVyUHJpdmF0
ZS0+cmVhZHlTdGF0ZSgpIDogTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nOwor
ICAgIHJldHVybiBtX21lZGlhUGxheWVyUHJpdmF0ZSA/IG1fbWVkaWFQbGF5ZXJQcml2YXRlLT5y
ZWFkeVN0YXRlKCkgOiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CiB9CiAK
IHZvaWQgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVy
OjpSZWFkeVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmgKaW5kZXggMDFjOTQ0MjViNDhi
Mzk2ZTk2N2M0ZTgyMTRkZmI2ZTUzNWE1NTBiZC4uNzc4MzRmN2ExOWRjYjBiOTRlZDUyZjY2ODAw
ZTYwNWMzMTUzNDc5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5oCkBAIC01NCw4ICs1NCw2
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZT4gY3Jl
YXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBS
ZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUmLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUmLCBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKTsKICAgICB2aXJ0dWFs
IH5NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUoKTsKIAotICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZSogcGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5ZXJQcml2YXRlLmdldCgpOyB9Ci0K
ICAgICAvLyBNZWRpYVNvdXJjZVByaXZhdGUgb3ZlcnJpZGVzCiAgICAgQWRkU3RhdHVzIGFkZFNv
dXJjZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIFJlZlB0cjxXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQcml2YXRlPiYpIGZpbmFsOwogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKCkg
ZmluYWw7CkBAIC03Nyw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24mIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUmIG1f
bWltZVR5cGVDYWNoZTsKLSAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gbV9w
bGF5ZXJQcml2YXRlOworICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBtX21l
ZGlhUGxheWVyUHJpdmF0ZTsKICAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2YXRl
Q2xpZW50PiBtX2NsaWVudDsKICAgICBWZWN0b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVS
ZW1vdGU+PiBtX3NvdXJjZUJ1ZmZlcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3Bw
CmluZGV4IDZmNDU0OGExMDc0ZGRiYzZhY2U3MTdmMzdkMjY5YjhlZDk1ZTgzOTQuLjgzOTUzM2Rm
NTE1MzU0Nzk5OTE3YTFhYTllNWZkNmZiYzg0NzFiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlLmNwcApAQCAtMjgsMTIgKzI4LDE1IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJJbml0aWFsaXphdGlvblNlZ21l
bnRJbmZvLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECkBAIC00NSwxNSArNDgsMTYgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8U291cmNlQnVmZmVyUHJpdmF0ZVJl
bW90ZT4gU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0
aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciBy
ZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGVSZW1v
dGUmIG1lZGlhU291cmNlUHJpdmF0ZSkKK1JlZjxTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlPiBT
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdw
dVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIHJlbW90ZVNv
dXJjZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZSYgbWVk
aWFTb3VyY2VQcml2YXRlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1lZGlhUGxh
eWVyUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlKGdwdVByb2Nlc3NDb25uZWN0aW9uLCByZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyLCBtZWRpYVNvdXJjZVByaXZhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlKGdwdVByb2Nlc3NDb25uZWN0aW9uLCByZW1vdGVTb3VyY2VC
dWZmZXJJZGVudGlmaWVyLCBtZWRpYVNvdXJjZVByaXZhdGUsIG1lZGlhUGxheWVyUHJpdmF0ZSkp
OwogfQogCi1Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpTb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlU291
cmNlQnVmZmVySWRlbnRpZmllciByZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBN
ZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmIG1lZGlhU291cmNlUHJpdmF0ZSkKK1NvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGU6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
IHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJl
bW90ZSYgbWVkaWFTb3VyY2VQcml2YXRlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUm
IG1lZGlhUGxheWVyUHJpdmF0ZSkKICAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24pCiAgICAgLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIocmVt
b3RlU291cmNlQnVmZmVySWRlbnRpZmllcikKICAgICAsIG1fbWVkaWFTb3VyY2VQcml2YXRlKG1h
a2VXZWFrUHRyKG1lZGlhU291cmNlUHJpdmF0ZSkpCisgICAgLCBtX21lZGlhUGxheWVyUHJpdmF0
ZShtYWtlV2Vha1B0cihtZWRpYVBsYXllclByaXZhdGUpKQogI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAogICAgICwgbV9sb2dnZXIobV9tZWRpYVNvdXJjZVByaXZhdGUtPmxvZ2dlcigpKQogICAg
ICwgbV9sb2dJZGVudGlmaWVyKG1fbWVkaWFTb3VyY2VQcml2YXRlLT5uZXh0U291cmNlQnVmZmVy
TG9nSWRlbnRpZmllcigpKQpAQCAtOTgsNyArMTAyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKIAogTWVkaWFQbGF5ZXI6OlJlYWR5
U3RhdGUgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fbWVkaWFTb3VyY2VQcml2YXRlID8gbV9tZWRpYVNvdXJjZVByaXZhdGUtPnBs
YXllcigpLT5yZWFkeVN0YXRlKCkgOiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhp
bmc7CisgICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXJQcml2YXRlID8gbV9tZWRpYVBsYXllclByaXZh
dGUtPnJlYWR5U3RhdGUoKSA6IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZzsK
IH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRSZWFkeVN0YXRlKE1lZGlh
UGxheWVyOjpSZWFkeVN0YXRlKQpAQCAtMTUyLDYgKzE1NiwzOCBAQCBib29sIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGU6OmNhblN3aXRjaFRvVHlwZShjb25zdCBDb250ZW50VHlwZSYpCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KEluaXRpYWxpemF0
aW9uU2VnbWVudEluZm8mJiBzZWdtZW50SW5mbykKK3sKKyAgICBpZiAoIW1fY2xpZW50IHx8ICFt
X21lZGlhUGxheWVyUHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50IHNlZ21lbnQ7CisgICAgc2VnbWVu
dC5kdXJhdGlvbiA9IHNlZ21lbnRJbmZvLmR1cmF0aW9uOworCisgICAgZm9yIChhdXRvJiBhdWRp
b1RyYWNrIDogc2VnbWVudEluZm8uYXVkaW9UcmFja3MpIHsKKyAgICAgICAgU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50OjpBdWRpb1RyYWNrSW5mb3JtYXRp
b24gaW5mbzsKKyAgICAgICAgaW5mby50cmFjayA9IG1fbWVkaWFQbGF5ZXJQcml2YXRlLT5hdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZShhdWRpb1RyYWNrLmlkZW50aWZpZXIpOworICAgICAgICBpbmZv
LmRlc2NyaXB0aW9uID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYURlc2NyaXB0aW9uKGF1ZGlv
VHJhY2suZGVzY3JpcHRpb24pKTsKKyAgICAgICAgc2VnbWVudC5hdWRpb1RyYWNrcy5hcHBlbmQo
aW5mbyk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiB2aWRlb1RyYWNrIDogc2VnbWVudEluZm8u
dmlkZW9UcmFja3MpIHsKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlh
bGl6YXRpb25TZWdtZW50OjpWaWRlb1RyYWNrSW5mb3JtYXRpb24gaW5mbzsKKyAgICAgICAgaW5m
by50cmFjayA9IG1fbWVkaWFQbGF5ZXJQcml2YXRlLT52aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZSh2
aWRlb1RyYWNrLmlkZW50aWZpZXIpOworICAgICAgICBpbmZvLmRlc2NyaXB0aW9uID0gYWRvcHRS
ZWYoKm5ldyBSZW1vdGVNZWRpYURlc2NyaXB0aW9uKHZpZGVvVHJhY2suZGVzY3JpcHRpb24pKTsK
KyAgICAgICAgc2VnbWVudC52aWRlb1RyYWNrcy5hcHBlbmQoaW5mbyk7CisgICAgfQorCisgICAg
Zm9yIChhdXRvJiB0ZXh0VHJhY2sgOiBzZWdtZW50SW5mby50ZXh0VHJhY2tzKSB7CisgICAgICAg
IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudDo6VGV4dFRy
YWNrSW5mb3JtYXRpb24gaW5mbzsKKyAgICAgICAgaW5mby50cmFjayA9IG1fbWVkaWFQbGF5ZXJQ
cml2YXRlLT50ZXh0VHJhY2tQcml2YXRlUmVtb3RlKHRleHRUcmFjay5pZGVudGlmaWVyKTsKKyAg
ICAgICAgaW5mby5kZXNjcmlwdGlvbiA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFEZXNjcmlw
dGlvbih0ZXh0VHJhY2suZGVzY3JpcHRpb24pKTsKKyAgICAgICAgc2VnbWVudC50ZXh0VHJhY2tz
LmFwcGVuZChpbmZvKTsKKyAgICB9CisKKyAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoV1RGTW92ZShzZWdtZW50KSk7Cit9CisK
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkFwcGVuZFJlc3VsdCBhcHBlbmRS
ZXN1bHQpCiB7CiAgICAgaWYgKG1fY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaApp
bmRleCBiOWEwMWIwNjI1ZTNiN2M3ZjAxMTg0YTgzYzM2ZTU0OTEyMmYwOWE4Li4wMGRlOWM3NTlk
ZTUwZTcwYmZkNDM1OTczNzZjODE1NWZlZGMyMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGUuaApAQCAtMzAsMTAgKzMwLDEyIEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVTb3VyY2VC
dWZmZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFR5cGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhU2FtcGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VCdWZmZXJQcml2YXRlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTQ0LDExICs0Niwx
MiBAQAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwogY2xhc3MgRGVjb2RlcjsK
LWNsYXNzIERhdGFSZWZlcmVuY2U7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdHJ1Y3Qg
SW5pdGlhbGl6YXRpb25TZWdtZW50SW5mbzsKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTsKIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTsKIAogY2xhc3MgU291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZSBmaW5hbApAQCAtNjAsMTMgKzYzLDEzIEBAIGNsYXNzIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGUgZmluYWwKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwg
UmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciwgY29uc3QgTWVkaWFTb3VyY2VQcml2YXRlUmVt
b3RlJik7CisgICAgc3RhdGljIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUo
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBjb25z
dCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUmKTsKICAgICB2aXJ0dWFsIH5Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlKCk7CiAKICAgICB2
b2lkIGNsZWFyTWVkaWFTb3VyY2UoKSB7IG1fbWVkaWFTb3VyY2VQcml2YXRlID0gbnVsbHB0cjsg
fQogCiBwcml2YXRlOgotICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24mLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJj
ZVByaXZhdGVSZW1vdGUmKTsKKyAgICBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlKEdQVVByb2Nl
c3NDb25uZWN0aW9uJiwgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciwgY29uc3QgTWVkaWFT
b3VyY2VQcml2YXRlUmVtb3RlJiwgY29uc3QgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJik7CiAK
ICAgICAvLyBTb3VyY2VCdWZmZXJQcml2YXRlIG92ZXJyaWRlcwogICAgIHZvaWQgc2V0Q2xpZW50
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBmaW5hbDsKQEAgLTg3LDExICs5
MCwxNCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuU3dpdGNoVG9UeXBlKGNvbnN0IFdlYkNvcmU6
OkNvbnRlbnRUeXBlJikgZmluYWw7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChJbml0aWFsaXphdGlvblNl
Z21lbnRJbmZvJiYpOwogICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRl
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkFwcGVuZFJlc3VsdCk7CiAKICAg
ICBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKICAgICBSZW1v
dGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcjsK
ICAgICBXZWFrUHRyPE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZT4gbV9tZWRpYVNvdXJjZVByaXZh
dGU7CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IG1fbWVkaWFQbGF5ZXJQ
cml2YXRlOwogICAgIFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqIG1fY2xpZW50
IHsgbnVsbHB0ciB9OwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggYWExOTgyMTFjZTk5YWJhZDVi
OGVlMDdmZDRlMTc3YmRmYTk1YTQwYy4uNDA2NDJmNjAzNmVmN2UxMWUyM2I4MGY1YTQ1MWQ3NmYz
ZWQyOGM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9T
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
bgpAQCAtMjYsNiArMjYsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1F
RElBX1NPVVJDRSkKIAogbWVzc2FnZXMgLT4gU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZSBOb3RS
ZWZDb3VudGVkIHsKKyAgICBTb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudChzdHJ1Y3QgV2ViS2l0OjpJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvIHNlZ21l
bnRDb25maWd1cmF0aW9uKQogICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShX
ZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRSZXN1bHQgYXBwZW5kUmVz
dWx0KQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAppbmRleCAxMTc5MzdmZTJkM2NjZmNj
ODFmODk5OTE0ZDVhOWY2ODBjNzBiMzQ3Li43MzIyM2I4Njg0MjEzYTBiZDhmNzEyODJhOGU4ZGVh
NjE1OTk1ZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTI5LDE3ICsyOSwxOCBA
QAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaCIKLSNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi1UZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbikKK1RleHRUcmFja1ByaXZhdGVSZW1vdGU6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbikKICAgICA6IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUo
Y29uZmlndXJhdGlvbi5jdWVGb3JtYXQpCi0gICAgLCBtX3BsYXllcihwbGF5ZXIpCisgICAgLCBt
X2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1faWRlbmRpZmllcihpZGVuZGlmaWVyKQog
ewogICAgIHVwZGF0ZUNvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CkBAIC00
OCw3ICs0OSw3IEBAIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OlRleHRUcmFja1ByaXZhdGVSZW1v
dGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXIsCiB2b2lkIFRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnNldE1vZGUoVGV4dFRyYWNrTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlICE9
IG1fbW9kZSkKLSAgICAgICAgbV9wbGF5ZXIuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OlRleHRUcmFja1NldE1vZGUobV9pZGVuZGlmaWVyLCBtb2Rl
KSwgbV9wbGF5ZXIuaXRlbnRpZmllcigpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVRleHRUcmFja1Byb3h5OjpTZXRNb2RlKG1vZGUpLCBtX2lkZW5kaWZpZXIp
OwogCiAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6c2V0TW9kZShtb2RlKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQ
cml2YXRlUmVtb3RlLmgKaW5kZXggYjdjZWRiN2U4Mzk0Zjk5YmE5Y2ZiMGEyYWMyYTk3ODExYjNj
NDE4Zi4uZDU0MjQ0MmM4NDRlNTQ4M2ZkM2NlZDc4NTA1ZGNhMTg2OTRhZTRhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVt
b3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQ
cml2YXRlUmVtb3RlLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luYmFu
ZFRleHRUcmFja1ByaXZhdGUuaD4KIAogbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9u
OwogY2xhc3MgRGF0YVJlZmVyZW5jZTsKIH0KIApAQCAtNTAsOSArNTEsOSBAQCBjbGFzcyBUZXh0
VHJhY2tQcml2YXRlUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkluYmFuZFRleHRUcmFj
a1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRleHRUcmFja1ByaXZhdGVSZW1v
dGUpCiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUmVmPFRleHRUcmFja1ByaXZhdGVSZW1vdGU+IGNy
ZWF0ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVuZGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRl
eHRUcmFja1ByaXZhdGVSZW1vdGUocGxheWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja1ByaXZhdGVS
ZW1vdGUoY29ubmVjdGlvbiwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwog
ICAgIH0KIAogICAgIHZvaWQgYWRkRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1l
JiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CkBAIC05OSw5ICsxMDAsOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0RlZmF1bHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzRGVmYXVsdDsg
fQogCiBwcml2YXRlOgotICAgIFRleHRUcmFja1ByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlJiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShJUEM6
OkNvbm5lY3Rpb24mLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAotICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSYgbV9wbGF5ZXI7CisgICAgSVBDOjpDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CiAgICAgQXRv
bVN0cmluZyBtX2lkOwogICAgIEF0b21TdHJpbmcgbV9sYWJlbDsKICAgICBBdG9tU3RyaW5nIG1f
bGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDNmNjk0OTBhOTJkMWZk
YmUwNDVkMDZhZWIyZThmYjRiY2ZmOTZhZDAuLmFjNmVhMDE0MjcxYzMzMTI2Y2Q3NTJiM2ZmZDNi
Nzg1NDM5ZGU2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC0yOSwxMyArMjks
MTQgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKLSNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb1RyYWNr
UHJveHlNZXNzYWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotICAgIDogbV9wbGF5
ZXIocGxheWVyKQorVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9pZGVuZGlm
aWVyKGlkZW5kaWZpZXIpCiB7CiAgICAgdXBkYXRlQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pKTsKQEAgLTQ0LDcgKzQ1LDcgQEAgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWUKIHZv
aWQgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQpCiB7
CiAgICAgaWYgKHNlbGVjdGVkICE9IHRoaXMtPnNlbGVjdGVkKCkpCi0gICAgICAgIG1fcGxheWVy
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpWaWRl
b1RyYWNrU2V0U2VsZWN0ZWQobV9pZGVuZGlmaWVyLCBzZWxlY3RlZCksIG1fcGxheWVyLml0ZW50
aWZpZXIoKSk7CisgICAgICAgIG1fY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVWaWRl
b1RyYWNrUHJveHk6OlNldFNlbGVjdGVkKHNlbGVjdGVkKSwgbV9pZGVuZGlmaWVyKTsKIAogICAg
IFZpZGVvVHJhY2tQcml2YXRlOjpzZXRTZWxlY3RlZChzZWxlY3RlZCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlLmgKaW5kZXggNjEyOThhNjVlZGQzMzI3YWJlNTk1NTUxMjI0MzZlZTVhYmRiNDNk
OC4uZjM2ZTA2YjEwMmQyNGMyOWVjZTg1MGVhNmQxMzY2NTM4MmE0YmExYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1By
aXZhdGVSZW1vdGUuaApAQCAtMzIsMTcgKzMyLDIyIEBACiAjaW5jbHVkZSAiVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUu
aD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwogc3RydWN0IFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlIDogcHVibGljIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlIHsKK2NsYXNzIFZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlCisgICAgOiBwdWJsaWMgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKQogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbikKKyAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGUocGxheWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKGNvbm5lY3Rp
b24sIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKICAgICB9CiAKICAgICB2
b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
KTsKQEAgLTU0LDEyICs1OSwxMiBAQCBwdWJsaWM6CiAgICAgQXRvbVN0cmluZyBsYW5ndWFnZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0KICAgICBpbnQgdHJhY2tJbmRleCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdHJhY2tJbmRleDsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAg
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiwgVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
KTsKK3ByaXZhdGU6CisgICAgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoSVBDOjpDb25uZWN0aW9u
JiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmKTsKIAogICAgIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCkgZmluYWw7CiAKLSAgICBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1fcGxheWVyOworICAgIElQQzo6Q29ubmVjdGlvbiYg
bV9jb25uZWN0aW9uOwogICAgIFZpZGVvVHJhY2tLaW5kIG1fa2luZCB7IE5vbmUgfTsKICAgICBB
dG9tU3RyaW5nIG1faWQ7CiAgICAgQXRvbVN0cmluZyBtX2xhYmVsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414784</attachid>
            <date>2020-11-21 22:03:40 -0800</date>
            <delta_ts>2020-12-01 10:34:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219227-20201121220339.patch</filename>
            <type>text/plain</type>
            <size>114919</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY5YjIzYWM5ZjVlYWI3
ZTU0NmMwMjljMWRmZDYwNTM3YzRmZmFhYS4uNjE1NjRmNTExZDhkYjYxMWY2N2VhMzhiMzRhOTZk
ZTM3YmI3ZDY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTExLTIxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIEluIEdQVSBQcm9j
ZXNzXVtNU0VdIEFkZCB0aGUgc3VwcG9ydCB0byBmb3J3YXJkIGluaXRpYWxpemF0aW9uIHNlZ21l
bnQgZnJvbSB0aGUgR1BVIFByb2Nlc3MgdG8gV2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MjI3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorCiAyMDIw
LTExLTE4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtX
ZWIgQW5pbWF0aW9uc10gRW5zdXJlIHdlIGRvbid0IHNjaGVkdWxlIGFuaW1hdGlvbiB1ZHBhdGVz
IHdoZW4gdGhlcmUgYXJlIG5vIHN0eWxlcyB0byB1cGRhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGFlYTI1NWE5
MjhhYWFkZTIzOWFkYzEwMGRmNTAxMzE5ZTVjZjEwMS4uN2E3MGYyZWM5Zjg1ZDkyYTZiMmMxNTZi
OGFjODRjYzQ3ODQ1NGJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTggQEAKKzIwMjAtMTEtMjEg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgSW4gR1BV
IFByb2Nlc3NdW01TRV0gQWRkIHRoZSBzdXBwb3J0IHRvIGZvcndhcmQgaW5pdGlhbGl6YXRpb24g
c2VnbWVudCBmcm9tIHRoZSBHUFUgUHJvY2VzcyB0byBXZWIgcHJvY2Vzc2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyMjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhl
IHN1cHBvcnQgdG8gZm9yd2FyZCBgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoKWAKKyAgICAgICAgY2FsbGJhY2sgZnJvbSB0aGUgc291cmNlIGJ1ZmZl
ciBwYXJzZXIgcnVubmluZyBpbiB0aGUgR1BVIHByb2Nlc3MgdG8gdGhlIGBTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlYAorICAgICAgICBydW5uaW5nIGluIHRoZSBXZWIgcHJvY2Vzcywgd2hpY2gg
aW4gdHVybiBwcm92aWRlcyB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudCB0byBgU291cmNlQnVm
ZmVyYC4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9Jbml0aWFsaXph
dGlvblNlZ21lbnRJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXphdGlv
blNlZ21lbnRJbmZvOjpUcmFja0luZm9ybWF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvOjpUcmFja0luZm9ybWF0aW9uOjpkZWNv
ZGUpOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvOjpkZWNv
ZGUpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1Ry
YWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6On5SZW1v
dGVBdWRpb1RyYWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1RyYWNrUHJv
eHk6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9U
cmFja1Byb3h5Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvVHJhY2tQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4uCisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYURlc2NyaXB0aW9uLmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpNZWRpYURlc2NyaXB0aW9uSW5mbzo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFEZXNjcmlwdGlvbkluZm86OmRlY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhRGVzY3JpcHRpb246OlJlbW90ZU1lZGlhRGVzY3JpcHRpb24p
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWRNZWRpYVNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmFkZFJlbW90ZUF1
ZGlvVHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OmFkZFJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmFkZFJlbW90ZVRleHRUcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1v
dmVBdWRpb1RyYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJEaWRBZGRWaWRlb1RyYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJh
Y2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ckRpZFJlbW92ZVRleHRUcmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OmF1ZGlvVHJhY2tTZXRFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9UcmFja1NldFNlbGVjdGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGV4dFRyYWNrU2V0TW9k
ZSk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFT
b3VyY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6
OlJlbW90ZU1lZGlhU291cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNv
dXJjZVByb3h5OjphZGRTb3VyY2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFTb3VyY2VQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlU291cmNlQnVmZmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTb3VyY2VC
dWZmZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU291cmNlQnVmZmVy
UHJveHk6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U291cmNlQnVmZmVyUHJveHk6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5OjpSZW1vdGVU
ZXh0VHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5Ojp+
UmVtb3RlVGV4dFRyYWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQ
cm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6d2lsbFJlbW92ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFj
a1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJv
eHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94
eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5
OjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6
OnVwZGF0ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94
eTo6cmVtb3ZlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1By
b3h5OjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cGFyc2VXZWJWVFRDdWVEYXRhKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVUZXh0VHJhY2tQcm94eS5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2Vz
LmluLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1Ry
YWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6On5SZW1v
dGVWaWRlb1RyYWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJv
eHk6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9U
cmFja1Byb3h5Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVZpZGVvVHJhY2tQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4uCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0
OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0RW5hYmxlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVRleHRU
cmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVt
b3RlVmlkZW9UcmFjayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFT
b3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmFkZFNvdXJjZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZSBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3Rl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJl
bW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlOjpyZWFkeVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZTo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0
VHJhY2tQcml2YXRlUmVtb3RlOjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdl
YktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0TW9kZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKToK
KyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnNldFNlbGVjdGVkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKToKKwog
MjAyMC0xMS0xOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDbGVhbiB1cCBzb21lIGNvZGUgaW4gU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGYyYzNiNjRlNjRlMTc5Mjg4NGU3ODcxYTEwNzkxZDg3YTZhYzhmMmIu
LmM5ZWM1ZTQ1Nzc2OWYxZWU4ZWNiZmRjYmYwNWZiOWE5MmE5YjliMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTAwNiw2ICsxMDA2LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL0xvZ2dpbmcuaAogICAgIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmgKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgKKyAgICBwbGF0Zm9y
bS9NZWRpYURlc2NyaXB0aW9uLmgKICAgICBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCiAgICAgcGxh
dGZvcm0vTWVkaWFTZWxlY3Rpb25PcHRpb24uaAogICAgIHBsYXRmb3JtL01lZGlhU2Vzc2lvbklk
ZW50aWZpZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggNjI4NDQ1MzI1MDMzNTEwN2ZkNTQ5ODIy
MzJiOGI5ZWFlYzhlNjhjYi4uODhlMTUxYjEyMjI0ZmViY2M4OTNiNTNkNjg1ZTNlYzFiMDEwY2Q0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xMjYsNiArMTI2LDcgQEAgc2V0KFdlYktpdF9NRVNT
QUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZAogCiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5CiAgICAgR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eQogICAgIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNRmFjdG9yeVByb3h5CiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0
YW5jZVByb3h5CkBAIC0xMzksNiArMTQwLDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxF
UwogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIKICAgICBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkKICAgICBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5CisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVU
ZXh0VHJhY2tQcm94eQorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5
CiAKICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eQogICAgIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZWRiNmNhNTk3
OWQyZjRkZWY4YjJiMmU3NzNmOWQ2OWFlNzg2ZTdlOS4uZTUxY2FlZDIxZTE4NmNmMmExNzNjYjhh
MzMzMTJiZTBiMzA0YmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdApAQCAtMjUsNiArMjUsNyBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzgsOCBAQCAkKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlclBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDc1Njc5
ZjU1ZjVhZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQuLmU4OGIyYzIxZmE3MTdjNzdkMjMw
MmNiNTE4YmE0YWQzZWRlMjU3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTU3LDYgKzE1Nyw5IEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZXNSZXBsCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9U
cmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNETUZh
Y3RvcnlQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCkBAIC0yMzks
NiArMjQyLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXNSCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlc1Jl
cGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHRU
cmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVv
VHJhY2tQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM3NzAx
YjAxYzNjMWEyYzMwMGUxZGQyZDcyZTZiODUyMzdmNDI0YjUuLjY4MTQ4NTVmZjlkMjNhZjBhNzdl
NWZkYTZkZmQyZmQ1NTA5NzZmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI0
Miw2ICsyNDIsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETVByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25I
ZWxwZXJQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlciBcCisJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkgXAogCUdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlUHJveHkgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RN
UHJveHkgXApAQCAtMjUwLDYgKzI1MSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCUdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAogCUdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eSBcCisJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eSBc
CisJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkgXAogCVdlYkF1dGhuUHJv
Y2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgXAogCVdlYkF1dGhuUHJvY2Vzcy9X
ZWJBdXRoblByb2Nlc3MgXAogIwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL0luaXRpYWxpemF0aW9uU2VnbWVudEluZm8uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9Jbml0aWFsaXphdGlvblNlZ21lbnRJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQzNDhl
ZmQxZTM3YjcwNjdlMjhlZWJhZTY2YTkyZTIwYTAzZTVkMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9Jbml0aWFsaXphdGlvblNlZ21lbnRJbmZvLmgK
QEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1ZGUgIkRlY29k
ZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFEZXNjcmlw
dGlvbi5oIgorI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlIDx3dGYvTWVkaWFUaW1lLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IEluaXRpYWxp
emF0aW9uU2VnbWVudEluZm8geworICAgIE1lZGlhVGltZSBkdXJhdGlvbjsKKworICAgIHN0cnVj
dCBUcmFja0luZm9ybWF0aW9uIHsKKyAgICAgICAgTWVkaWFEZXNjcmlwdGlvbkluZm8gZGVzY3Jp
cHRpb247CisgICAgICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcjsK
KworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgorICAgICAgICB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBlbmNvZGVyIDw8
IGRlc2NyaXB0aW9uOworICAgICAgICAgICAgZW5jb2RlciA8PCBpZGVudGlmaWVyOworICAgICAg
ICB9CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgICAgIHN0YXRpYyBP
cHRpb25hbDxUcmFja0luZm9ybWF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICAg
ICAgeworICAgICAgICAgICAgT3B0aW9uYWw8TWVkaWFEZXNjcmlwdGlvbkluZm8+IG1lZGlhRGVz
Y3JpcHRpb247CisgICAgICAgICAgICBkZWNvZGVyID4+IG1lZGlhRGVzY3JpcHRpb247CisgICAg
ICAgICAgICBpZiAoIW1lZGlhRGVzY3JpcHRpb24pCisgICAgICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICAgICAgT3B0aW9uYWw8VHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllcj4gaWRlbnRpZmllcjsKKyAgICAgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsK
KyAgICAgICAgICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgICAgICBXVEZN
b3ZlKCptZWRpYURlc2NyaXB0aW9uKSwKKyAgICAgICAgICAgICAgICBXVEZNb3ZlKCppZGVudGlm
aWVyKQorICAgICAgICAgICAgfX07CisgICAgICAgIH0KKyAgICB9OworCisgICAgVmVjdG9yPFRy
YWNrSW5mb3JtYXRpb24+IGF1ZGlvVHJhY2tzOworICAgIFZlY3RvcjxUcmFja0luZm9ybWF0aW9u
PiB2aWRlb1RyYWNrczsKKyAgICBWZWN0b3I8VHJhY2tJbmZvcm1hdGlvbj4gdGV4dFRyYWNrczsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgZHVyYXRpb247CisgICAg
ICAgIGVuY29kZXIgPDwgYXVkaW9UcmFja3M7CisgICAgICAgIGVuY29kZXIgPDwgdmlkZW9UcmFj
a3M7CisgICAgICAgIGVuY29kZXIgPDwgdGV4dFRyYWNrczsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8SW5pdGlhbGl6YXRpb25TZWdt
ZW50SW5mbz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBPcHRpb25h
bDxNZWRpYVRpbWU+IGR1cmF0aW9uOworICAgICAgICBkZWNvZGVyID4+IGR1cmF0aW9uOworICAg
ICAgICBpZiAoIWR1cmF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgICAgICBPcHRpb25hbDxWZWN0b3I8VHJhY2tJbmZvcm1hdGlvbj4+IGF1ZGlvVHJhY2tzOwor
ICAgICAgICBkZWNvZGVyID4+IGF1ZGlvVHJhY2tzOworICAgICAgICBpZiAoIWF1ZGlvVHJhY2tz
KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxW
ZWN0b3I8VHJhY2tJbmZvcm1hdGlvbj4+IHZpZGVvVHJhY2tzOworICAgICAgICBkZWNvZGVyID4+
IHZpZGVvVHJhY2tzOworICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxWZWN0b3I8VHJhY2tJbmZvcm1h
dGlvbj4+IHRleHRUcmFja3M7CisgICAgICAgIGRlY29kZXIgPj4gdGV4dFRyYWNrczsKKyAgICAg
ICAgaWYgKCF0ZXh0VHJhY2tzKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgIFdURk1vdmUoKmR1cmF0aW9uKSwKKyAgICAg
ICAgICAgIFdURk1vdmUoKmF1ZGlvVHJhY2tzKSwKKyAgICAgICAgICAgIFdURk1vdmUoKnZpZGVv
VHJhY2tzKSwKKyAgICAgICAgICAgIFdURk1vdmUoKnRleHRUcmFja3MpCisgICAgICAgIH19Owor
ICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAppbmRleCBh
MmFjZjA1ZDQxNGUxNzVjN2QxMmFjNTM1OThkODM5ZjYzNjEyYWNhLi45M2UyZjI3ZDgyZThmOTI0
Zjc4NWM1MGE2NTA1MDVhZGI2YTM2NzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtMjksNyArMjks
MTAgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Ry
YWNrUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIK
ICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAKQEAgLTM3LDE0
ICs0MCwyMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLVJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVkaW9UcmFja1Byb3h5KFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIEF1ZGlvVHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUpCi0gICAgOiBtX3BsYXllcihwbGF5ZXIpCitSZW1vdGVBdWRpb1Ry
YWNrUHJveHk6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlhUGxheWVySWRl
bnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQotICAgICwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQog
ICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQorICAgICwgbV9tZWRpYVBsYXllcklk
ZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewogICAgIG1fdHJhY2tQcml2YXRlLT5z
ZXRDbGllbnQodGhpcyk7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVBdWRpb1RyYWNrKG1faWRlbnRp
ZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6QWRkUmVtb3RlQXVkaW9UcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSks
IG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKK30KKworUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp+
UmVtb3RlQXVkaW9UcmFja1Byb3h5KCkKK3sKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZVJlY2VpdmVyTWFwKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb1RyYWNrUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRv
VUludDY0KCkpOwogfQogCiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVB
dWRpb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQpAQCAtNjQsMTIgKzczLDEyIEBAIFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmln
dXJhdGlvbigpCiAKIHZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hh
bmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5n
ZWQobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkp
OworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp3aWxsUmVtb3ZlKCkK
IHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OlJlbW92ZVJlbW90ZUF1ZGlvVHJhY2sobV9pZGVudGlmaWVyKSwgbV9w
bGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9p
ZCBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmVuYWJsZWRDaGFuZ2VkKGJvb2wpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgK
aW5kZXggZDk2NjQzYzUzYjllM2I1NzJmYjE5ZmE1MzQ5MzdlYWJkYjQ2YmYxMy4uY2QzMTY5ODRm
NjNlZTkzNjhjMjZlNTdkNzc4MDBhOGUxODI4NTI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaApAQCAtMjgsMzQg
KzI4LDM5IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFja0Jhc2UuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlv
bjsKK2NsYXNzIERlY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247Ci1jbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5OwogCiBjbGFzcyBSZW1vdGVBdWRp
b1RyYWNrUHJveHkgZmluYWwKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1v
dGVBdWRpb1RyYWNrUHJveHksIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+Ci0gICAgLCBw
cml2YXRlIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IHsKKyAgICAsIHByaXZhdGUg
V2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVDbGllbnQKKyAgICAsIHByaXZhdGUgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9UcmFja1By
b3h5PiBjcmVhdGUoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcGxheWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbiwgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0
aWMgUmVmPFJlbW90ZUF1ZGlvVHJhY2tQcm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1lZGlhUGxheWVySWRlbnRpZmllcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvVHJhY2tQcm94eShw
bGF5ZXIsIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbiksIHRyYWNrUHJpdmF0ZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb1RyYWNrUHJveHkoY29ubmVj
dGlvblRvV2ViUHJvY2VzcywgaWRlbnRpZmllciwgdHJhY2tQcml2YXRlLCBtZWRpYVBsYXllcklk
ZW50aWZpZXIpKTsKICAgICB9CiAKLSAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH07CisgICAgdmlydHVhbCB+
UmVtb3RlQXVkaW9UcmFja1Byb3h5KCk7CiAKLSAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCBlbmFi
bGVkKSB7IG1fdHJhY2tQcml2YXRlLT5zZXRFbmFibGVkKGVuYWJsZWQpOyB9CisgICAgVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9OwogCiBwcml2YXRlOgotICAgIFJlbW90ZUF1ZGlvVHJhY2tQcm94eShSZW1vdGVN
ZWRpYVBsYXllclByb3h5JiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmKTsKKyAgICBSZW1vdGVB
dWRpb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJJZGVudGlmaWVyKTsKIAogICAgIC8vIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50CiAg
ICAgdm9pZCBlbmFibGVkQ2hhbmdlZChib29sKSBmaW5hbDsKQEAgLTY2LDEzICs3MSwxNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5h
bDsKICAgICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBz
ZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3RyYWNrUHJpdmF0ZS0+c2V0RW5hYmxlZChlbmFi
bGVkKTsgfQorCiAgICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbigpOwogICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIAotICAgIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkmIG1fcGxheWVyOworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKLSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dlYlByb2Nlc3ND
b25uZWN0aW9uOwogICAgIFJlZjxXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZT4gbV90cmFja1By
aXZhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1fbWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94
eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTA1NGY4M2JiMjgwNzY3NTI5YmQ4YjMyNWVmYTFm
ZjFlZGRlMzU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21l
c3NhZ2VzIC0+IFJlbW90ZUF1ZGlvVHJhY2tQcm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBTZXRF
bmFibGVkKGJvb2wgZW5hYmxlZCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFEZXNjcmlwdGlvbi5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhRGVzY3JpcHRpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jODc2Njg0Y2RhYzZkMGViOTM2OWU0ZmY5NWRkNTk3NjMwYTQ4ZjEyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhRGVzY3JpcHRp
b24uaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAi
RGVjb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
RGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9tU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTWVkaWFEZXNjcmlwdGlvbkluZm8geworICAgIEF0
b21TdHJpbmcgbV9jb2RlYzsKKyAgICBib29sIG1faXNWaWRlbyB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2lzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1RleHQgeyBmYWxzZSB9OworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBtX2NvZGVjOworICAgICAgICBl
bmNvZGVyIDw8IG1faXNWaWRlbzsKKyAgICAgICAgZW5jb2RlciA8PCBtX2lzQXVkaW87CisgICAg
ICAgIGVuY29kZXIgPDwgbV9pc1RleHQ7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERl
Y29kZXI+CisgICAgc3RhdGljIE9wdGlvbmFsPE1lZGlhRGVzY3JpcHRpb25JbmZvPiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gY29kZWM7
CisgICAgICAgIGRlY29kZXIgPj4gY29kZWM7CisgICAgICAgIGlmICghY29kZWMpCisgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzVmlk
ZW87CisgICAgICAgIGRlY29kZXIgPj4gaXNWaWRlbzsKKyAgICAgICAgaWYgKCFpc1ZpZGVvKQor
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxib29s
PiBpc0F1ZGlvOworICAgICAgICBkZWNvZGVyID4+IGlzQXVkaW87CisgICAgICAgIGlmICghaXNB
dWRpbykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9u
YWw8Ym9vbD4gaXNUZXh0OworICAgICAgICBkZWNvZGVyID4+IGlzVGV4dDsKKyAgICAgICAgaWYg
KCFpc1RleHQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJl
dHVybiB7eworICAgICAgICAgICAgV1RGTW92ZSgqY29kZWMpLAorICAgICAgICAgICAgKmlzVmlk
ZW8sCisgICAgICAgICAgICAqaXNBdWRpbywKKyAgICAgICAgICAgICppc1RleHQKKyAgICAgICAg
fX07CisgICAgfQorfTsKKworY2xhc3MgUmVtb3RlTWVkaWFEZXNjcmlwdGlvbiA6IHB1YmxpYyBX
ZWJDb3JlOjpNZWRpYURlc2NyaXB0aW9uIHsKK3B1YmxpYzoKKyAgICBSZW1vdGVNZWRpYURlc2Ny
aXB0aW9uKGNvbnN0IE1lZGlhRGVzY3JpcHRpb25JbmZvJiBkZXNjcmlwdGlvbkluZm8pCisgICAg
ICAgIDogbV9jb2RlYyhkZXNjcmlwdGlvbkluZm8ubV9jb2RlYykKKyAgICAgICAgLCBtX2lzVmlk
ZW8oZGVzY3JpcHRpb25JbmZvLm1faXNWaWRlbykKKyAgICAgICAgLCBtX2lzQXVkaW8oZGVzY3Jp
cHRpb25JbmZvLm1faXNBdWRpbykKKyAgICAgICAgLCBtX2lzVGV4dChkZXNjcmlwdGlvbkluZm8u
bV9pc1RleHQpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZU1lZGlhRGVzY3Jp
cHRpb24oKSA9IGRlZmF1bHQ7CisKKyAgICBBdG9tU3RyaW5nIGNvZGVjKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9jb2RlYzsgfQorICAgIGJvb2wgaXNWaWRlbygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1faXNWaWRlbzsgfQorICAgIGJvb2wgaXNBdWRpbygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1faXNBdWRpbzsgfQorICAgIGJvb2wgaXNUZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9p
c1RleHQ7fQorCitwcml2YXRlOgorICAgIEF0b21TdHJpbmcgbV9jb2RlYzsKKyAgICBib29sIG1f
aXNWaWRlbyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzQXVkaW8geyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc1RleHQgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKaW5kZXggNWFiMWI2ZmE2N2YxZmYxMTE3M2M4N2U5NzU4ZmViOTc5YzI4YjMz
Yi4uNTU3MjFiZWUxYTM0NmI5Y2ZlYTlhYTg3MDFmODllMjRlMzhmN2YwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcApAQCAtNDUsNiArNDUsOCBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlVGV4dFRyYWNrUHJveHkuaCIKICNpbmNsdWRlICJS
ZW1vdGVWaWRlb1RyYWNrUHJveHkuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0xheW91dFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CkBAIC0x
MzQsNyArMTM2LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpsb2FkKFVSTCYmIHVy
bCwgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpsb2FkTWVkaWFTb3VyY2UoVVJM
JiYgdXJsLCBjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYgY29udGVudFR5cGUsIFJlbW90ZU1l
ZGlhU291cmNlSWRlbnRpZmllciBtZWRpYVNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9tZWRp
YVNvdXJjZVByb3h5ID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVNvdXJjZVByb3h5KG1lZGlh
U291cmNlSWRlbnRpZmllciwgbV9tYW5hZ2VyLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSkp
OworICAgIG1fbWVkaWFTb3VyY2VQcm94eSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eShtX21hbmFnZXIuZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpLCBtZWRpYVNvdXJj
ZUlkZW50aWZpZXIsICp0aGlzKSk7CiAgICAgbV9wbGF5ZXItPmxvYWQodXJsLCBjb250ZW50VHlw
ZSwgbV9tZWRpYVNvdXJjZVByb3h5LmdldCgpKTsKIH0KICNlbmRpZgpAQCAtNDU3LDY5ICs0NTks
NzUgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclJlbmRlcmluZ0Nh
bkJlQWNjZWxlcmF0ZWQoKQogICAgIHJldHVybiBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQ7
CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRp
b1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjaykKK1RyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6YWRkUmVtb3RlQXVkaW9UcmFj
a1Byb3h5KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjaykKIHsKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICB0cmFjay5zZXRMb2dnZXIobWVkaWFQbGF5ZXJMb2dnZXIoKSwg
bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpOwogI2VuZGlmCi0gICAgbV9hdWRpb1RyYWNrcy5z
ZXQoJnRyYWNrLCBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNyZWF0ZSgqdGhpcywgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi5j
b3B5UmVmKCksIHRyYWNrKSk7Ci19CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVk
aWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiB0
cmFjaykKLXsKLSAgICBBU1NFUlQobV9hdWRpb1RyYWNrcy5jb250YWlucygmdHJhY2spKTsKLSAg
ICBtX2F1ZGlvVHJhY2tzLnJlbW92ZSgmdHJhY2spOworICAgIGF1dG8gaWRlbnRpZmllciA9IFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgbV9hdWRpb1RyYWNr
cy5zZXQoJnRyYWNrLCBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNyZWF0ZShtX21hbmFnZXIuZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpLCBpZGVudGlmaWVyLCB0cmFjaywgbV9pZCkpOworICAg
IHJldHVybiBpZGVudGlmaWVyOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmF1
ZGlvVHJhY2tTZXRFbmFibGVkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwg
Ym9vbCBlbmFibGVkKQorVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjphZGRSZW1vdGVWaWRlb1RyYWNrUHJveHkoV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGUmIHRyYWNrKQogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX2F1ZGlvVHJhY2tzLnZh
bHVlcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+aWRlbnRpZmllcigpID09IHRyYWNrSUQpIHsK
LSAgICAgICAgICAgIHRyYWNrLT5zZXRFbmFibGVkKGVuYWJsZWQpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgfQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIHRy
YWNrLnNldExvZ2dlcihtZWRpYVBsYXllckxvZ2dlcigpLCBtZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIoKSk7CisjZW5kaWYKIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGF1dG8gaWRl
bnRpZmllciA9IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAg
bV92aWRlb1RyYWNrcy5zZXQoJnRyYWNrLCBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNyZWF0ZSht
X21hbmFnZXIuZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpLCBpZGVudGlmaWVyLCB0cmFjaywg
bV9pZCkpOworICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2spCitUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmFkZFJlbW90ZVRleHRUcmFja1Byb3h5KFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGUmIHRyYWNrKQogewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHRy
YWNrLnNldExvZ2dlcihtZWRpYVBsYXllckxvZ2dlcigpLCBtZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIoKSk7CiAjZW5kaWYKLSAgICBtX3ZpZGVvVHJhY2tzLnNldCgmdHJhY2ssIFJlbW90ZVZpZGVv
VHJhY2tQcm94eTo6Y3JlYXRlKCp0aGlzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLmNvcHlSZWYoKSwgdHJhY2spKTsKKwor
ICAgIGF1dG8gaWRlbnRpZmllciA9IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVy
YXRlKCk7CisgICAgbV90ZXh0VHJhY2tzLnNldCgmdHJhY2ssIFJlbW90ZVRleHRUcmFja1Byb3h5
OjpjcmVhdGUobV9tYW5hZ2VyLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSwgaWRlbnRpZmll
ciwgdHJhY2ssIG1faWQpKTsKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KIAotdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soV2ViQ29y
ZTo6VmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUm
IHRyYWNrKQogewotICAgIEFTU0VSVChtX3ZpZGVvVHJhY2tzLmNvbnRhaW5zKCZ0cmFjaykpOwot
ICAgIG1fdmlkZW9UcmFja3MucmVtb3ZlKCZ0cmFjayk7CisgICAgYWRkUmVtb3RlQXVkaW9UcmFj
a1Byb3h5KHRyYWNrKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb1Ry
YWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBib29s
IHNlbGVjdGVkKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJl
bW92ZUF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrKQogewotICAg
IGZvciAoYXV0byYgdHJhY2sgOiBtX3ZpZGVvVHJhY2tzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlm
ICh0cmFjay0+aWRlbnRpZmllcigpID09IHRyYWNrSUQpIHsKLSAgICAgICAgICAgIHRyYWNrLT5z
ZXRTZWxlY3RlZChzZWxlY3RlZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgQVNTRVJUKG1fYXVkaW9UcmFja3MuY29udGFpbnMoJnRyYWNrKSk7CisgICAgYXV0
byBhdWRpb1RyYWNrID0gbV9hdWRpb1RyYWNrcy5nZXQoJnRyYWNrKTsKKyAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJl
bW92ZVJlbW90ZUF1ZGlvVHJhY2soYXVkaW9UcmFjay0+aWRlbnRpZmllcigpKSwgbV9pZCk7Cisg
ICAgbV9hdWRpb1RyYWNrcy5yZW1vdmUoJnRyYWNrKTsKK30KIAotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZEFkZFZp
ZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIGFkZFJl
bW90ZVZpZGVvVHJhY2tQcm94eSh0cmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQ
cml2YXRlJiB0cmFjaykKK3sKKyAgICBBU1NFUlQobV92aWRlb1RyYWNrcy5jb250YWlucygmdHJh
Y2spKTsKKyAgICBhdXRvIHZpZGVvVHJhY2sgPSBtX3ZpZGVvVHJhY2tzLmdldCgmdHJhY2spOwor
ICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6UmVtb3ZlUmVtb3RlVmlkZW9UcmFjayh2aWRlb1RyYWNrLT5pZGVudGlmaWVy
KCkpLCBtX2lkKTsKKyAgICBtX3ZpZGVvVHJhY2tzLnJlbW92ZSgmdHJhY2spOwogfQogCiB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKFdlYkNv
cmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewotI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAotICAgIHRyYWNrLnNldExvZ2dlcihtZWRpYVBsYXllckxvZ2dlcigpLCBtZWRpYVBs
YXllckxvZ0lkZW50aWZpZXIoKSk7Ci0jZW5kaWYKLSAgICBtX3RleHRUcmFja3Muc2V0KCZ0cmFj
aywgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmNyZWF0ZSgqdGhpcywgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi5jb3B5UmVmKCks
IHRyYWNrKSk7CisgICAgYWRkUmVtb3RlVGV4dFRyYWNrUHJveHkodHJhY2spOwogfQogCiB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRyYWNrKFdl
YkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewogICAgIEFTU0VSVChtX3Rl
eHRUcmFja3MuY29udGFpbnMoJnRyYWNrKSk7CisgICAgYXV0byB0ZXh0VHJhY2sgPSBtX3RleHRU
cmFja3MuZ2V0KCZ0cmFjayk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVSZW1vdGVUZXh0VHJhY2sodGV4
dFRyYWNrLT5pZGVudGlmaWVyKCkpLCBtX2lkKTsKICAgICBtX3RleHRUcmFja3MucmVtb3ZlKCZ0
cmFjayk7CiB9CiAKQEAgLTUyOCwxOCArNTM2LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Ojp0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVjdCYK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OnRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCi17Ci0gICAgZm9yIChh
dXRvJiB0cmFjayA6IG1fdGV4dFRyYWNrcy52YWx1ZXMoKSkgewotICAgICAgICBpZiAodHJhY2st
PmlkZW50aWZpZXIoKSA9PSB0cmFja0lEKSB7Ci0gICAgICAgICAgICB0cmFjay0+c2V0TW9kZSht
b2RlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlh
UGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQoKQogewogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVzb3VyY2VOb3RT
dXBwb3J0ZWQoKSwgbV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAyMmUyYzgwNzQ4ZjlkOGU3NDZj
YzkzNGRhYzQxNzIzNDRkMjFhOTE3Li5iODI0NzcxM2FkYWYxYzQ1M2VhNGM2NTgxZGFkNDNiYjFl
MGMyMDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTc0LDggKzc0LDggQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVpbnQzMl90OwogY2xhc3MgTGF5
ZXJIb3N0aW5nQ29udGV4dDsKLWNsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTsK
IGNsYXNzIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTsKK2NsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3Mg
UmVtb3RlVGV4dFRyYWNrUHJveHk7CiBjbGFzcyBSZW1vdGVWaWRlb1RyYWNrUHJveHk7CkBAIC0x
NDMsMTAgKzE0Myw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZERpc2FibGVTbGVlcChi
b29sKTsKICAgICB2b2lkIHNldFJhdGUoZG91YmxlKTsKIAotICAgIHZvaWQgYXVkaW9UcmFja1Nl
dEVuYWJsZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7Ci0gICAgdm9pZCB2
aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7
Ci0gICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUpOwotCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwogI2VuZGlmCkBAIC0xOTQsNiAr
MTkwLDEwIEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVBsYXllcj4gbWVk
aWFQbGF5ZXIoKSB7IHJldHVybiBtX3BsYXllcjsgfQogCisgICAgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBhZGRSZW1vdGVBdWRpb1RyYWNrUHJveHkoV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGUmKTsKKyAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGFkZFJlbW90ZVZpZGVv
VHJhY2tQcm94eShXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpOworICAgIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgYWRkUmVtb3RlVGV4dFRyYWNrUHJveHkoV2ViQ29yZTo6SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSYpOworCiBwcml2YXRlOgogICAgIC8vIE1lZGlhUGxheWVyQ2xpZW50
CiAgICAgdm9pZCBtZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKSBmaW5hbDsKQEAgLTIx
Myw2ICsyMTMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRp
b1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBtZWRp
YVBsYXllckRpZEFkZFZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmKSBmaW5h
bDsKICAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRl
b1RyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJh
Y2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVk
aWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSYpIGZpbmFsOwogCiAgICAgLy8gTm90IGltcGxlbWVudGVkCiAgICAgdm9pZCBtZWRpYVBsYXll
clJlc291cmNlTm90U3VwcG9ydGVkKCkgZmluYWw7CkBAIC0yNDksOSArMjUxLDYgQEAgcHJpdmF0
ZToKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3Qg
ZmluYWw7CiAgICAgY29uc3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJlY3Rvcnko
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soV2Vi
Q29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5
ZXJEaWRSZW1vdmVUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZp
bmFsOwotCiAgICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZTNmZGExMGVmMmRiYzMwYjhk
YzMxOTJlNDA0YTJmMThmNzQ4MGI0Yy4uMDhlYTE1Y2M2NmIyZWE5ZDA3MGRhNmJiNzFmODhiNzQ1
MWNmMDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTY1LDEwICs2
NSw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7
CiAKICAgICBTZXRCdWZmZXJpbmdQb2xpY3koV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OkJ1ZmZlcmlu
Z1BvbGljeSBwb2xpY3kpCiAKLSAgICBBdWRpb1RyYWNrU2V0RW5hYmxlZChXZWJLaXQ6OlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQotICAgIFZpZGVv
VHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgYm9vbCBlbmFibGVkKQotICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpJbmJh
bmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCi0KICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBNYWNoU2Vu
ZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCBmNDIw
ZmQ3Njg5MTc5MGQ2ZTdhZmM5NTIyNzIwNjE0YmY4MjZlOWNhLi5hZjdiZTUxMmVhYzJkMWFlNjU0
YWUwOWNiNTJkOTRiMzliMmM2MDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwCkBAIC0zOSw5ICszOSwx
MCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJl
bW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNlUHJveHkoUmVtb3RlTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAg
ICAsIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorUmVt
b3RlTWVkaWFTb3VyY2VQcm94eTo6UmVtb3RlTWVkaWFTb3VyY2VQcm94eShHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSkKKyAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3JlbW90
ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkpCiB7
CiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgKnRoaXMpOwogfQpAQCAtOTMs
MTMgKzk0LDE2IEBAIHZvaWQgUmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6ZmFpbGVkVG9DcmVhdGVS
ZW5kZXJlcihSZW5kZXJlclR5cGUpCiAKIHZvaWQgUmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6YWRk
U291cmNlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgQWRk
U291cmNlQnVmZmVyQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKKyAgICBpZiAoIW1fcmVtb3RlTWVk
aWFQbGF5ZXJQcm94eSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZl
clByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGU7CiAgICAgTWVkaWFTb3VyY2VQcml2YXRlOjpB
ZGRTdGF0dXMgc3RhdHVzID0gbV9wcml2YXRlLT5hZGRTb3VyY2VCdWZmZXIoY29udGVudFR5cGUs
IHNvdXJjZUJ1ZmZlclByaXZhdGUpOwogCiAgICAgT3B0aW9uYWw8UmVtb3RlU291cmNlQnVmZmVy
SWRlbnRpZmllcj4gcmVtb3RlU291cmNlSWRlbnRpZmllcjsKICAgICBpZiAoc3RhdHVzID09IE1l
ZGlhU291cmNlUHJpdmF0ZTo6QWRkU3RhdHVzOjpPaykgewogICAgICAgICBhdXRvIGlkZW50aWZp
ZXIgPSBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgICAgICBh
dXRvIHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5ID0gUmVtb3RlU291cmNlQnVmZmVyUHJveHk6OmNy
ZWF0ZShpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIHNvdXJjZUJ1ZmZlclBy
aXZhdGUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGF1dG8gcmVtb3RlU291cmNlQnVmZmVy
UHJveHkgPSBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6Y3JlYXRlKG1fY29ubmVjdGlvblRvV2Vi
UHJvY2VzcywgaWRlbnRpZmllciwgc291cmNlQnVmZmVyUHJpdmF0ZS5yZWxlYXNlTm9uTnVsbCgp
LCAqbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KTsKICAgICAgICAgbV9zb3VyY2VCdWZmZXJzLmFw
cGVuZChXVEZNb3ZlKHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KSk7CiAgICAgICAgIHJlbW90ZVNv
dXJjZUlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5oCmluZGV4IDZi
ZmJmYWZiMjA0NDc4MzBkNzMwYzM4YzU1ZDkxNjAyMmMyM2QzMTYuLjU5NjhjN2JiZDE4OWNkNDc5
ZWY0YWVhYjRkNDQ5OTUzM2ZkM2Q2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Lmg+CiAjaW5jbHVk
ZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlvbjsKQEAg
LTUwLDEzICs1MSwxNCBAQCBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7CiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk7CiAKIGNsYXNzIFJlbW90ZU1lZGlhU291cmNlUHJveHkgZmluYWwKICAg
ICA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQKICAgICAsIHByaXZh
dGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIFJlbW90ZU1lZGlhU291cmNlUHJveHkoUmVtb3RlTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgUmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlTWVk
aWFTb3VyY2VQcm94eSgpOwogCiAgICAgLy8gTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50IG92ZXJy
aWRlcwpAQCAtODAsOSArODIsMTEgQEAgcHJpdmF0ZToKICAgICB1c2luZyBBZGRTb3VyY2VCdWZm
ZXJDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFTb3VyY2VQ
cml2YXRlOjpBZGRTdGF0dXMsIE9wdGlvbmFsPFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXI+
IHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpPjsKICAgICB2b2lkIGFkZFNvdXJjZUJ1ZmZl
cihjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIEFkZFNvdXJjZUJ1ZmZlckNhbGxiYWNrJiYp
OwogCi0gICAgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAg
UmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWZQdHI8V2Vi
Q29yZTo6TWVkaWFTb3VyY2VQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgV2Vha1B0cjxSZW1vdGVN
ZWRpYVBsYXllclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7CisKICAgICBWZWN0b3I8
UmVmUHRyPFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Pj4gbV9zb3VyY2VCdWZmZXJzOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eS5jcHAKaW5kZXggMjQ1Y2Y0MGRmYzZmYzcyNDE3NDk5Yzk5NmVlYTk1ZjBh
M2E4ZDY5YS4uNTZlODc5NWJhZDc1ZTZlMjBiM2Y5YTU2MGE4ZmVmZDY4MmVjMDY3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNl
QnVmZmVyUHJveHkuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkluaXRpYWxpemF0aW9u
U2VnbWVudEluZm8uaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCiAjaW5j
bHVkZSAiUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KQEAgLTM4LDE2ICs0MCwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZW1vdGVTb3VyY2VCdWZmZXJQcm94eT4gUmVt
b3RlU291cmNlQnVmZmVyUHJveHk6OmNyZWF0ZShSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZhdGUpCitS
ZWY8UmVtb3RlU291cmNlQnVmZmVyUHJveHk+IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpjcmVh
dGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgUmVt
b3RlU291cmNlQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8U291cmNlQnVmZmVyUHJp
dmF0ZT4mJiBzb3VyY2VCdWZmZXJQcml2YXRlLCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1v
dGVNZWRpYVBsYXllclByb3h5KQogewotICAgIGF1dG8gcmVtb3RlU291cmNlQnVmZmVyUHJveHkg
PSBhZG9wdFJlZigqbmV3IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KGlkZW50aWZpZXIsIGNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MsIFdURk1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZSkpKTsKKyAgICBh
dXRvIHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5ID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVTb3VyY2VC
dWZmZXJQcm94eShjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCBXVEZNb3ZlKHNv
dXJjZUJ1ZmZlclByaXZhdGUpLCByZW1vdGVNZWRpYVBsYXllclByb3h5KSk7CiAgICAgcmV0dXJu
IHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OwogfQogCi1SZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6
UmVtb3RlU291cmNlQnVmZmVyUHJveHkoUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4mJiBzb3VyY2VCdWZmZXJQcml2YXRlKQotICAgIDog
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
Y29ubmVjdGlvblRvV2ViUHJvY2VzcykKK1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpSZW1vdGVT
b3VyY2VCdWZmZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxT
b3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZhdGUsIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQogICAgICwgbV9zb3VyY2VCdWZmZXJQcml2YXRlKFdURk1vdmUoc291cmNlQnVmZmVy
UHJpdmF0ZSkpCisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVt
b3RlTWVkaWFQbGF5ZXJQcm94eSkpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU291
cmNlQnVmZmVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUlu
dDY0KCksICp0aGlzKTsKICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPnNldENsaWVudCh0aGlz
KTsKQEAgLTU4LDkgKzYxLDMyIEBAIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Ojp+UmVtb3RlU291
cmNlQnVmZmVyUHJveHkoKQogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKIH0KIAotdm9pZCBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdt
ZW50JikKK3ZvaWQgUmVtb3RlU291cmNlQnVmZmVyUHJveHk6OnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVu
dCYgc2VnbWVudCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICghbV9yZW1vdGVN
ZWRpYVBsYXllclByb3h5KQorICAgICAgICByZXR1cm47CisKKyAgICBJbml0aWFsaXphdGlvblNl
Z21lbnRJbmZvIHNlZ21lbnRJbmZvOworICAgIHNlZ21lbnRJbmZvLmR1cmF0aW9uID0gc2VnbWVu
dC5kdXJhdGlvbjsKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRp
b1RyYWNrcykgeworICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBtX3JlbW90ZU1lZGlhUGxheWVy
UHJveHktPmFkZFJlbW90ZUF1ZGlvVHJhY2tQcm94eSgqYXVkaW9UcmFja0luZm8udHJhY2spOwor
ICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gYXVkaW9UcmFja0luZm8uZGVzY3JpcHRpb247Cisg
ICAgICAgIHNlZ21lbnRJbmZvLmF1ZGlvVHJhY2tzLmFwcGVuZCh7IHsgZGVzY3JpcHRpb24tPmNv
ZGVjKCksIGRlc2NyaXB0aW9uLT5pc1ZpZGVvKCksIGRlc2NyaXB0aW9uLT5pc0F1ZGlvKCksIGRl
c2NyaXB0aW9uLT5pc1RleHQoKSB9LCBpZGVudGlmaWVyIH0pOworICAgIH0KKworICAgIGZvciAo
YXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7CisgICAgICAgIGF1
dG8gaWRlbnRpZmllciA9IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eS0+YWRkUmVtb3RlVmlkZW9U
cmFja1Byb3h5KCp2aWRlb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgIGF1dG8gZGVzY3JpcHRp
b24gPSB2aWRlb1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKKyAgICAgICAgc2VnbWVudEluZm8udmlk
ZW9UcmFja3MuYXBwZW5kKHsgeyBkZXNjcmlwdGlvbi0+Y29kZWMoKSwgZGVzY3JpcHRpb24tPmlz
VmlkZW8oKSwgZGVzY3JpcHRpb24tPmlzQXVkaW8oKSwgZGVzY3JpcHRpb24tPmlzVGV4dCgpIH0s
IGlkZW50aWZpZXIgfSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2tJbmZvIDog
c2VnbWVudC50ZXh0VHJhY2tzKSB7CisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IG1fcmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS0+YWRkUmVtb3RlVGV4dFRyYWNrUHJveHkoKnRleHRUcmFja0luZm8u
dHJhY2spOworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gdGV4dFRyYWNrSW5mby5kZXNjcmlw
dGlvbjsKKyAgICAgICAgc2VnbWVudEluZm8udGV4dFRyYWNrcy5hcHBlbmQoeyB7IGRlc2NyaXB0
aW9uLT5jb2RlYygpLCBkZXNjcmlwdGlvbi0+aXNWaWRlbygpLCBkZXNjcmlwdGlvbi0+aXNBdWRp
bygpLCBkZXNjcmlwdGlvbi0+aXNUZXh0KCkgfSwgaWRlbnRpZmllciB9KTsKKyAgICB9CisKKyAg
ICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OlNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5p
dGlhbGl6YXRpb25TZWdtZW50KHNlZ21lbnRJbmZvKSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9p
ZCBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVT
YW1wbGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaAppbmRleCAzOTBjMGNl
MWMyN2I2MDhkYzk3YWFmYTUxODYzNjE4ODBjM2FmNGQzLi42YjhiZjhiNTdjYzBjOGQ5ZDU0MTFl
OTY1MjFiNDVhOTRhOGUzYjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaApAQCAtNDcsMTMgKzQ3LDE1IEBA
IGNsYXNzIE1lZGlhU2FtcGxlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTsKKwogY2xhc3MgUmVtb3RlU291cmNlQnVmZmVyUHJveHkgZmluYWwK
ICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5PgogICAgICwg
cHVibGljIFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQKICAgICAsIHByaXZhdGUg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlU291cmNlQnVmZmVyUHJveHk+IGNyZWF0ZShSZW1v
dGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVm
PFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGU+JiYpOworICAgIHN0YXRpYyBSZWY8UmVtb3Rl
U291cmNlQnVmZmVyUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVt
b3RlU291cmNlQnVmZmVySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZh
dGU+JiYsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eSgpOwogCiAgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2
ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5h
bDsKQEAgLTcwLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihpbnQgZXJyb3JDb2RlKSBmaW5hbDsKIAogcHJpdmF0
ZToKLSAgICBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eShSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVmPFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clByaXZhdGU+JiYpOworICAgIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZT4mJiwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYpOwogCiAgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwpAQCAtNzgsOSArODAsMTAgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgYXBwZW5kKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCi0g
ICAgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIFJlbW90
ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZjxXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQcml2YXRlPiBtX3NvdXJjZUJ1ZmZlclByaXZhdGU7CisgICAgV2Vha1B0cjxS
ZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCmluZGV4IGJlY2RjMjJjMzA5MmExMGJi
ZDg3MTgyNGEwMmIzYWMxNDZmNzIwMTcuLjY3NDQ4ZTlhNzQ4ZjE4YWRhNDUyNTkwOWJhMmNkMzE0
MGIyMjUxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAtMjksOSArMjksMTIgQEAKIAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEYXRh
UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHRUcmFja1Byb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5o
IgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
SVNPVlRUQ3VlLmg+CkBAIC00MSwxNCArNDQsMjAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4
dFRyYWNrUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcGxheWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQotICAgIDogbV9wbGF5
ZXIocGxheWVyKQorUmVtb3RlVGV4dFRyYWNrUHJveHk6OlJlbW90ZVRleHRUcmFja1Byb3h5KEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlLCBNZWRpYVBsYXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVy
KQorICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mp
CiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJp
dmF0ZSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmll
cikKIHsKICAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwotICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
QWRkUmVtb3RlVGV4dFRyYWNrKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9wbGF5
ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZVJl
Y2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVUZXh0VHJhY2tQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgKnRo
aXMpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVUZXh0VHJhY2sobV9pZGVu
dGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7Cit9CisK
K1JlbW90ZVRleHRUcmFja1Byb3h5Ojp+UmVtb3RlVGV4dFRyYWNrUHJveHkoKQoreworICAgIG1f
Y29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVRleHRUcmFja1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZVRleHRUcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkK
QEAgLTc2LDEyICs4NSwxMiBAQCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYg
UmVtb3RlVGV4dFRyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQogCiB2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdGVU
ZXh0VHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24o
KSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJl
bW90ZVRleHRUcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJh
dGlvbigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5Ojp3aWxsUmVtb3ZlKCkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJlbW92ZVJlbW90ZVRleHRU
cmFjayhtX2lkZW50aWZpZXIpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjppZENoYW5nZWQo
Y29uc3QgQXRvbVN0cmluZyYpCkBAIC0xMDEsNTQgKzExMCw1NCBAQCB2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5OjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpCiAKIHZvaWQgUmVt
b3RlVGV4dFRyYWNrUHJveHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsK
LSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OkFkZERhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBJUEM6OkRh
dGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0
aCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpB
ZGREYXRhQ3VlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBsZW5ndGgpKSwgbV9tZWRpYVBs
YXllcklkZW50aWZpZXIpOwogfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCiB2b2lkIFJl
bW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiBjdWVE
YXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGREYXRhQ3VlV2l0aFR5
cGUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLT5lbmNvZGFibGVWYWx1ZSgpLCB0
eXBlKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
QWRkRGF0YUN1ZVdpdGhUeXBlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0YS0+ZW5j
b2RhYmxlVmFsdWUoKSwgdHlwZSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogdm9p
ZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3Vl
RGF0YSkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OlVwZGF0ZURhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwg
ZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwor
ICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpVcGRhdGVEYXRhQ3VlKG1faWRlbnRpZmllciwgc3Rh
cnQsIGVuZCwgY3VlRGF0YS5lbmNvZGFibGVWYWx1ZSgpKSwgbV9tZWRpYVBsYXllcklkZW50aWZp
ZXIpOwogfQogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNvbnN0
IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlJiBjdWVEYXRhKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3ZlRGF0YUN1ZShtX2lkZW50
aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlk
ZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJlbW92ZURhdGFDdWUobV9p
ZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkpLCBtX21lZGlh
UGxheWVySWRlbnRpZmllcik7CiB9CiAjZW5kaWYKIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94
eTo6YWRkR2VuZXJpY0N1ZShJbmJhbmRHZW5lcmljQ3VlJiBjdWUpCiB7Ci0gICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpB
ZGRHZW5lcmljQ3VlKG1faWRlbnRpZmllciwgY3VlLmN1ZURhdGEoKSksIG1fcGxheWVyLmlkZW5k
aWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZEdlbmVyaWNDdWUobV9pZGVu
dGlmaWVyLCBjdWUuY3VlRGF0YSgpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2
b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5Ojp1cGRhdGVHZW5lcmljQ3VlKEluYmFuZEdlbmVyaWND
dWUmIGN1ZSkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlVwZGF0ZUdlbmVyaWNDdWUobV9pZGVudGlmaWVyLCBj
dWUuY3VlRGF0YSgpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6VXBkYXRlR2VuZXJpY0N1ZShtX2lkZW50aWZpZXIsIGN1ZS5jdWVEYXRhKCkpLCBt
X21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6
OnJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kR2VuZXJpY0N1ZSYgY3VlKQogewotICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
UmVtb3ZlR2VuZXJpY0N1ZShtX2lkZW50aWZpZXIsIGN1ZS5jdWVEYXRhKCkpLCBtX3BsYXllci5p
ZGVuZGlmaWVyKCkpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVHZW5lcmljQ3Vl
KG1faWRlbnRpZmllciwgY3VlLmN1ZURhdGEoKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsK
IH0KIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0
cmluZyYmIGhlYWRlcikKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlBhcnNlV2ViVlRURmlsZUhlYWRlcihtX2lk
ZW50aWZpZXIsIGhlYWRlciksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OlBhcnNlV2ViVlRURmlsZUhlYWRlcihtX2lkZW50aWZpZXIsIGhlYWRlciks
IG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94
eTo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkK
IHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OlBhcnNlV2ViVlRUQ3VlRGF0YShtX2lkZW50aWZpZXIsIElQQzo6RGF0
YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3Ro
KSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlBh
cnNlV2ViVlRUQ3VlRGF0YShtX2lkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIG1fbWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cGFyc2VXZWJWVFRD
dWVEYXRhKElTT1dlYlZUVEN1ZSYmIGN1ZURhdGEpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpQYXJzZVdlYlZU
VEN1ZURhdGFTdHJ1Y3QobV9pZGVudGlmaWVyLCBjdWVEYXRhKSwgbV9wbGF5ZXIuaWRlbmRpZmll
cigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0
KG1faWRlbnRpZmllciwgY3VlRGF0YSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5oCmluZGV4IDExNWM4OWJmMDBhMWE4ZDMwM2U4
YzUxOWNmY2M1YTFlMDY3MTBmNGQuLmFmZGI3MzI1Yjc3NzQ3MmY0YThjYjkyNzQ4YzM3NzJkMzRl
Zjk2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVU
ZXh0VHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVUZXh0VHJhY2tQcm94eS5oCkBAIC0yOCwzNiArMjgsMzkgQEAKIAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0luYmFuZFRleHRU
cmFja1ByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhY2tCYXNlLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgog
CiBuYW1lc3BhY2UgSVBDIHsKLQogY2xhc3MgQ29ubmVjdGlvbjsKLQorY2xhc3MgRGVjb2RlcjsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHk7
CitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0IFRleHRUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVUZXh0VHJhY2tQcm94eSBmaW5h
bAogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZVRleHRUcmFja1Byb3h5
LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgotICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50IHsKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudAorICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdGVUZXh0VHJhY2tQcm94eT4gY3Jl
YXRlKFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdl
YkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0aWMg
UmVmPFJlbW90ZVRleHRUcmFja1Byb3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUs
IFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVUZXh0VHJhY2tQcm94eShw
bGF5ZXIsIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbiksIHRyYWNrUHJpdmF0ZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVUZXh0VHJhY2tQcm94eShjb25uZWN0
aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB0cmFja1ByaXZhdGUsIG1lZGlhUGxheWVySWRl
bnRpZmllcikpOwogICAgIH0KIAotICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVUZXh0VHJhY2tQcm94eSgpOwogCi0gICAgdm9pZCBzZXRNb2RlKFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUgbW9kZSkgeyBtX3RyYWNrUHJpdmF0ZS0+c2V0TW9kZSht
b2RlKTsgfQorICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVRleHRU
cmFja1Byb3h5KFJlbW90ZU1lZGlhUGxheWVyUHJveHkmLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJik7CisgICAgUmVtb3RlVGV4dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGUmLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIpOwogCiAgICAgLy8g
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lk
KiwgdW5zaWduZWQpOwpAQCAtODIsMTMgKzg1LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYW5n
dWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFJlbW92
ZSgpIGZpbmFsOwogCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIHNldE1vZGUoV2ViQ29yZTo6SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSBtb2RlKSB7IG1fdHJhY2tQcml2YXRlLT5zZXRNb2RlKG1v
ZGUpOyB9CisKICAgICBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgY29uZmln
dXJhdGlvbigpOwogICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIAotICAgIFJlbW90
ZU1lZGlhUGxheWVyUHJveHkmIG1fcGxheWVyOworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uOwogICAgIFJlZjxXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBt
X3RyYWNrUHJpdmF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgbV9tZWRp
YVBsYXllcklkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJh
Y2tQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWZjZTY3NTQzM2MyMmI3ZDU1ZTBhNzU0
Njk0MWUyZjlmZTNlYTNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbWVzc2FnZXMgLT4gUmVtb3RlVGV4dFRyYWNrUHJveHkgTm90UmVmQ291bnRlZCB7CisgICAg
U2V0TW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9k
ZSBtb2RlKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKaW5kZXggNWM0NmVlY2FhMTU5ZjBm
M2I3NDkwM2YyZjY3MDIyOTRlZjJkODI1ZC4uMzUwZjhlYTczMDdiZDIzN2FhODNmNmNjOTQ1YjU2
MTBkZjZmMWM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKQEAgLTI5LDIyICsyOSwzMSBAQAogCiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIK
KyNpbmNsdWRlICJSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90
ZVZpZGVvVHJhY2tQcm94eShSZW1vdGVNZWRpYVBsYXllclByb3h5JiBwbGF5ZXIsIFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQotICAgIDogbV9wbGF5
ZXIocGxheWVyKQorUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1RyYWNrUHJveHko
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJh
Y2tQcml2YXRlLCBNZWRpYVBsYXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyKQor
ICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAg
ICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0
ZSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikK
IHsKICAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwotICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRk
UmVtb3RlVmlkZW9UcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fcGxheWVy
LmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNl
aXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlVmlkZW9UcmFja1By
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCAqdGhp
cyk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZFJlbW90ZVZpZGVvVHJhY2sobV9pZGVu
dGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7Cit9CisK
K1JlbW90ZVZpZGVvVHJhY2tQcm94eTo6flJlbW90ZVZpZGVvVHJhY2tQcm94eSgpCit7CisgICAg
bV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkK
QEAgLTY0LDEyICs3MywxMiBAQCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1v
dGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQogCiB2b2lkIFJlbW90ZVZpZGVvVHJh
Y2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3RlVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigp
KSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVt
b3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJh
dGlvbigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVZpZGVv
VHJhY2tQcm94eTo6d2lsbFJlbW92ZSgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVSZW1vdGVWaWRl
b1RyYWNrKG1faWRlbnRpZmllciksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKIHZvaWQgUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpzZWxlY3Rl
ZENoYW5nZWQoYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaAppbmRleCBkZGYwMmM4ZmU4MzJkYzNlZGZiYjllYzBk
NTViNTI2NDlkYjJiNzk4Li42MGVhN2IwOWZmMmQ4N2UyNjY5MzU5ZTFmZWRlYWEwN2EzZTU3OTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9U
cmFja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZp
ZGVvVHJhY2tQcm94eS5oCkBAIC0yOCwzNCArMjgsMzkgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKIAorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhY2tCYXNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNw
YWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKIH0KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHk7CitjbGFzcyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247CiAKIGNsYXNzIFJlbW90ZVZpZGVvVHJhY2tQcm94eSBmaW5hbAogICAgIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZVZpZGVvVHJhY2tQcm94eSwgV1RGOjpEZXN0cnVj
dGlvblRocmVhZDo6TWFpbj4KLSAgICAsIHByaXZhdGUgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGVDbGllbnQgeworICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZUNsaWVu
dAorICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxSZW1vdGVWaWRlb1RyYWNrUHJveHk+IGNyZWF0ZShSZW1vdGVNZWRpYVBsYXllclBy
b3h5JiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVm
PElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0
ZSYgdHJhY2tQcml2YXRlKQorICAgIHN0YXRpYyBSZWY8UmVtb3RlVmlkZW9UcmFja1Byb3h5PiBj
cmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2Vzcywg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpWaWRlb1Ry
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIg
bWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVtb3RlVmlkZW9UcmFja1Byb3h5KHBsYXllciwgaWRlbnRpZmllciwgV1RGTW92ZShjb25u
ZWN0aW9uKSwgdHJhY2tQcml2YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZVZpZGVvVHJhY2tQcm94eShjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB0
cmFja1ByaXZhdGUsIG1lZGlhUGxheWVySWRlbnRpZmllcikpOwogICAgIH0KIAotICAgIFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVWaWRlb1RyYWNrUHJveHkoKTsKIAotICAg
IHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkgeyBtX3RyYWNrUHJpdmF0ZS0+c2V0U2Vs
ZWN0ZWQoc2VsZWN0ZWQpOyB9CisgICAgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OwogCiBwcml2YXRlOgotICAg
IFJlbW90ZVZpZGVvVHJhY2tQcm94eShSZW1vdGVNZWRpYVBsYXllclByb3h5JiwgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6Vmlk
ZW9UcmFja1ByaXZhdGUmKTsKKyAgICBSZW1vdGVWaWRlb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlZp
ZGVvVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIAogICAg
IC8vIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50CiAgICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9v
bCkgZmluYWw7CkBAIC02NiwxMyArNzEsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxhbmd1YWdl
Q2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkg
ZmluYWw7CiAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkg
eyBtX3RyYWNrUHJpdmF0ZS0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOyB9CisKICAgICBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCk7CiAgICAgdm9pZCBjb25m
aWd1cmF0aW9uQ2hhbmdlZCgpOwogCi0gICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgbV9wbGF5
ZXI7CisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOwogICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAg
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVmPFdl
YkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlPiBtX3RyYWNrUHJpdmF0ZTsKKyAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllcklkZW50aWZpZXIgbV9tZWRpYVBsYXllcklkZW50aWZpZXI7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJlMGYxMDBmZDg3YjY3OGRjYThiNTQ2NmVmN2YzMTcwOWZhMzNjMjAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1By
b3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlVmlkZW9U
cmFja1Byb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIFNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQp
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggNTczZWQzZDhlZTliYmY0MTAzMTY4ZTc5YTA1N2Y5ZGJkYjliODY5NS4uY2EwYWUyODQxMWE4
M2RlNGJmM2ZlMDhiMDEyZTQwNTU0OGQ4YjU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC0yMDgsNiArMjA4LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90
X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAgICdXZWJD
b3JlOjpDb2xvclNwYWNlJywKICAgICAgICAgJ1dlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQnLAor
ICAgICAgICAnV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1l
bnRJZGVudGlmaWVyJywKQEAgLTI0MCw3ICsyNDEsNiBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3Rf
YmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6RGlzcGxheUxpbmtPYnNlcnZlcklEJywKLSAg
ICAgICAgJ1dlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXInLAogICAgICAgICAn
V2ViS2l0OjpEb3dubG9hZElEJywKICAgICAgICAgJ1dlYktpdDo6R2VvbG9jYXRpb25JZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDA3NjFk
ODM1MWVmY2I1NjExMDljNTNmMDBlNTAwOTcwNjZlMjNhZTcuLmU2ZmJkYTUwMGQwYjc5ZTk4MWRk
MzE4YjFjYzNkYzE5NTIwN2M2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE2LDYgKzQxNiw5IEBACiAJCTFDQThCOTQ2MTI3Qzg4
MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIg
LyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkxQ0JCRTRBMDE5QjY2QzUz
MDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCQkU0OUUxOUI2NkM1MzAwNkI3
RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUNCQkU0
QTExOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlGMTlCNjZDNTMwMDZC
N0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi87IH07CisJCTFEMDM2OUFDMjU2Nzk2
OTkwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAzNjlBQTI1Njc5
NDNDMDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OworCQkxRDAzNjlBRDI1Njc5NkFCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFEMDM2OUE1MjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkxRDAzNjlBRTI1Njc5NkI5MDA0NDAzNzIg
LyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDM2OUEyMjU2Nzk0M0IwMDQ0MDM3
MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkx
RDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2
MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0
RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmggKi87IH07CkBAIC0yODA2LDYgKzI4MDksMTUgQEAKIAkJMUNBOEI5NDQxMjdD
ODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4
MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUYxOUI2
NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUEyMjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1v
dGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQwMzY5QTMyNTY3OTQzQjAw
NDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVz
Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUE0MjU2Nzk0
M0IwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDAzNjlBNTI1Njc5NDNCMDA0NDAzNzIgLyogUmVt
b3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFJlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUE2MjU2Nzk0M0Mw
MDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OworCQkxRDAzNjlBNzI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlQXVk
aW9UcmFja1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlQXVkaW9UcmFja1By
b3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9U
cmFja1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJMUQwMzY5QTgyNTY3OTQzQzAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2Fn
ZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXNS
ZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHRUcmFja1By
b3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCTFEMDM2OUE5MjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNz
YWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2Fn
ZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJh
Y2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OworCQkxRDAzNjlBQTI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlVGV4dFRyYWNrUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllclByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4
MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQz
MkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yODE3LDYgKzI4MjksMTEgQEAKIAkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTFENEZCNDBCMjU2NUM4OUEwMDFBQzJBRCAvKiBJbml0aWFsaXph
dGlvblNlZ21lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluaXRpYWxpemF0aW9uU2VnbWVudElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0RkI0MEMyNTY1Q0JGOTAwMUFD
MkFEIC8qIFJlbW90ZU1lZGlhRGVzY3JpcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVk
aWFEZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDZFMjdERDI1
NjZFODMwMDBBQzdBRUIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUQ2RTI3REUyNTY2RTg1ODAwQUM3QUVCIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94
eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVWaWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENkUyN0RGMjU2NkU4NkIwMEFDN0FFQiAvKiBS
ZW1vdGVUZXh0VHJhY2tQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVRleHRUcmFja1Byb3h5
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDk3RUM3RDI0MDg5
OEQyMDA0NjZGRkEgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURBNDA4OUUyM0E4Mjc3ODAw
NThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTU3MjcsNiArNTc0NCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxRDBFQ0VB
OTIzRkM4NEJCMDBEMTcyRjYgLyogY29jb2EgKi8sCiAJCQkJQ0RBOTU5NDQyNDEyQzREQTAwOTEw
RUVGIC8qIGlvcyAqLywKKwkJCQkxRDRGQjQwQjI1NjVDODlBMDAxQUMyQUQgLyogSW5pdGlhbGl6
YXRpb25TZWdtZW50SW5mby5oICovLAogCQkJCTlCMTIyOUNDMjNGRjI1RjIwMDhDQTc1MSAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOUIxMjI5Q0IyM0ZGMjVG
MjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi8sCiAJCQkJOUIx
MjI5Q0YyM0ZGMjgxNDAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluICovLApAQCAtNTczOSw2ICs1NzU3LDcgQEAKIAkJCQk0MTJGRjkyNzI1MzgyRDg1
MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmggKi8sCiAJCQkJMDcx
QkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJ
CQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICov
LAorCQkJCTFENkUyN0REMjU2NkU4MzAwMEFDN0FFQiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHku
bWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0RBQzIwNzkyM0ZCMUUyMTAwMjFERUUzIC8qIFJlbW90ZUNE
TUZhY3RvcnlQcm94eS5jcHAgKi8sCiAJCQkJQ0RBQzIwNzgyM0ZCMUUyMTAwMjFERUUzIC8qIFJl
bW90ZUNETUZhY3RvcnlQcm94eS5oICovLAogCQkJCUNEQUMyMDdDMjNGQjFFRjkwMDIxREVFMyAv
KiBSZW1vdGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC01NzYwLDYgKzU3Nzks
NyBAQAogCQkJCUNERTU1NEY5MjQwNTgyMDgwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1TZXNz
aW9uUHJveHkuY3BwICovLAogCQkJCUNERTU1NEY4MjQwNTgyMDgwMDhBM0REQiAvKiBSZW1vdGVM
ZWdhY3lDRE1TZXNzaW9uUHJveHkuaCAqLywKIAkJCQlDREU1NTUwMDI0MDU4Mjg0MDA4QTNEREIg
LyogUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTFENEZC
NDBDMjU2NUNCRjkwMDFBQzJBRCAvKiBSZW1vdGVNZWRpYURlc2NyaXB0aW9uLmggKi8sCiAJCQkJ
MDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
LmNwcCAqLywKIAkJCQkwNzI1RUZBQzIzOUFFMzg1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkuaCAqLywKIAkJCQkwNzI1RUZBQjIzOUFFMzg0MDBBNTM4QTkgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC01Nzg0LDggKzU4
MDQsMTAgQEAKIAkJCQkxREQyQTY2NjI1NjFFRDA0MDBGRjdCNkYgLyogUmVtb3RlU291cmNlQnVm
ZmVyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDdFMTlGMDcyM0Q0REM4ODAwOTRGRkI0IC8q
IFJlbW90ZVRleHRUcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwN0UxOUYwNjIzRDREQzg4MDA5NEZG
QjQgLyogUmVtb3RlVGV4dFRyYWNrUHJveHkuaCAqLywKKwkJCQkxRDZFMjdERjI1NjZFODZCMDBB
QzdBRUIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1
ODQyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJ
MDcxQkM1ODUyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5oICovLAor
CQkJCTFENkUyN0RFMjU2NkU4NTgwMEFDN0FFQiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkubWVz
c2FnZXMuaW4gKi8sCiAJCQkJMDdFMTlGMDUyM0Q0REM4ODAwOTRGRkI0IC8qIFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDcxQkM1N0IyM0NBNTMyNDAwNjgw
RDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkwNzFCQzU3
RDIzQ0E1NkQyMDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovLApA
QCAtMTAzNDcsNiArMTAzNjksOSBAQAogCQkJCUNERDUzNTcxMjQwRERFMDYwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RENTM1
NzIyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCAq
LywKIAkJCQlDREQ1MzU3NzI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQkxRDAzNjlBMjI1Njc5NDNCMDA0NDAzNzIgLyog
UmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkxRDAzNjlB
NzI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXMuaCAqLywK
KwkJCQkxRDAzNjlBMzI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVz
c2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREFDMjBG
MjIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQlDREFDMjBGMzIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9y
eVByb3h5TWVzc2FnZXMuaCAqLywKQEAgLTEwMzk2LDYgKzEwNDIxLDEyIEBACiAJCQkJMUREMkE2
NkIyNTYyMDIxRTAwRkY3QjZGIC8qIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQkxREQyQTY2OTI1NjIwMjFFMDBGRjdCNkYgLyogUmVtb3RlU291cmNl
QnVmZmVyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFERDJBNjZBMjU2MjAyMUUwMEZGN0I2RiAv
KiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTFEMDM2
OUFBMjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCisJCQkJMUQwMzY5QTYyNTY3OTQzQzAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFj
a1Byb3h5TWVzc2FnZXMuaCAqLywKKwkJCQkxRDAzNjlBODI1Njc5NDNDMDA0NDAzNzIgLyogUmVt
b3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQkxRDAzNjlBNTI1Njc5
NDNCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKKwkJCQkxRDAzNjlBNDI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5
TWVzc2FnZXMuaCAqLywKKwkJCQkxRDAzNjlBOTI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlVmlk
ZW9UcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJQTU1QkE4MjExQkEyNUJCODAw
N0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQlBNTVCQTgyMjFCQTI1QkI4MDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlN
ZXNzYWdlcy5oICovLAogCQkJCTFCQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBSZW1vdGVXZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMzE3Niw2ICsxMzIwNyw3IEBA
CiAJCQkJMUEwQzIyN0YyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1Nv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAwRUQ2MTREIC8q
IFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMTIyOUNF
MjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxRDAzNjlBRTI1Njc5NkI5MDA0NDAzNzIgLyogUmVtb3RlQXVkaW9U
cmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJE
MTg3OUU0QkMwMDNBQkYwRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREFDMjBGNzIzRkM3MjZDMDAyMURFRTMgLyog
UmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEQUMyMEY4MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTMxOTcsNiArMTMyMjksOCBAQAog
CQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5NDdBNzE4N0I1MTc2MDA0Mzc4
NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUREMkE2NkUyNTYyMDIxRTAwRkY3QjZGIC8qIFJlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEMDM2OUFD
MjU2Nzk2OTkwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDAzNjlBRDI1Njc5NkFCMDA0NDAzNzIgLyogUmVtb3Rl
VmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1
NUJBODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQkJCRTRBMDE5QjY2QzUzMDA2QjdEODEg
LyogUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTE4RTY5MTcxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCmlu
ZGV4IDNkZjBiMWMwOWIzNGE3Nzg4ZjkxMGE0MmEwNTVjYTUwMGFhOTViZmQuLjcyMWMwYWE5MjA3
MjRlOWIzM2I1ODY1MzAzMTM3YjZjYTU0OTAwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
Y3BwCkBAIC0yOSwxNCArMjksMTUgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aCIKLSNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVy
LCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKLSAgICA6
IG1fcGxheWVyKHBsYXllcikKK0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1f
aWRlbmRpZmllcihpZGVuZGlmaWVyKQogewogICAgIHVwZGF0ZUNvbmZpZ3VyYXRpb24oV1RGTW92
ZShjb25maWd1cmF0aW9uKSk7CkBAIC00NSw3ICs0Niw3IEBAIEF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBs
YXllCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKIHsKICAgICBpZiAoZW5hYmxlZCAhPSB0aGlzLT5lbmFibGVkKCkpCi0gICAgICAgIG1fcGxh
eWVyLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpB
dWRpb1RyYWNrU2V0RW5hYmxlZChtX2lkZW5kaWZpZXIsIGVuYWJsZWQpLCBtX3BsYXllci5pdGVu
dGlmaWVyKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6UmVtb3RlQXVk
aW9UcmFja1Byb3h5OjpTZXRFbmFibGVkKGVuYWJsZWQpLCBtX2lkZW5kaWZpZXIpOwogCiAgICAg
QXVkaW9UcmFja1ByaXZhdGU6OnNldEVuYWJsZWQoZW5hYmxlZCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmgKaW5kZXggZDI4YzA3ZTQ3ZDlmNjAzMjY0OWUwMDRlOGJlYjZjZWEyMGE0ZThlYy4u
NTNkYzliZTMzYzliZmMwZGM0YTdiMDFmYzFmMTAxZjllODc2YTVjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGUuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgog
CituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CkBAIC0zOSwxNSArNDMsMTUg
QEAgc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0
ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpCiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQorICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoY29ubmVj
dGlvbiwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAogICAg
IHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiYpOwogCiBwcml2YXRlOgotICAgIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoSVBD
OjpDb25uZWN0aW9uJiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHVzaW5nIEF1ZGlvVHJhY2tLaW5kID0gV2Vi
Q29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQ7CiAgICAgQXVkaW9UcmFja0tpbmQga2luZCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fa2luZDsgfQpAQCAtNTcsNyArNjEsNyBAQCBwcml2YXRl
OgogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFja0luZGV4
OyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wpIGZpbmFsOwogCi0gICAgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlJiBtX3BsYXllcjsKKyAgICBJUEM6OkNvbm5lY3Rpb24mIG1fY29ubmVjdGlv
bjsKICAgICBBdWRpb1RyYWNrS2luZCBtX2tpbmQgeyBOb25lIH07CiAgICAgQXRvbVN0cmluZyBt
X2lkOwogICAgIEF0b21TdHJpbmcgbV9sYWJlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cAppbmRleCBiOGE0NzIyMzQxNmRhMjVkOGIyYzFiMjUzZjBhYjBmMzM3OWE5MTAxLi5kYTQwYzQw
ZTYwZTgwN2UyZjIzYzRmOWU1ZWUxNjBmZjdlY2MyY2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwCkBAIC00NTUsNyArNDU1LDcgQEAgRmxvYXRTaXplIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6bmF0dXJhbFNpemUoKSBjb25zdAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikK
IHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fYXVkaW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIs
IFsmXSB7Ci0gICAgICAgIHJldHVybiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKCp0
aGlzLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICAgICAgcmV0dXJu
IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUoY29ubmVjdGlvbigpLCBpZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKICAgICB9KTsKICAgICBBU1NFUlQoYWRkUmVzdWx0
LmlzTmV3RW50cnkpOwogCkBAIC00ODYsNyArNDg2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZh
dGUKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVUZXh0VHJhY2soVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgYXV0byBhZGRSZXN1bHQg
PSBtX3RleHRUcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7Ci0gICAgICAgIHJldHVybiBU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZpZXIsIFdURk1vdmUo
Y29uZmlndXJhdGlvbikpOworICAgICAgICByZXR1cm4gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6
Y3JlYXRlKGNvbm5lY3Rpb24oKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7
CiAgICAgfSk7CiAgICAgQVNTRVJUKGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIApAQCAtNTk5LDcg
KzU5OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3Vl
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0
aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92aWRlb1RyYWNrcy5lbnN1cmUoaWRlbnRp
ZmllciwgWyZdIHsKLSAgICAgICAgcmV0dXJuIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpjcmVh
dGUoKnRoaXMsIGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgICAgICBy
ZXR1cm4gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShjb25uZWN0aW9uKCksIGlkZW50
aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogICAgIH0pOwogICAgIEFTU0VSVChhZGRS
ZXN1bHQuaXNOZXdFbnRyeSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDBkNjEz
YzRkYjJhNDk2Yjc3M2E2YTE3MmE3Y2I3OGUyYzAxMjU0OWUuLmQ4ZmRjZmM0ZTcwYTk5MmExYTVh
MWI1NjI0MGIyOTMxY2U1ODE1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMTUy
LDYgKzE1MiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50
ZXJlZChjb25zdCBTdHJpbmcmLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCisgICAgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
PiBhdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9UcmFja3MuZ2V0KGlkZW50aWZpZXIpOyB9
CisgICAgUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPiB2aWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0IHsgcmV0
dXJuIG1fdmlkZW9UcmFja3MuZ2V0KGlkZW50aWZpZXIpOyB9CisgICAgUmVmUHRyPFRleHRUcmFj
a1ByaXZhdGVSZW1vdGU+IHRleHRUcmFja1ByaXZhdGVSZW1vdGUoVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdCB7IHJldHVybiBtX3RleHRUcmFja3MuZ2V0KGlk
ZW50aWZpZXIpOyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpCiAgICAgdm9pZCBjdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChib29s
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpp
bmRleCBmNGNjOGJjYjJiZmZiM2YxMDk4NTdlN2Q2ZGE3ZjZhOTUwZTZmYWViLi4zYzMyN2NmOTQz
OTBkNmI4MmM3MDg1YTJiNjFlMmZmZGE3MTFlNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpAQCAtNDIsNiArNDIsMTAgQEAgbWVzc2FnZXMgLT4gTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewogICAgIFJlbW92ZVJlbW90ZUF1
ZGlvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCiAg
ICAgUmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAKKyAgICBBZGRSZW1vdGVWaWRlb1Ry
YWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3Qg
V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisg
ICAgUmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgdHJhY2tJRCkKKyAgICBSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQo
V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJL
aXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKwogICAg
IEFkZFJlbW90ZVRleHRUcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
dHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbikKICAgICBSZW1vdmVSZW1vdGVUZXh0VHJhY2soV2ViS2l0OjpUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCiAgICAgUmVtb3RlVGV4dFRyYWNrQ29u
ZmlndXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCkBAIC02MSwxMCArNjUsNiBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUgTm90UmVmQ291bnRlZCB7CiAgICAgVXBkYXRlR2VuZXJpY0N1ZShXZWJL
aXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYkNvcmU6
OkdlbmVyaWNDdWVEYXRhIGN1ZSkKICAgICBSZW1vdmVHZW5lcmljQ3VlKFdlYktpdDo6VHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViQ29yZTo6R2VuZXJpY0N1
ZURhdGEgY3VlKQogCi0gICAgQWRkUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQotICAgIFJlbW92ZVJlbW90ZVZpZGVvVHJh
Y2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCi0gICAgUmVt
b3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCi0KICAgICBSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+
ICgpIEFzeW5jCiAgICAgUmVtb3ZlUmVzb3VyY2UoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikKICAgICBTZW5kSDJQaW5n
KFVSTCB1cmwpIC0+IChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiBy
ZXN1bHQpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMjZiY2ZhNWFh
MTVhM2UyZTk2Yzk5NWY4YmUzNDdhOTZhZmU5NjQ0Mi4uMGFjNzg3MjBiYWM0ZDQyOGQxMjQ3MDQ4
OTg2NTkzOTM4ZmY3ODVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcApAQCAtNDYs
MjIgKzQ2LDIyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAotUmVmPE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZT4gTWVkaWFTb3VyY2VQcml2YXRlUmVt
b3RlOjpjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBS
ZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlJiBtaW1lVHlwZUNhY2hlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUmIHBsYXllclByaXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogY2xpZW50KQorUmVm
PE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZT4gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpjcmVh
dGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlJiBtaW1lVHlwZUNhY2hlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1lZGlh
UGxheWVyUHJpdmF0ZSwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAg
YXV0byBtZWRpYVNvdXJjZVByaXZhdGUgPSBhZG9wdFJlZigqbmV3IE1lZGlhU291cmNlUHJpdmF0
ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgbWltZVR5cGVDYWNoZSwg
cGxheWVyUHJpdmF0ZSwgY2xpZW50KSk7CisgICAgYXV0byBtZWRpYVNvdXJjZVByaXZhdGUgPSBh
ZG9wdFJlZigqbmV3IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlv
biwgaWRlbnRpZmllciwgbWltZVR5cGVDYWNoZSwgbWVkaWFQbGF5ZXJQcml2YXRlLCBjbGllbnQp
KTsKICAgICBjbGllbnQtPnNldFByaXZhdGVBbmRPcGVuKG1lZGlhU291cmNlUHJpdmF0ZS5jb3B5
UmVmKCkpOwogICAgIHJldHVybiBtZWRpYVNvdXJjZVByaXZhdGU7CiB9CiAKLU1lZGlhU291cmNl
UHJpdmF0ZVJlbW90ZTo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0
aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwg
Y29uc3QgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXJQcml2YXRlLCBNZWRpYVNvdXJj
ZVByaXZhdGVDbGllbnQqIGNsaWVudCkKK01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6TWVkaWFT
b3VyY2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVj
dGlvbiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwgY29uc3QgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlJiBtZWRpYVBsYXllclByaXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCog
Y2xpZW50KQogICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlv
bikKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9taW1lVHlwZUNhY2hl
KG1pbWVUeXBlQ2FjaGUpCi0gICAgLCBtX3BsYXllclByaXZhdGUobWFrZVdlYWtQdHIocGxheWVy
UHJpdmF0ZSkpCisgICAgLCBtX21lZGlhUGxheWVyUHJpdmF0ZShtYWtlV2Vha1B0cihtZWRpYVBs
YXllclByaXZhdGUpKQogICAgICwgbV9jbGllbnQoY2xpZW50KQogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAotICAgICwgbV9sb2dnZXIobV9wbGF5ZXJQcml2YXRlLT5tZWRpYVBsYXllckxvZ2dl
cigpKQotICAgICwgbV9sb2dJZGVudGlmaWVyKG1fcGxheWVyUHJpdmF0ZS0+bWVkaWFQbGF5ZXJM
b2dJZGVudGlmaWVyKCkpCisgICAgLCBtX2xvZ2dlcihtX21lZGlhUGxheWVyUHJpdmF0ZS0+bWVk
aWFQbGF5ZXJMb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihtX21lZGlhUGxheWVyUHJp
dmF0ZS0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKIHsKICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIpOwpAQCAtOTUsNyArOTUsNyBAQCBNZWRpYVNvdXJjZVByaXZhdGU6
OkFkZFN0YXR1cyBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmFkZFNvdXJjZUJ1ZmZlcihjb25z
dCBDbwogCiAgICAgaWYgKHN0YXR1cyA9PSBBZGRTdGF0dXM6Ok9rKSB7CiAgICAgICAgIEFTU0VS
VChyZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLmhhc1ZhbHVlKCkpOwotICAgICAgICBhdXRv
IG5ld1NvdXJjZUJ1ZmZlciA9IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX2dw
dVByb2Nlc3NDb25uZWN0aW9uLCAqcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciwgKnRoaXMp
OworICAgICAgICBhdXRvIG5ld1NvdXJjZUJ1ZmZlciA9IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGU6OmNyZWF0ZShtX2dwdVByb2Nlc3NDb25uZWN0aW9uLCAqcmVtb3RlU291cmNlQnVmZmVySWRl
bnRpZmllciwgKnRoaXMsICptX21lZGlhUGxheWVyUHJpdmF0ZSk7CiAgICAgICAgIG91dFByaXZh
dGUgPSBuZXdTb3VyY2VCdWZmZXIuY29weVJlZigpOwogICAgICAgICBtX3NvdXJjZUJ1ZmZlcnMu
YXBwZW5kKFdURk1vdmUobmV3U291cmNlQnVmZmVyKSk7CiAgICAgfQpAQCAtMTIwLDcgKzEyMCw3
IEBAIHZvaWQgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjp1bm1hcmtFbmRPZlN0cmVhbSgpCiAK
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6cmVhZHlT
dGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGxheWVyUHJpdmF0ZSA/IG1fcGxheWVyUHJp
dmF0ZS0+cmVhZHlTdGF0ZSgpIDogTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVOb3RoaW5n
OworICAgIHJldHVybiBtX21lZGlhUGxheWVyUHJpdmF0ZSA/IG1fbWVkaWFQbGF5ZXJQcml2YXRl
LT5yZWFkeVN0YXRlKCkgOiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CiB9
CiAKIHZvaWQgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmgKaW5kZXggMDFjOTQ0MjVi
NDhiMzk2ZTk2N2M0ZTgyMTRkZmI2ZTUzNWE1NTBiZC4uNzc4MzRmN2ExOWRjYjBiOTRlZDUyZjY2
ODAwZTYwNWMzMTUzNDc5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5oCkBAIC01NCw4ICs1
NCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZT4g
Y3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUmLCBjb25zdCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUmLCBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKTsKICAgICB2aXJ0
dWFsIH5NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUoKTsKIAotICAgIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZSogcGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5ZXJQcml2YXRlLmdldCgpOyB9
Ci0KICAgICAvLyBNZWRpYVNvdXJjZVByaXZhdGUgb3ZlcnJpZGVzCiAgICAgQWRkU3RhdHVzIGFk
ZFNvdXJjZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIFJlZlB0cjxXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlPiYpIGZpbmFsOwogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2Vk
KCkgZmluYWw7CkBAIC03Nyw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24mIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVtb3RlTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUm
IG1fbWltZVR5cGVDYWNoZTsKLSAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4g
bV9wbGF5ZXJQcml2YXRlOworICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBt
X21lZGlhUGxheWVyUHJpdmF0ZTsKICAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50PiBtX2NsaWVudDsKICAgICBWZWN0b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZh
dGVSZW1vdGU+PiBtX3NvdXJjZUJ1ZmZlcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUu
Y3BwCmluZGV4IDZmNDU0OGExMDc0ZGRiYzZhY2U3MTdmMzdkMjY5YjhlZDk1ZTgzOTQuLjgzOTUz
M2RmNTE1MzU0Nzk5OTE3YTFhYTllNWZkNmZiYzg0NzFiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlLmNwcApAQCAtMjgsMTIgKzI4LDE1IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJJbml0aWFsaXphdGlvblNl
Z21lbnRJbmZvLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5oIgog
I2luY2x1ZGUgIlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJT
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECkBAIC00NSwxNSArNDgsMTYgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8U291cmNlQnVmZmVyUHJpdmF0
ZVJlbW90ZT4gU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKEdQVVByb2Nlc3NDb25u
ZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmll
ciByZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGVS
ZW1vdGUmIG1lZGlhU291cmNlUHJpdmF0ZSkKK1JlZjxTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
PiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24m
IGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIHJlbW90
ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZSYg
bWVkaWFTb3VyY2VQcml2YXRlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1lZGlh
UGxheWVyUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlKGdwdVByb2Nlc3NDb25uZWN0aW9uLCByZW1vdGVTb3VyY2VCdWZmZXJJZGVu
dGlmaWVyLCBtZWRpYVNvdXJjZVByaXZhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlKGdwdVByb2Nlc3NDb25uZWN0aW9uLCByZW1vdGVTb3Vy
Y2VCdWZmZXJJZGVudGlmaWVyLCBtZWRpYVNvdXJjZVByaXZhdGUsIG1lZGlhUGxheWVyUHJpdmF0
ZSkpOwogfQogCi1Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpTb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3Rl
U291cmNlQnVmZmVySWRlbnRpZmllciByZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBjb25z
dCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmIG1lZGlhU291cmNlUHJpdmF0ZSkKK1NvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGU6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyIHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0
ZVJlbW90ZSYgbWVkaWFTb3VyY2VQcml2YXRlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUmIG1lZGlhUGxheWVyUHJpdmF0ZSkKICAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24pCiAgICAgLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIo
cmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcikKICAgICAsIG1fbWVkaWFTb3VyY2VQcml2YXRl
KG1ha2VXZWFrUHRyKG1lZGlhU291cmNlUHJpdmF0ZSkpCisgICAgLCBtX21lZGlhUGxheWVyUHJp
dmF0ZShtYWtlV2Vha1B0cihtZWRpYVBsYXllclByaXZhdGUpKQogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgICwgbV9sb2dnZXIobV9tZWRpYVNvdXJjZVByaXZhdGUtPmxvZ2dlcigpKQog
ICAgICwgbV9sb2dJZGVudGlmaWVyKG1fbWVkaWFTb3VyY2VQcml2YXRlLT5uZXh0U291cmNlQnVm
ZmVyTG9nSWRlbnRpZmllcigpKQpAQCAtOTgsNyArMTAyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKIAogTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fbWVkaWFTb3VyY2VQcml2YXRlID8gbV9tZWRpYVNvdXJjZVByaXZhdGUt
PnBsYXllcigpLT5yZWFkeVN0YXRlKCkgOiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5v
dGhpbmc7CisgICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXJQcml2YXRlID8gbV9tZWRpYVBsYXllclBy
aXZhdGUtPnJlYWR5U3RhdGUoKSA6IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGlu
ZzsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRSZWFkeVN0YXRlKE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlKQpAQCAtMTUyLDYgKzE1NiwzOCBAQCBib29sIFNvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGU6OmNhblN3aXRjaFRvVHlwZShjb25zdCBDb250ZW50VHlwZSYpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KEluaXRpYWxp
emF0aW9uU2VnbWVudEluZm8mJiBzZWdtZW50SW5mbykKK3sKKyAgICBpZiAoIW1fY2xpZW50IHx8
ICFtX21lZGlhUGxheWVyUHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50IHNlZ21lbnQ7CisgICAgc2Vn
bWVudC5kdXJhdGlvbiA9IHNlZ21lbnRJbmZvLmR1cmF0aW9uOworCisgICAgZm9yIChhdXRvJiBh
dWRpb1RyYWNrIDogc2VnbWVudEluZm8uYXVkaW9UcmFja3MpIHsKKyAgICAgICAgU291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50OjpBdWRpb1RyYWNrSW5mb3Jt
YXRpb24gaW5mbzsKKyAgICAgICAgaW5mby50cmFjayA9IG1fbWVkaWFQbGF5ZXJQcml2YXRlLT5h
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShhdWRpb1RyYWNrLmlkZW50aWZpZXIpOworICAgICAgICBp
bmZvLmRlc2NyaXB0aW9uID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYURlc2NyaXB0aW9uKGF1
ZGlvVHJhY2suZGVzY3JpcHRpb24pKTsKKyAgICAgICAgc2VnbWVudC5hdWRpb1RyYWNrcy5hcHBl
bmQoaW5mbyk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiB2aWRlb1RyYWNrIDogc2VnbWVudElu
Zm8udmlkZW9UcmFja3MpIHsKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6SW5p
dGlhbGl6YXRpb25TZWdtZW50OjpWaWRlb1RyYWNrSW5mb3JtYXRpb24gaW5mbzsKKyAgICAgICAg
aW5mby50cmFjayA9IG1fbWVkaWFQbGF5ZXJQcml2YXRlLT52aWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZSh2aWRlb1RyYWNrLmlkZW50aWZpZXIpOworICAgICAgICBpbmZvLmRlc2NyaXB0aW9uID0gYWRv
cHRSZWYoKm5ldyBSZW1vdGVNZWRpYURlc2NyaXB0aW9uKHZpZGVvVHJhY2suZGVzY3JpcHRpb24p
KTsKKyAgICAgICAgc2VnbWVudC52aWRlb1RyYWNrcy5hcHBlbmQoaW5mbyk7CisgICAgfQorCisg
ICAgZm9yIChhdXRvJiB0ZXh0VHJhY2sgOiBzZWdtZW50SW5mby50ZXh0VHJhY2tzKSB7CisgICAg
ICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudDo6VGV4
dFRyYWNrSW5mb3JtYXRpb24gaW5mbzsKKyAgICAgICAgaW5mby50cmFjayA9IG1fbWVkaWFQbGF5
ZXJQcml2YXRlLT50ZXh0VHJhY2tQcml2YXRlUmVtb3RlKHRleHRUcmFjay5pZGVudGlmaWVyKTsK
KyAgICAgICAgaW5mby5kZXNjcmlwdGlvbiA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFEZXNj
cmlwdGlvbih0ZXh0VHJhY2suZGVzY3JpcHRpb24pKTsKKyAgICAgICAgc2VnbWVudC50ZXh0VHJh
Y2tzLmFwcGVuZChpbmZvKTsKKyAgICB9CisKKyAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoV1RGTW92ZShzZWdtZW50KSk7Cit9
CisKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6c291cmNlQnVmZmVyUHJpdmF0ZUFw
cGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkFwcGVuZFJlc3VsdCBhcHBl
bmRSZXN1bHQpCiB7CiAgICAgaWYgKG1fY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUu
aAppbmRleCBiOWEwMWIwNjI1ZTNiN2M3ZjAxMTg0YTgzYzM2ZTU0OTEyMmYwOWE4Li42MmExNDU0
NWQ1NTljMjhjODBmOGRkZDY2YTk5MjY4M2IxMzM5NzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVS
ZW1vdGUuaApAQCAtNDQsMTEgKzQ0LDEyIEBACiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIENvbm5l
Y3Rpb247CiBjbGFzcyBEZWNvZGVyOwotY2xhc3MgRGF0YVJlZmVyZW5jZTsKIH0KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKK3N0cnVjdCBJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvOworY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwogY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3Rl
OwogCiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlIGZpbmFsCkBAIC02MCwxMyArNjEs
MTMgQEAgY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZSBmaW5hbAogI2VuZGlmCiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUo
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBjb25z
dCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmKTsKKyAgICBzdGF0aWMgUmVmPFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGU+IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFJlbW90ZVNvdXJj
ZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZSYsIGNvbnN0
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYpOwogICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGUoKTsKIAogICAgIHZvaWQgY2xlYXJNZWRpYVNvdXJjZSgpIHsgbV9tZWRpYVNv
dXJjZVByaXZhdGUgPSBudWxscHRyOyB9CiAKIHByaXZhdGU6Ci0gICAgU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50
aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZSYpOworICAgIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBSZW1vdGVTb3VyY2VCdWZmZXJJ
ZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmLCBjb25zdCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUmKTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJp
ZGVzCiAgICAgdm9pZCBzZXRDbGllbnQoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dCopIGZpbmFsOwpAQCAtODcsMTEgKzg4LDE0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5Td2l0
Y2hUb1R5cGUoY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmKSBmaW5hbDsKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7
CisKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KEluaXRpYWxpemF0aW9uU2VnbWVudEluZm8mJik7CiAgICAgdm9pZCBzb3VyY2VCdWZm
ZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dDo6QXBwZW5kUmVzdWx0KTsKIAogICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBtX2dwdVByb2Nl
c3NDb25uZWN0aW9uOwogICAgIFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgbV9yZW1vdGVT
b3VyY2VCdWZmZXJJZGVudGlmaWVyOwogICAgIFdlYWtQdHI8TWVkaWFTb3VyY2VQcml2YXRlUmVt
b3RlPiBtX21lZGlhU291cmNlUHJpdmF0ZTsKKyAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZT4gbV9tZWRpYVBsYXllclByaXZhdGU7CiAgICAgV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CiAKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpp
bmRleCBhYTE5ODIxMWNlOTlhYmFkNWI4ZWUwN2ZkNGUxNzdiZGZhOTVhNDBjLi40MDY0MmY2MDM2
ZWY3ZTExZTIzYjgwZjVhNDUxZDc2ZjNlZDI4YzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBAIC0yNiw2ICsyNiw3IEBACiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiBtZXNzYWdlcyAtPiBTb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgeworICAgIFNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KHN0cnVjdCBXZWJLaXQ6OkluaXRpYWxp
emF0aW9uU2VnbWVudEluZm8gc2VnbWVudENvbmZpZ3VyYXRpb24pCiAgICAgU291cmNlQnVmZmVy
UHJpdmF0ZUFwcGVuZENvbXBsZXRlKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6
OkFwcGVuZFJlc3VsdCBhcHBlbmRSZXN1bHQpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3Bw
CmluZGV4IDExNzkzN2ZlMmQzY2NmY2M4MWY4OTk5MTRkNWE5ZjY4MGM3MGIzNDcuLjczMjIzYjg2
ODQyMTNhMGJkOGY3MTI4MmE4ZThkZWE2MTU5OTVlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3Rl
LmNwcApAQCAtMjksMTcgKzI5LDE4IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgotI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVRleHRUcmFja1ByaXZhdGVSZW1v
dGU6OlRleHRUcmFja1ByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIDogV2ViQ29yZTo6
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZShjb25maWd1cmF0aW9uLmN1ZUZvcm1hdCkKLSAgICAsIG1f
cGxheWVyKHBsYXllcikKKyAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9p
ZGVuZGlmaWVyKGlkZW5kaWZpZXIpCiB7CiAgICAgdXBkYXRlQ29uZmlndXJhdGlvbihXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKTsKQEAgLTQ4LDcgKzQ5LDcgQEAgVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBsYXll
ciwKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0TW9kZShUZXh0VHJhY2tNb2RlIG1v
ZGUpCiB7CiAgICAgaWYgKG1vZGUgIT0gbV9tb2RlKQotICAgICAgICBtX3BsYXllci5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VGV4dFRyYWNrU2V0
TW9kZShtX2lkZW5kaWZpZXIsIG1vZGUpLCBtX3BsYXllci5pdGVudGlmaWVyKCkpOworICAgICAg
ICBtX2Nvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OlNldE1v
ZGUobW9kZSksIG1faWRlbmRpZmllcik7CiAKICAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpz
ZXRNb2RlKG1vZGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAppbmRleCBiN2NlZGI3ZTgzOTRm
OTliYTljZmIwYTJhYzJhOTc4MTFiM2M0MThmLi5kNTQyNDQyYzg0NGU1NDgzZmQzY2VkNzg1MDVk
Y2ExODY5NGFlNGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgogCiBuYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBEYXRhUmVmZXJlbmNlOwogfQogCkBAIC01
MCw5ICs1MSw5IEBAIGNsYXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGUgZmluYWwgOiBwdWJsaWMg
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBSZWY8VGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxh
eWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICBzdGF0aWMgUmVm
PFRleHRUcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5k
aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShjb25uZWN0aW9uLCBpZGVuZGlmaWVyLCBXVEZN
b3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAgICAgfQogCiAgICAgdm9pZCBhZGREYXRhQ3VlKE1lZGlh
VGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmKTsKQEAg
LTk5LDkgKzEwMCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzRGVmYXVsdCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1faXNEZWZhdWx0OyB9CiAKIHByaXZhdGU6Ci0gICAgVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICBUZXh0
VHJhY2tQcml2YXRlUmVtb3RlKElQQzo6Q29ubmVjdGlvbiYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCi0gICAg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBtX3BsYXllcjsKKyAgICBJUEM6OkNvbm5lY3Rpb24m
IG1fY29ubmVjdGlvbjsKICAgICBBdG9tU3RyaW5nIG1faWQ7CiAgICAgQXRvbVN0cmluZyBtX2xh
YmVsOwogICAgIEF0b21TdHJpbmcgbV9sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5j
cHAKaW5kZXggM2Y2OTQ5MGE5MmQxZmRiZTA0NWQwNmFlYjJlOGZiNGJjZmY5NmFkMC4uYWM2ZWEw
MTQyNzFjMzMxMjZjZDc1MmIzZmZkM2I3ODU0MzlkZTY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZS5jcHAKQEAgLTI5LDEzICsyOSwxNCBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQog
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5oIgotI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUo
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZp
Z3VyYXRpb24pCi0gICAgOiBtX3BsYXllcihwbGF5ZXIpCitWaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKGNvbm5l
Y3Rpb24pCiAgICAgLCBtX2lkZW5kaWZpZXIoaWRlbmRpZmllcikKIHsKICAgICB1cGRhdGVDb25m
aWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpOwpAQCAtNDQsNyArNDUsNyBAQCBWaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlJiBwbGF5ZQogdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0U2Vs
ZWN0ZWQoYm9vbCBzZWxlY3RlZCkKIHsKICAgICBpZiAoc2VsZWN0ZWQgIT0gdGhpcy0+c2VsZWN0
ZWQoKSkKLSAgICAgICAgbV9wbGF5ZXIuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvVHJhY2tTZXRTZWxlY3RlZChtX2lkZW5kaWZpZXIsIHNl
bGVjdGVkKSwgbV9wbGF5ZXIuaXRlbnRpZmllcigpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6U2V0U2VsZWN0ZWQoc2VsZWN0ZWQp
LCBtX2lkZW5kaWZpZXIpOwogCiAgICAgVmlkZW9UcmFja1ByaXZhdGU6OnNldFNlbGVjdGVkKHNl
bGVjdGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaAppbmRleCA2MTI5OGE2NWVkZDMzMjdh
YmU1OTU1NTEyMjQzNmVlNWFiZGI0M2Q4Li5mMzZlMDZiMTAyZDI0YzI5ZWNlODUwZWE2ZDEzNjY1
MzgyYTRiYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0zMiwxNyArMzIsMjIgQEAK
ICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5l
Y3Rpb247Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU7CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAotY2xh
c3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUgOiBwdWJsaWMgV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGUgeworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUKKyAgICA6IHB1YmxpYyBXZWJD
b3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja1By
aXZhdGVSZW1vdGU+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUo
Y29uZmlndXJhdGlvbikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGUoY29ubmVjdGlvbiwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0
aW9uKSkpOwogICAgIH0KIAogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwpAQCAtNTQsMTIgKzU5LDEyIEBAIHB1YmxpYzoKICAg
ICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sYW5ndWFnZTsg
fQogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFja0luZGV4
OyB9CiAKLXByb3RlY3RlZDoKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUmLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworcHJpdmF0ZToKKyAgICBWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24mLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAgICAgdm9pZCBzZXRTZWxlY3Rl
ZChib29sKSBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgbV9wbGF5ZXI7
CisgICAgSVBDOjpDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CiAgICAgVmlkZW9UcmFja0tpbmQg
bV9raW5kIHsgTm9uZSB9OwogICAgIEF0b21TdHJpbmcgbV9pZDsKICAgICBBdG9tU3RyaW5nIG1f
bGFiZWw7Cg==
</data>
<flag name="review"
          id="431773"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415158</attachid>
            <date>2020-12-01 13:50:03 -0800</date>
            <delta_ts>2020-12-01 17:45:09 -0800</delta_ts>
            <desc>Updated patch based on Eric&apos;s comments</desc>
            <filename>bug-219227-20201201135002.patch</filename>
            <type>text/plain</type>
            <size>115399</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIyOTNiZTM0MWE2YWU0
MjI0NDA0N2U4ZWI1ODdhMmM5MWIxMTc3YS4uMWY4MDhmYTUwMzNkNDIxMGFiMmQ5MGNkZWM4NDI1
ZjU3YjYxMmIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTEyLTAxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIEluIEdQVSBQcm9j
ZXNzXVtNU0VdIEFkZCB0aGUgc3VwcG9ydCB0byBmb3J3YXJkIGluaXRpYWxpemF0aW9uIHNlZ21l
bnQgZnJvbSB0aGUgR1BVIFByb2Nlc3MgdG8gV2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MjI3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKwogMjAyMC0x
Mi0wMSAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLiBGaXggdGhlIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uIHdhcm5pbmcgc2lu
Y2UgcjI3MDI5NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjIzMzEyNzY0ZWU4MWNjNmU1MmY5OTQ5NGRmNDFiZmNl
MTE5NjNlNy4uZDBkOGUyNDhjZWU5MWMwMmRiNWRmZjYzZmYxZTZkY2RiYmI4OTBmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMTggQEAKKzIwMjAtMTItMDEgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFw
cGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgSW4gR1BVIFByb2Nlc3NdW01TRV0gQWRkIHRoZSBz
dXBwb3J0IHRvIGZvcndhcmQgaW5pdGlhbGl6YXRpb24gc2VnbWVudCBmcm9tIHRoZSBHUFUgUHJv
Y2VzcyB0byBXZWIgcHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkyMjcKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24u
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBzdXBwb3J0IHRvIGZvcndhcmQgYHNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KClgCisgICAgICAg
IGNhbGxiYWNrIGZyb20gdGhlIHNvdXJjZSBidWZmZXIgcGFyc2VyIHJ1bm5pbmcgaW4gdGhlIEdQ
VSBwcm9jZXNzIHRvIHRoZSBgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZWAKKyAgICAgICAgcnVu
bmluZyBpbiB0aGUgV2ViIHByb2Nlc3MsIHdoaWNoIGluIHR1cm4gcHJvdmlkZXMgdGhlIGluaXRp
YWxpemF0aW9uIHNlZ21lbnQgdG8gYFNvdXJjZUJ1ZmZlcmAuCisKKyAgICAgICAgTm8gY2hhbmdl
IGluIGJlaGF2aW9yLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvSW5pdGlhbGl6YXRpb25TZWdtZW50SW5mby5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6SW5pdGlhbGl6YXRpb25TZWdtZW50SW5mbzo6VHJhY2tJbmZvcm1h
dGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW5pdGlhbGl6YXRpb25TZWdt
ZW50SW5mbzo6VHJhY2tJbmZvcm1hdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6SW5p
dGlhbGl6YXRpb25TZWdtZW50SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
SW5pdGlhbGl6YXRpb25TZWdtZW50SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVkaW9UcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp+UmVtb3RlQXVkaW9UcmFja1Byb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6d2lsbFJlbW92ZSk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5tZXNzYWdlcy5pbjog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFEZXNjcmlwdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFE
ZXNjcmlwdGlvbkluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRGVz
Y3JpcHRpb25JbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYURlc2Ny
aXB0aW9uOjpSZW1vdGVNZWRpYURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5Ojpsb2FkTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjphZGRSZW1vdGVBdWRpb1RyYWNrUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjphZGRSZW1vdGVWaWRlb1RyYWNrUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjphZGRSZW1vdGVUZXh0
VHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFjayk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFj
ayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
RGlkUmVtb3ZlVmlkZW9UcmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2spOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjphdWRpb1RyYWNrU2V0RW5hYmxl
ZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZp
ZGVvVHJhY2tTZXRTZWxlY3RlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnRleHRUcmFja1NldE1vZGUpOiBEZWxldGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5OjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6YWRkU291cmNlQnVmZmVy
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuaDoK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpSZW1vdGVTb3VyY2VCdWZmZXJQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Ojpzb3VyY2VC
dWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5oOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6flJlbW90ZVRleHRUcmFja1Byb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb25DaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OndpbGxSZW1vdmUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkRGF0YUN1ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5Ojp1cGRhdGVEYXRhQ3VlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92ZURhdGFDdWUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkR2VuZXJpY0N1ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVRleHRUcmFja1Byb3h5Ojp1cGRhdGVHZW5lcmljQ3VlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVy
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OnBhcnNlV2ViVlRUQ3Vl
RGF0YSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkubWVzc2Fn
ZXMuaW46IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3RlVmlkZW9UcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp+UmVtb3RlVmlkZW9UcmFja1Byb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6d2lsbFJlbW92ZSk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5tZXNzYWdlcy5pbjog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6
OnNldEVuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjphZGRSZW1vdGVBdWRpb1RyYWNrKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVUZXh0VHJhY2spOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZpZGVvVHJhY2spOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVS
ZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6TWVkaWFT
b3VyY2VQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTb3VyY2VQcml2YXRl
UmVtb3RlOjphZGRTb3VyY2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNvdXJjZVBy
aXZhdGVSZW1vdGU6OnJlYWR5U3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpT
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlKToKKyAg
ICAgICAgKFdlYktpdDo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVt
b3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1v
dGU6OnNldE1vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1By
aXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlOjpzZXRTZWxlY3RlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9U
cmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6CisKIDIwMjAtMTItMDEgIEtlaXRoIFJvbGxpbiAg
PGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIENvbnNvbGlkYXRlIGhlYWRlciBwb3N0cHJv
Y2Vzc2luZyBzY3JpcHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBmZDg1MTI5ODdiOTlhMWE4Mjk1
YzEwN2UxOTllNWYwNzU1MTUzZDI2Li5hNzIzYWUwNjM3M2QyZjVmNWZkMDJmN2MxODI4ZjMyZjE3
MDFiNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwMTEsNiArMTAxMSw3IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmgKICAg
ICBwbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3RpZmllci5oCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5oCisgICAgcGxhdGZvcm0vTWVkaWFEZXNjcmlwdGlvbi5oCiAgICAgcGxhdGZvcm0v
TWVkaWFTYW1wbGUuaAogICAgIHBsYXRmb3JtL01lZGlhU2VsZWN0aW9uT3B0aW9uLmgKICAgICBw
bGF0Zm9ybS9NZWRpYVNlc3Npb25JZGVudGlmaWVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDYy
ODQ0NTMyNTAzMzUxMDdmZDU0OTgyMjMyYjhiOWVhZWM4ZTY4Y2IuLjg4ZTE1MWIxMjIyNGZlYmNj
ODkzYjUzZDY4NWUzZWMxYjAxMGNkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTI2LDYgKzEy
Niw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQKIAogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIKKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
VHJhY2tQcm94eQogICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkK
ICAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eQogICAgIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eQpAQCAtMTM5LDYgKzE0MCw4IEBAIHNldChX
ZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyCiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVBy
b3h5CiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eQorICAgIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkKKyAgICBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvVHJhY2tQcm94eQogCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRD
Q29kZWNzUHJveHkKICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IGVkYjZjYTU5NzlkMmY0ZGVmOGIyYjJlNzczZjlkNjlhZTc4NmU3ZTkuLmU1
MWNhZWQyMWUxODZjZjJhMTczY2I4YTMzMzEyYmUwYjMwNGJiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI1LDYgKzI1LDcgQEAgJChQ
Uk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNi
LmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbgorJChQ
Uk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM4
LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkubWVzc2FnZXMuaW4KKyQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1By
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL2lvcy9SZW1v
dGVNZWRpYVNlc3Npb25IZWxwZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdAppbmRleCA3NTY3OWY1NWY1YWUzOTliNWVhZjQ3N2YxODkzMjU2YmMyNDg4NDRk
Li5lODhiMmMyMWZhNzE3Yzc3ZDIzMDJjYjUxOGJhNGFkM2VkZTI1NzRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1Nyw2ICsxNTcs
OSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVwbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
VHJhY2tQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNz
YWdlc1JlcGxpZXMuaApAQCAtMjM5LDYgKzI0MiwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2Vz
UgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU291
cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlVGV4
dFRyYWNrUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVWaWRlb1RyYWNrUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JQcm94
eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCAzNzcwMWIwMWMzYzFhMmMzMDBlMWRkMmQ3MmU2Yjg1MjM3ZjQyNGI1
Li42ODE0ODU1ZmY5ZDIzYWYwYTc3ZTVmZGE2ZGZkMmZkNTUwOTc2ZjY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0yNDIsNiArMjQyLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9p
b3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyUHJveHkgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgXAorCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9UcmFja1Byb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eSBc
CiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5IFwKIAlHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUxlZ2FjeUNETVByb3h5IFwKQEAgLTI1MCw2ICsyNTEsOCBAQCBNRVNTQUdF
X1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyIFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkgXAogCUdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkgXAorCUdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlVGV4dFRyYWNrUHJveHkgXAorCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFj
a1Byb3h5IFwKIAlXZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
IFwKIAlXZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzIFwKICMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9Jbml0aWFsaXphdGlvblNlZ21lbnRJbmZvLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvSW5pdGlhbGl6YXRpb25TZWdtZW50SW5m
by5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFkMzQ4ZWZkMWUzN2I3MDY3ZTI4ZWViYWU2NmE5MmUyMGEwM2U1ZDIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvSW5pdGlh
bGl6YXRpb25TZWdtZW50SW5mby5oCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCisKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1
ZGUgIlJlbW90ZU1lZGlhRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgorI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0cnVjdCBJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvIHsKKyAgICBNZWRpYVRpbWUg
ZHVyYXRpb247CisKKyAgICBzdHJ1Y3QgVHJhY2tJbmZvcm1hdGlvbiB7CisgICAgICAgIE1lZGlh
RGVzY3JpcHRpb25JbmZvIGRlc2NyaXB0aW9uOworICAgICAgICBUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXI7CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4K
KyAgICAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICAgICAgewor
ICAgICAgICAgICAgZW5jb2RlciA8PCBkZXNjcmlwdGlvbjsKKyAgICAgICAgICAgIGVuY29kZXIg
PDwgaWRlbnRpZmllcjsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNv
ZGVyPgorICAgICAgICBzdGF0aWMgT3B0aW9uYWw8VHJhY2tJbmZvcm1hdGlvbj4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIE9wdGlvbmFsPE1lZGlhRGVz
Y3JpcHRpb25JbmZvPiBtZWRpYURlc2NyaXB0aW9uOworICAgICAgICAgICAgZGVjb2RlciA+PiBt
ZWRpYURlc2NyaXB0aW9uOworICAgICAgICAgICAgaWYgKCFtZWRpYURlc2NyaXB0aW9uKQorICAg
ICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIE9wdGlvbmFs
PFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI+IGlkZW50aWZpZXI7CisgICAgICAgICAgICBk
ZWNvZGVyID4+IGlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWlkZW50aWZpZXIpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICAgICAgcmV0dXJuIHt7
CisgICAgICAgICAgICAgICAgV1RGTW92ZSgqbWVkaWFEZXNjcmlwdGlvbiksCisgICAgICAgICAg
ICAgICAgV1RGTW92ZSgqaWRlbnRpZmllcikKKyAgICAgICAgICAgIH19OworICAgICAgICB9Cisg
ICAgfTsKKworICAgIFZlY3RvcjxUcmFja0luZm9ybWF0aW9uPiBhdWRpb1RyYWNrczsKKyAgICBW
ZWN0b3I8VHJhY2tJbmZvcm1hdGlvbj4gdmlkZW9UcmFja3M7CisgICAgVmVjdG9yPFRyYWNrSW5m
b3JtYXRpb24+IHRleHRUcmFja3M7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgorICAg
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNv
ZGVyIDw8IGR1cmF0aW9uOworICAgICAgICBlbmNvZGVyIDw8IGF1ZGlvVHJhY2tzOworICAgICAg
ICBlbmNvZGVyIDw8IHZpZGVvVHJhY2tzOworICAgICAgICBlbmNvZGVyIDw8IHRleHRUcmFja3M7
CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgc3RhdGljIE9wdGlv
bmFsPEluaXRpYWxpemF0aW9uU2VnbWVudEluZm8+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgT3B0aW9uYWw8TWVkaWFUaW1lPiBkdXJhdGlvbjsKKyAgICAgICAgZGVj
b2RlciA+PiBkdXJhdGlvbjsKKyAgICAgICAgaWYgKCFkdXJhdGlvbikKKyAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8VmVjdG9yPFRyYWNrSW5mb3Jt
YXRpb24+PiBhdWRpb1RyYWNrczsKKyAgICAgICAgZGVjb2RlciA+PiBhdWRpb1RyYWNrczsKKyAg
ICAgICAgaWYgKCFhdWRpb1RyYWNrcykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICAgICAgT3B0aW9uYWw8VmVjdG9yPFRyYWNrSW5mb3JtYXRpb24+PiB2aWRlb1RyYWNr
czsKKyAgICAgICAgZGVjb2RlciA+PiB2aWRlb1RyYWNrczsKKyAgICAgICAgaWYgKCF2aWRlb1Ry
YWNrcykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9u
YWw8VmVjdG9yPFRyYWNrSW5mb3JtYXRpb24+PiB0ZXh0VHJhY2tzOworICAgICAgICBkZWNvZGVy
ID4+IHRleHRUcmFja3M7CisgICAgICAgIGlmICghdGV4dFRyYWNrcykKKyAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHt7CisgICAgICAgICAgICBXVEZN
b3ZlKCpkdXJhdGlvbiksCisgICAgICAgICAgICBXVEZNb3ZlKCphdWRpb1RyYWNrcyksCisgICAg
ICAgICAgICBXVEZNb3ZlKCp2aWRlb1RyYWNrcyksCisgICAgICAgICAgICBXVEZNb3ZlKCp0ZXh0
VHJhY2tzKQorICAgICAgICB9fTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Ry
YWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
VHJhY2tQcm94eS5jcHAKaW5kZXggYTJhY2YwNWQ0MTRlMTc1YzdkMTJhYzUzNTk4ZDgzOWY2MzYx
MmFjYS4uOTNlMmYyN2Q4MmU4ZjkyNGY3ODVjNTBhNjUwNTA1YWRiNmEzNjcyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQ
cm94eS5jcHAKQEAgLTI5LDcgKzI5LDEwIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
KyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllclByb3h5LmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbi5oIgogCkBAIC0zNywxNCArNDAsMjAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZW1vdGVBdWRpb1RyYWNrUHJveHk6OlJlbW90ZUF1
ZGlvVHJhY2tQcm94eShSZW1vdGVNZWRpYVBsYXllclByb3h5JiBwbGF5ZXIsIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uLCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQotICAgIDogbV9wbGF5ZXIo
cGxheWVyKQorUmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkoR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQ
cml2YXRlLCBNZWRpYVBsYXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyKQorICAg
IDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
V1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkK
KyAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikKIHsK
ICAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwotICAgIG1fd2ViUHJvY2Vzc0Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkUmVt
b3RlQXVkaW9UcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fcGxheWVyLmlk
ZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZl
ck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9UcmFja1Byb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCAqdGhpcyk7
CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZFJlbW90ZUF1ZGlvVHJhY2sobV9pZGVudGlm
aWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7Cit9CisKK1Jl
bW90ZUF1ZGlvVHJhY2tQcm94eTo6flJlbW90ZUF1ZGlvVHJhY2tQcm94eSgpCit7CisgICAgbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKQEAg
LTY0LDEyICs3MywxMiBAQCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVB
dWRpb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQogCiB2b2lkIFJlbW90ZUF1ZGlvVHJhY2tQ
cm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3RlQXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwg
bV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3Rl
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlv
bigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvVHJh
Y2tQcm94eTo6d2lsbFJlbW92ZSgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVSZW1vdGVBdWRpb1Ry
YWNrKG1faWRlbnRpZmllciksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjplbmFibGVkQ2hh
bmdlZChib29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvVHJhY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvVHJhY2tQcm94eS5oCmluZGV4IGQ5NjY0M2M1M2I5ZTNiNTcyZmIxOWZhNTM0OTM3
ZWFiZGI0NmJmMTMuLmNkMzE2OTg0ZjYzZWU5MzY4YzI2ZTU3ZDc3ODAwYThlMTgyODUyOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNr
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9U
cmFja1Byb3h5LmgKQEAgLTI4LDM0ICsyOCwzOSBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9UcmFja1ByaXZhdGUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVHJhY2tCYXNlLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2Ug
SVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOwogfQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIHN0cnVjdCBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwotY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTsKIAogY2xhc3MgUmVtb3RlQXVkaW9UcmFja1Byb3h5IGZpbmFsCiAgICAgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3RlQXVkaW9UcmFja1Byb3h5LCBXVEY6OkRlc3RydWN0aW9u
VGhyZWFkOjpNYWluPgotICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZUNs
aWVudCB7CisgICAgLCBwcml2YXRlIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50Cisg
ICAgLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFJlbW90ZUF1ZGlvVHJhY2tQcm94eT4gY3JlYXRlKFJlbW90ZU1lZGlhUGxheWVyUHJveHkm
IHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiB0
cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJlZjxSZW1vdGVBdWRpb1RyYWNrUHJveHk+IGNyZWF0
ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlJiB0cmFja1ByaXZhdGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBtZWRp
YVBsYXllcklkZW50aWZpZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVBdWRpb1RyYWNrUHJveHkocGxheWVyLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rp
b24pLCB0cmFja1ByaXZhdGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3Rl
QXVkaW9UcmFja1Byb3h5KGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50aWZpZXIsIHRyYWNr
UHJpdmF0ZSwgbWVkaWFQbGF5ZXJJZGVudGlmaWVyKSk7CiAgICAgfQogCi0gICAgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlm
aWVyOyB9OworICAgIHZpcnR1YWwgflJlbW90ZUF1ZGlvVHJhY2tQcm94eSgpOwogCi0gICAgdm9p
ZCBzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3RyYWNrUHJpdmF0ZS0+c2V0RW5hYmxlZChl
bmFibGVkKTsgfQorICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKIAogcHJpdmF0ZToKLSAgICBSZW1vdGVB
dWRpb1RyYWNrUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYsIFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlJik7CisgICAgUmVtb3RlQXVkaW9UcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZSYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllcik7CiAKICAgICAvLyBBdWRp
b1RyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgZmluYWw7
CkBAIC02NiwxMyArNzEsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChj
b25zdCBBdG9tU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAK
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIGZpbmFsOworICAgIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV90cmFja1By
aXZhdGUtPnNldEVuYWJsZWQoZW5hYmxlZCk7IH0KKwogICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24oKTsKICAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFu
Z2VkKCk7CiAKLSAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5JiBtX3BsYXllcjsKKyAgICBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgUmVmPElQQzo6Q29u
bmVjdGlvbj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbjsKICAgICBSZWY8V2ViQ29yZTo6QXVkaW9U
cmFja1ByaXZhdGU+IG1fdHJhY2tQcml2YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciBtX21lZGlhUGxheWVySWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvVHJhY2tQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1RyYWNrUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEwNTRmODNi
YjI4MDc2NzUyOWJkOGIzMjVlZmExZmYxZWRkZTM1NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1RyYWNrUHJveHkgTm90
UmVmQ291bnRlZCB7CisgICAgU2V0RW5hYmxlZChib29sIGVuYWJsZWQpCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhRGVz
Y3JpcHRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYURl
c2NyaXB0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA2Y2RmNjdmYjczMjFkNWUwMjJmNzNkMWU5ZDMzY2Ux
ZTlmNTg3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYURlc2NyaXB0aW9uLmgKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKKworI2luY2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IE1lZGlhRGVz
Y3JpcHRpb25JbmZvIHsKKyAgICBNZWRpYURlc2NyaXB0aW9uSW5mbyhjb25zdCBBdG9tU3RyaW5n
JiBjb2RlYywgYm9vbCBpc1ZpZGVvLCBib29sIGlzQXVkaW8sIGJvb2wgaXNUZXh0KQorICAgICAg
ICA6IG1fY29kZWMoY29kZWMpCisgICAgICAgICwgbV9pc1ZpZGVvKGlzVmlkZW8pCisgICAgICAg
ICwgbV9pc0F1ZGlvKGlzQXVkaW8pCisgICAgICAgICwgbV9pc1RleHQoaXNUZXh0KQorICAgIHsK
KyAgICB9CisKKyAgICBNZWRpYURlc2NyaXB0aW9uSW5mbyhjb25zdCBXZWJDb3JlOjpNZWRpYURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKKyAgICAgICAgOiBtX2NvZGVjKGRlc2NyaXB0aW9uLmNv
ZGVjKCkpCisgICAgICAgICwgbV9pc1ZpZGVvKGRlc2NyaXB0aW9uLmlzVmlkZW8oKSkKKyAgICAg
ICAgLCBtX2lzQXVkaW8oZGVzY3JpcHRpb24uaXNBdWRpbygpKQorICAgICAgICAsIG1faXNUZXh0
KGRlc2NyaXB0aW9uLmlzVGV4dCgpKQorICAgIHsKKyAgICB9CisKKyAgICBBdG9tU3RyaW5nIG1f
Y29kZWM7CisgICAgYm9vbCBtX2lzVmlkZW8geyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0F1ZGlv
IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNUZXh0IHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbV9jb2RlYzsKKyAgICAgICAgZW5jb2RlciA8PCBt
X2lzVmlkZW87CisgICAgICAgIGVuY29kZXIgPDwgbV9pc0F1ZGlvOworICAgICAgICBlbmNvZGVy
IDw8IG1faXNUZXh0OworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAg
IHN0YXRpYyBPcHRpb25hbDxNZWRpYURlc2NyaXB0aW9uSW5mbz4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCisgICAgeworICAgICAgICBPcHRpb25hbDxTdHJpbmc+IGNvZGVjOworICAgICAgICBk
ZWNvZGVyID4+IGNvZGVjOworICAgICAgICBpZiAoIWNvZGVjKQorICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxib29sPiBpc1ZpZGVvOworICAgICAg
ICBkZWNvZGVyID4+IGlzVmlkZW87CisgICAgICAgIGlmICghaXNWaWRlbykKKyAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNBdWRpbzsK
KyAgICAgICAgZGVjb2RlciA+PiBpc0F1ZGlvOworICAgICAgICBpZiAoIWlzQXVkaW8pCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlz
VGV4dDsKKyAgICAgICAgZGVjb2RlciA+PiBpc1RleHQ7CisgICAgICAgIGlmICghaXNUZXh0KQor
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4ge3sKKyAg
ICAgICAgICAgIFdURk1vdmUoKmNvZGVjKSwKKyAgICAgICAgICAgICppc1ZpZGVvLAorICAgICAg
ICAgICAgKmlzQXVkaW8sCisgICAgICAgICAgICAqaXNUZXh0CisgICAgICAgIH19OworICAgIH0K
K307CisKK2NsYXNzIFJlbW90ZU1lZGlhRGVzY3JpcHRpb24gOiBwdWJsaWMgV2ViQ29yZTo6TWVk
aWFEZXNjcmlwdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVNZWRpYURlc2Ny
aXB0aW9uPiBjcmVhdGUoY29uc3QgTWVkaWFEZXNjcmlwdGlvbkluZm8mIGRlc2NyaXB0aW9uSW5m
bykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhRGVzY3Jp
cHRpb24oZGVzY3JpcHRpb25JbmZvKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlTWVk
aWFEZXNjcmlwdGlvbigpID0gZGVmYXVsdDsKKworICAgIEF0b21TdHJpbmcgY29kZWMoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2NvZGVjOyB9CisgICAgYm9vbCBpc1ZpZGVvKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pc1ZpZGVvOyB9CisgICAgYm9vbCBpc0F1ZGlvKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9pc0F1ZGlvOyB9CisgICAgYm9vbCBpc1RleHQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2lzVGV4dDt9CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTWVkaWFEZXNjcmlwdGlvbihj
b25zdCBNZWRpYURlc2NyaXB0aW9uSW5mbyYgZGVzY3JpcHRpb25JbmZvKQorICAgICAgICA6IG1f
Y29kZWMoZGVzY3JpcHRpb25JbmZvLm1fY29kZWMpCisgICAgICAgICwgbV9pc1ZpZGVvKGRlc2Ny
aXB0aW9uSW5mby5tX2lzVmlkZW8pCisgICAgICAgICwgbV9pc0F1ZGlvKGRlc2NyaXB0aW9uSW5m
by5tX2lzQXVkaW8pCisgICAgICAgICwgbV9pc1RleHQoZGVzY3JpcHRpb25JbmZvLm1faXNUZXh0
KQorICAgIHsKKyAgICB9CisKKyAgICBBdG9tU3RyaW5nIG1fY29kZWM7CisgICAgYm9vbCBtX2lz
VmlkZW8geyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0F1ZGlvIHsgZmFsc2UgfTsKKyAgICBib29s
IG1faXNUZXh0IHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCmluZGV4IDVhYjFiNmZhNjdmMWZmMTExNzNjODdlOTc1OGZlYjk3OWMyOGIzM2Iu
LmMzYjA3MzRhNGVmOThkMmE3ZTczOTBlYTk4MDNlM2UwMzZiN2VjNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZVRleHRUcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVt
b3RlVmlkZW9UcmFja1Byb3h5LmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9MYXlvdXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgpAQCAtMTM0
LDcgKzEzNiw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZChVUkwmJiB1cmws
IE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4mCiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZE1lZGlhU291cmNlKFVSTCYm
IHVybCwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBSZW1vdGVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgbWVkaWFTb3VyY2VJZGVudGlmaWVyKQogewotICAgIG1fbWVkaWFT
b3VyY2VQcm94eSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFTb3VyY2VQcm94eShtZWRpYVNv
dXJjZUlkZW50aWZpZXIsIG1fbWFuYWdlci5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkpKTsK
KyAgICBtX21lZGlhU291cmNlUHJveHkgPSBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhU291cmNl
UHJveHkobV9tYW5hZ2VyLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSwgbWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLCAqdGhpcykpOwogICAgIG1fcGxheWVyLT5sb2FkKHVybCwgY29udGVudFR5cGUs
IG1fbWVkaWFTb3VyY2VQcm94eS5nZXQoKSk7CiB9CiAjZW5kaWYKQEAgLTQ1Nyw2OSArNDU5LDg0
IEBAIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5C
ZUFjY2VsZXJhdGVkKCkKICAgICByZXR1cm4gbV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkOwog
fQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkQXVkaW9U
cmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCitUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmFkZFJlbW90ZUF1ZGlvVHJhY2tQ
cm94eShXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiB7CiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgdHJhY2suc2V0TG9nZ2VyKG1lZGlhUGxheWVyTG9nZ2VyKCksIG1l
ZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKTsKICNlbmRpZgotICAgIG1fYXVkaW9UcmFja3Muc2V0
KCZ0cmFjaywgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjpjcmVhdGUoKnRoaXMsIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY29w
eVJlZigpLCB0cmFjaykpOwotfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlh
UGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYgdHJh
Y2spCi17Ci0gICAgQVNTRVJUKG1fYXVkaW9UcmFja3MuY29udGFpbnMoJnRyYWNrKSk7Ci0gICAg
bV9hdWRpb1RyYWNrcy5yZW1vdmUoJnRyYWNrKTsKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIG1fYXVkaW9UcmFja3Mu
c2V0KCZ0cmFjaywgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjpjcmVhdGUobV9tYW5hZ2VyLmdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSwgaWRlbnRpZmllciwgdHJhY2ssIG1faWQpKTsKKyAgICBy
ZXR1cm4gaWRlbnRpZmllcjsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjphdWRp
b1RyYWNrU2V0RW5hYmxlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGJv
b2wgZW5hYmxlZCkKK1RyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6YWRkUmVtb3RlVmlkZW9UcmFja1Byb3h5KFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2
YXRlJiB0cmFjaykKIHsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrcy52YWx1
ZXMoKSkgewotICAgICAgICBpZiAodHJhY2stPmlkZW50aWZpZXIoKSA9PSB0cmFja0lEKSB7Ci0g
ICAgICAgICAgICB0cmFjay0+c2V0RW5hYmxlZChlbmFibGVkKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgIH0KKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICB0cmFj
ay5zZXRMb2dnZXIobWVkaWFQbGF5ZXJMb2dnZXIoKSwgbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVy
KCkpOworI2VuZGlmCiAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBhdXRvIGlkZW50
aWZpZXIgPSBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIG1f
dmlkZW9UcmFja3Muc2V0KCZ0cmFjaywgUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpjcmVhdGUobV9t
YW5hZ2VyLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSwgaWRlbnRpZmllciwgdHJhY2ssIG1f
aWQpKTsKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGUmIHRyYWNrKQorVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjphZGRSZW1vdGVUZXh0VHJhY2tQcm94eShXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJiB0cmFjaykKIHsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB0cmFj
ay5zZXRMb2dnZXIobWVkaWFQbGF5ZXJMb2dnZXIoKSwgbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVy
KCkpOwogI2VuZGlmCi0gICAgbV92aWRlb1RyYWNrcy5zZXQoJnRyYWNrLCBSZW1vdGVWaWRlb1Ry
YWNrUHJveHk6OmNyZWF0ZSgqdGhpcywgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi5jb3B5UmVmKCksIHRyYWNrKSk7CisKKyAg
ICBhdXRvIGlkZW50aWZpZXIgPSBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpOworICAgIG1fdGV4dFRyYWNrcy5zZXQoJnRyYWNrLCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6
Y3JlYXRlKG1fbWFuYWdlci5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCksIGlkZW50aWZpZXIs
IHRyYWNrLCBtX2lkKSk7CisgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLXZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNvcmU6
OlZpZGVvVHJhY2tQcml2YXRlJiB0cmFjaykKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiB0
cmFjaykKIHsKLSAgICBBU1NFUlQobV92aWRlb1RyYWNrcy5jb250YWlucygmdHJhY2spKTsKLSAg
ICBtX3ZpZGVvVHJhY2tzLnJlbW92ZSgmdHJhY2spOworICAgIGFkZFJlbW90ZUF1ZGlvVHJhY2tQ
cm94eSh0cmFjayk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9UcmFj
a1NldFNlbGVjdGVkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBz
ZWxlY3RlZCkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRSZW1v
dmVBdWRpb1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjaykKIHsKLSAgICBm
b3IgKGF1dG8mIHRyYWNrIDogbV92aWRlb1RyYWNrcy52YWx1ZXMoKSkgewotICAgICAgICBpZiAo
dHJhY2stPmlkZW50aWZpZXIoKSA9PSB0cmFja0lEKSB7Ci0gICAgICAgICAgICB0cmFjay0+c2V0
U2VsZWN0ZWQoc2VsZWN0ZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
fQorICAgIEFTU0VSVChtX2F1ZGlvVHJhY2tzLmNvbnRhaW5zKCZ0cmFjaykpOworICAgIGlmICgh
bV9hdWRpb1RyYWNrcy5jb250YWlucygmdHJhY2spKQorICAgICAgICByZXR1cm47CiAKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBhdXRvIGF1ZGlvVHJhY2sgPSBtX2F1ZGlvVHJhY2tz
LmdldCgmdHJhY2spOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhhdWRpb1Ry
YWNrLT5pZGVudGlmaWVyKCkpLCBtX2lkKTsKKyAgICBtX2F1ZGlvVHJhY2tzLnJlbW92ZSgmdHJh
Y2spOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRk
VmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2spCit7CisgICAgYWRk
UmVtb3RlVmlkZW9UcmFja1Byb3h5KHRyYWNrKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFj
a1ByaXZhdGUmIHRyYWNrKQoreworICAgIEFTU0VSVChtX3ZpZGVvVHJhY2tzLmNvbnRhaW5zKCZ0
cmFjaykpOworICAgIGlmICghbV92aWRlb1RyYWNrcy5jb250YWlucygmdHJhY2spKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIHZpZGVvVHJhY2sgPSBtX3ZpZGVvVHJhY2tzLmdldCgmdHJh
Y2spOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3ZlUmVtb3RlVmlkZW9UcmFjayh2aWRlb1RyYWNrLT5pZGVu
dGlmaWVyKCkpLCBtX2lkKTsKKyAgICBtX3ZpZGVvVHJhY2tzLnJlbW92ZSgmdHJhY2spOwogfQog
CiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNr
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewotI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAotICAgIHRyYWNrLnNldExvZ2dlcihtZWRpYVBsYXllckxvZ2dlcigpLCBt
ZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSk7Ci0jZW5kaWYKLSAgICBtX3RleHRUcmFja3Muc2V0
KCZ0cmFjaywgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmNyZWF0ZSgqdGhpcywgVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi5jb3B5
UmVmKCksIHRyYWNrKSk7CisgICAgYWRkUmVtb3RlVGV4dFRyYWNrUHJveHkodHJhY2spOwogfQog
CiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRy
YWNrKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewogICAgIEFTU0VS
VChtX3RleHRUcmFja3MuY29udGFpbnMoJnRyYWNrKSk7CisgICAgaWYgKCFtX3RleHRUcmFja3Mu
Y29udGFpbnMoJnRyYWNrKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB0ZXh0VHJhY2sg
PSBtX3RleHRUcmFja3MuZ2V0KCZ0cmFjayk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVSZW1vdGVUZXh0
VHJhY2sodGV4dFRyYWNrLT5pZGVudGlmaWVyKCkpLCBtX2lkKTsKICAgICBtX3RleHRUcmFja3Mu
cmVtb3ZlKCZ0cmFjayk7CiB9CiAKQEAgLTUyOCwxOCArNTQ1LDYgQEAgdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5Ojp0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3Qg
SW50UmVjdCYKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6OnRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0
cmFja0lELCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCi17Ci0g
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdGV4dFRyYWNrcy52YWx1ZXMoKSkgewotICAgICAgICBp
ZiAodHJhY2stPmlkZW50aWZpZXIoKSA9PSB0cmFja0lEKSB7Ci0gICAgICAgICAgICB0cmFjay0+
c2V0TW9kZShtb2RlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQoKQogewogICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVz
b3VyY2VOb3RTdXBwb3J0ZWQoKSwgbV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAyMmUyYzgwNzQ4
ZjlkOGU3NDZjYzkzNGRhYzQxNzIzNDRkMjFhOTE3Li5iODI0NzcxM2FkYWYxYzQ1M2VhNGM2NTgx
ZGFkNDNiYjFlMGMyMDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTc0LDggKzc0LDggQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVpbnQzMl90Owog
Y2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKLWNsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJQcm94eTsKIGNsYXNzIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTsKK2NsYXNzIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OwogY2xhc3MgUmVtb3RlVGV4dFRyYWNrUHJveHk7CiBjbGFzcyBSZW1vdGVWaWRlb1RyYWNrUHJv
eHk7CkBAIC0xNDMsMTAgKzE0Myw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZERpc2Fi
bGVTbGVlcChib29sKTsKICAgICB2b2lkIHNldFJhdGUoZG91YmxlKTsKIAotICAgIHZvaWQgYXVk
aW9UcmFja1NldEVuYWJsZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7Ci0g
ICAgdm9pZCB2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgYm9vbCk7Ci0gICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUpOwotCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwogI2VuZGlmCkBA
IC0xOTQsNiArMTkwLDEwIEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVBs
YXllcj4gbWVkaWFQbGF5ZXIoKSB7IHJldHVybiBtX3BsYXllcjsgfQogCisgICAgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBhZGRSZW1vdGVBdWRpb1RyYWNrUHJveHkoV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGUmKTsKKyAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGFkZFJl
bW90ZVZpZGVvVHJhY2tQcm94eShXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpOworICAgIFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgYWRkUmVtb3RlVGV4dFRyYWNrUHJveHkoV2ViQ29y
ZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOworCiBwcml2YXRlOgogICAgIC8vIE1lZGlhUGxh
eWVyQ2xpZW50CiAgICAgdm9pZCBtZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKSBmaW5h
bDsKQEAgLTIxMyw2ICsyMTMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRS
ZW1vdmVBdWRpb1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAg
dm9pZCBtZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGUmKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayhXZWJD
b3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRB
ZGRUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAg
IHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSYpIGZpbmFsOwogCiAgICAgLy8gTm90IGltcGxlbWVudGVkCiAgICAgdm9pZCBt
ZWRpYVBsYXllclJlc291cmNlTm90U3VwcG9ydGVkKCkgZmluYWw7CkBAIC0yNDksOSArMjUxLDYg
QEAgcHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hl
KCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVE
aXJlY3RvcnkoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0
VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQg
bWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpIGZpbmFsOwotCiAgICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0No
YW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKEFWRl9D
QVBUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZTNmZGExMGVm
MmRiYzMwYjhkYzMxOTJlNDA0YTJmMThmNzQ4MGI0Yy4uMDhlYTE1Y2M2NmIyZWE5ZDA3MGRhNmJi
NzFmODhiNzQ1MWNmMDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTY1LDEwICs2NSw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVm
Q291bnRlZCB7CiAKICAgICBTZXRCdWZmZXJpbmdQb2xpY3koV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OkJ1ZmZlcmluZ1BvbGljeSBwb2xpY3kpCiAKLSAgICBBdWRpb1RyYWNrU2V0RW5hYmxlZChXZWJL
aXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQot
ICAgIFZpZGVvVHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQotICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0
OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJD
b3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCi0KICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXpl
LCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcApp
bmRleCBmNDIwZmQ3Njg5MTc5MGQ2ZTdhZmM5NTIyNzIwNjE0YmY4MjZlOWNhLi5hZjdiZTUxMmVh
YzJkMWFlNjU0YWUwOWNiNTJkOTRiMzliMmM2MDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwCkBAIC0z
OSw5ICszOSwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKLVJlbW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNlUHJveHkoUmVt
b3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgOiBtX2lkZW50aWZpZXIoaWRlbnRp
ZmllcikKLSAgICAsIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKQorUmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6UmVtb3RlTWVkaWFTb3VyY2VQcm94eShHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVt
b3RlTWVkaWFQbGF5ZXJQcm94eSkKKyAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAg
LCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSkpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1h
cCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgKnRoaXMpOwog
fQpAQCAtOTMsMTMgKzk0LDE2IEBAIHZvaWQgUmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6ZmFpbGVk
VG9DcmVhdGVSZW5kZXJlcihSZW5kZXJlclR5cGUpCiAKIHZvaWQgUmVtb3RlTWVkaWFTb3VyY2VQ
cm94eTo6YWRkU291cmNlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiBjb250ZW50
VHlwZSwgQWRkU291cmNlQnVmZmVyQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKKyAgICBpZiAoIW1f
cmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVmUHRyPFNv
dXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGU7CiAgICAgTWVkaWFTb3VyY2VQ
cml2YXRlOjpBZGRTdGF0dXMgc3RhdHVzID0gbV9wcml2YXRlLT5hZGRTb3VyY2VCdWZmZXIoY29u
dGVudFR5cGUsIHNvdXJjZUJ1ZmZlclByaXZhdGUpOwogCiAgICAgT3B0aW9uYWw8UmVtb3RlU291
cmNlQnVmZmVySWRlbnRpZmllcj4gcmVtb3RlU291cmNlSWRlbnRpZmllcjsKICAgICBpZiAoc3Rh
dHVzID09IE1lZGlhU291cmNlUHJpdmF0ZTo6QWRkU3RhdHVzOjpPaykgewogICAgICAgICBhdXRv
IGlkZW50aWZpZXIgPSBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwot
ICAgICAgICBhdXRvIHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5ID0gUmVtb3RlU291cmNlQnVmZmVy
UHJveHk6OmNyZWF0ZShpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIHNvdXJj
ZUJ1ZmZlclByaXZhdGUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGF1dG8gcmVtb3RlU291
cmNlQnVmZmVyUHJveHkgPSBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6Y3JlYXRlKG1fY29ubmVj
dGlvblRvV2ViUHJvY2VzcywgaWRlbnRpZmllciwgc291cmNlQnVmZmVyUHJpdmF0ZS5yZWxlYXNl
Tm9uTnVsbCgpLCAqbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KTsKICAgICAgICAgbV9zb3VyY2VC
dWZmZXJzLmFwcGVuZChXVEZNb3ZlKHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KSk7CiAgICAgICAg
IHJlbW90ZVNvdXJjZUlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5o
CmluZGV4IDZiZmJmYWZiMjA0NDc4MzBkNzMwYzM4YzU1ZDkxNjAyMmMyM2QzMTYuLjU5NjhjN2Ji
ZDE4OWNkNDc5ZWY0YWVhYjRkNDQ5OTUzM2ZkM2Q2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuaApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Lmg+
CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVj
dGlvbjsKQEAgLTUwLDEzICs1MSwxNCBAQCBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7CiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNz
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk7CiAKIGNsYXNzIFJlbW90ZU1lZGlhU291cmNlUHJveHkg
ZmluYWwKICAgICA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQKICAg
ICAsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIFJlbW90ZU1lZGlhU291cmNlUHJveHkoUmVtb3RlTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgUmVtb3Rl
TWVkaWFTb3VyY2VQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVtb3RlTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Jik7CiAgICAgdmlydHVhbCB+
UmVtb3RlTWVkaWFTb3VyY2VQcm94eSgpOwogCiAgICAgLy8gTWVkaWFTb3VyY2VQcml2YXRlQ2xp
ZW50IG92ZXJyaWRlcwpAQCAtODAsOSArODIsMTEgQEAgcHJpdmF0ZToKICAgICB1c2luZyBBZGRT
b3VyY2VCdWZmZXJDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVk
aWFTb3VyY2VQcml2YXRlOjpBZGRTdGF0dXMsIE9wdGlvbmFsPFJlbW90ZVNvdXJjZUJ1ZmZlcklk
ZW50aWZpZXI+IHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpPjsKICAgICB2b2lkIGFkZFNv
dXJjZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIEFkZFNvdXJjZUJ1ZmZlckNh
bGxiYWNrJiYpOwogCi0gICAgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M7CisgICAgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgV2Vha1B0
cjxSZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7CisKICAg
ICBWZWN0b3I8UmVmUHRyPFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Pj4gbV9zb3VyY2VCdWZmZXJz
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKaW5kZXggMjQ1Y2Y0MGRmYzZmYzcyNDE3NDk5Yzk5
NmVlYTk1ZjBhM2E4ZDY5YS4uNjU3NmRiYjdiMWNhNWI5NDY1NzRlNWRlNDk1MmM2MWNiMzUyNzVj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlU291cmNlQnVmZmVyUHJveHkuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJD
b25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkluaXRp
YWxpemF0aW9uU2VnbWVudEluZm8uaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5
LmgiCiAjaW5jbHVkZSAiUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTM4LDE2ICs0MCwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZW1vdGVTb3VyY2VCdWZmZXJQ
cm94eT4gUmVtb3RlU291cmNlQnVmZmVyUHJveHk6OmNyZWF0ZShSZW1vdGVTb3VyY2VCdWZmZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclBy
aXZhdGUpCitSZWY8UmVtb3RlU291cmNlQnVmZmVyUHJveHk+IFJlbW90ZVNvdXJjZUJ1ZmZlclBy
b3h5OjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJv
Y2VzcywgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8U291cmNl
QnVmZmVyUHJpdmF0ZT4mJiBzb3VyY2VCdWZmZXJQcml2YXRlLCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5JiByZW1vdGVNZWRpYVBsYXllclByb3h5KQogewotICAgIGF1dG8gcmVtb3RlU291cmNlQnVm
ZmVyUHJveHkgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KGlkZW50aWZp
ZXIsIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFdURk1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZSkp
KTsKKyAgICBhdXRvIHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5ID0gYWRvcHRSZWYoKm5ldyBSZW1v
dGVTb3VyY2VCdWZmZXJQcm94eShjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCBX
VEZNb3ZlKHNvdXJjZUJ1ZmZlclByaXZhdGUpLCByZW1vdGVNZWRpYVBsYXllclByb3h5KSk7CiAg
ICAgcmV0dXJuIHJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OwogfQogCi1SZW1vdGVTb3VyY2VCdWZm
ZXJQcm94eTo6UmVtb3RlU291cmNlQnVmZmVyUHJveHkoUmVtb3RlU291cmNlQnVmZmVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLCBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4mJiBzb3VyY2VCdWZmZXJQcml2YXRl
KQotICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKK1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5
OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZhdGUsIFJlbW90
ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCisgICAgOiBtX2Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQogICAgICwgbV9zb3VyY2VCdWZmZXJQcml2YXRlKFdURk1vdmUoc291
cmNlQnVmZmVyUHJpdmF0ZSkpCisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdl
YWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlU291cmNlQnVmZmVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlm
aWVyLnRvVUludDY0KCksICp0aGlzKTsKICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPnNldENs
aWVudCh0aGlzKTsKQEAgLTU4LDkgKzYxLDI5IEBAIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Ojp+
UmVtb3RlU291cmNlQnVmZmVyUHJveHkoKQogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90
ZVNvdXJjZUJ1ZmZlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50
b1VJbnQ2NCgpKTsKIH0KIAotdm9pZCBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6
YXRpb25TZWdtZW50JikKK3ZvaWQgUmVtb3RlU291cmNlQnVmZmVyUHJveHk6OnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0
aW9uU2VnbWVudCYgc2VnbWVudCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICgh
bV9yZW1vdGVNZWRpYVBsYXllclByb3h5KQorICAgICAgICByZXR1cm47CisKKyAgICBJbml0aWFs
aXphdGlvblNlZ21lbnRJbmZvIHNlZ21lbnRJbmZvOworICAgIHNlZ21lbnRJbmZvLmR1cmF0aW9u
ID0gc2VnbWVudC5kdXJhdGlvbjsKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2Vn
bWVudC5hdWRpb1RyYWNrcykgeworICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBtX3JlbW90ZU1l
ZGlhUGxheWVyUHJveHktPmFkZFJlbW90ZUF1ZGlvVHJhY2tQcm94eSgqYXVkaW9UcmFja0luZm8u
dHJhY2spOworICAgICAgICBzZWdtZW50SW5mby5hdWRpb1RyYWNrcy5hcHBlbmQoeyBNZWRpYURl
c2NyaXB0aW9uSW5mbygqYXVkaW9UcmFja0luZm8uZGVzY3JpcHRpb24pLCBpZGVudGlmaWVyIH0p
OworICAgIH0KKworICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVv
VHJhY2tzKSB7CisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IG1fcmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS0+YWRkUmVtb3RlVmlkZW9UcmFja1Byb3h5KCp2aWRlb1RyYWNrSW5mby50cmFjayk7Cisg
ICAgICAgIHNlZ21lbnRJbmZvLnZpZGVvVHJhY2tzLmFwcGVuZCh7IE1lZGlhRGVzY3JpcHRpb25J
bmZvKCp2aWRlb1RyYWNrSW5mby5kZXNjcmlwdGlvbiksIGlkZW50aWZpZXIgfSk7CisgICAgfQor
CisgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Cisg
ICAgICAgIGF1dG8gaWRlbnRpZmllciA9IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eS0+YWRkUmVt
b3RlVGV4dFRyYWNrUHJveHkoKnRleHRUcmFja0luZm8udHJhY2spOworICAgICAgICBzZWdtZW50
SW5mby50ZXh0VHJhY2tzLmFwcGVuZCh7IE1lZGlhRGVzY3JpcHRpb25JbmZvKCp0ZXh0VHJhY2tJ
bmZvLmRlc2NyaXB0aW9uKSwgaWRlbnRpZmllciB9KTsKKyAgICB9CisKKyAgICBtX2Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGU6OlNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KHNlZ21lbnRJbmZvKSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eTo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoV2ViQ29y
ZTo6TWVkaWFTYW1wbGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaAppbmRleCAzOTBjMGNlMWMyN2I2MDhkYzk3
YWFmYTUxODYzNjE4ODBjM2FmNGQzLi42YjhiZjhiNTdjYzBjOGQ5ZDU0MTFlOTY1MjFiNDVhOTRh
OGUzYjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
U291cmNlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlU291cmNlQnVmZmVyUHJveHkuaApAQCAtNDcsMTMgKzQ3LDE1IEBAIGNsYXNzIE1lZGlh
U2FtcGxlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTsKKwogY2xhc3MgUmVtb3RlU291cmNlQnVmZmVyUHJveHkgZmluYWwKICAgICA6IHB1Ymxp
YyBSZWZDb3VudGVkPFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5PgogICAgICwgcHVibGljIFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQKICAgICAsIHByaXZhdGUgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8UmVtb3RlU291cmNlQnVmZmVyUHJveHk+IGNyZWF0ZShSZW1vdGVTb3VyY2VCdWZm
ZXJJZGVudGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVmPFdlYkNvcmU6OlNv
dXJjZUJ1ZmZlclByaXZhdGU+JiYpOworICAgIHN0YXRpYyBSZWY8UmVtb3RlU291cmNlQnVmZmVy
UHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVtb3RlU291cmNlQnVm
ZmVySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGU+JiYsIFJlbW90
ZU1lZGlhUGxheWVyUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTb3VyY2VCdWZmZXJQcm94
eSgpOwogCiAgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5hbDsKQEAgLTcwLDcg
KzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVS
ZW5kZXJpbmdFcnJvcihpbnQgZXJyb3JDb2RlKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBSZW1v
dGVTb3VyY2VCdWZmZXJQcm94eShSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVmPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGU+JiYp
OworICAgIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
LCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZT4mJiwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYpOwogCiAgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOwpAQCAtNzgsOSArODAsMTAgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgYXBwZW5kKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCi0gICAgUmVtb3RlU291
cmNlQnVmZmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIFJlbW90ZVNvdXJjZUJ1ZmZl
cklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZjxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlPiBtX3NvdXJjZUJ1ZmZlclByaXZhdGU7CisgICAgV2Vha1B0cjxSZW1vdGVNZWRpYVBs
YXllclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVUZXh0VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVGV4dFRyYWNrUHJveHkuY3BwCmluZGV4IGJlY2RjMjJjMzA5MmExMGJiZDg3MTgyNGEwMmIz
YWMxNDZmNzIwMTcuLjY3NDQ4ZTlhNzQ4ZjE4YWRhNDUyNTkwOWJhMmNkMzE0MGIyMjUxZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRU
cmFja1Byb3h5LmNwcApAQCAtMjksOSArMjksMTIgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKIAorI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgi
CisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSVNPVlRUQ3VlLmg+
CkBAIC00MSwxNCArNDQsMjAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi1SZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJveHko
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQotICAgIDogbV9wbGF5ZXIocGxheWVyKQor
UmVtb3RlVGV4dFRyYWNrUHJveHk6OlJlbW90ZVRleHRUcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
LCBNZWRpYVBsYXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyKQorICAgIDogbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX2lk
ZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24oV1RGTW92
ZShjb25uZWN0aW9uKSkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkKKyAgICAs
IG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikKIHsKICAgICBt
X3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkUmVtb3RlVGV4
dFRyYWNrKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9wbGF5ZXIuaWRlbmRpZmll
cigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZVJlY2VpdmVyTWFwKCku
YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgKnRoaXMpOworICAgIG1f
Y29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVUZXh0VHJhY2sobV9pZGVudGlmaWVyLCBjb25m
aWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVRleHRU
cmFja1Byb3h5Ojp+UmVtb3RlVGV4dFRyYWNrUHJveHkoKQoreworICAgIG1fY29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlJlbW90ZVRleHRUcmFja1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24mIFJlbW90ZVRleHRUcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKQEAgLTc2LDEyICs4
NSwxMiBAQCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgUmVtb3RlVGV4dFRy
YWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5Ojpj
b25maWd1cmF0aW9uQ2hhbmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdGVUZXh0VHJhY2tDb25m
aWd1cmF0aW9uQ2hhbmdlZChtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fcGxheWVy
LmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJlbW90ZVRleHRUcmFj
a0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9t
ZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5Ojp3
aWxsUmVtb3ZlKCkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJlbW92ZVJlbW90ZVRleHRUcmFjayhtX2lkZW50
aWZpZXIpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCiB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjppZENoYW5nZWQoY29uc3QgQXRvbVN0
cmluZyYpCkBAIC0xMDEsNTQgKzExMCw1NCBAQCB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5Ojps
YW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpCiAKIHZvaWQgUmVtb3RlVGV4dFRyYWNr
UHJveHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBtX3dlYlBy
b2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OkFkZERhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2Uo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0aCkpLCBtX3BsYXll
ci5pZGVuZGlmaWVyKCkpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGREYXRhQ3VlKG1f
aWRlbnRpZmllciwgc3RhcnQsIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBsZW5ndGgpKSwgbV9tZWRpYVBsYXllcklkZW50aWZp
ZXIpOwogfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCiB2b2lkIFJlbW90ZVRleHRUcmFj
a1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGlt
ZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiBjdWVEYXRhLCBjb25zdCBT
dHJpbmcmIHR5cGUpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGREYXRhQ3VlV2l0aFR5cGUobV9pZGVudGlm
aWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLT5lbmNvZGFibGVWYWx1ZSgpLCB0eXBlKSwgbV9wbGF5
ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkRGF0YUN1ZVdp
dGhUeXBlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0YS0+ZW5jb2RhYmxlVmFsdWUo
KSwgdHlwZSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVUZXh0
VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAg
ICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OlVwZGF0ZURhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRh
LmVuY29kYWJsZVZhbHVlKCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOworICAgIG1fY29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpVcGRhdGVEYXRhQ3VlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3Vl
RGF0YS5lbmNvZGFibGVWYWx1ZSgpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2
b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBj
dWVEYXRhKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3ZlRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0
LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7
CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlJlbW92ZURhdGFDdWUobV9pZGVudGlmaWVyLCBz
dGFydCwgZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkpLCBtX21lZGlhUGxheWVySWRlbnRp
Zmllcik7CiB9CiAjZW5kaWYKIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkR2VuZXJp
Y0N1ZShJbmJhbmRHZW5lcmljQ3VlJiBjdWUpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRHZW5lcmljQ3Vl
KG1faWRlbnRpZmllciwgY3VlLmN1ZURhdGEoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7Cisg
ICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZEdlbmVyaWNDdWUobV9pZGVudGlmaWVyLCBjdWUu
Y3VlRGF0YSgpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVRl
eHRUcmFja1Byb3h5Ojp1cGRhdGVHZW5lcmljQ3VlKEluYmFuZEdlbmVyaWNDdWUmIGN1ZSkKIHsK
LSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OlVwZGF0ZUdlbmVyaWNDdWUobV9pZGVudGlmaWVyLCBjdWUuY3VlRGF0YSgp
KSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6VXBk
YXRlR2VuZXJpY0N1ZShtX2lkZW50aWZpZXIsIGN1ZS5jdWVEYXRhKCkpLCBtX21lZGlhUGxheWVy
SWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92ZUdlbmVy
aWNDdWUoSW5iYW5kR2VuZXJpY0N1ZSYgY3VlKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3ZlR2VuZXJp
Y0N1ZShtX2lkZW50aWZpZXIsIGN1ZS5jdWVEYXRhKCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkp
OworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVHZW5lcmljQ3VlKG1faWRlbnRpZmll
ciwgY3VlLmN1ZURhdGEoKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBS
ZW1vdGVUZXh0VHJhY2tQcm94eTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmIGhlYWRl
cikKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OlBhcnNlV2ViVlRURmlsZUhlYWRlcihtX2lkZW50aWZpZXIsIGhl
YWRlciksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OlBhcnNlV2ViVlRURmlsZUhlYWRlcihtX2lkZW50aWZpZXIsIGhlYWRlciksIG1fbWVkaWFQbGF5
ZXJJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cGFyc2VXZWJW
VFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBtX3dl
YlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OlBhcnNlV2ViVlRUQ3VlRGF0YShtX2lkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZShy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIG1fcGxheWVy
LmlkZW5kaWZpZXIoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlBhcnNlV2ViVlRUQ3Vl
RGF0YShtX2lkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsK
IH0KIAogdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cGFyc2VXZWJWVFRDdWVEYXRhKElTT1dl
YlZUVEN1ZSYmIGN1ZURhdGEpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpQYXJzZVdlYlZUVEN1ZURhdGFTdHJ1
Y3QobV9pZGVudGlmaWVyLCBjdWVEYXRhKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKKyAgICBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6UGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KG1faWRlbnRpZmll
ciwgY3VlRGF0YSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVGV4dFRyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVUZXh0VHJhY2tQcm94eS5oCmluZGV4IDExNWM4OWJmMDBhMWE4ZDMwM2U4YzUxOWNmY2M1YTFl
MDY3MTBmNGQuLmFmZGI3MzI1Yjc3NzQ3MmY0YThjYjkyNzQ4YzM3NzJkMzRlZjk2YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQ
cm94eS5oCkBAIC0yOCwzNiArMjgsMzkgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAor
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0luYmFuZFRleHRUcmFja1ByaXZhdGUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVHJhY2tCYXNlLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2Ug
SVBDIHsKLQogY2xhc3MgQ29ubmVjdGlvbjsKLQorY2xhc3MgRGVjb2RlcjsKIH0KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHk7CitjbGFzcyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0IFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVUZXh0VHJhY2tQcm94eSBmaW5hbAogICAgIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZVRleHRUcmFja1Byb3h5LCBXVEY6OkRlc3Ry
dWN0aW9uVGhyZWFkOjpNYWluPgotICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQ2xpZW50IHsKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUNsaWVudAorICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdGVUZXh0VHJhY2tQcm94eT4gY3JlYXRlKFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVRl
eHRUcmFja1Byb3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlv
blRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVUZXh0VHJhY2tQcm94eShwbGF5ZXIsIGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbiksIHRyYWNrUHJpdmF0ZSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVUZXh0VHJhY2tQcm94eShjb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLCBpZGVudGlmaWVyLCB0cmFja1ByaXZhdGUsIG1lZGlhUGxheWVySWRlbnRpZmllcikpOwog
ICAgIH0KIAotICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVUZXh0VHJh
Y2tQcm94eSgpOwogCi0gICAgdm9pZCBzZXRNb2RlKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1By
aXZhdGU6Ok1vZGUgbW9kZSkgeyBtX3RyYWNrUHJpdmF0ZS0+c2V0TW9kZShtb2RlKTsgfQorICAg
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVRleHRUcmFja1Byb3h5KFJl
bW90ZU1lZGlhUGxheWVyUHJveHkmLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7Cisg
ICAgUmVtb3RlVGV4dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUm
LCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIpOwogCiAgICAgLy8gSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlh
VGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQp
OwpAQCAtODIsMTMgKzg1LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQo
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFJlbW92ZSgpIGZpbmFsOwog
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKKyAgICB2b2lkIHNldE1vZGUoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZTo6TW9kZSBtb2RlKSB7IG1fdHJhY2tQcml2YXRlLT5zZXRNb2RlKG1vZGUpOyB9CisKICAg
ICBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpOwog
ICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIAotICAgIFJlbW90ZU1lZGlhUGxheWVy
UHJveHkmIG1fcGxheWVyOworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29ubmVj
dGlvblRvV2ViUHJvY2VzczsKICAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKLSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dlYlByb2Nlc3NDb25uZWN0aW9u
OwogICAgIFJlZjxXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBtX3RyYWNrUHJpdmF0
ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgbV9tZWRpYVBsYXllcklkZW50
aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5tZXNz
YWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZWZjZTY3NTQzM2MyMmI3ZDU1ZTBhNzU0Njk0MWUyZjlmZTNl
YTNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVRleHRUcmFja1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMg
LT4gUmVtb3RlVGV4dFRyYWNrUHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgU2V0TW9kZShlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSBtb2RlKQorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVWaWRlb1RyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKaW5kZXggNWM0NmVlY2FhMTU5ZjBmM2I3NDkwM2YyZjY3
MDIyOTRlZjJkODI1ZC4uMzUwZjhlYTczMDdiZDIzN2FhODNmNmNjOTQ1YjU2MTBkZjZmMWM3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJh
Y2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZp
ZGVvVHJhY2tQcm94eS5jcHAKQEAgLTI5LDIyICsyOSwzMSBAQAogCiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIKKyNpbmNsdWRlICJS
ZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1SZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90ZVZpZGVvVHJhY2tQ
cm94eShSZW1vdGVNZWRpYVBsYXllclByb3h5JiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBW
aWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQotICAgIDogbV9wbGF5ZXIocGxheWVyKQor
UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlLCBN
ZWRpYVBsYXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyKQorICAgIDogbV9jb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24oV1RGTW92ZShj
b25uZWN0aW9uKSkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkKKyAgICAsIG1f
bWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikKIHsKICAgICBtX3Ry
YWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkUmVtb3RlVmlkZW9U
cmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fcGxheWVyLmlkZW5kaWZpZXIo
KSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFk
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCAqdGhpcyk7CisgICAgbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OkFkZFJlbW90ZVZpZGVvVHJhY2sobV9pZGVudGlmaWVyLCBjb25m
aWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVZpZGVv
VHJhY2tQcm94eTo6flJlbW90ZVZpZGVvVHJhY2tQcm94eSgpCit7CisgICAgbV9jb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
aWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKQEAgLTY0LDEyICs3
MywxMiBAQCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVWaWRlb1RyYWNr
UHJveHk6OmNvbmZpZ3VyYXRpb24oKQogCiB2b2lkIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29u
ZmlndXJhdGlvbkNoYW5nZWQoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3RlVmlkZW9UcmFja0NvbmZp
Z3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9wbGF5ZXIu
aWRlbmRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3RlVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb25DaGFuZ2VkKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9t
ZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6
d2lsbFJlbW92ZSgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVSZW1vdGVWaWRlb1RyYWNrKG1faWRl
bnRpZmllciksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKIHZvaWQgUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpzZWxlY3RlZENoYW5nZWQoYm9v
bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRl
b1RyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRl
b1RyYWNrUHJveHkuaAppbmRleCBkZGYwMmM4ZmU4MzJkYzNlZGZiYjllYzBkNTViNTI2NDlkYjJi
Nzk4Li42MGVhN2IwOWZmMmQ4N2UyNjY5MzU5ZTFmZWRlYWEwN2EzZTU3OTk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94
eS5oCkBAIC0yOCwzNCArMjgsMzkgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVHJhY2tCYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1Ry
YWNrUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIElQQyB7CiBj
bGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLWNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHk7CitjbGFzcyBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNs
YXNzIFJlbW90ZVZpZGVvVHJhY2tQcm94eSBmaW5hbAogICAgIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFJlbW90ZVZpZGVvVHJhY2tQcm94eSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6
TWFpbj4KLSAgICAsIHByaXZhdGUgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVDbGllbnQgewor
ICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAorICAgICwgcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1v
dGVWaWRlb1RyYWNrUHJveHk+IGNyZWF0ZShSZW1vdGVNZWRpYVBsYXllclByb3h5JiBwbGF5ZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2
YXRlKQorICAgIHN0YXRpYyBSZWY8UmVtb3RlVmlkZW9UcmFja1Byb3h5PiBjcmVhdGUoR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlVmlk
ZW9UcmFja1Byb3h5KHBsYXllciwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSwgdHJh
Y2tQcml2YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVZpZGVvVHJh
Y2tQcm94eShjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB0cmFja1ByaXZhdGUs
IG1lZGlhUGxheWVySWRlbnRpZmllcikpOwogICAgIH0KIAotICAgIFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsK
KyAgICB2aXJ0dWFsIH5SZW1vdGVWaWRlb1RyYWNrUHJveHkoKTsKIAotICAgIHZvaWQgc2V0U2Vs
ZWN0ZWQoYm9vbCBzZWxlY3RlZCkgeyBtX3RyYWNrUHJpdmF0ZS0+c2V0U2VsZWN0ZWQoc2VsZWN0
ZWQpOyB9CisgICAgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OwogCiBwcml2YXRlOgotICAgIFJlbW90ZVZpZGVv
VHJhY2tQcm94eShSZW1vdGVNZWRpYVBsYXllclByb3h5JiwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGUmKTsKKyAgICBSZW1vdGVWaWRlb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2
YXRlJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIAogICAgIC8vIFZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50CiAgICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgZmluYWw7CkBA
IC02NiwxMyArNzEsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25z
dCBBdG9tU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOworICAgIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkgeyBtX3RyYWNrUHJp
dmF0ZS0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOyB9CisKICAgICBUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCk7CiAgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hh
bmdlZCgpOwogCi0gICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgbV9wbGF5ZXI7CisgICAgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVmPFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlPiBtX3RyYWNrUHJpdmF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklk
ZW50aWZpZXIgbV9tZWRpYVBsYXllcklkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVW
aWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlMGYxMDBm
ZDg3YjY3OGRjYThiNTQ2NmVmN2YzMTcwOWZhMzNjMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlVmlkZW9UcmFja1Byb3h5IE5v
dFJlZkNvdW50ZWQgeworICAgIFNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQpCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNTczZWQzZDhl
ZTliYmY0MTAzMTY4ZTc5YTA1N2Y5ZGJkYjliODY5NS4uY2EwYWUyODQxMWE4M2RlNGJmM2ZlMDhi
MDEyZTQwNTU0OGQ4YjU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CkBAIC0yMDgsNiArMjA4LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRf
ZGVjbGFyZWQoKToKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAgICdXZWJDb3JlOjpDb2xvclNw
YWNlJywKICAgICAgICAgJ1dlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQnLAorICAgICAgICAnV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RHJh
Z0FwcGxpY2F0aW9uRmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVy
JywKQEAgLTI0MCw3ICsyNDEsNiBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9k
ZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
cklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6RGlzcGxheUxpbmtPYnNlcnZlcklEJywKLSAgICAgICAgJ1dlYkNv
cmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpEb3du
bG9hZElEJywKICAgICAgICAgJ1dlYktpdDo6R2VvbG9jYXRpb25JZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM1MjhmNDcxZjQ2M2RmNmMx
MTMwYTNmYjgzNzc2YmYxYjJhYmVmOTQuLjQ3OTBhMWFjYWNmZGM1YTliMTEwZDQ3NmZmMzAxZGZh
NGVhYmExOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNDE2LDYgKzQxNiw5IEBACiAJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAv
KiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVj
dG9yUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkxQ0JCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyog
V2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYklu
c3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUNCQkU0QTExOUI2NkM1MzAw
NkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VzLmggKi87IH07CisJCTFEMDM2OUFDMjU2Nzk2OTkwMDQ0MDM3MiAv
KiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAzNjlBQTI1Njc5NDNDMDA0NDAzNzIg
LyogUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkxRDAz
NjlBRDI1Njc5NkFCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
MDM2OUE1MjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OworCQkxRDAzNjlBRTI1Njc5NkI5MDA0NDAzNzIgLyogUmVtb3RlQXVk
aW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDM2OUEyMjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1vdGVB
dWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxRDRENzM3MDIzQTlF
NTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDcz
NkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2
ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgg
Ki87IH07CkBAIC0yODQwLDYgKzI4NDMsMTUgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJC
IC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNw
ZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgx
IC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CisJCTFEMDM2OUEyMjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNr
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlQXVkaW9U
cmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQwMzY5QTMyNTY3OTQzQjAwNDQwMzcyIC8qIFJl
bW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1v
dGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUE0MjU2Nzk0M0IwMDQ0MDM3MiAv
KiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVW
aWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OworCQkxRDAzNjlBNTI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFj
a1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZVZpZGVv
VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUE2MjU2Nzk0M0MwMDQ0MDM3MiAvKiBS
ZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZVRleHRU
cmFja1Byb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
VGV4dFRyYWNrUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OworCQkxRDAzNjlBNzI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQwMzY5QTgy
NTY3OTQzQzAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXNS
ZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMDM2OUE5
MjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVzLmg7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDAz
NjlBQTI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVUZXh0VHJhY2tQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4MjNBODQ2NUEwMEIx
RUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OTkyM0E4NDY4
MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
ODUxLDYgKzI4NjMsMTEgQEAKIAkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFENEQ3MzZD
MjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFENEQ3Mzc1MjNB
OUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCTFENEZCNDBCMjU2NUM4OUEwMDFBQzJBRCAvKiBJbml0aWFsaXphdGlvblNlZ21lbnRJ
bmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluaXRpYWxpemF0aW9uU2VnbWVudEluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0RkI0MEMyNTY1Q0JGOTAwMUFDMkFEIC8qIFJlbW90
ZU1lZGlhRGVzY3JpcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFEZXNjcmlwdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDZFMjdERDI1NjZFODMwMDBBQzdB
RUIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlv
VHJhY2tQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ2
RTI3REUyNTY2RTg1ODAwQUM3QUVCIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZW1vdGVWaWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFENkUyN0RGMjU2NkU4NkIwMEFDN0FFQiAvKiBSZW1vdGVUZXh0VHJh
Y2tQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVRleHRUcmFja1Byb3h5Lm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDk3RUM3RDI0MDg5OEQyMDA0NjZGRkEg
LyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURBNDA4OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3
OTcsNiArNTgxNCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxRDBFQ0VBOTIzRkM4NEJCMDBE
MTcyRjYgLyogY29jb2EgKi8sCiAJCQkJQ0RBOTU5NDQyNDEyQzREQTAwOTEwRUVGIC8qIGlvcyAq
LywKKwkJCQkxRDRGQjQwQjI1NjVDODlBMDAxQUMyQUQgLyogSW5pdGlhbGl6YXRpb25TZWdtZW50
SW5mby5oICovLAogCQkJCTlCMTIyOUNDMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8q
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi8sCiAJCQkJOUIxMjI5Q0YyM0ZGMjgx
NDAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluICov
LApAQCAtNTgwOSw2ICs1ODI3LDcgQEAKIAkJCQk0MTJGRjkyNzI1MzgyRDg1MDAxREYwMzYgLyog
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmggKi8sCiAJCQkJMDcxQkM1N0UyM0NBNURC
MTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1N0Yy
M0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICovLAorCQkJCTFENkUy
N0REMjU2NkU4MzAwMEFDN0FFQiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkubWVzc2FnZXMuaW4g
Ki8sCiAJCQkJQ0RBQzIwNzkyM0ZCMUUyMTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94
eS5jcHAgKi8sCiAJCQkJQ0RBQzIwNzgyM0ZCMUUyMTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3Rv
cnlQcm94eS5oICovLAogCQkJCUNEQUMyMDdDMjNGQjFFRjkwMDIxREVFMyAvKiBSZW1vdGVDRE1G
YWN0b3J5UHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC01ODMwLDYgKzU4NDksNyBAQAogCQkJCUNE
RTU1NEY5MjQwNTgyMDgwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkuY3Bw
ICovLAogCQkJCUNERTU1NEY4MjQwNTgyMDgwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1TZXNz
aW9uUHJveHkuaCAqLywKIAkJCQlDREU1NTUwMDI0MDU4Mjg0MDA4QTNEREIgLyogUmVtb3RlTGVn
YWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTFENEZCNDBDMjU2NUNCRjkw
MDFBQzJBRCAvKiBSZW1vdGVNZWRpYURlc2NyaXB0aW9uLmggKi8sCiAJCQkJMDcyNUVGQUQyMzlC
MDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLywKIAkJ
CQkwNzI1RUZBQzIzOUFFMzg1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkuaCAqLywKIAkJCQkwNzI1RUZBQjIzOUFFMzg0MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC01ODU0LDggKzU4NzQsMTAgQEAKIAkJ
CQkxREQyQTY2NjI1NjFFRDA0MDBGRjdCNkYgLyogUmVtb3RlU291cmNlQnVmZmVyUHJveHkubWVz
c2FnZXMuaW4gKi8sCiAJCQkJMDdFMTlGMDcyM0Q0REM4ODAwOTRGRkI0IC8qIFJlbW90ZVRleHRU
cmFja1Byb3h5LmNwcCAqLywKIAkJCQkwN0UxOUYwNjIzRDREQzg4MDA5NEZGQjQgLyogUmVtb3Rl
VGV4dFRyYWNrUHJveHkuaCAqLywKKwkJCQkxRDZFMjdERjI1NjZFODZCMDBBQzdBRUIgLyogUmVt
b3RlVGV4dFRyYWNrUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1ODQyM0NDMkMwOTAw
NjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1ODUyM0ND
MkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5oICovLAorCQkJCTFENkUyN0RF
MjU2NkU4NTgwMEFDN0FFQiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkubWVzc2FnZXMuaW4gKi8s
CiAJCQkJMDdFMTlGMDUyM0Q0REM4ODAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDcxQkM1N0IyM0NBNTMyNDAwNjgwRDdDIC8qIFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkwNzFCQzU3RDIzQ0E1NkQyMDA2
ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovLApAQCAtMTA0NTMsNiAr
MTA0NzUsOSBAQAogCQkJCUNERDUzNTcxMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RENTM1NzIyNDBEREUwNjAw
RjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREQ1
MzU3NzI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1Jl
cGxpZXMuaCAqLywKKwkJCQkxRDAzNjlBMjI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9U
cmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkxRDAzNjlBNzI1Njc5NDNDMDA0
NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXMuaCAqLywKKwkJCQkxRDAzNjlB
MzI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZXNSZXBsaWVz
LmggKi8sCiAJCQkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREFDMjBGMjIzRkMzODNBMDAy
MURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQlDREFDMjBGMzIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2Fn
ZXMuaCAqLywKQEAgLTEwNTAyLDYgKzEwNTI3LDEyIEBACiAJCQkJMUREMkE2NkIyNTYyMDIxRTAw
RkY3QjZGIC8qIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQkxREQyQTY2OTI1NjIwMjFFMDBGRjdCNkYgLyogUmVtb3RlU291cmNlQnVmZmVyUHJveHlN
ZXNzYWdlcy5oICovLAogCQkJCTFERDJBNjZBMjU2MjAyMUUwMEZGN0I2RiAvKiBSZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTFEMDM2OUFBMjU2Nzk0M0Mw
MDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJ
CQkJMUQwMzY5QTYyNTY3OTQzQzAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2Fn
ZXMuaCAqLywKKwkJCQkxRDAzNjlBODI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNr
UHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQkxRDAzNjlBNTI1Njc5NDNCMDA0NDAzNzIg
LyogUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkxRDAz
NjlBNDI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZXMuaCAq
LywKKwkJCQkxRDAzNjlBOTI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJQTU1QkE4MjExQkEyNUJCODAwN0NEMzNEIC8qIFJl
bW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlBNTVCQTgy
MjFCQTI1QkI4MDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICov
LAogCQkJCTFCQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBSZW1vdGVXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMzMxNSw2ICsxMzM0Niw3IEBACiAJCQkJMUEwQzIy
N0YyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAwRUQ2MTREIC8qIFF1aWNrTG9va1Ro
dW1ibmFpbExvYWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMTIyOUNFMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxRDAzNjlBRTI1Njc5NkI5MDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNB
QkYwRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDREFDMjBGNzIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFj
dG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQUMyMEY4
MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTMzMzYsNiArMTMzNjgsOCBAQAogCQkJCTFBQzEzMzg1
MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5NDdBNzE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUREMkE2NkUyNTYyMDIxRTAwRkY3QjZGIC8qIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEMDM2OUFDMjU2Nzk2OTkwMDQ0
MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxRDAzNjlBRDI1Njc5NkFCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1By
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1NUJBODI2MUJBMjVD
RkQwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQkJCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyogUmVtb3RlV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE4RTY5
MTcxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDNkZjBiMWMw
OWIzNGE3Nzg4ZjkxMGE0MmEwNTVjYTUwMGFhOTViZmQuLjcyMWMwYWE5MjA3MjRlOWIzM2I1ODY1
MzAzMTM3YjZjYTU0OTAwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC0yOSwx
NCArMjksMTUgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKLSNpbmNsdWRl
ICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b1RyYWNrUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBs
YXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKLSAgICA6IG1fcGxheWVyKHBs
YXllcikKK0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24pCisgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1faWRlbmRpZmllcihp
ZGVuZGlmaWVyKQogewogICAgIHVwZGF0ZUNvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0
aW9uKSk7CkBAIC00NSw3ICs0Niw3IEBAIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBsYXllCiB2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBp
ZiAoZW5hYmxlZCAhPSB0aGlzLT5lbmFibGVkKCkpCi0gICAgICAgIG1fcGxheWVyLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpBdWRpb1RyYWNrU2V0
RW5hYmxlZChtX2lkZW5kaWZpZXIsIGVuYWJsZWQpLCBtX3BsYXllci5pdGVudGlmaWVyKCkpOwor
ICAgICAgICBtX2Nvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9UcmFja1Byb3h5
OjpTZXRFbmFibGVkKGVuYWJsZWQpLCBtX2lkZW5kaWZpZXIpOwogCiAgICAgQXVkaW9UcmFja1By
aXZhdGU6OnNldEVuYWJsZWQoZW5hYmxlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgKaW5k
ZXggZDI4YzA3ZTQ3ZDlmNjAzMjY0OWUwMDRlOGJlYjZjZWEyMGE0ZThlYy4uNTNkYzliZTMzYzli
ZmMwZGM0YTdiMDFmYzFmMTAxZjllODc2YTVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaApA
QCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgogCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CkBAIC0zOSwxNSArNDMsMTUgQEAgc3RydWN0IFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZp
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAg
IHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShwbGF5
ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoY29ubmVjdGlvbiwgaWRlbmRp
ZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAogICAgIHZvaWQgdXBkYXRl
Q29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiBwcml2
YXRlOgotICAgIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24mJik7CisgICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoSVBDOjpDb25uZWN0aW9u
JiwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmKTsKIAogICAgIHVzaW5nIEF1ZGlvVHJhY2tLaW5kID0gV2ViQ29yZTo6QXVkaW9U
cmFja1ByaXZhdGU6OktpbmQ7CiAgICAgQXVkaW9UcmFja0tpbmQga2luZCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fa2luZDsgfQpAQCAtNTcsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIGludCB0
cmFja0luZGV4KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFja0luZGV4OyB9CiAgICAgdm9p
ZCBzZXRFbmFibGVkKGJvb2wpIGZpbmFsOwogCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
JiBtX3BsYXllcjsKKyAgICBJUEM6OkNvbm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKICAgICBBdWRp
b1RyYWNrS2luZCBtX2tpbmQgeyBOb25lIH07CiAgICAgQXRvbVN0cmluZyBtX2lkOwogICAgIEF0
b21TdHJpbmcgbV9sYWJlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBhZWY4
M2UyNTg4ODlhNWJlODI2N2E2OGIxYzY5ZmVjNWEzNGUwMzg2Li42ZGRlZTg3YWJkY2M3NmY4Njlh
ZDU1NGRiNTExMmIzNmI4MmYyZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBA
IC00NTYsNyArNDU2LDcgQEAgRmxvYXRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmF0
dXJhbFNpemUoKSBjb25zdAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90
ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fYXVkaW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7Ci0gICAg
ICAgIHJldHVybiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKCp0aGlzLCBpZGVudGlm
aWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICAgICAgcmV0dXJuIEF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlOjpjcmVhdGUoY29ubmVjdGlvbigpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNv
bmZpZ3VyYXRpb24pKTsKICAgICB9KTsKICAgICBBU1NFUlQoYWRkUmVzdWx0LmlzTmV3RW50cnkp
OwogCkBAIC00ODcsNyArNDg3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJl
bW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGUKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVUZXh0VHJhY2soVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3RleHRUcmFj
a3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7Ci0gICAgICAgIHJldHVybiBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlv
bikpOworICAgICAgICByZXR1cm4gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKGNvbm5l
Y3Rpb24oKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiAgICAgfSk7CiAg
ICAgQVNTRVJUKGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIApAQCAtNjAwLDcgKzYwMCw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3VlKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWRlCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRk
UmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV92aWRlb1RyYWNrcy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsK
LSAgICAgICAgcmV0dXJuIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUoKnRoaXMsIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgICAgICByZXR1cm4gVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShjb25uZWN0aW9uKCksIGlkZW50aWZpZXIsIFdURk1v
dmUoY29uZmlndXJhdGlvbikpOwogICAgIH0pOwogICAgIEFTU0VSVChhZGRSZXN1bHQuaXNOZXdF
bnRyeSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDBkNjEzYzRkYjJhNDk2Yjc3
M2E2YTE3MmE3Y2I3OGUyYzAxMjU0OWUuLmQ4ZmRjZmM0ZTcwYTk5MmExYTVhMWI1NjI0MGIyOTMx
Y2U1ODE1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMTUyLDYgKzE1MiwxMiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBT
dHJpbmcmLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCisgICAgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlPiBhdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNv
bnN0IHsgcmV0dXJuIG1fYXVkaW9UcmFja3MuZ2V0KGlkZW50aWZpZXIpOyB9CisgICAgUmVmUHRy
PFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPiB2aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9U
cmFja3MuZ2V0KGlkZW50aWZpZXIpOyB9CisgICAgUmVmUHRyPFRleHRUcmFja1ByaXZhdGVSZW1v
dGU+IHRleHRUcmFja1ByaXZhdGVSZW1vdGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZGVudGlmaWVyKSBjb25zdCB7IHJldHVybiBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpOyB9
CisjZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9p
ZCBjdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChib29sKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgppbmRleCBmNGNjOGJj
YjJiZmZiM2YxMDk4NTdlN2Q2ZGE3ZjZhOTUwZTZmYWViLi4zYzMyN2NmOTQzOTBkNmI4MmM3MDg1
YTJiNjFlMmZmZGE3MTFlNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5t
ZXNzYWdlcy5pbgpAQCAtNDIsNiArNDIsMTAgQEAgbWVzc2FnZXMgLT4gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewogICAgIFJlbW92ZVJlbW90ZUF1ZGlvVHJhY2soV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCiAgICAgUmVtb3RlQXVk
aW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAKKyAgICBBZGRSZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgUmVtb3ZlUmVt
b3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJ
RCkKKyAgICBSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKwogICAgIEFkZFJlbW90ZVRl
eHRUcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3Ry
dWN0IFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJh
dGlvbikKICAgICBSZW1vdmVSZW1vdGVUZXh0VHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIHRyYWNrSUQpCiAgICAgUmVtb3RlVGV4dFRyYWNrQ29uZmlndXJhdGlvbkNo
YW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVj
dCBXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b24pCkBAIC02MSwxMCArNjUsNiBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUgTm90UmVmQ291bnRlZCB7CiAgICAgVXBkYXRlR2VuZXJpY0N1ZShXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYkNvcmU6OkdlbmVyaWNDdWVE
YXRhIGN1ZSkKICAgICBSZW1vdmVHZW5lcmljQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEgY3VlKQog
Ci0gICAgQWRkUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKQotICAgIFJlbW92ZVJlbW90ZVZpZGVvVHJhY2soV2ViS2l0OjpU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCi0gICAgUmVtb3RlVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCi0KICAgICBSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+ICgpIEFzeW5jCiAg
ICAgUmVtb3ZlUmVzb3VyY2UoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBy
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikKICAgICBTZW5kSDJQaW5nKFVSTCB1cmwpIC0+
IChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5j
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291
cmNlUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMjZiY2ZhNWFhMTVhM2UyZTk2Yzk5
NWY4YmUzNDdhOTZhZmU5NjQ0Mi4uMGFjNzg3MjBiYWM0ZDQyOGQxMjQ3MDQ4OTg2NTkzOTM4ZmY3
ODVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcApAQCAtNDYsMjIgKzQ2LDIyIEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPE1l
ZGlhU291cmNlUHJpdmF0ZVJlbW90ZT4gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpjcmVhdGUo
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hl
JiBtaW1lVHlwZUNhY2hlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBsYXllclBy
aXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogY2xpZW50KQorUmVmPE1lZGlhU291cmNl
UHJpdmF0ZVJlbW90ZT4gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpjcmVhdGUoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlJiBtaW1lVHlw
ZUNhY2hlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1lZGlhUGxheWVyUHJpdmF0
ZSwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgYXV0byBtZWRpYVNv
dXJjZVByaXZhdGUgPSBhZG9wdFJlZigqbmV3IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZShncHVQ
cm9jZXNzQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgbWltZVR5cGVDYWNoZSwgcGxheWVyUHJpdmF0
ZSwgY2xpZW50KSk7CisgICAgYXV0byBtZWRpYVNvdXJjZVByaXZhdGUgPSBhZG9wdFJlZigqbmV3
IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgaWRlbnRpZmll
ciwgbWltZVR5cGVDYWNoZSwgbWVkaWFQbGF5ZXJQcml2YXRlLCBjbGllbnQpKTsKICAgICBjbGll
bnQtPnNldFByaXZhdGVBbmRPcGVuKG1lZGlhU291cmNlUHJpdmF0ZS5jb3B5UmVmKCkpOwogICAg
IHJldHVybiBtZWRpYVNvdXJjZVByaXZhdGU7CiB9CiAKLU1lZGlhU291cmNlUHJpdmF0ZVJlbW90
ZTo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9j
ZXNzQ29ubmVjdGlvbiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJl
bW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwgY29uc3QgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXJQcml2YXRlLCBNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQqIGNsaWVudCkKK01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6TWVkaWFTb3VyY2VQcml2YXRl
UmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3Rl
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwgY29uc3QgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBt
ZWRpYVBsYXllclByaXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogY2xpZW50KQogICAg
IDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1f
aWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9taW1lVHlwZUNhY2hlKG1pbWVUeXBlQ2Fj
aGUpCi0gICAgLCBtX3BsYXllclByaXZhdGUobWFrZVdlYWtQdHIocGxheWVyUHJpdmF0ZSkpCisg
ICAgLCBtX21lZGlhUGxheWVyUHJpdmF0ZShtYWtlV2Vha1B0cihtZWRpYVBsYXllclByaXZhdGUp
KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAg
ICwgbV9sb2dnZXIobV9wbGF5ZXJQcml2YXRlLT5tZWRpYVBsYXllckxvZ2dlcigpKQotICAgICwg
bV9sb2dJZGVudGlmaWVyKG1fcGxheWVyUHJpdmF0ZS0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVy
KCkpCisgICAgLCBtX2xvZ2dlcihtX21lZGlhUGxheWVyUHJpdmF0ZS0+bWVkaWFQbGF5ZXJMb2dn
ZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihtX21lZGlhUGxheWVyUHJpdmF0ZS0+bWVkaWFQ
bGF5ZXJMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOwpAQCAtOTUsNyArOTUsNyBAQCBNZWRpYVNvdXJjZVByaXZhdGU6OkFkZFN0YXR1cyBN
ZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBDbwogCiAgICAg
aWYgKHN0YXR1cyA9PSBBZGRTdGF0dXM6Ok9rKSB7CiAgICAgICAgIEFTU0VSVChyZW1vdGVTb3Vy
Y2VCdWZmZXJJZGVudGlmaWVyLmhhc1ZhbHVlKCkpOwotICAgICAgICBhdXRvIG5ld1NvdXJjZUJ1
ZmZlciA9IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uLCAqcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciwgKnRoaXMpOworICAgICAgICBh
dXRvIG5ld1NvdXJjZUJ1ZmZlciA9IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmNyZWF0ZSht
X2dwdVByb2Nlc3NDb25uZWN0aW9uLCAqcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciwgKnRo
aXMsICptX21lZGlhUGxheWVyUHJpdmF0ZSk7CiAgICAgICAgIG91dFByaXZhdGUgPSBuZXdTb3Vy
Y2VCdWZmZXIuY29weVJlZigpOwogICAgICAgICBtX3NvdXJjZUJ1ZmZlcnMuYXBwZW5kKFdURk1v
dmUobmV3U291cmNlQnVmZmVyKSk7CiAgICAgfQpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgTWVk
aWFTb3VyY2VQcml2YXRlUmVtb3RlOjp1bm1hcmtFbmRPZlN0cmVhbSgpCiAKIE1lZGlhUGxheWVy
OjpSZWFkeVN0YXRlIE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fcGxheWVyUHJpdmF0ZSA/IG1fcGxheWVyUHJpdmF0ZS0+cmVhZHlT
dGF0ZSgpIDogTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nOworICAgIHJldHVy
biBtX21lZGlhUGxheWVyUHJpdmF0ZSA/IG1fbWVkaWFQbGF5ZXJQcml2YXRlLT5yZWFkeVN0YXRl
KCkgOiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CiB9CiAKIHZvaWQgTWVk
aWFTb3VyY2VQcml2YXRlUmVtb3RlOjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVNvdXJjZVByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmgKaW5kZXggMDFjOTQ0MjViNDhiMzk2ZTk2N2M0
ZTgyMTRkZmI2ZTUzNWE1NTBiZC4uNzc4MzRmN2ExOWRjYjBiOTRlZDUyZjY2ODAwZTYwNWMzMTUz
NDc5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVNvdXJjZVByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5oCkBAIC01NCw4ICs1NCw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVBy
b2Nlc3NDb25uZWN0aW9uJiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVBsYXllck1JTUVUeXBlQ2FjaGUmLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmLCBX
ZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVNv
dXJjZVByaXZhdGVSZW1vdGUoKTsKIAotICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSogcGxh
eWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5ZXJQcml2YXRlLmdldCgpOyB9Ci0KICAgICAvLyBN
ZWRpYVNvdXJjZVByaXZhdGUgb3ZlcnJpZGVzCiAgICAgQWRkU3RhdHVzIGFkZFNvdXJjZUJ1ZmZl
cihjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIFJlZlB0cjxXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlPiYpIGZpbmFsOwogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKCkgZmluYWw7CkBA
IC03Nyw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIG1fZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUmIG1fbWltZVR5cGVD
YWNoZTsKLSAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gbV9wbGF5ZXJQcml2
YXRlOworICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBtX21lZGlhUGxheWVy
UHJpdmF0ZTsKICAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50PiBt
X2NsaWVudDsKICAgICBWZWN0b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU+PiBt
X3NvdXJjZUJ1ZmZlcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDZm
NDU0OGExMDc0ZGRiYzZhY2U3MTdmMzdkMjY5YjhlZDk1ZTgzOTQuLjVlYmU4YWVmZDEzZmJhYzY5
ZTI2NTk4MTA1NWFjZjRjOWI1ZmFkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNw
cApAQCAtMjgsMTIgKzI4LDE1IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShNRURJQV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlJl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECkBAIC00NSwxNSArNDgsMTYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZT4gU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQ
cm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciByZW1vdGVTb3Vy
Y2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmIG1lZGlh
U291cmNlUHJpdmF0ZSkKK1JlZjxTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlPiBTb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3ND
b25uZWN0aW9uLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIHJlbW90ZVNvdXJjZUJ1ZmZl
cklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZSYgbWVkaWFTb3VyY2VQ
cml2YXRlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1lZGlhUGxheWVyUHJpdmF0
ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
KGdwdVByb2Nlc3NDb25uZWN0aW9uLCByZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBtZWRp
YVNvdXJjZVByaXZhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlKGdwdVByb2Nlc3NDb25uZWN0aW9uLCByZW1vdGVTb3VyY2VCdWZmZXJJZGVu
dGlmaWVyLCBtZWRpYVNvdXJjZVByaXZhdGUsIG1lZGlhUGxheWVyUHJpdmF0ZSkpOwogfQogCi1T
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlKEdQVVBy
b2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlU291cmNlQnVmZmVy
SWRlbnRpZmllciByZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJj
ZVByaXZhdGVSZW1vdGUmIG1lZGlhU291cmNlUHJpdmF0ZSkKK1NvdXJjZUJ1ZmZlclByaXZhdGVS
ZW1vdGU6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdw
dVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyIHJlbW90ZVNv
dXJjZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZSYgbWVk
aWFTb3VyY2VQcml2YXRlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIG1lZGlhUGxh
eWVyUHJpdmF0ZSkKICAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24pCiAgICAgLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIocmVtb3RlU291cmNl
QnVmZmVySWRlbnRpZmllcikKICAgICAsIG1fbWVkaWFTb3VyY2VQcml2YXRlKG1ha2VXZWFrUHRy
KG1lZGlhU291cmNlUHJpdmF0ZSkpCisgICAgLCBtX21lZGlhUGxheWVyUHJpdmF0ZShtYWtlV2Vh
a1B0cihtZWRpYVBsYXllclByaXZhdGUpKQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
ICwgbV9sb2dnZXIobV9tZWRpYVNvdXJjZVByaXZhdGUtPmxvZ2dlcigpKQogICAgICwgbV9sb2dJ
ZGVudGlmaWVyKG1fbWVkaWFTb3VyY2VQcml2YXRlLT5uZXh0U291cmNlQnVmZmVyTG9nSWRlbnRp
ZmllcigpKQpAQCAtOTgsNyArMTAyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
OjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKIAogTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fbWVkaWFTb3VyY2VQcml2YXRlID8gbV9tZWRpYVNvdXJjZVByaXZhdGUtPnBsYXllcigpLT5y
ZWFkeVN0YXRlKCkgOiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CisgICAg
cmV0dXJuIG1fbWVkaWFQbGF5ZXJQcml2YXRlID8gbV9tZWRpYVBsYXllclByaXZhdGUtPnJlYWR5
U3RhdGUoKSA6IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZzsKIH0KIAogdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlKQpAQCAtMTUyLDYgKzE1NiwzOCBAQCBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVS
ZW1vdGU6OmNhblN3aXRjaFRvVHlwZShjb25zdCBDb250ZW50VHlwZSYpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KEluaXRpYWxpemF0aW9uU2VnbWVu
dEluZm8mJiBzZWdtZW50SW5mbykKK3sKKyAgICBpZiAoIW1fY2xpZW50IHx8ICFtX21lZGlhUGxh
eWVyUHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50IHNlZ21lbnQ7CisgICAgc2VnbWVudC5kdXJhdGlv
biA9IHNlZ21lbnRJbmZvLmR1cmF0aW9uOworCisgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrIDog
c2VnbWVudEluZm8uYXVkaW9UcmFja3MpIHsKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50OjpBdWRpb1RyYWNrSW5mb3JtYXRpb24gaW5mbzsK
KyAgICAgICAgaW5mby50cmFjayA9IG1fbWVkaWFQbGF5ZXJQcml2YXRlLT5hdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZShhdWRpb1RyYWNrLmlkZW50aWZpZXIpOworICAgICAgICBpbmZvLmRlc2NyaXB0
aW9uID0gUmVtb3RlTWVkaWFEZXNjcmlwdGlvbjo6Y3JlYXRlKGF1ZGlvVHJhY2suZGVzY3JpcHRp
b24pOworICAgICAgICBzZWdtZW50LmF1ZGlvVHJhY2tzLmFwcGVuZChpbmZvKTsKKyAgICB9CisK
KyAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2sgOiBzZWdtZW50SW5mby52aWRlb1RyYWNrcykgewor
ICAgICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQ6
OlZpZGVvVHJhY2tJbmZvcm1hdGlvbiBpbmZvOworICAgICAgICBpbmZvLnRyYWNrID0gbV9tZWRp
YVBsYXllclByaXZhdGUtPnZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKHZpZGVvVHJhY2suaWRlbnRp
Zmllcik7CisgICAgICAgIGluZm8uZGVzY3JpcHRpb24gPSBSZW1vdGVNZWRpYURlc2NyaXB0aW9u
OjpjcmVhdGUodmlkZW9UcmFjay5kZXNjcmlwdGlvbik7CisgICAgICAgIHNlZ21lbnQudmlkZW9U
cmFja3MuYXBwZW5kKGluZm8pOworICAgIH0KKworICAgIGZvciAoYXV0byYgdGV4dFRyYWNrIDog
c2VnbWVudEluZm8udGV4dFRyYWNrcykgeworICAgICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xp
ZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQ6OlRleHRUcmFja0luZm9ybWF0aW9uIGluZm87Cisg
ICAgICAgIGluZm8udHJhY2sgPSBtX21lZGlhUGxheWVyUHJpdmF0ZS0+dGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZSh0ZXh0VHJhY2suaWRlbnRpZmllcik7CisgICAgICAgIGluZm8uZGVzY3JpcHRpb24g
PSBSZW1vdGVNZWRpYURlc2NyaXB0aW9uOjpjcmVhdGUodGV4dFRyYWNrLmRlc2NyaXB0aW9uKTsK
KyAgICAgICAgc2VnbWVudC50ZXh0VHJhY2tzLmFwcGVuZChpbmZvKTsKKyAgICB9CisKKyAgICBt
X2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21l
bnQoV1RGTW92ZShzZWdtZW50KSk7Cit9CisKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZTo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQ6OkFwcGVuZFJlc3VsdCBhcHBlbmRSZXN1bHQpCiB7CiAgICAgaWYgKG1fY2xpZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Nv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaAppbmRleCBiOWEwMWIwNjI1ZTNiN2M3ZjAxMTg0YTgz
YzM2ZTU0OTEyMmYwOWE4Li42MmExNDU0NWQ1NTljMjhjODBmOGRkZDY2YTk5MjY4M2IxMzM5NzY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaApAQCAtNDQsMTEgKzQ0LDEyIEBACiBuYW1l
c3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBEZWNvZGVyOwotY2xhc3MgRGF0
YVJlZmVyZW5jZTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0cnVjdCBJbml0aWFsaXph
dGlvblNlZ21lbnRJbmZvOworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwogY2xhc3Mg
TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOwogCiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlIGZpbmFsCkBAIC02MCwxMyArNjEsMTMgQEAgY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZVJl
bW90ZSBmaW5hbAogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBSZW1vdGVTb3Vy
Y2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmKTsKKyAg
ICBzdGF0aWMgUmVmPFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU+IGNyZWF0ZShHUFVQcm9jZXNz
Q29ubmVjdGlvbiYsIFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291
cmNlUHJpdmF0ZVJlbW90ZSYsIGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYpOwogICAg
IHZpcnR1YWwgflNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoKTsKIAogICAgIHZvaWQgY2xlYXJN
ZWRpYVNvdXJjZSgpIHsgbV9tZWRpYVNvdXJjZVByaXZhdGUgPSBudWxscHRyOyB9CiAKIHByaXZh
dGU6Ci0gICAgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYs
IFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZVJl
bW90ZSYpOworICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24mLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJjZVByaXZh
dGVSZW1vdGUmLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmKTsKIAogICAgIC8vIFNv
dXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJpZGVzCiAgICAgdm9pZCBzZXRDbGllbnQoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIGZpbmFsOwpAQCAtODcsMTEgKzg4LDE0IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBjYW5Td2l0Y2hUb1R5cGUoY29uc3QgV2ViQ29yZTo6Q29udGVudFR5
cGUmKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KEluaXRpYWxpemF0aW9uU2VnbWVudEluZm8m
Jik7CiAgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kUmVzdWx0KTsKIAogICAgIEdQVVByb2Nl
c3NDb25uZWN0aW9uJiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogICAgIFJlbW90ZVNvdXJjZUJ1
ZmZlcklkZW50aWZpZXIgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyOwogICAgIFdlYWtQ
dHI8TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlPiBtX21lZGlhU291cmNlUHJpdmF0ZTsKKyAgICBX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gbV9tZWRpYVBsYXllclByaXZhdGU7CiAg
ICAgV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRy
IH07CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgppbmRleCBhYTE5ODIxMWNlOTlhYmFkNWI4ZWUwN2ZkNGUx
NzdiZGZhOTVhNDBjLi40MDY0MmY2MDM2ZWY3ZTExZTIzYjgwZjVhNDUxZDc2ZjNlZDI4YzRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBAIC0yNiw2
ICsyNiw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU09VUkNF
KQogCiBtZXNzYWdlcyAtPiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQg
eworICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50
KHN0cnVjdCBXZWJLaXQ6OkluaXRpYWxpemF0aW9uU2VnbWVudEluZm8gc2VnbWVudENvbmZpZ3Vy
YXRpb24pCiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFdlYkNvcmU6OlNv
dXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkFwcGVuZFJlc3VsdCBhcHBlbmRSZXN1bHQpCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Rl
eHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDExNzkzN2ZlMmQzY2NmY2M4MWY4OTk5MTRk
NWE5ZjY4MGM3MGIzNDcuLjczMjIzYjg2ODQyMTNhMGJkOGY3MTI4MmE4ZThkZWE2MTU5OTVlYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAtMjksMTcgKzI5LDE4IEBACiAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgot
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJl
bW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLVRleHRUcmFja1ByaXZhdGVSZW1vdGU6OlRleHRUcmFja1ByaXZhdGVSZW1vdGUoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbmRpZmllciwgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQorVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbmRpZmllciwgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQogICAgIDogV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZShjb25maWd1cmF0
aW9uLmN1ZUZvcm1hdCkKLSAgICAsIG1fcGxheWVyKHBsYXllcikKKyAgICAsIG1fY29ubmVjdGlv
bihjb25uZWN0aW9uKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZpZXIpCiB7CiAgICAgdXBk
YXRlQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKQEAgLTQ4LDcgKzQ5LDcg
QEAgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUmIHBsYXllciwKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6
c2V0TW9kZShUZXh0VHJhY2tNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgIT0gbV9tb2RlKQot
ICAgICAgICBtX3BsYXllci5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6VGV4dFRyYWNrU2V0TW9kZShtX2lkZW5kaWZpZXIsIG1vZGUpLCBtX3BsYXll
ci5pdGVudGlmaWVyKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6UmVt
b3RlVGV4dFRyYWNrUHJveHk6OlNldE1vZGUobW9kZSksIG1faWRlbmRpZmllcik7CiAKICAgICBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlOjpzZXRNb2RlKG1vZGUpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaAppbmRleCBiN2NlZGI3ZTgzOTRmOTliYTljZmIwYTJhYzJhOTc4MTFiM2M0MThmLi5kNTQy
NDQyYzg0NGU1NDgzZmQzY2VkNzg1MDVkY2ExODY5NGFlNGE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZS5oPgogCiBuYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBE
YXRhUmVmZXJlbmNlOwogfQogCkBAIC01MCw5ICs1MSw5IEBAIGNsYXNzIFRleHRUcmFja1ByaXZh
dGVSZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1Ymxp
YzoKIAotICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkZW5kaWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKKyAgICBzdGF0aWMgUmVmPFRleHRUcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbmRpZmllciwgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShjb25u
ZWN0aW9uLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBhZGREYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQ
Qzo6RGF0YVJlZmVyZW5jZSYmKTsKQEAgLTk5LDkgKzEwMCw5IEBAIHB1YmxpYzoKICAgICBib29s
IGlzRGVmYXVsdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNEZWZhdWx0OyB9CiAKIHByaXZh
dGU6Ci0gICAgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUm
LCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYmKTsKKyAgICBUZXh0VHJhY2tQcml2YXRlUmVtb3RlKElQQzo6Q29ubmVjdGlv
biYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYpOwogCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBtX3BsYXll
cjsKKyAgICBJUEM6OkNvbm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKICAgICBBdG9tU3RyaW5nIG1f
aWQ7CiAgICAgQXRvbVN0cmluZyBtX2xhYmVsOwogICAgIEF0b21TdHJpbmcgbV9sYW5ndWFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9W
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggM2Y2OTQ5MGE5MmQxZmRiZTA0NWQwNmFl
YjJlOGZiNGJjZmY5NmFkMC4uYWM2ZWEwMTQyNzFjMzMxMjZjZDc1MmIzZmZkM2I3ODU0MzlkZTY1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTI5LDEzICsyOSwxNCBAQAogCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgotI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3Nh
Z2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCi0gICAgOiBtX3BsYXllcihwbGF5ZXIp
CitWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5k
aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQor
ICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW5kaWZpZXIoaWRlbmRp
ZmllcikKIHsKICAgICB1cGRhdGVDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikp
OwpAQCAtNDQsNyArNDUsNyBAQCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1By
aXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZQogdm9pZCBWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZTo6c2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkKIHsKICAgICBpZiAo
c2VsZWN0ZWQgIT0gdGhpcy0+c2VsZWN0ZWQoKSkKLSAgICAgICAgbV9wbGF5ZXIuY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvVHJhY2tTZXRT
ZWxlY3RlZChtX2lkZW5kaWZpZXIsIHNlbGVjdGVkKSwgbV9wbGF5ZXIuaXRlbnRpZmllcigpKTsK
KyAgICAgICAgbV9jb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvVHJhY2tQcm94
eTo6U2V0U2VsZWN0ZWQoc2VsZWN0ZWQpLCBtX2lkZW5kaWZpZXIpOwogCiAgICAgVmlkZW9UcmFj
a1ByaXZhdGU6OnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUu
aAppbmRleCA2MTI5OGE2NWVkZDMzMjdhYmU1OTU1NTEyMjQzNmVlNWFiZGI0M2Q4Li5mMzZlMDZi
MTAyZDI0YzI5ZWNlODUwZWE2ZDEzNjY1MzgyYTRiYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5oCkBAIC0zMiwxNyArMzIsMjIgQEAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgogCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbjsKIAotY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUgOiBwdWJs
aWMgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUgeworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGUKKyAgICA6IHB1YmxpYyBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZp
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAg
IHN0YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShwbGF5
ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoY29ubmVjdGlvbiwgaWRlbmRp
ZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAogICAgIHZvaWQgdXBkYXRl
Q29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwpAQCAtNTQs
MTIgKzU5LDEyIEBAIHB1YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9sYW5ndWFnZTsgfQogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV90cmFja0luZGV4OyB9CiAKLXByb3RlY3RlZDoKLSAgICBWaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmLCBUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworcHJpdmF0
ZToKKyAgICBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24mLCBUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYp
OwogCiAgICAgdm9pZCBzZXRTZWxlY3RlZChib29sKSBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSYgbV9wbGF5ZXI7CisgICAgSVBDOjpDb25uZWN0aW9uJiBtX2Nvbm5lY3Rp
b247CiAgICAgVmlkZW9UcmFja0tpbmQgbV9raW5kIHsgTm9uZSB9OwogICAgIEF0b21TdHJpbmcg
bV9pZDsKICAgICBBdG9tU3RyaW5nIG1fbGFiZWw7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>