<?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>210180</bug_id>
          
          <creation_ts>2020-04-08 03:42:17 -0700</creation_ts>
          <short_desc>Introduce a RealtimeMediaSource observer dedicated to receiving audio samples</short_desc>
          <delta_ts>2020-04-10 03:58:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jacob_uphoff</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638996</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-08 03:42:17 -0700</bug_when>
    <thetext>Introduce a RealtimeMediaSource observer dedicated to receiving audio samples</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638997</commentid>
    <comment_count>1</comment_count>
      <attachid>395788</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-08 04:09:30 -0700</bug_when>
    <thetext>Created attachment 395788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639006</commentid>
    <comment_count>2</comment_count>
      <attachid>395792</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-08 04:55:34 -0700</bug_when>
    <thetext>Created attachment 395792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639068</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-08 08:37:52 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639122</commentid>
    <comment_count>4</comment_count>
      <attachid>395792</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-08 10:11:31 -0700</bug_when>
    <thetext>Comment on attachment 395792
Patch

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

&gt; Source/WebCore/Modules/mediarecorder/MediaRecorder.h:41
&gt; +typedef std::unique_ptr&lt;MediaRecorderPrivate&gt;(*creatorFunction)(MediaStreamPrivate&amp;);

Nit: could change to &quot;using&quot;

&gt; Source/WebCore/platform/mediastream/AudioTrackPrivateMediaStream.cpp:126
&gt; +    if (!m_shouldPlay || m_muted || streamTrack().muted() || streamTrack().ended() || !streamTrack().enabled()) {
&gt; +        stopRenderer();
&gt;          return;

Might as well stop the renderer when the volume is set to 0 too.

&gt; Source/WebCore/platform/mediastream/RealtimeOutgoingAudioSource.h:125
&gt; +    void audioSamplesAvailable(const MediaTime&amp;, const PlatformAudioData&amp;, const AudioStreamDescription&amp;, size_t) override { };

As we discussed, it may be possible to remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639651</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-09 08:19:11 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #4)
&gt; Comment on attachment 395792 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395792&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediarecorder/MediaRecorder.h:41
&gt; &gt; +typedef std::unique_ptr&lt;MediaRecorderPrivate&gt;(*creatorFunction)(MediaStreamPrivate&amp;);
&gt; 
&gt; Nit: could change to &quot;using&quot;

OK.

&gt; &gt; Source/WebCore/platform/mediastream/AudioTrackPrivateMediaStream.cpp:126
&gt; &gt; +    if (!m_shouldPlay || m_muted || streamTrack().muted() || streamTrack().ended() || !streamTrack().enabled()) {
&gt; &gt; +        stopRenderer();
&gt; &gt;          return;
&gt; 
&gt; Might as well stop the renderer when the volume is set to 0 too.

Right, will add a call to updateRenderer ion setVolume.

&gt; &gt; Source/WebCore/platform/mediastream/RealtimeOutgoingAudioSource.h:125
&gt; &gt; +    void audioSamplesAvailable(const MediaTime&amp;, const PlatformAudioData&amp;, const AudioStreamDescription&amp;, size_t) override { };
&gt; 
&gt; As we discussed, it may be possible to remove this.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639654</commentid>
    <comment_count>6</comment_count>
      <attachid>395953</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-09 08:25:18 -0700</bug_when>
    <thetext>Created attachment 395953
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639674</commentid>
    <comment_count>7</comment_count>
      <attachid>395961</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-09 09:24:52 -0700</bug_when>
    <thetext>Created attachment 395961
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639794</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-09 12:44:27 -0700</bug_when>
    <thetext>Committed r259816: &lt;https://trac.webkit.org/changeset/259816&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395961.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639795</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-09 12:45:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/61533569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639846</commentid>
    <comment_count>10</comment_count>
    <who name="Jacob Uphoff">jacob_uphoff</who>
    <bug_when>2020-04-09 13:49:15 -0700</bug_when>
    <thetext>Reverted r259816 for reason:

This commit broke the webkit build for macOS and iOS

Committed r259824: &lt;https://trac.webkit.org/changeset/259824&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640053</commentid>
    <comment_count>11</comment_count>
      <attachid>396052</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-09 23:49:00 -0700</bug_when>
    <thetext>Created attachment 396052
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640111</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-10 03:58:46 -0700</bug_when>
    <thetext>Committed r259861: &lt;https://trac.webkit.org/changeset/259861&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396052.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395788</attachid>
            <date>2020-04-08 04:09:30 -0700</date>
            <delta_ts>2020-04-08 04:55:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210180-20200408130928.patch</filename>
            <type>text/plain</type>
            <size>66480</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE5YWM4MzI4ZTQxYzA4
YWNhMDc3MmQ2OGFkYmI5OTk0MThjMjgzZS4uOGNkNTAxZTViYzA5YjdhZTdiODYwOTU0MTFhNWFj
OTA1YTkzOGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAyMC0wNC0wOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGEgUmVh
bHRpbWVNZWRpYVNvdXJjZSBvYnNlcnZlciBkZWRpY2F0ZWQgdG8gcmVjZWl2aW5nIGF1ZGlvIHNh
bXBsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MDE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHdhcyBjYWxsZWQgb24gdmFyaW91cyB0aHJlYWRz
IHdoaWNoIHdhcyBtYWtpbmcgaXRlcmF0aW5nIHRocm91Z2ggdGhlbSBkaWZmaWN1bHQuCisgICAg
ICAgIE9ic2VydmVycyB3ZXJlIGNvcGllZCB0byBhIHZlY3RvciBmb3IgaXRlcmF0aW5nIGVhY2gg
dGltZSBhbmQgbG9ja2luZyB3YXMgaGFwcGVuaW5nIGZvciBlYWNoIGluZGl2dWR1YWwgb2JzZXJ2
ZXIuCisKKyAgICAgICAgSW5zdGVhZCBvZiBkb2luZyB0aGF0LCBSZWFsdGltZU1lZGlhU291cmNl
OjpPYnNlcnZlciBubyBsb25nZXIgZ2l2ZXMgYWNjZXNzIHRvIGF1ZGlvIHNhbXBsZXMsIGFsbCBp
dHMgbWV0aG9kcyBhcmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgorICAgICAgICBBdWRp
b1NhbXBsZU9ic2VydmVyIGlzIGludHJvZHVjZWQgd2l0aCBhIHNpbmdsZSBtZXRob2QgdG8gcmVj
ZWl2ZSBhdWRpbyBzYW1wbGVzLgorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlIGtlZXBzIGEg
c2V0IG9mIEF1ZGlvU2FtcGxlT2JzZXJ2ZXIgc2VwYXJhdGVkIGZyb20gaXRzIGV4aXN0aW5nIE9i
c2VydmVyIGhhc2hzZXQuCisgICAgICAgIFRoZXNlIG9ic2VydmVycyBjYW4gb25seSBiZSBhZGRl
ZC9yZW1vdmVkIGZyb20gdGhlIG1haW4gdGhyZWFkIHdoaWxlIGF1ZGlvIHNhbXBsZSBkZWxpdmVy
eSB1c3VhbGx5IGhhcHBlbnMgZnJvbSBhIGJhY2tncm91bmQgdGhyZWFkLgorICAgICAgICBXZSBu
byBsb25nZXIgbmVlZCB0byBjb3B5IHRoZSBhdWRpbyBzYW1wbGUgb2JzZXJ2ZXJzIGluIGEgdmVj
dG9yIGFuZCBsb2NrIG9ubHkgb25jZSB3aGVuIGl0ZXJhdGluZyB0aGUgYXVkaW8gc2FtcGxlIG9i
c2VydmVycy4KKworICAgICAgICBUaGlzIGNoYW5nZSByZXF1aXJlcyB0byB1cGRhdGUgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUgYW5kIFJlYWx0aW1lTWVkaWFTb3VyY2Ugb2JzZXJ2ZXJzLgorICAg
ICAgICBUaGlzIGluY2x1ZGVzIFdlYkF1ZGlvLCBBdWRpbyBSZW5kZXJlciBhbmQgTWVkaWEgUmVj
b3JkZXIuCisgICAgICAgIEVhY2ggY29ycmVzcG9uZGluZyBjbGFzcyBpcyBub3cgcmVnaXN0ZXJp
bmcgaXRzZWxmIGFzIGEgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIGFuZCB3aGVu
IG5lZWRlZCBhcyBhIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyLgorICAgICAgICBUaGlz
IGFsbG93cyByZW1vdmluZyB0aGUgYWRkaXRpb25hbCBjb3B5LWluLXZlY3Rvci9sb2NrIHRoYXQg
d2FzIGhhcHBlbmluZyB3aGVuIGl0ZXJhdGluZyBvdmVyIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpPYnNlcnZlcnMgZm9yIGF1ZGlvIHNhbXBsZXMuICAgICAKKworICAgICAgICBUaGlzIGNoYW5n
ZSBhbHNvIGFsbG93cyBmb3IgYSBjb25zdW1lciB0byBhbHdheXMgb2JzZXJ2ZSB0aGUgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUgYnV0IHJlY2VpdmUgYXVkaW8gc2FtcGxlcyBvbmx5IHdoZW4gbmVl
ZGVkLgorICAgICAgICBXZSBjaGFuZ2UgdGhlIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0g
aW1wbGVtZW50YXRpb24gc28gdGhhdCwgaWYgdGhlIHJlbmRlcmVyIGlzIG11dGVkLCBub3QgcGxh
eWluZywgdGhlIHRyYWNrIGlzIG11dGVkIG9yIG5vdCBlbmFibGVkLAorICAgICAgICBpdCBubyBs
b25nZXIgcmVjZWl2ZXMgYXVkaW8gc2FtcGxlcy4KKyAgICAgICAgVGhpcyBpcyBlc3BlY2lhbGx5
IHVzZWZ1bCBpbiB0aGUgdHlwaWNhbCBjYXNlIHdoZXJlIGEgdmlkZW8gZWxlbWVudCBkaXNwbGF5
cyB0aGUgbG9jYWxseSBjYXB0dXJlZCBzdHJlYW0gKGluY2x1ZGluZyBhIGxvY2FsIGF1ZGlvIHRy
YWNrKSBidXQgaXMgbXV0ZWQKKyAgICAgICAgdG8gcHJldmVudCBmZWVkYmFjayBsb29wLgorICAg
ICAgICBGb3IgdGhhdCByZWFzb24sIHRoZSBwbGF5ZXIgaXMgbm93IHNldHRpbmcgdGhlIG11dGVk
IHN0YXRlIG9mIHRoZSByZW5kZXJlciBpbnN0ZWFkIG9mIHNldHRpbmcgdm9sdW1lIHRvIDAuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0IHNldHMuCisKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaDoKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnNldE11dGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UmVjb3JkZXJQcml2YXRlOjpzZWxlY3RUcmFja3MpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UmVjb3JkZXJQcml2YXRlOjpzZXRBdWRpb1NvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6On5NZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6ZmV0Y2hEYXRhKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6TWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9j
azo6fk1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2s6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByaXZhdGVNb2NrOjpzYW1wbGVCdWZmZXJVcGRhdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6Z2VuZXJhdGVNb2Nr
Q291bnRlclN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1v
Y2s6OmZldGNoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2suaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW06OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0pOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6Y2xlYXIpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxheSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpwYXVzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRNdXRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbTo6dHJhY2tNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp0cmFja0VuZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnN0YXJ0UmVuZGVy
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c3Rv
cFJlbmRlcmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6
Zm9yRWFjaFRyYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6Zm9yRWFjaE9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6Omhhc1N0YXJ0ZWRQcm9kdWNpbmdBdWRpb0RhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjphZGRBdWRpb1NhbXBsZU9ic2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW92ZUF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRk
T2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3Zl
T2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6Zm9yRWFj
aE9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpvYnNlcnZlU291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6dW5vYnNl
cnZlU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRp
b1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OldlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjp+SW50ZXJuYWxzKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVJlY29yZGVyTW9ja1NvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9ic2Vy
dmVNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6dmlkZW9T
YW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisKIDIwMjAt
MDQtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNXU2Vy
dmVyIHNob3VsZCBub3QgcnVuIGEgc2VydmljZSB3b3JrZXIgdGhhdCBpcyB0ZXJtaW5hdGluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAxOGZlZTc3YTcyMmU5YmE5MjQ0NjRiYzZkZWNmYTFjM2M4YjZjYjA3Li42YjMy
YzlmNDc2ZmJkZWZhYTNjM2ZjNzIwODQxZGZiYjFlZTE3MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI3IEBACisyMDIwLTA0LTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbnRyb2R1Y2UgYSBSZWFsdGltZU1lZGlhU291cmNlIG9ic2VydmVyIGRlZGljYXRl
ZCB0byByZWNlaXZpbmcgYXVkaW8gc2FtcGxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFNvdXJjZVByb3h5IHRvIGJlIGFuIEF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIuCisgICAgICAgIFVwZGF0ZSBNZWRpYVJlY29yZGVyIHRvIG9ubHkgbGlzdGVu
IGZvciBhdWRpbyBzYW1wbGVzIGlmIEdQVSByZW1vdGUgd3JpdGVyIGlzIHN1Y2Nlc3NmdWxseSBj
cmVhdGVkLgorICAgICAgICBJdCBhbHNvIHN0b3BzIGxpc3RlbmluZyB0byBhdWRpbyBzYW1wbGVz
IGFzIHNvb24gYXMgc3RvcHBpbmcgdGhlIHJlY29yZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNl
UHJveHk6On5Tb3VyY2VQcm94eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclBy
aXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNv
cmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIu
aDoKKwogMjAyMC0wNC0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgU1dTZXJ2ZXIgc2hvdWxkIG5vdCBydW4gYSBzZXJ2aWNlIHdvcmtlciB0aGF0IGlzIHRl
cm1pbmF0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggYjVkZWI4YjM1YzhhYjFmZWI3OWFiYjNmZDBlM2Vl
M2JmMDI1NDRjYS4uNjU5YWNlZDU1YmZlMGQxYzMxZWM3ZDM2MGY3NjNjZjYwYmVkMGE2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLmNwcApAQCAtNjQsMTAgKzY0LDEwIEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2V0Q3Vz
dG9tUHJpdmF0ZVJlY29yZGVyQ3JlYXRvcihjcmVhdG9yRnVuY3Rpb24gY3JlYXRvcikKICAgICBt
X2N1c3RvbUNyZWF0b3IgPSBjcmVhdG9yOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNv
cmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCitzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZU1l
ZGlhUmVjb3JkZXJQcml2YXRlKERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFTdHJlYW1Qcml2YXRl
JiBzdHJlYW0pCiB7CiAgICAgaWYgKG1fY3VzdG9tQ3JlYXRvcikKLSAgICAgICAgcmV0dXJuIG1f
Y3VzdG9tQ3JlYXRvcigpOworICAgICAgICByZXR1cm4gbV9jdXN0b21DcmVhdG9yKHN0cmVhbSk7
CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgp
OwpAQCAtMjI3LDExICsyMjcsNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnNhbXBsZUJ1ZmZlclVw
ZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbQogICAgIG1fcHJp
dmF0ZS0+c2FtcGxlQnVmZmVyVXBkYXRlZCh0cmFjaywgbWVkaWFTYW1wbGUpOwogfQogCi12b2lk
IE1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYgdHJhY2ssIGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQotewotICAgIG1fcHJpdmF0ZS0+YXVkaW9TYW1wbGVz
QXZhaWxhYmxlKHRyYWNrLCBtZWRpYVRpbWUsIGF1ZGlvRGF0YSwgZGVzY3JpcHRpb24sIHNhbXBs
ZUNvdW50KTsKLX0KLQogYm9vbCBNZWRpYVJlY29yZGVyOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zdGF0ZSAhPSBSZWNvcmRpbmdTdGF0ZTo6SW5h
Y3RpdmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuaAppbmRleCBlOGJiYjg1MWRmYzYxN2RlNmUwODU0OWI3OWY2YTQ0NzY0Nzk3
YmQwLi45YzM0ODk0NjY5MmUwMjE2MmVkNjQyY2ZhYzhmMDU4OTkwYjg5MWYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgK
QEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgQmxvYjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVk
aWFSZWNvcmRlclByaXZhdGU7CiAKLXR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlPigqY3JlYXRvckZ1bmN0aW9uKSgpOwordHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFSZWNvcmRlclByaXZhdGU+KCpjcmVhdG9yRnVuY3Rpb24pKE1lZGlhU3RyZWFtUHJpdmF0
ZSYpOwogCiBjbGFzcyBNZWRpYVJlY29yZGVyIGZpbmFsCiAgICAgOiBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVkaWFSZWNv
cmRlcihEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UmVjb3JkZXJQcml2YXRlPiYmLCBPcHRpb25zJiYgPSB7IH0pOwogCi0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZh
dGUoRG9jdW1lbnQmLCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJp
dmF0ZShEb2N1bWVudCYsIE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwogICAgIAogICAgIERvY3VtZW50
KiBkb2N1bWVudCgpIGNvbnN0OwogCkBAIC0xMDcsOCArMTA3LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwg
eyB9OwogICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIGZpbmFsIHsgfTsKICAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwotICAgIHZvaWQgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6
ZV90KSBmaW5hbDsKLSAgICAKKwogICAgIHN0YXRpYyBjcmVhdG9yRnVuY3Rpb24gbV9jdXN0b21D
cmVhdG9yOwogICAgIAogICAgIE9wdGlvbnMgbV9vcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmNwcAppbmRleCBmY2IwOTdlZTc1OWZmNWRmYjc2NDk4ZDUwOTBlNGNjY2MwYzlkNWE2Li40
NGM5ZDA3YTliOTc1MGQ2NjI2ZWI3NTg3ZWFiYzUxM2Y0MzZiOGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlclByb3Zp
ZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUm
IHN0cmVhbSkKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNv
cmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZh
dGUmIHN0cmVhbSkKIHsKICAgICByZXR1cm4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpj
cmVhdGUoc3RyZWFtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaAppbmRleCAyZTJmNDM2ZWMw
YWY4YWVmOTc1MDgxY2JhYjQwOGQ0NTNkNGViMjRhLi4xMWJhYWRjZWE4NjllN2EyOTE5NjYyYWIy
ZDhjZWY1NDcwYzJlZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0zNyw3ICszNyw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1
bHQ7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKLSAgICB2
aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwogI2VuZGlmCiAKICAgICB2b2lkIHNldFVzZUdQ
VVByb2Nlc3MoYm9vbCB2YWx1ZSkgeyBtX3VzZUdQVVByb2Nlc3MgPSB2YWx1ZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAwMWZmMjA4MDBlNWMwNmFiMmY2NmY4
NmEyNGVhZWNhZTZiZjI2MTU2Li5lOTgwNDg0MWQ3NDgzZWI3MjRmNzU0NjYzMGM2ZmRlN2IzMTJh
NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNTgyLDcgKzU4
Miw3IEBAIHB1YmxpYzoKICAgICBFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVs
dDsKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJl
Y29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbCB7IHJldHVybiBu
dWxscHRyOyB9CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVh
dGVNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbCB7IHJldHVy
biBudWxscHRyOyB9CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRl
eCBmMDNmMTE4NjdiZDliOWYxNGRiYTdkNmY3MDg5MWI4OGRiMDZkZThlLi40MzhiYjlhNDIzZjBk
NGQ5NDk1MmEzYWFlNGQ0MjY2ZmUzZDdmNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
CkBAIC01NjAsNyArNTYwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSLCB2b2x1bWUpOwogICAgIG1fdm9sdW1lID0gdm9sdW1lOwogICAgIGZvciAoY29uc3QgYXV0
byYgdHJhY2sgOiBtX2F1ZGlvVHJhY2tNYXAudmFsdWVzKCkpCi0gICAgICAgIHRyYWNrLT5zZXRW
b2x1bWUobV9tdXRlZCA/IDAgOiBtX3ZvbHVtZSk7CisgICAgICAgIHRyYWNrLT5zZXRWb2x1bWUo
bV92b2x1bWUpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKQEAgLTU3MSw3ICs1NzEsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKICAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIsIG11dGVkKTsKICAgICBtX211dGVkID0gbXV0ZWQ7CiAg
ICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkKLSAg
ICAgICAgdHJhY2stPnNldFZvbHVtZShtX211dGVkID8gMCA6IG1fdm9sdW1lKTsKKyAgICAgICAg
dHJhY2stPnNldE11dGVkKG1fbXV0ZWQpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6aGFzVmlkZW8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
LmNwcAppbmRleCBhNjk5M2NhMjgxZGI4ODJlYzk5MmZmYWQ3NGNhMWY5YjMxOTNiNmRlLi4yNjc5
OThkMDZkNWY4OTlhZGExMTRiMDhkMGExZTJlMTIzMDU3ODU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU1l
ZGlhUmVjb3JkZXJQcml2YXRlOjpBdWRpb1ZpZGVvU2VsZWN0ZWRUcmFja3MgTWVkaWFSZWNvcmRl
clByaXZhdGU6OnNlbGVjdFRyYWNrcyhjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkK
K01lZGlhUmVjb3JkZXJQcml2YXRlOjpBdWRpb1ZpZGVvU2VsZWN0ZWRUcmFja3MgTWVkaWFSZWNv
cmRlclByaXZhdGU6OnNlbGVjdFRyYWNrcyhNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsK
ICAgICBBdWRpb1ZpZGVvU2VsZWN0ZWRUcmFja3Mgc2VsZWN0ZWRUcmFja3M7CiAgICAgc3RyZWFt
LmZvckVhY2hUcmFjayhbJl0oYXV0byYgdHJhY2spIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaApp
bmRleCA2MDQzMGI0MWIzMjUwNDJjZjJiMWRlMzZhODg2OWRlMDJjOTBiNWE1Li5lMjhlMzgzNmIx
Zjk3MTEzNzQwODkzM2ZiMWUwZDMyNTg4YjA4ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5o
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlICJFeGNlcHRpb24uaCIKKyNpbmNsdWRl
ICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCkBA
IC00MywyOSArNDQsNTMgQEAgY2xhc3MgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU7CiBjbGFzcyBQ
bGF0Zm9ybUF1ZGlvRGF0YTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAotY2xhc3MgTWVkaWFSZWNv
cmRlclByaXZhdGUgeworY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgOgorICAgIHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpID0gZGVmYXVsdDsKKyAgICB+TWVkaWFSZWNv
cmRlclByaXZhdGUoKTsKIAogICAgIHN0cnVjdCBBdWRpb1ZpZGVvU2VsZWN0ZWRUcmFja3Mgewot
ICAgICAgICBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFjayB7IG51bGxw
dHIgfTsKLSAgICAgICAgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2sg
eyBudWxscHRyIH07CisgICAgICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNr
IHsgbnVsbHB0ciB9OworICAgICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlkZW9UcmFj
ayB7IG51bGxwdHIgfTsKICAgICB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Zp
ZGVvU2VsZWN0ZWRUcmFja3Mgc2VsZWN0VHJhY2tzKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1ZpZGVvU2VsZWN0ZWRUcmFja3Mgc2Vs
ZWN0VHJhY2tzKE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwogCiAgICAgdmlydHVhbCB2b2lkIHNhbXBs
ZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBs
ZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpID0g
MDsKIAotICAgIHZpcnR1YWwgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChS
ZWZQdHI8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wUmVjb3JkaW5nKCkgeyB9OworICAgIHVzaW5nIEZldGNoRGF0
YUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYm
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT47CisgICAgdmlydHVhbCB2b2lkIGZldGNoRGF0YShG
ZXRjaERhdGFDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BSZWNvcmRpbmco
KSA9IDA7CiAKICAgICB1c2luZyBFcnJvckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChPcHRpb25h
bDxFeGNlcHRpb24+JiYpPjsKICAgICB2b2lkIHNldEVycm9yQ2FsbGJhY2soRXJyb3JDYWxsYmFj
ayYmIGVycm9yQ2FsbGJhY2spIHsgbV9lcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxi
YWNrKTsgfQogCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBzZXRBdWRpb1NvdXJjZShSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZT4mJik7CisKIHByb3RlY3RlZDoKICAgICBFcnJvckNhbGxiYWNrIG1f
ZXJyb3JDYWxsYmFjazsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gbV9hdWRpb1NvdXJjZTsKIH07CiAKK2lubGluZSB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
OjpzZXRBdWRpb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBhdWRpb1NvdXJj
ZSkKK3sKKyAgICBpZiAobV9hdWRpb1NvdXJjZSkKKyAgICAgICAgbV9hdWRpb1NvdXJjZS0+cmVt
b3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisKKyAgICBtX2F1ZGlvU291cmNlID0gV1RG
TW92ZShhdWRpb1NvdXJjZSk7CisKKyAgICBpZiAobV9hdWRpb1NvdXJjZSkKKyAgICAgICAgbV9h
dWRpb1NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7Cit9CisKK2lubGluZSBN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKCkKK3sKKyAgICBpZiAo
bV9hdWRpb1NvdXJjZSkKKyAgICAgICAgbV9hdWRpb1NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVP
YnNlcnZlcigqdGhpcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bC5jcHAKaW5kZXggMmQ1YTM1OWIyMzFiYzk0MjkwMTA2ODQ2ZGM2YTk4NTJiN2JhNzg2Ny4uODc4
OTQwYjBmOTEwMjQzMzc1ODNkYWE2Y2YzMjczODJhNWY1ZmVhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+
IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJp
dmF0ZSYgc3RyZWFtKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bD4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoTWVkaWFTdHJlYW1Qcml2YXRl
JiBzdHJlYW0pCiB7CiAgICAgLy8gRklYTUU6IHdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgc3Vw
cG9ydCBmb3IgbXVsdGlwbGUgYXVkaW8vdmlkZW8gdHJhY2tzCiAgICAgLy8gQ3VycmVudGx5IHdl
IG9ubHkgY2hvb3NlIHRoZSBmaXJzdCB0cmFjayBhcyB0aGUgcmVjb3JkZWQgdHJhY2suCkBAIC01
MSwxMSArNTEsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bD4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUKICAgICBTdHJpbmcgYXVkaW9U
cmFja0lkOwogICAgIGlmIChzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKQogICAgICAgICBhdWRp
b1RyYWNrSWQgPSBzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5pZCgpOworCiAgICAgU3RyaW5n
IHZpZGVvVHJhY2tJZDsKICAgICBpZiAoc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjaykKICAgICAg
ICAgdmlkZW9UcmFja0lkID0gc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjay0+aWQoKTsKIAotICAg
IHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4od3JpdGVyLnJl
bGVhc2VOb25OdWxsKCksIFdURk1vdmUoYXVkaW9UcmFja0lkKSwgV1RGTW92ZSh2aWRlb1RyYWNr
SWQpKTsKKyAgICBhdXRvIHJlY29yZGVyID0gbWFrZVVuaXF1ZTxNZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGw+KHdyaXRlci5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKGF1ZGlvVHJhY2tJZCks
IFdURk1vdmUodmlkZW9UcmFja0lkKSk7CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJh
Y2spCisgICAgICAgIHJlY29yZGVyLT5zZXRBdWRpb1NvdXJjZSgmc2VsZWN0ZWRUcmFja3MuYXVk
aW9UcmFjay0+c291cmNlKCkpOworICAgIHJldHVybiByZWNvcmRlcjsKIH0KIAogTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwoUmVmPE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyPiYmIHdyaXRlciwgU3RyaW5nJiYgYXVkaW9UcmFja0lkLCBT
dHJpbmcmJiB2aWRlb1RyYWNrSWQpCkBAIC02NSw2ICs2OSwxMSBAQCBNZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGw6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbChSZWY8TWVkaWFSZWNvcmRl
clByaXZhdAogewogfQogCitNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6On5NZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGwoKQoreworICAgIHNldEF1ZGlvU291cmNlKG51bGxwdHIpOworfQor
CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6c2FtcGxlQnVmZmVyVXBkYXRlZChj
b25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtcGxlJiBzYW1wbGVC
dWZmZXIpCiB7CiAgICAgaWYgKHRyYWNrLmlkKCkgIT0gbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCkK
QEAgLTcyLDEwICs4MSw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzYW1w
bGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2CiAgICAgbV93cml0ZXIt
PmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNh
bXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
IHRyYWNrLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IHNpemVfdCBzYW1wbGVDb3VudCkKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmIG1lZGlhVGltZSwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7Ci0gICAgaWYgKHRyYWNrLmlkKCkg
IT0gbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCkKLSAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChp
czxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpKTsKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxh
dGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0
cmVhbUJhc2ljVHlwZSk7CiAgICAgbV93cml0ZXItPmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGRh
dGEsIGRlc2NyaXB0aW9uLCBtZWRpYVRpbWUsIHNhbXBsZUNvdW50KTsKQEAgLTgzLDEwICs5MCwx
MSBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcgogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbDo6c3RvcFJlY29yZGluZygpCiB7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7
CiAgICAgbV93cml0ZXItPnN0b3BSZWNvcmRpbmcoKTsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGw6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxT
aGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmZldGNoRGF0YShGZXRjaERhdGFDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fd3JpdGVyLT5mZXRjaERhdGEoW2NvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1pbWVUeXBlID0gbWlt
ZVR5cGUoKV0oYXV0byYmIGJ1ZmZlcikgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUoYnVmZmVyKSwgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGVBVkZJbXBsLmgKaW5kZXggMGNmMGRmM2M2NGNjOTcxM2UzMDU5YmUzNmNhY2M5ZmM3Y2NjMGIz
Ni4uNzE5YWRiYmFlOTE4YjI3ZjdlZWM3MmVkNDc2MmVjN2VmNmY4ZWQyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCkBAIC0zMywyMiArMzMsMjYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiAKLWNsYXNzIE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbCBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7
CitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwgZmluYWwKKyAgICA6IHB1YmxpYyBN
ZWRpYVJlY29yZGVyUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gY3JlYXRlKE1lZGlhU3RyZWFt
UHJpdmF0ZSYpOworICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwoKTsKIAogcHJpdmF0
ZToKICAgICBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwoUmVmPE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyPiYmLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQsIFN0cmluZyYmIHZpZGVvVHJhY2tJ
ZCk7CiAKICAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbD4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+KFJlZjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4mJiwgU3RyaW5nJiYsIFN0cmluZyYmKTsKIAorICAg
IC8vIE1lZGlhUmVjb3JkZXJQcml2YXRlCiAgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNv
bnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKLSAgICB2
b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYs
IGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKLSAgICB2b2lkIGZldGNoRGF0
YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0
cmluZyYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGZldGNoRGF0YShGZXRjaERhdGFDYWxsYmFjayYm
KSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlh
VGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIHNpemVfdCkgZmluYWw7CisKICAgICBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKCk7CiAg
ICAgdm9pZCBzdG9wUmVjb3JkaW5nKCk7Ci0gICAgCisKICAgICBSZWY8TWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI+IG1fd3JpdGVyOwogICAgIFN0cmluZyBtX3JlY29yZGVkQXVkaW9UcmFja0lE
OwogICAgIFN0cmluZyBtX3JlY29yZGVkVmlkZW9UcmFja0lEOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZU1vY2suY3BwCmluZGV4IGYyYWM4YzI3Y2I0NWM5N2MyZGMwM2I4ZmU0YTczNjkxN2Q0
YmNmODcuLmExZDBkMTBjMDYxMTFlNjhhNDZlNTQ4NTRkYzk2MWVkZTIwNzZkOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAKQEAgLTMzLDMwICszMyw1MSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpzYW1wbGVC
dWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFT
YW1wbGUmKQorTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1v
Y2soTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7Ci0gICAgZ2VuZXJhdGVNb2NrU3RyaW5n
KHRyYWNrKTsKKyAgICBhdXRvIHNlbGVjdGVkVHJhY2tzID0gTWVkaWFSZWNvcmRlclByaXZhdGU6
OnNlbGVjdFRyYWNrcyhzdHJlYW0pOworICAgIGlmIChzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNr
KSB7CisgICAgICAgIG1fYXVkaW9UcmFja0lEID0gc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjay0+
aWQoKTsKKyAgICAgICAgc2V0QXVkaW9Tb3VyY2UoJnNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2st
PnNvdXJjZSgpKTsKKyAgICB9CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spCisg
ICAgICAgIG1fdmlkZW9UcmFja0lEID0gc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjay0+aWQoKTsK
IH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OmF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IFdURjo6TWVkaWFU
aW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgc2l6ZV90KQorTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjp+TWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrKCkKIHsKLSAgICBnZW5lcmF0ZU1vY2tTdHJpbmcodHJhY2spOworICAgIHNldEF1
ZGlvU291cmNlKG51bGxwdHIpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6
Z2VuZXJhdGVNb2NrU3RyaW5nKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykK
K3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAgICBz
ZXRBdWRpb1NvdXJjZShudWxscHRyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1v
Y2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBN
ZWRpYVNhbXBsZSYpCit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2J1ZmZlckxvY2sp
OworICAgIG1fYnVmZmVyLmFwcGVuZCgiVmlkZW8gVHJhY2sgSUQ6ICIpOworICAgIG1fYnVmZmVy
LmFwcGVuZChtX3ZpZGVvVHJhY2tJRCk7CisgICAgZ2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygp
OworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KQogewogICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9idWZmZXJMb2NrKTsKLSAgICBpZiAodHJhY2sudHlwZSgpID09IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQotICAgICAgICBtX2J1ZmZlci5hcHBlbmQoIkF1ZGlv
IFRyYWNrIElEOiAiKTsKLSAgICBlbHNlCi0gICAgICAgIG1fYnVmZmVyLmFwcGVuZCgiVmlkZW8g
VHJhY2sgSUQ6ICIpOwotICAgIG1fYnVmZmVyLmFwcGVuZCh0cmFjay5pZCgpKTsKKyAgICBtX2J1
ZmZlci5hcHBlbmQoIkF1ZGlvIFRyYWNrIElEOiAiKTsKKyAgICBtX2J1ZmZlci5hcHBlbmQobV9h
dWRpb1RyYWNrSUQpOworICAgIGdlbmVyYXRlTW9ja0NvdW50ZXJTdHJpbmcoKTsKK30KKwordm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OmdlbmVyYXRlTW9ja0NvdW50ZXJTdHJpbmcoKQor
ewogICAgIG1fYnVmZmVyLmFwcGVuZCgiIENvdW50ZXI6ICIpOwogICAgIG1fYnVmZmVyLmFwcGVu
ZE51bWJlcigrK21fY291bnRlcik7CiAgICAgbV9idWZmZXIuYXBwZW5kKCJcclxuLS0tLS0tLS0t
XHJcbiIpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6ZmV0Y2hEYXRhKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5n
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6
ZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2J1ZmZlckxvY2spOwogICAgIFZlY3Rvcjx1aW50OF90
PiB2YWx1ZShtX2J1ZmZlci5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2su
aAppbmRleCA0ZGFlZDY3MzFkZWE1M2U5NzU2NjFhNDRhMTI3MGZmMThkZTJkODQ5Li5iN2YzYzIx
NDhlMzk5ZWEyMjM2ZDkyYzg2NTlmNzk4NzFiYWUxN2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrLmgKQEAgLTM0LDE4ICszNCwyNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRp
YVJlY29yZGVyUHJpdmF0ZU1vY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFSZWNvcmRlclByaXZhdGUg
eworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrIGZpbmFsCisg
ICAgOiBwdWJsaWMgTWVkaWFSZWNvcmRlclByaXZhdGUgeworcHVibGljOgorICAgIGV4cGxpY2l0
IE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayhNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAgICB+TWVk
aWFSZWNvcmRlclByaXZhdGVNb2NrKCk7CisKIHByaXZhdGU6CisgICAgLy8gTWVkaWFSZWNvcmRl
clByaXZhdGUKICAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwotICAgIHZvaWQgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpIGZpbmFsOwotICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJik+JiYpIGZpbmFs
OworICAgIHZvaWQgZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBm
aW5hbDsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKSBmaW5hbDsKKwogICAgIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUoKTsKLSAgICAKLSAgICB2b2lkIGdlbmVyYXRlTW9ja1N0cmluZyhjb25zdCBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworICAgIHZvaWQgZ2VuZXJhdGVNb2NrQ291bnRlclN0
cmluZygpOwogCiAgICAgbXV0YWJsZSBMb2NrIG1fYnVmZmVyTG9jazsKICAgICBTdHJpbmdCdWls
ZGVyIG1fYnVmZmVyOwogICAgIHVuc2lnbmVkIG1fY291bnRlciB7IDAgfTsKKyAgICBTdHJpbmcg
bV9hdWRpb1RyYWNrSUQ7CisgICAgU3RyaW5nIG1fdmlkZW9UcmFja0lEOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcApp
bmRleCAyZWRkNDU5MjJkM2NiZDcxMjU2ODZlODdlNWEyM2I3YTVhMDUxMWQ1Li5mZjFkMTAyMjI4
MDc4MGYxMGQ3NDdjYjhlM2Y4NTk2YWI0NTQ0YTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmNwcApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0oTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQogICAgIDogbV9zdHJlYW1UcmFjayh0
cmFjaykKKyAgICAsIG1fYXVkaW9Tb3VyY2UodHJhY2suc291cmNlKCkpCiAgICAgLCBtX2lkKHRy
YWNrLmlkKCkpCiAgICAgLCBtX2xhYmVsKHRyYWNrLmxhYmVsKCkpCi0gICAgLCBtX3RpbWVsaW5l
T2Zmc2V0KE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAgICAsIG1fcmVuZGVyZXIgeyBBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y3JlYXRlKCkgfQogewogICAgIHRyYWNrLmFkZE9i
c2VydmVyKCp0aGlzKTsKQEAgLTYyLDQwICs2MiwzMCBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW06OmNsZWFyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc0NsZWFyZWQg
PSB0cnVlOwotICAgIHN0cmVhbVRyYWNrKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotCi0gICAg
bV9yZW5kZXJlci0+Y2xlYXIoKTsKLX0KLQotdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtOjpwbGF5SW50ZXJuYWwoKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAg
ICBpZiAobV9pc1BsYXlpbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNQbGF5aW5nID0g
dHJ1ZTsKLSAgICBtX2F1dG9QbGF5ID0gZmFsc2U7CisgICAgICAgIG1fYXVkaW9Tb3VyY2UtPnJl
bW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogCi0gICAgbV9yZW5kZXJlci0+c3RhcnQo
KTsKKyAgICBzdHJlYW1UcmFjaygpLnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3JlbmRl
cmVyLT5jbGVhcigpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBs
YXkoKQogewotICAgIHBsYXlJbnRlcm5hbCgpOworICAgIG1fc2hvdWxkUGxheSA9IHRydWU7Cisg
ICAgdXBkYXRlUmVuZGVyZXIoKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtOjpwYXVzZSgpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGlmICgh
bV9pc1BsYXlpbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNQbGF5aW5nID0gZmFsc2U7
Ci0gICAgbV9hdXRvUGxheSA9IGZhbHNlOworICAgIG1fc2hvdWxkUGxheSA9IGZhbHNlOworICAg
IHVwZGF0ZVJlbmRlcmVyKCk7Cit9CiAKLSAgICBtX3JlbmRlcmVyLT5zdG9wKCk7Cit2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnNldE11dGVkKGJvb2wgbXV0ZWQpCit7CisgICAg
bV9tdXRlZCA9IG11dGVkOworICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiB9CiAKIHZvaWQgQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkKQEAgLTEwOSw0
NiArOTksNTUgQEAgZmxvYXQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dm9sdW1lKCkg
Y29uc3QKIH0KIAogLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KLXZv
aWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQordm9pZCBBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiBz
YW1wbGVUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewot
ICAgIGlmICghbV9pc1BsYXlpbmcpIHsKLSAgICAgICAgbV9yZW5kZXJlci0+c3RvcCgpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgbV9yZW5kZXJlci0+cHVzaFNhbXBsZXMoc2FtcGxl
VGltZSwgYXVkaW9EYXRhLCBkZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQpOwotCi0gICAgaWYgKG1f
YXV0b1BsYXkgJiYgIW1faGFzU3RhcnRlZEF1dG9wbGF5KSB7Ci0gICAgICAgIG1faGFzU3RhcnRl
ZEF1dG9wbGF5ID0gdHJ1ZTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgICAgICBpZiAobV9hdXRvUGxheSkK
LSAgICAgICAgICAgICAgICBwbGF5SW50ZXJuYWwoKTsKLSAgICAgICAgfSk7Ci0gICAgfQogfQog
CiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnRyYWNrTXV0ZWRDaGFuZ2VkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIHsKLSAgICB1cGRhdGVSZW5kZXJlck11dGVkU3RhdGUo
KTsKKyAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW06OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQog
ewotICAgIHVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpOworICAgIHVwZGF0ZVJlbmRlcmVyKCk7
Cit9CisKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tFbmRlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKIH0KIAotdm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp1cGRhdGVSZW5kZXJlck11dGVkU3RhdGUo
KQordm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp1cGRhdGVSZW5kZXJlcigpCiB7
Ci0gICAgaWYgKHN0cmVhbVRyYWNrKCkubXV0ZWQoKSB8fCBzdHJlYW1UcmFjaygpLmVuZGVkKCkg
fHwgIXN0cmVhbVRyYWNrKCkuZW5hYmxlZCgpKSB7Ci0gICAgICAgIHBhdXNlKCk7CisgICAgaWYg
KCFtX3Nob3VsZFBsYXkgfHwgbV9tdXRlZCB8fCBzdHJlYW1UcmFjaygpLm11dGVkKCkgfHwgc3Ry
ZWFtVHJhY2soKS5lbmRlZCgpIHx8ICFzdHJlYW1UcmFjaygpLmVuYWJsZWQoKSkgeworICAgICAg
ICBzdG9wUmVuZGVyZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBwbGF5KCk7Cisg
ICAgc3RhcnRSZW5kZXJlcigpOwogfQogCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW06OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQordm9pZCBBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtOjpzdGFydFJlbmRlcmVyKCkKIHsKLSAgICBwYXVzZSgpOworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKG1faXNQbGF5aW5nKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2lzUGxheWluZyA9IHRydWU7CisgICAgbV9hdWRpb1NvdXJjZS0+YWRk
QXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgbV9yZW5kZXJlci0+c3RhcnQoKTsKK30K
Kwordm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzdG9wUmVuZGVyZXIoKQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKCFtX2lzUGxheWluZykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBtX2F1ZGlvU291cmNl
LT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3JlbmRlcmVyLT5zdG9w
KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW0uaAppbmRleCBmMzI1YzZkZDY5Y2Y4MmNhMTgwNWFkMTUxZDE3NDZkYjZkMTZkNzZk
Li44YWRlMjVjNWRlZjZiZDFkNzNlNzVhOTdiOWRiM2UwYTQ0Nzk2NGI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCkBAIC0zNCw3ICszNCwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOwogCi1jbGFzcyBB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIEF1ZGlvVHJhY2tQcml2
YXRlLCBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CitjbGFzcyBB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsCisgICAgOiBwdWJsaWMgQXVkaW9UcmFj
a1ByaXZhdGUKKyAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVy
CisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0p
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
PiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKQpAQCAtNDcsOSAr
NTAsNiBAQCBwdWJsaWM6CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFtVHJh
Y2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKLSAgICBNZWRpYVRpbWUgdGlt
ZWxpbmVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3RpbWVsaW5lT2Zmc2V0OyB9Ci0gICAgdm9p
ZCBzZXRUaW1lbGluZU9mZnNldChjb25zdCBNZWRpYVRpbWUmIG9mZnNldCkgeyBtX3RpbWVsaW5l
T2Zmc2V0ID0gb2Zmc2V0OyB9Ci0KICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICB2b2lkIHBsYXko
KTsKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsK
ICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCBtdXRl
ZCkgeyBtX211dGVkID0gbXV0ZWQ7IH0KKyAgICB2b2lkIHNldE11dGVkKGJvb2wpOwogICAgIGJv
b2wgbXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkOyB9CiAKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKQEAgLTc3LDMwICs3NywzMiBAQCBwcm90ZWN0ZWQ6CiAgICAgaW50IHRyYWNrSW5k
ZXgoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2luZGV4OyB9CiAKICAgICAvLyBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7
CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAg
ICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpICBmaW5h
bDsKICAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KSAgZmluYWw7CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsKLSAgICB2b2lk
IHVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpOworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25z
dCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgdm9pZCBzdGFydFJlbmRlcmVyKCk7
CisgICAgdm9pZCBzdG9wUmVuZGVyZXIoKTsKKyAgICB2b2lkIHVwZGF0ZVJlbmRlcmVyKCk7CiAK
ICAgICAvLyBNYWluIHRocmVhZCB3cml0YWJsZSBtZW1iZXJzCiAgICAgYm9vbCBtX2lzUGxheWlu
ZyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2F1dG9QbGF5IHsgZmFsc2UgfTsKKyAgICBib29sIG1f
c2hvdWxkUGxheSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNDbGVhcmVkIHsgZmFsc2UgfTsKIAogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gbV9zdHJlYW1UcmFjazsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9hdWRp
b1NvdXJjZTsKICAgICBBdG9tU3RyaW5nIG1faWQ7CiAgICAgQXRvbVN0cmluZyBtX2xhYmVsOwog
ICAgIGludCBtX2luZGV4IHsgMCB9OwotICAgIE1lZGlhVGltZSBtX3RpbWVsaW5lT2Zmc2V0Owog
CiAgICAgLy8gQXVkaW8gdGhyZWFkIG1lbWJlcnMKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IG1fcmVuZGVyZXI7Ci0gICAgYm9vbCBtX2hhc1N0YXJ0
ZWRBdXRvcGxheSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAppbmRleCBh
ZGNmMTJiMDFlZTdhZTg2Y2EzZGY0NWIyNzgxNzZjYWFkMDRmMzY0Li43YjJkMGM3OTZiYTliMTVl
NzIzYjQ0NTU4YWRlYzc0YjExZjgyOWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKQEAgLTEyMSw2
ICsxMjEsMTIgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hUcmFjayhjb25zdCBG
dW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2sKICAgICAgICAgY2FsbGJhY2soKnRy
YWNrKTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hUcmFjayhjb25zdCBG
dW5jdGlvbjx2b2lkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik+JiBjYWxsYmFjaykKK3sKKyAg
ICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJh
Y2soKnRyYWNrKTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0
YXRlKE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGllbnRPcHRpb24pCiB7CiAgICAgYm9vbCBu
ZXdBY3RpdmVTdGF0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCBjZTZiNzEwODY1MTFl
ZjI5M2I4OTg2NTA5NjQ2MjhmZDc2OGQyM2FkLi43OTI4OWI4MTIzNjM5ZGI5NjJmZDEyZDI5Mjc4
NzM3ODQzMDkwMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtODQsNiArODQsNyBAQCBwdWJsaWM6
CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgdHJhY2tzKCkgY29uc3Q7CiAgICAg
Ym9vbCBoYXNUcmFja3MoKSBjb25zdCB7IHJldHVybiAhbV90cmFja1NldC5pc0VtcHR5KCk7IH0K
ICAgICB2b2lkIGZvckVhY2hUcmFjayhjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJik+JikgY29uc3Q7CisgICAgdm9pZCBmb3JFYWNoVHJhY2soY29uc3Qg
RnVuY3Rpb248dm9pZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpPiYpOwogICAgIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlKiBhY3RpdmVWaWRlb1RyYWNrKCkgeyByZXR1cm4gbV9hY3RpdmVWaWRl
b1RyYWNrOyB9CiAKICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY3RpdmU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAppbmRleCBjOTljMTZjNmQ4MGNhNDFlNDJj
N2RkMWU0MjBiZjEyYTg5Mjg1ODU4Li40ZDA4YWQ3MzM2Y2VhNDk2MDBmYWI5YzcxMGY5N2MyMDAz
Zjc0ZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCkBAIC03OCwxNiArNzgsMTAg
QEAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6On5NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSgpCiAg
ICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6Zm9yRWFjaE9ic2VydmVyKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChP
YnNlcnZlciYpPiYgYXBwbHkpIGNvbnN0Cit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpm
b3JFYWNoT2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYgYXBwbHkpIGNv
bnN0CiB7Ci0gICAgVmVjdG9yPE9ic2VydmVyKj4gb2JzZXJ2ZXJzQ29weTsKLSAgICB7Ci0gICAg
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKLSAgICAgICAgb2Jz
ZXJ2ZXJzQ29weSA9IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycyk7Ci0gICAgfQotICAgIGZvciAo
YXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnNDb3B5KSB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBvYnNl
cnZlciBoYXMgbm90IGJlZW4gZGVzdHJveWVkLgorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycykpIHsK
ICAgICAgICAgaWYgKCFtX29ic2VydmVycy5jb250YWlucyhvYnNlcnZlcikpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgYXBwbHkoKm9ic2VydmVyKTsKQEAgLTk2LDEzICs5MCwxMyBA
QCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgV1RG
OjpGdW5jdGlvbjx2b2lkKE9ic2VydmVyJgogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjphZGRPYnNlcnZlcihNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVy
KQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOwog
fQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpyZW1vdmVPYnNlcnZlcihNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOwogfQogCkBAIC0yNjEsMjYgKzI1
NSwxMiBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjp2aWRlb1NhbXBsZUF2YWlsYWJs
ZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiAgICAgfSk7CiB9CiAKLS8vIE1heSBnZXQgY2Fs
bGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCi12b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQordm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6aGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpCiB7Ci0gICAgaWYgKCFtX2hhc1Nl
bnRTdGFydFByb2R1Y2VkRGF0YSkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtUaGlz
KQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKCFtX2hhdmVQcm9k
dWNlZERhdGEpIHsKLSAgICAgICAgICAgICAgICBtX2hhdmVQcm9kdWNlZERhdGEgPSB0cnVlOwot
ICAgICAgICAgICAgICAgIHVwZGF0ZVJlYWR5U3RhdGUoKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIG1faGFzU2VudFN0YXJ0UHJvZHVjZWREYXRhID0gdHJ1ZTsKLSAgICAgICAgfSk7Cisg
ICAgaWYgKG1faGF2ZVByb2R1Y2VkRGF0YSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKLSAgICAgICAgb2JzZXJ2ZXIu
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCp0aGlzLCBtZWRpYVRpbWUsIGRhdGEsIGRlc2NyaXB0aW9u
LCBzYW1wbGVDb3VudCk7Ci0gICAgfSk7CisgICAgbV9oYXZlUHJvZHVjZWREYXRhID0gdHJ1ZTsK
KyAgICB1cGRhdGVSZWFkeVN0YXRlKCk7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OnVwZGF0ZVJlYWR5U3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKaW5kZXggZjli
NWQxMDE1MTRlNzFmMjNjN2I2YTNhZjJjZTIxNjkwZDRlNTJiMy4uYWM3Zjc2OTBkMmNjOGJjNWRh
NmY2ZGJmODZiYzFlOTljYjFkY2VjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBAIC02
Miw5ICs2Miw2IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrRW5hYmxlZENo
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1w
bGUmKSB7IH07CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpIHsgfTsKLQotICAgICAgICAvLyBNYXkgZ2V0IGNhbGxlZCBvbiBh
IGJhY2tncm91bmQgdGhyZWFkLgotICAgICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZh
aWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90
KSB7IH07CiAgICAgfTsKIAogICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+
IGNyZWF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7
CkBAIC0xMDAsNiArOTcsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlPiBjbG9uZSgpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1
cm4gbV9zb3VyY2UuZ2V0KCk7IH0KKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlJiBzb3Vy
Y2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JU
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSgpIGNvbnN0OwogCiAgICAgdm9pZCBlbmRU
cmFjaygpOwpAQCAtMTMyLDE1ICsxMzAsMTUgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiwgU3RyaW5nJiYgaWQpOwogCi0gICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZU9i
c2VydmVyCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKICAgICB2b2lkIHNv
dXJjZVN0YXJ0ZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKICAg
ICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNlU2V0dGlu
Z3NDaGFuZ2VkKCkgZmluYWw7CiAgICAgYm9vbCBwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkg
ZmluYWw7CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYpIGZpbmFs
OwotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVf
dCkgZmluYWw7CiAgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lk
IGhhc1N0YXJ0ZWRQcm9kdWNpbmdBdWRpb0RhdGEoKSBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRl
UmVhZHlTdGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDI5NTI5MTZkNmNmOWE4
NmFjZTMwMmQ4ZWIxYTE1ZDcxMTE5ZjQ1ZWUuLmE0ZjY4OTVhMzVmMzI0ZDFiMzdjYWU0NTNjODU4
ZTYyNmNiYWZmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC02MCwxNSArNjAsMjkgQEAg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGRldmkKICAgICBtX2hhc2hlZElEID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG1fcGVyc2lzdGVudElE
LCBtX2lkSGFzaFNhbHQpOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZEF1ZGlv
U2FtcGxlT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciYg
b2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2NrKTsKKyAgICBtX2F1ZGlvU2Ft
cGxlT2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9T
YW1wbGVPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2NrKTsK
KyAgICBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOworfQorCiB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9ic2VydmVyKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9i
c2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fb2JzZXJ2
ZXJzTG9jayk7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBtX29ic2VydmVycy5h
ZGQoJm9ic2VydmVyKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdmVPYnNl
cnZlcihSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOworICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7CiAgICAgaWYgKG1f
b2JzZXJ2ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKQEAgLTEx
MiwxNiArMTI2LDEwIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRG
b3JUZXN0aW5nKGJvb2wgaW50ZXJydXB0ZWQpCiAgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoaW50ZXJy
dXB0ZWQpOwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmZvckVhY2hPYnNlcnZlcihj
b25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KSBjb25zdAordm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlOjpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248dm9pZChP
YnNlcnZlciYpPiYgYXBwbHkpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPE9ic2VydmVyKj4gb2JzZXJ2
ZXJzQ29weTsKLSAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZl
cnNMb2NrKTsKLSAgICAgICAgb2JzZXJ2ZXJzQ29weSA9IGNvcHlUb1ZlY3RvcihtX29ic2VydmVy
cyk7Ci0gICAgfQotICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnNDb3B5KSB7Ci0g
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKLSAgICAgICAg
Ly8gTWFrZSBzdXJlIHRoZSBvYnNlcnZlciBoYXMgbm90IGJlZW4gZGVzdHJveWVkLgorICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1Zl
Y3RvcihtX29ic2VydmVycykpIHsKICAgICAgICAgaWYgKCFtX29ic2VydmVycy5jb250YWlucyhv
YnNlcnZlcikpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYXBwbHkoKm9ic2VydmVy
KTsKQEAgLTE3OCw5ICsxODYsMjIgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiAKIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwg
Y29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKIHsKLSAgICBmb3JF
YWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7Ci0gICAgICAgIG9ic2VydmVyLmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBhdWRpb0RhdGEsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZy
YW1lcyk7Ci0gICAgfSk7CisgICAgaWYgKCFtX2hhc1NlbnRTdGFydFByb2R1Y2VkQXVkaW9EYXRh
KSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyldIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgaWYgKG1faGFzU2VudFN0YXJ0UHJvZHVjZWRBdWRpb0RhdGEp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9oYXNTZW50U3RhcnRQcm9k
dWNlZEF1ZGlvRGF0YSA9IHRydWU7CisgICAgICAgICAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1
dG8mIG9ic2VydmVyKSB7CisgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuaGFzU3RhcnRlZFByb2R1
Y2luZ0F1ZGlvRGF0YSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2spOwor
ICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzKQorICAgICAg
ICBvYnNlcnZlci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgZGVzY3Jp
cHRpb24sIG51bWJlck9mRnJhbWVzKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpz
dGFydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggMWI5ZDZhMjQ0OWM1MjEzNjRkZDMyY2I0MGIz
OTY3Njk1YWYyNTQwYy4uNTc2MDUzODczMTFmZDMxNzA4ZTBjZWFlMWUxZWJhNDcxYTEwYmYwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNjksNyArNjksNyBAQCBzdHJ1Y3QgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3I7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAg
ICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291cmNlLCBXVEY6
OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9vcD4KLSAgICAsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxSZWFsdGltZU1lZGlhU291cmNlPgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2UsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPgog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgcHJvdGVjdGVkIExvZ2dlckhlbHBlcgog
I2VuZGlmCkBAIC05Miw4ICs5MiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIENhbGxlZCBvbiB0
aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgIHZpcnR1YWwgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJs
ZShNZWRpYVNhbXBsZSYpIHsgfQogCisgICAgICAgIHZpcnR1YWwgdm9pZCBoYXNTdGFydGVkUHJv
ZHVjaW5nQXVkaW9EYXRhKCkgeyB9CisgICAgfTsKKyAgICBjbGFzcyBBdWRpb1NhbXBsZU9ic2Vy
dmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkF1ZGlvU2FtcGxlT2JzZXJ2ZXIo
KSA9IGRlZmF1bHQ7CisKICAgICAgICAgLy8gTWF5IGJlIGNhbGxlZCBvbiBhIGJhY2tncm91bmQg
dGhyZWFkLgotICAgICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHNpemVfdCAvKm51bWJlck9mRnJhbWVzKi8pIHsgfQorICAgICAgICB2aXJ0
dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCAv
Km51bWJlck9mRnJhbWVzKi8pID0gMDsKICAgICB9OwogCiAgICAgdmlydHVhbCB+UmVhbHRpbWVN
ZWRpYVNvdXJjZSgpID0gZGVmYXVsdDsKQEAgLTEzMSw2ICsxMzcsOSBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAorICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgYWRkQXVkaW9TYW1wbGVPYnNlcnZlcihBdWRpb1NhbXBsZU9ic2VydmVyJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKEF1ZGlvU2Ft
cGxlT2JzZXJ2ZXImKTsKKwogICAgIGNvbnN0IEludFNpemUgc2l6ZSgpIGNvbnN0OwogICAgIHZv
aWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJik7CiAKQEAgLTI1Myw4ICsyNjIsMTEgQEAgcHJpdmF0
ZToKICAgICBTdHJpbmcgbV9wZXJzaXN0ZW50SUQ7CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgU3Ry
aW5nIG1fbmFtZTsKLSAgICBtdXRhYmxlIFJlY3Vyc2l2ZUxvY2sgbV9vYnNlcnZlcnNMb2NrOwog
ICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKworICAgIG11dGFibGUgUmVjdXJz
aXZlTG9jayBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jazsKKyAgICBIYXNoU2V0PEF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIqPiBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzOworCiAgICAgSW50U2l6ZSBtX3Np
emU7CiAgICAgSW50U2l6ZSBtX2ludHJpbnNpY1NpemU7CiAgICAgZG91YmxlIG1fZnJhbWVSYXRl
IHsgMzAgfTsKQEAgLTI3Miw2ICsyODQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pbnRlcnJ1
cHRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhcHR1cmVEaWRGYWlsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzU2VudFN0YXJ0UHJv
ZHVjZWRBdWRpb0RhdGEgeyBmYWxzZSB9OwogfTsKIAogc3RydWN0IENhcHR1cmVTb3VyY2VPckVy
cm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGNkZmUyM2Zh
NGFjZTBiNmRhNmJlOWU3OTQ1NjhkZTg0MGZhNGI2NmUuLmMyN2U2MGY2NmNjY2U5MjYyMGUyNjU3
OGZmNThhM2IwZTU3NDgwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNw
cApAQCAtNDUsNyArNDUsNyBAQCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaQogCiBSZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoKQogewotQVNT
RVJUKCFtX2F1ZGlvU291cmNlLT5oYXNPYnNlcnZlcigqdGhpcykpOworICAgIEFTU0VSVCghbV9h
dWRpb1NvdXJjZS0+aGFzT2JzZXJ2ZXIoKnRoaXMpKTsKICNpZiBBU1NFUlRfRU5BQkxFRAogICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zaW5rc0xvY2spOwogI2VuZGlmCkBAIC01OCwxMSAr
NTgsMTMgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6Om9ic2VydmVTb3VyY2Uo
KQogewogICAgIEFTU0VSVCghbV9hdWRpb1NvdXJjZS0+aGFzT2JzZXJ2ZXIoKnRoaXMpKTsKICAg
ICBtX2F1ZGlvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9hdWRpb1NvdXJjZS0+
c291cmNlKCkuYWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiAgICAgaW5pdGlhbGl6ZUNv
bnZlcnRlcigpOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6dW5vYnNl
cnZlU291cmNlKCkKIHsKKyAgICBtX2F1ZGlvU291cmNlLT5zb3VyY2UoKS5yZW1vdmVBdWRpb1Nh
bXBsZU9ic2VydmVyKCp0aGlzKTsKICAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVPYnNlcnZlcigq
dGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggODE2NzYx
M2RhZDhmMjMyM2YyMWZiOTcxMjA3NzY1ODQ0MTQzYzA2Mi4uMWViMGEzY2JjOTcyN2E1MWFlOGVl
Y2EzYzc1Yjk4MjA0YjIzNGRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgK
QEAgLTU1LDYgKzU1LDcgQEAgY2xhc3MgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlCiAgICAg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgogICAgICwgcHVibGljIHdlYnJ0Yzo6QXVk
aW9Tb3VyY2VJbnRlcmZhY2UKICAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxl
T2JzZXJ2ZXIKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2Vy
SGVscGVyCiAjZW5kaWYKQEAgLTEwOCw3ICsxMDksNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
b3VyY2VNdXRlZENoYW5nZWQoKTsKICAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBz
aXplX3QpIHsgfTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoaW5nQnVmZmVyZWRBdWRpb0Rh
dGFIaWdoTGltaXQoKSB7IHJldHVybiBmYWxzZTsgfTsKICAgICB2aXJ0dWFsIGJvb2wgaXNSZWFj
aGluZ0J1ZmZlcmVkQXVkaW9EYXRhTG93TGltaXQoKSB7IHJldHVybiBmYWxzZTsgfTsKQEAgLTEx
OCwxMCArMTE4LDEyIEBAIHByaXZhdGU6CiAgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
Ok9ic2VydmVyIEFQSQogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmKSBmaW5hbCB7IHNvdXJjZU11dGVkQ2hhbmdlZCgpOyB9CiAgICAgdm9pZCB0cmFj
a0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyBzb3VyY2VF
bmFibGVkQ2hhbmdlZCgpOyB9Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSwgY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpIHsgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKG1lZGlh
VGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsgfQogICAgIHZvaWQgdHJhY2tF
bmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQogICAgIHZvaWQgdHJhY2tT
ZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KIAorICAg
IC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgQVBJCisgICAgdm9p
ZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBvdmVycmlk
ZSB7IH07CisKICAgICB2b2lkIGluaXRpYWxpemVDb252ZXJ0ZXIoKTsKIAogICAgIFJlZjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9hdWRpb1NvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIu
aAppbmRleCAwMzA3MDNkNTQwMGE0NjZhOTcwYTA2OWM3NzQzNGMwYTA0ZjcyNzUxLi5lN2Q4ODg5
MjQ2ZjRjMWU4ODBjNDc4MjZlMzYyMzZmNTZmMzBjMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ci5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyPiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgeworY2xhc3MgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiwgcHVibGljIEF1
ZGlvU291cmNlUHJvdmlkZXIgewogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaAppbmRleCBmZjMwZWIzN2ViNzBkOWMxZjRjNzhiNGFhMTIxNGE0MWUx
NjkyNDBkLi4xYzFjZTczMTBlNzBjYjc3NzMwZjYzYjdlMmM2ODk1ZWU2MGZmNGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtNDYsNyArNDYsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9TYW1wbGVEYXRhU291cmNlOwogY2xh
c3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgeworY2xhc3MgV0VCQ09S
RV9FWFBPUlQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMgZmluYWwKKyAgICA6IHB1Ymxp
YyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyCisgICAgLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
T2JzZXJ2ZXIKKyAgICAsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIg
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+
IGNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOwogICAgIHZpcnR1YWwgfldlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDKCk7CkBAIC02MiwxMSArNjUsMTMgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgZmluYWw7CiAKICAg
ICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAgICB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikgZmluYWwgeyB9CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQogICAgIHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KLSAgICB2b2lkIHRyYWNrRW5hYmxlZENo
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KKyAgICB2b2lkIHRyYWNr
RW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKKworICAgIC8v
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogCiAgICAg
c2l6ZV90IG1fbGlzdEJ1ZmZlclNpemUgeyAwIH07CiAgICAgT3B0aW9uYWw8Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uPiBtX2lucHV0RGVzY3JpcHRpb247CkBAIC03Nyw4ICs4MiwxMCBAQCBwcml2
YXRlOgogICAgIHVpbnQ2NF90IG1fcmVhZENvdW50IHsgMCB9OwogICAgIEF1ZGlvU291cmNlUHJv
dmlkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlKiBtX2NhcHR1cmVTb3VyY2UgeyBudWxscHRyIH07CisgICAgUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+IG1fc291cmNlOwogICAgIExvY2sgbV9tdXRleDsKICAgICBib29sIG1fY29ubmVj
dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRleCBhZTkwMmQx
YmQzYWUyZGY5M2NmMTI0ODE2MWNiMzcyMGU5ODY5NDk0Li43OTBkYmQxYjNjOTBmYzcyNDk0ZGIx
ZmUzMmQ2YzJiN2IyMTBiYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLm1tCkBAIC01NCwxMSArNTQsMTYgQEAgUmVmPFdlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDPiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKE1lZGlhU3QK
IAogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2UpCiAgICAgOiBtX2NhcHR1cmVT
b3VyY2UoJnNvdXJjZSkKKyAgICAsIG1fc291cmNlKHNvdXJjZS5zb3VyY2UoKSkKKyAgICAsIG1f
ZW5hYmxlZChzb3VyY2UuZW5hYmxlZCgpKQogeworICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBs
ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiB7CisgICAgbV9zb3VyY2UtPnJlbW92ZUF1
ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X211dGV4KTsKIAogICAgIGlmIChtX2Nvbm5lY3RlZCAmJiBtX2NhcHR1cmVTb3VyY2UpCkBAIC0x
NjUsMTAgKzE3MCwxNSBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnBy
ZXBhcmUoKQogICAgIH0KIH0KIAordm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2spCit7Cisg
ICAgbV9lbmFibGVkID0gdHJhY2suZW5hYmxlZCgpOworfQorCiAvLyBNYXkgZ2V0IGNhbGxlZCBv
biBhIGJhY2tncm91bmQgdGhyZWFkLgotdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDb3VudCkKK3Zv
aWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQogewot
ICAgIGlmICghdHJhY2suZW5hYmxlZCgpKQorICAgIGlmICghbV9lbmFibGVkIHx8ICFtX2Nvbm5l
Y3RlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3Jt
RGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1C
YXNpY1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGExMGRjNmMz
YTFiOGRjOTQ4ZDBlOTA1NTEzNjI2YzJlZWFkOTFiNTkuLjYyMGMxZGM3ZDM2ZDk5YzViOTZkMmU4
ZTY0ZjM5YzBmZDJmNDhjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTQ2Nyw4ICs0NjcsMTAgQEAgUmVmPEludGVybmFscz4gSW50ZXJuYWxzOjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50KQogSW50ZXJuYWxzOjp+SW50ZXJuYWxzKCkKIHsKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgIGlmIChtX3RyYWNrKQotICAgICAgICBtX3RyYWNrLT5zb3VyY2UoKS5y
ZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgaWYgKG1fdHJhY2tTb3VyY2UpIHsKKyAgICAgICAg
bV90cmFja1NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3RyYWNrU291
cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CiAjZW5kaWYKIH0K
IApAQCAtMTY0MCw5ICsxNjQyLDkgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE1lZGlhQ2FwdHVyZVJl
cXVpcmVzU2VjdXJlQ29ubmVjdGlvbihib29sIGVuYWJsZWQpCiAgICAgICAgIHBhZ2UtPnNldHRp
bmdzKCkuc2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKGVuYWJsZWQpOwog
fQogCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVS
ZWNvcmRlck1vY2tTb3VyY2UoKQorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZT4gY3JlYXRlUmVjb3JkZXJNb2NrU291cmNlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3Ry
ZWFtKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVN
b2NrPihuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrKTsKKyAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jaz4obmV3IE1lZGlhUmVjb3JkZXJQcml2YXRl
TW9jayhzdHJlYW0pKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldEN1c3RvbVByaXZhdGVSZWNv
cmRlckNyZWF0b3IoKQpAQCAtNDkzMiw4ICs0OTM0LDkgQEAgdm9pZCBJbnRlcm5hbHM6OnNldENh
bWVyYU1lZGlhU3RyZWFtVHJhY2tPcmllbnRhdGlvbihNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaywg
aW4KIAogdm9pZCBJbnRlcm5hbHM6Om9ic2VydmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2smIHRyYWNrKQogewotICAgIG1fdHJhY2sgPSAmdHJhY2s7Ci0gICAgbV90cmFjay0+c291
cmNlKCkuYWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fdHJhY2tTb3VyY2UgPSAmdHJhY2suc291
cmNlKCk7CisgICAgbV90cmFja1NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fdHJh
Y2tTb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2b2lkIEludGVy
bmFsczo6Z3JhYk5leHRNZWRpYVN0cmVhbVRyYWNrRnJhbWUoVHJhY2tGcmFtZVByb21pc2UmJiBw
cm9taXNlKQpAQCAtNDk0Nyw3ICs0OTUwLDcgQEAgdm9pZCBJbnRlcm5hbHM6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgaWYgKCFtX25leHRUcmFja0ZyYW1l
UHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byYgdmlkZW9TZXR0aW5ncyA9IG1f
dHJhY2stPnNvdXJjZSgpLnNldHRpbmdzKCk7CisgICAgYXV0byYgdmlkZW9TZXR0aW5ncyA9IG1f
dHJhY2tTb3VyY2UtPnNldHRpbmdzKCk7CiAgICAgaWYgKCF2aWRlb1NldHRpbmdzLndpZHRoKCkg
fHwgIXZpZGVvU2V0dGluZ3MuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDhiNDVlY2UxMGU4MDFmMGE4ZDc1YTYxY2M3OTNi
YTU1ZDRjODQxNTUuLjA5YjZiOTkxMGRiYWVhOGRjMThkZGE1MTY0ZGRiNDhkMTA2NzM1NjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTIzLDYgKzEyMyw3IEBAIHN0cnVjdCBN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogY2xhc3MgSW50ZXJuYWxzIGZpbmFs
IDogcHVibGljIFJlZkNvdW50ZWQ8SW50ZXJuYWxzPiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBwcml2YXRlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKICNlbmRpZgogICAgIHsKIHB1YmxpYzoKQEAgLTk3MCwx
NSArOTcxLDE2IEBAIHByaXZhdGU6CiAKICAgICBFeGNlcHRpb25PcjxSZW5kZXJlZERvY3VtZW50
TWFya2VyKj4gbWFya2VyQXQoTm9kZSYsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwgdW5zaWdu
ZWQgaW5kZXgpOwogCi0gICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIgQVBJCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNl
cnZlciBBUEkKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmlu
YWw7CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciBBUEkK
ICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3Qp
IGZpbmFsIHsgbV90cmFja0F1ZGlvU2FtcGxlQ291bnQrKzsgfQogCiAgICAgT3JpZW50YXRpb25O
b3RpZmllciBtX29yaWVudGF0aW9uTm90aWZpZXI7CiAgICAgdW5zaWduZWQgbG9uZyBtX3RyYWNr
VmlkZW9TYW1wbGVDb3VudCB7IDAgfTsKICAgICB1bnNpZ25lZCBsb25nIG1fdHJhY2tBdWRpb1Nh
bXBsZUNvdW50IHsgMCB9OwotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBtX3RyYWNrOwor
ICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3RyYWNrU291cmNlOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxUcmFja0ZyYW1lUHJvbWlzZT4gbV9uZXh0VHJhY2tGcmFtZVByb21pc2U7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA5ZDZmYmFmMmViMTc3ZDZl
ZTI2NmYyNDM2MmU2ODJlZWNlYWM5YjE1Li5mYmE2YTI4YTE2NzhhN2FjYTY4NTYwMzc5NzQ2YzMz
ZjFhNjA0NTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNDcsNiArNDcsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U291cmNlUHJveHkKICAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpP
YnNlcnZlcgorICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2Jz
ZXJ2ZXIKICAgICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTU3LDExICs1OCwxMyBAQCBw
dWJsaWM6CiAgICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMp
KSkKICAgICB7CiAgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgICAg
IG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKICAgICB9CiAKICAgICB+
U291cmNlUHJveHkoKQogICAgIHsKICAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyAg
ICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAg
ICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuY3BwCmluZGV4IDY5NjgwZjI0ZjgwZGVhOTM3NDI5OTUyOWZlOWY2Njc3YTEyY2RjZDAu
LmZjZjQ4NGFkNDA4ZGFjN2YwZDIxMWE5MmYzM2M0NDZhMDgwNDA5ZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLU1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK01lZGlhUmVjb3JkZXJQ
cml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkK
ICAgICA6IG1faWRlbnRpZmllcihNZWRpYVJlY29yZGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkK
ICAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKIHsKQEAgLTY0LDE1ICs2NCwxOSBAQCBNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Q
cml2YXRlJiBzdHJlYW0pCiAgICAgICAgIHdpZHRoID0gc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFj
ay0+c2V0dGluZ3MoKS53aWR0aCgpOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRl
UmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaywgd2lk
dGgsIGhlaWdodCB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oYXV0byYm
IGV4Y2VwdGlvbikgewotICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFleGNlcHRpb24pCisgICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7IG1faWRlbnRpZmllciwgISFzZWxlY3RlZFRy
YWNrcy5hdWRpb1RyYWNrLCB3aWR0aCwgaGVpZ2h0IH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpLCBhdWRpb1RyYWNrID0gbWFrZVJlZlB0cihzZWxlY3RlZFRyYWNrcy5hdWRp
b1RyYWNrKV0oYXV0byYmIGV4Y2VwdGlvbikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2Vycm9yQ2FsbGJhY2soRXhjZXB0aW9uIHsgZXhj
ZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7CisgICAgICAgIGlm
IChleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm4gbV9lcnJvckNhbGxiYWNrKEV4Y2VwdGlv
biB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAg
ICAgICBpZiAoYXVkaW9UcmFjaykKKyAgICAgICAgICAgIHNldEF1ZGlvU291cmNlKCZhdWRpb1Ry
YWNrLT5zb3VyY2UoKSk7CiAgICAgfSwgMCk7CiB9CiAKIE1lZGlhUmVjb3JkZXJQcml2YXRlOjp+
TWVkaWFSZWNvcmRlclByaXZhdGUoKQogeworICAgIHNldEF1ZGlvU291cmNlKG51bGxwdHIpOwog
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFn
ZXI6OlJlbGVhc2VSZWNvcmRlciB7IG1faWRlbnRpZmllciB9LCAwKTsKIH0KIApAQCAtODgsMTEg
KzkyLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2FtcGxlQnVmZmVyVXBkYXRlZChj
b25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHIKICNlbmRpZgogfQogCi12b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV2ViQ29yZTo6TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCit2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogewotICAgIGlmICh0
cmFjay5pZCgpICE9IG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQpCi0gICAgICAgIHJldHVybjsKLQog
ICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIEFTU0VSVChk
ZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0
aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpX
VEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5w
bGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwpAQCAtMTMwLDYgKzEzMSw3IEBAIHZv
aWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxXZWJDb3JlOjpTaGFyCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3BS
ZWNvcmRpbmcoKQogeworICAgIHNldEF1ZGlvU291cmNlKG51bGxwdHIpOwogICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6U3RvcFJlY29yZGluZyB7
IH0sIG1faWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IDZkOWZhYmUz
ZWE3MjQ3M2Y0NTk5MGNlOGFkMTcyZDBjZDAzYTgxMjYuLjY4MDA5NDJhMzBkY2RjNDFhYzNiYWZm
ZDliYTc4ODEyODA5YjQ2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApAQCAtNDQsMTggKzQ0LDIx
IEBAIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNs
YXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcml2YXRlLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiB7CitjbGFzcyBNZWRpYVJl
Y29yZGVyUHJpdmF0ZSBmaW5hbAorICAgIDogcHVibGljIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlCisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAorICAg
ICwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgTWVkaWFSZWNvcmRl
clByaXZhdGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgZXhwbGlj
aXQgTWVkaWFSZWNvcmRlclByaXZhdGUoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJik7CiAg
ICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlKCk7CiAKIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByaXZhdGUKICAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3Qg
V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYp
IGZpbmFsOwotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBXZWJD
b3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSk+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcFJlY29yZGluZygpIGZpbmFsOworICAg
IHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3Qg
V2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKIAogICAgIC8vIFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlOjpDbGllbnQKICAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcm92aWRlci5jcHAKaW5kZXggYmQxZGU0MTFiZjMzNDFlOWQyYmUyYjQyYTI5ZDE0
OGMyYmQ4ZDRhNC4uNmNiMzIxZWQyNTg5NDg5ZTlkYjBjYmJkNWI1NTliMWU1NmEwMzQ5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0zNCw3ICszNCw3IEBACiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVk
aWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCitzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQ
cm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBz
dHJlYW0pCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3VzZUdQVVByb2Nl
c3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oCmluZGV4IGQyNTg4ZDQyYWI2MGRkYTZkMjk0ODhmYjg1
ZmUyYWM1MDUwMThiZDIuLmU5NmI4ZmYzNjRkZTU5ODg2OGZkOWRmMDVlYTkyNWI0MGQ4M2FhYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0zNSw3ICszNSw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlh
UmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFs
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJikgZmlu
YWw7CiAjZW5kaWYKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395792</attachid>
            <date>2020-04-08 04:55:34 -0700</date>
            <delta_ts>2020-04-09 08:25:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210180-20200408135532.patch</filename>
            <type>text/plain</type>
            <size>69766</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE5YWM4MzI4ZTQxYzA4
YWNhMDc3MmQ2OGFkYmI5OTk0MThjMjgzZS4uMWM2NTNiYzBmOTQ5YmI0ZTUyNDBhODEyMDFmODE3
MGI3NmY4MDllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAyMC0wNC0wOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGEgUmVh
bHRpbWVNZWRpYVNvdXJjZSBvYnNlcnZlciBkZWRpY2F0ZWQgdG8gcmVjZWl2aW5nIGF1ZGlvIHNh
bXBsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MDE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHdhcyBjYWxsZWQgb24gdmFyaW91cyB0aHJlYWRz
IHdoaWNoIHdhcyBtYWtpbmcgaXRlcmF0aW5nIHRocm91Z2ggdGhlbSBkaWZmaWN1bHQuCisgICAg
ICAgIE9ic2VydmVycyB3ZXJlIGNvcGllZCB0byBhIHZlY3RvciBmb3IgaXRlcmF0aW5nIGVhY2gg
dGltZSBhbmQgbG9ja2luZyB3YXMgaGFwcGVuaW5nIGZvciBlYWNoIGluZGl2dWR1YWwgb2JzZXJ2
ZXIuCisKKyAgICAgICAgSW5zdGVhZCBvZiBkb2luZyB0aGF0LCBSZWFsdGltZU1lZGlhU291cmNl
OjpPYnNlcnZlciBubyBsb25nZXIgZ2l2ZXMgYWNjZXNzIHRvIGF1ZGlvIHNhbXBsZXMsIGFsbCBp
dHMgbWV0aG9kcyBhcmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgorICAgICAgICBBdWRp
b1NhbXBsZU9ic2VydmVyIGlzIGludHJvZHVjZWQgd2l0aCBhIHNpbmdsZSBtZXRob2QgdG8gcmVj
ZWl2ZSBhdWRpbyBzYW1wbGVzLgorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlIGtlZXBzIGEg
c2V0IG9mIEF1ZGlvU2FtcGxlT2JzZXJ2ZXIgc2VwYXJhdGVkIGZyb20gaXRzIGV4aXN0aW5nIE9i
c2VydmVyIGhhc2hzZXQuCisgICAgICAgIFRoZXNlIG9ic2VydmVycyBjYW4gb25seSBiZSBhZGRl
ZC9yZW1vdmVkIGZyb20gdGhlIG1haW4gdGhyZWFkIHdoaWxlIGF1ZGlvIHNhbXBsZSBkZWxpdmVy
eSB1c3VhbGx5IGhhcHBlbnMgZnJvbSBhIGJhY2tncm91bmQgdGhyZWFkLgorICAgICAgICBXZSBu
byBsb25nZXIgbmVlZCB0byBjb3B5IHRoZSBhdWRpbyBzYW1wbGUgb2JzZXJ2ZXJzIGluIGEgdmVj
dG9yIGFuZCBsb2NrIG9ubHkgb25jZSB3aGVuIGl0ZXJhdGluZyB0aGUgYXVkaW8gc2FtcGxlIG9i
c2VydmVycy4KKworICAgICAgICBUaGlzIGNoYW5nZSByZXF1aXJlcyB0byB1cGRhdGUgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUgYW5kIFJlYWx0aW1lTWVkaWFTb3VyY2Ugb2JzZXJ2ZXJzLgorICAg
ICAgICBUaGlzIGluY2x1ZGVzIFdlYkF1ZGlvLCBBdWRpbyBSZW5kZXJlciBhbmQgTWVkaWEgUmVj
b3JkZXIuCisgICAgICAgIEVhY2ggY29ycmVzcG9uZGluZyBjbGFzcyBpcyBub3cgcmVnaXN0ZXJp
bmcgaXRzZWxmIGFzIGEgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIGFuZCB3aGVu
IG5lZWRlZCBhcyBhIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyLgorICAgICAgICBUaGlz
IGFsbG93cyByZW1vdmluZyB0aGUgYWRkaXRpb25hbCBjb3B5LWluLXZlY3Rvci9sb2NrIHRoYXQg
d2FzIGhhcHBlbmluZyB3aGVuIGl0ZXJhdGluZyBvdmVyIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpPYnNlcnZlcnMgZm9yIGF1ZGlvIHNhbXBsZXMuICAgICAKKworICAgICAgICBUaGlzIGNoYW5n
ZSBhbHNvIGFsbG93cyBmb3IgYSBjb25zdW1lciB0byBhbHdheXMgb2JzZXJ2ZSB0aGUgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUgYnV0IHJlY2VpdmUgYXVkaW8gc2FtcGxlcyBvbmx5IHdoZW4gbmVl
ZGVkLgorICAgICAgICBXZSBjaGFuZ2UgdGhlIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0g
aW1wbGVtZW50YXRpb24gc28gdGhhdCwgaWYgdGhlIHJlbmRlcmVyIGlzIG11dGVkLCBub3QgcGxh
eWluZywgdGhlIHRyYWNrIGlzIG11dGVkIG9yIG5vdCBlbmFibGVkLAorICAgICAgICBpdCBubyBs
b25nZXIgcmVjZWl2ZXMgYXVkaW8gc2FtcGxlcy4KKyAgICAgICAgVGhpcyBpcyBlc3BlY2lhbGx5
IHVzZWZ1bCBpbiB0aGUgdHlwaWNhbCBjYXNlIHdoZXJlIGEgdmlkZW8gZWxlbWVudCBkaXNwbGF5
cyB0aGUgbG9jYWxseSBjYXB0dXJlZCBzdHJlYW0gKGluY2x1ZGluZyBhIGxvY2FsIGF1ZGlvIHRy
YWNrKSBidXQgaXMgbXV0ZWQKKyAgICAgICAgdG8gcHJldmVudCBmZWVkYmFjayBsb29wLgorICAg
ICAgICBGb3IgdGhhdCByZWFzb24sIHRoZSBwbGF5ZXIgaXMgbm93IHNldHRpbmcgdGhlIG11dGVk
IHN0YXRlIG9mIHRoZSByZW5kZXJlciBpbnN0ZWFkIG9mIHNldHRpbmcgdm9sdW1lIHRvIDAuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0IHNldHMuCisKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaDoKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnNldE11dGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UmVjb3JkZXJQcml2YXRlOjpzZWxlY3RUcmFja3MpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UmVjb3JkZXJQcml2YXRlOjpzZXRBdWRpb1NvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6On5NZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6ZmV0Y2hEYXRhKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6TWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9j
azo6fk1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2s6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByaXZhdGVNb2NrOjpzYW1wbGVCdWZmZXJVcGRhdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6Z2VuZXJhdGVNb2Nr
Q291bnRlclN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1v
Y2s6OmZldGNoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2suaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW06OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0pOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6Y2xlYXIpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxheSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpwYXVzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRNdXRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbTo6dHJhY2tNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp0cmFja0VuZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnN0YXJ0UmVuZGVy
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c3Rv
cFJlbmRlcmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ondl
YmtpdE1lZGlhU3RyZWFtU3JjRmluYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6d2Via2l0TWVk
aWFTdHJlYW1TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJraXRNZWRpYVN0
cmVhbVNyY1NldHVwU3JjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpm
b3JFYWNoVHJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
UHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Ojpmb3JFYWNoT2JzZXJ2ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU6OmFkZE9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjpyZW1vdmVPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6aGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlQXVkaW9TYW1w
bGVPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjphZGRP
YnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdmVP
YnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpmb3JFYWNo
T2JzZXJ2ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZTo6flJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6Om9ic2VydmVTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjp1bm9ic2Vy
dmVTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29p
bmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlv
U291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW06CisgICAgICAgIChXZWJD
b3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6V2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6YXVkaW9TYW1wbGVz
QXZhaWxhYmxlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6On5JbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
UmVjb3JkZXJNb2NrU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6b2JzZXJ2
ZU1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKwogMjAyMC0w
NC0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU1dTZXJ2
ZXIgc2hvdWxkIG5vdCBydW4gYSBzZXJ2aWNlIHdvcmtlciB0aGF0IGlzIHRlcm1pbmF0aW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDE4ZmVlNzdhNzIyZTliYTkyNDQ2NGJjNmRlY2ZhMWMzYzhiNmNiMDcuLjZiMzJj
OWY0NzZmYmRlZmFhM2MzZmM3MjA4NDFkZmJiMWVlMTczMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjcgQEAKKzIwMjAtMDQtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVkaWFTb3VyY2Ugb2JzZXJ2ZXIgZGVkaWNhdGVk
IHRvIHJlY2VpdmluZyBhdWRpbyBzYW1wbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgU291cmNlUHJveHkgdG8gYmUgYW4gQXVkaW9TYW1w
bGVPYnNlcnZlci4KKyAgICAgICAgVXBkYXRlIE1lZGlhUmVjb3JkZXIgdG8gb25seSBsaXN0ZW4g
Zm9yIGF1ZGlvIHNhbXBsZXMgaWYgR1BVIHJlbW90ZSB3cml0ZXIgaXMgc3VjY2Vzc2Z1bGx5IGNy
ZWF0ZWQuCisgICAgICAgIEl0IGFsc28gc3RvcHMgbGlzdGVuaW5nIHRvIGF1ZGlvIHNhbXBsZXMg
YXMgc29vbiBhcyBzdG9wcGluZyB0aGUgcmVjb3JkaW5nLgorCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6U291cmNlUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQ
cm94eTo6flNvdXJjZVByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJp
dmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFSZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5o
OgorCiAyMDIwLTA0LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTV1NlcnZlciBzaG91bGQgbm90IHJ1biBhIHNlcnZpY2Ugd29ya2VyIHRoYXQgaXMgdGVy
bWluYXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCBiNWRlYjhiMzVjOGFiMWZlYjc5YWJiM2ZkMGUzZWUz
YmYwMjU0NGNhLi42NTlhY2VkNTViZmUwZDFjMzFlYzdkMzYwZjc2M2NmNjBiZWQwYTZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuY3BwCkBAIC02NCwxMCArNjQsMTAgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpzZXRDdXN0
b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKGNyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQogICAgIG1f
Y3VzdG9tQ3JlYXRvciA9IGNyZWF0b3I7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29y
ZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3N0ZDo6
dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVk
aWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYVN0cmVhbVByaXZhdGUm
IHN0cmVhbSkKIHsKICAgICBpZiAobV9jdXN0b21DcmVhdG9yKQotICAgICAgICByZXR1cm4gbV9j
dXN0b21DcmVhdG9yKCk7CisgICAgICAgIHJldHVybiBtX2N1c3RvbUNyZWF0b3Ioc3RyZWFtKTsK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7
CkBAIC0yMjcsMTEgKzIyNyw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2FtcGxlQnVmZmVyVXBk
YXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtCiAgICAgbV9wcml2
YXRlLT5zYW1wbGVCdWZmZXJVcGRhdGVkKHRyYWNrLCBtZWRpYVNhbXBsZSk7CiB9CiAKLXZvaWQg
TWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiB0cmFjaywgY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgbV9wcml2YXRlLT5hdWRpb1NhbXBsZXNB
dmFpbGFibGUodHJhY2ssIG1lZGlhVGltZSwgYXVkaW9EYXRhLCBkZXNjcmlwdGlvbiwgc2FtcGxl
Q291bnQpOwotfQotCiBib29sIE1lZGlhUmVjb3JkZXI6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZp
dHkoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0YXRlICE9IFJlY29yZGluZ1N0YXRlOjpJbmFj
dGl2ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5oCmluZGV4IGU4YmJiODUxZGZjNjE3ZGU2ZTA4NTQ5Yjc5ZjZhNDQ3NjQ3OTdi
ZDAuLjljMzQ4OTQ2NjkyZTAyMTYyZWQ2NDJjZmFjOGYwNTg5OTBiODkxZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApA
QCAtMzgsNyArMzgsNyBAQCBjbGFzcyBCbG9iOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBNZWRp
YVJlY29yZGVyUHJpdmF0ZTsKIAotdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRl
clByaXZhdGU+KCpjcmVhdG9yRnVuY3Rpb24pKCk7Cit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZT4oKmNyZWF0b3JGdW5jdGlvbikoTWVkaWFTdHJlYW1Qcml2YXRl
Jik7CiAKIGNsYXNzIE1lZGlhUmVjb3JkZXIgZmluYWwKICAgICA6IHB1YmxpYyBBY3RpdmVET01P
YmplY3QKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYVJlY29y
ZGVyKERvY3VtZW50JiwgUmVmPE1lZGlhU3RyZWFtPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+JiYsIE9wdGlvbnMmJiA9IHsgfSk7CiAKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0
ZShEb2N1bWVudCYsIGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKERvY3VtZW50JiwgTWVkaWFTdHJlYW1Qcml2YXRlJik7CiAgICAgCiAgICAgRG9jdW1lbnQq
IGRvY3VtZW50KCkgY29uc3Q7CiAKQEAgLTEwNyw4ICsxMDcsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7
IH07CiAgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JikgZmluYWwgeyB9OwogICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNB
dmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXpl
X3QpIGZpbmFsOwotICAgIAorCiAgICAgc3RhdGljIGNyZWF0b3JGdW5jdGlvbiBtX2N1c3RvbUNy
ZWF0b3I7CiAgICAgCiAgICAgT3B0aW9ucyBtX29wdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuY3BwCmluZGV4IGZjYjA5N2VlNzU5ZmY1ZGZiNzY0OThkNTA5MGU0Y2NjYzBjOWQ1YTYuLjQ0
YzlkMDdhOWI5NzUwZDY2MjZlYjc1ODdlYWJjNTEzZjQzNmI4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlk
ZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYg
c3RyZWFtKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29y
ZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0
ZSYgc3RyZWFtKQogewogICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNy
ZWF0ZShzdHJlYW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCmluZGV4IDJlMmY0MzZlYzBh
ZjhhZWY5NzUwODFjYmFiNDA4ZDQ1M2Q0ZWIyNGEuLjExYmFhZGNlYTg2OWU3YTI5MTk2NjJhYjJk
OGNlZjU0NzBjMmVkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTM3LDcgKzM3LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVs
dDsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQotICAgIHZp
cnR1YWwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJl
Y29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAgICB2aXJ0dWFsIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclBy
aXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0VXNlR1BV
UHJvY2Vzcyhib29sIHZhbHVlKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHZhbHVlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDAxZmYyMDgwMGU1YzA2YWIyZjY2Zjg2
YTI0ZWFlY2FlNmJmMjYxNTYuLmU5ODA0ODQxZDc0ODNlYjcyNGY3NTQ2NjMwYzZmZGU3YjMxMmE0
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01ODIsNyArNTgy
LDcgQEAgcHVibGljOgogICAgIEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0
OwogcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVj
b3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJuIG51
bGxwdHI7IH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0
ZU1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJu
IG51bGxwdHI7IH0KICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4
IGYwM2YxMTg2N2JkOWI5ZjE0ZGJhN2Q2ZjcwODkxYjg4ZGIwNmRlOGUuLjQzOGJiOWE0MjNmMGQ0
ZDk0OTUyYTNhYWU0ZDQyNjZmZTNkN2Y2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
QEAgLTU2MCw3ICs1NjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsIHZvbHVtZSk7CiAgICAgbV92b2x1bWUgPSB2b2x1bWU7CiAgICAgZm9yIChjb25zdCBhdXRv
JiB0cmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkKLSAgICAgICAgdHJhY2stPnNldFZv
bHVtZShtX211dGVkID8gMCA6IG1fdm9sdW1lKTsKKyAgICAgICAgdHJhY2stPnNldFZvbHVtZSht
X3ZvbHVtZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpzZXRNdXRlZChib29sIG11dGVkKQpAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRNdXRlZChib29sIG11dGVkKQogICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgbXV0ZWQpOwogICAgIG1fbXV0ZWQgPSBtdXRlZDsKICAg
ICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQotICAg
ICAgICB0cmFjay0+c2V0Vm9sdW1lKG1fbXV0ZWQgPyAwIDogbV92b2x1bWUpOworICAgICAgICB0
cmFjay0+c2V0TXV0ZWQobV9tdXRlZCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwCmluZGV4IGE2OTkzY2EyODFkYjg4MmVjOTkyZmZhZDc0Y2ExZjliMzE5M2I2ZGUuLjI2Nzk5
OGQwNmQ1Zjg5OWFkYTExNGIwOGQwYTFlMmUxMjMwNTc4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGUuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVk
aWFSZWNvcmRlclByaXZhdGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6c2VsZWN0VHJhY2tzKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQor
TWVkaWFSZWNvcmRlclByaXZhdGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tzKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewog
ICAgIEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBzZWxlY3RlZFRyYWNrczsKICAgICBzdHJlYW0u
Zm9yRWFjaFRyYWNrKFsmXShhdXRvJiB0cmFjaykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmlu
ZGV4IDYwNDMwYjQxYjMyNTA0MmNmMmIxZGUzNmE4ODY5ZGUwMmM5MGI1YTUuLmUyOGUzODM2YjFm
OTcxMTM3NDA4OTMzZmIxZTBkMzI1ODhiMDhlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgorI2luY2x1ZGUg
IlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAg
LTQzLDI5ICs0NCw1MyBAQCBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTsKIGNsYXNzIFBs
YXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCi1jbGFzcyBNZWRpYVJlY29y
ZGVyUHJpdmF0ZSB7CitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSA6CisgICAgcHVibGljIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHZp
cnR1YWwgfk1lZGlhUmVjb3JkZXJQcml2YXRlKCkgPSBkZWZhdWx0OworICAgIH5NZWRpYVJlY29y
ZGVyUHJpdmF0ZSgpOwogCiAgICAgc3RydWN0IEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyB7Ci0g
ICAgICAgIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrIHsgbnVsbHB0
ciB9OwotICAgICAgICBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlkZW9UcmFjayB7
IG51bGxwdHIgfTsKKyAgICAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2sg
eyBudWxscHRyIH07CisgICAgICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNr
IHsgbnVsbHB0ciB9OwogICAgIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvVmlk
ZW9TZWxlY3RlZFRyYWNrcyBzZWxlY3RUcmFja3MoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBzZWxl
Y3RUcmFja3MoTWVkaWFTdHJlYW1Qcml2YXRlJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxl
QnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxl
JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRm
b3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgPSAw
OwogCi0gICAgdmlydHVhbCB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
ZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHN0b3BSZWNvcmRpbmcoKSB7IH07CisgICAgdXNpbmcgRmV0Y2hEYXRh
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPjsKKyAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hEYXRhKEZl
dGNoRGF0YUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29yZGluZygp
ID0gMDsKIAogICAgIHVzaW5nIEVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFs
PEV4Y2VwdGlvbj4mJik+OwogICAgIHZvaWQgc2V0RXJyb3JDYWxsYmFjayhFcnJvckNhbGxiYWNr
JiYgZXJyb3JDYWxsYmFjaykgeyBtX2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJh
Y2spOyB9CiAKK3Byb3RlY3RlZDoKKyAgICB2b2lkIHNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPiYmKTsKKwogcHJvdGVjdGVkOgogICAgIEVycm9yQ2FsbGJhY2sgbV9l
cnJvckNhbGxiYWNrOworCitwcml2YXRlOgorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiBtX2F1ZGlvU291cmNlOwogfTsKIAoraW5saW5lIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6
OnNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIGF1ZGlvU291cmNl
KQoreworICAgIGlmIChtX2F1ZGlvU291cmNlKQorICAgICAgICBtX2F1ZGlvU291cmNlLT5yZW1v
dmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKworICAgIG1fYXVkaW9Tb3VyY2UgPSBXVEZN
b3ZlKGF1ZGlvU291cmNlKTsKKworICAgIGlmIChtX2F1ZGlvU291cmNlKQorICAgICAgICBtX2F1
ZGlvU291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKK30KKworaW5saW5lIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQoreworICAgIGlmICht
X2F1ZGlvU291cmNlKQorICAgICAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9i
c2VydmVyKCp0aGlzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
LmNwcAppbmRleCAyZDVhMzU5YjIzMWJjOTQyOTAxMDY4NDZkYzZhOTg1MmI3YmE3ODY3Li44Nzg5
NDBiMGY5MTAyNDMzNzU4M2RhYTZjZjMyNzM4MmE1ZjVmZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4g
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2
YXRlJiBzdHJlYW0pCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
PiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShNZWRpYVN0cmVhbVByaXZhdGUm
IHN0cmVhbSkKIHsKICAgICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRvIGltcGxlbWVudCBzdXBw
b3J0IGZvciBtdWx0aXBsZSBhdWRpby92aWRlbyB0cmFja3MKICAgICAvLyBDdXJyZW50bHkgd2Ug
b25seSBjaG9vc2UgdGhlIGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0cmFjay4KQEAgLTUx
LDExICs1MSwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
PiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZQogICAgIFN0cmluZyBhdWRpb1Ry
YWNrSWQ7CiAgICAgaWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spCiAgICAgICAgIGF1ZGlv
VHJhY2tJZCA9IHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2stPmlkKCk7CisKICAgICBTdHJpbmcg
dmlkZW9UcmFja0lkOwogICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKQogICAgICAg
ICB2aWRlb1RyYWNrSWQgPSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5pZCgpOwogCi0gICAg
cmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPih3cml0ZXIucmVs
ZWFzZU5vbk51bGwoKSwgV1RGTW92ZShhdWRpb1RyYWNrSWQpLCBXVEZNb3ZlKHZpZGVvVHJhY2tJ
ZCkpOworICAgIGF1dG8gcmVjb3JkZXIgPSBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbD4od3JpdGVyLnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoYXVkaW9UcmFja0lkKSwg
V1RGTW92ZSh2aWRlb1RyYWNrSWQpKTsKKyAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFj
aykKKyAgICAgICAgcmVjb3JkZXItPnNldEF1ZGlvU291cmNlKCZzZWxlY3RlZFRyYWNrcy5hdWRp
b1RyYWNrLT5zb3VyY2UoKSk7CisgICAgcmV0dXJuIHJlY29yZGVyOwogfQogCiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbChSZWY8TWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI+JiYgd3JpdGVyLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQsIFN0
cmluZyYmIHZpZGVvVHJhY2tJZCkKQEAgLTY1LDYgKzY5LDExIEBAIE1lZGlhUmVjb3JkZXJQcml2
YXRlQVZGSW1wbDo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKFJlZjxNZWRpYVJlY29yZGVy
UHJpdmF0CiB7CiB9CiAKK01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6fk1lZGlhUmVjb3Jk
ZXJQcml2YXRlQVZGSW1wbCgpCit7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7Cit9CisK
IHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNv
bnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmIHNhbXBsZUJ1
ZmZlcikKIHsKICAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQpA
QCAtNzIsMTAgKzgxLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnNhbXBs
ZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXYKICAgICBtX3dyaXRlci0+
YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKTsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
dHJhY2ssIGNvbnN0IFdURjo6TWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
c2l6ZV90IHNhbXBsZUNvdW50KQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYg
ZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKLSAgICBpZiAodHJhY2suaWQoKSAh
PSBtX3JlY29yZGVkQXVkaW9UcmFja0lEKQotICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKGlz
PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0
Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3Ry
ZWFtQmFzaWNUeXBlKTsKICAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoZGF0
YSwgZGVzY3JpcHRpb24sIG1lZGlhVGltZSwgc2FtcGxlQ291bnQpOwpAQCAtODMsMTAgKzkwLDEx
IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsOjpzdG9wUmVjb3JkaW5nKCkKIHsKKyAgICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsK
ICAgICBtX3dyaXRlci0+c3RvcFJlY29yZGluZygpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbDo6ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6ZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNr
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV93cml0ZXItPmZldGNoRGF0YShbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbWltZVR5cGUgPSBtaW1l
VHlwZSgpXShhdXRvJiYgYnVmZmVyKSBtdXRhYmxlIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShidWZmZXIpLCBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGwuaAppbmRleCAwY2YwZGYzYzY0Y2M5NzEzZTMwNTliZTM2Y2FjYzlmYzdjY2MwYjM2
Li43MTlhZGJiYWU5MThiMjdmN2VlYzcyZWQ0NzYyZWM3ZWY2ZjhlZDJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgKQEAgLTMzLDIyICszMywyNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIAotY2xhc3MgTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsIGZpbmFsIDogcHVibGljIE1lZGlhUmVjb3JkZXJQcml2YXRlIHsK
K2NsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbCBmaW5hbAorICAgIDogcHVibGljIE1l
ZGlhUmVjb3JkZXJQcml2YXRlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bD4gY3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBjcmVhdGUoTWVkaWFTdHJlYW1Q
cml2YXRlJik7CisgICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbCgpOwogCiBwcml2YXRl
OgogICAgIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbChSZWY8TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI+JiYsIFN0cmluZyYmIGF1ZGlvVHJhY2tJZCwgU3RyaW5nJiYgdmlkZW9UcmFja0lk
KTsKIAogICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsPiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4oUmVmPE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiYmLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwogCisgICAg
Ly8gTWVkaWFSZWNvcmRlclByaXZhdGUKICAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29u
c3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwotICAgIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwg
Y29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwotICAgIHZvaWQgZmV0Y2hEYXRh
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3Ry
aW5nJik+JiYpIGZpbmFsOworICAgIHZvaWQgZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNrJiYp
IGZpbmFsOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFU
aW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgc2l6ZV90KSBmaW5hbDsKKwogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKTsKICAg
ICB2b2lkIHN0b3BSZWNvcmRpbmcoKTsKLSAgICAKKwogICAgIFJlZjxNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcj4gbV93cml0ZXI7CiAgICAgU3RyaW5nIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQ7
CiAgICAgU3RyaW5nIG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlTW9jay5jcHAKaW5kZXggZjJhYzhjMjdjYjQ1Yzk3YzJkYzAzYjhmZTRhNzM2OTE3ZDRi
Y2Y4Ny4uYTFkMGQxMGMwNjExMWU2OGE0NmU1NDg1NGRjOTYxZWRlMjA3NmQ5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZU1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcApAQCAtMzMsMzAgKzMzLDUxIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1
ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNh
bXBsZSYpCitNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9j
ayhNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKLSAgICBnZW5lcmF0ZU1vY2tTdHJpbmco
dHJhY2spOworICAgIGF1dG8gc2VsZWN0ZWRUcmFja3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
c2VsZWN0VHJhY2tzKHN0cmVhbSk7CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2sp
IHsKKyAgICAgICAgbV9hdWRpb1RyYWNrSUQgPSBzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5p
ZCgpOworICAgICAgICBzZXRBdWRpb1NvdXJjZSgmc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjay0+
c291cmNlKCkpOworICAgIH0KKyAgICBpZiAoc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjaykKKyAg
ICAgICAgbV92aWRlb1RyYWNrSUQgPSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5pZCgpOwog
fQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgY29uc3QgV1RGOjpNZWRpYVRp
bWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCBzaXplX3QpCitNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6On5NZWRpYVJlY29yZGVyUHJp
dmF0ZU1vY2soKQogewotICAgIGdlbmVyYXRlTW9ja1N0cmluZyh0cmFjayk7CisgICAgc2V0QXVk
aW9Tb3VyY2UobnVsbHB0cik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpn
ZW5lcmF0ZU1vY2tTdHJpbmcoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQor
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OnN0b3BSZWNvcmRpbmcoKQoreworICAgIHNl
dEF1ZGlvU291cmNlKG51bGxwdHIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9j
azo6c2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1l
ZGlhU2FtcGxlJikKK3sKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9jayk7
CisgICAgbV9idWZmZXIuYXBwZW5kKCJWaWRlbyBUcmFjayBJRDogIik7CisgICAgbV9idWZmZXIu
YXBwZW5kKG1fdmlkZW9UcmFja0lEKTsKKyAgICBnZW5lcmF0ZU1vY2tDb3VudGVyU3RyaW5nKCk7
Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpCiB7CiAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX2J1ZmZlckxvY2spOwotICAgIGlmICh0cmFjay50eXBlKCkgPT0gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCi0gICAgICAgIG1fYnVmZmVyLmFwcGVuZCgiQXVkaW8g
VHJhY2sgSUQ6ICIpOwotICAgIGVsc2UKLSAgICAgICAgbV9idWZmZXIuYXBwZW5kKCJWaWRlbyBU
cmFjayBJRDogIik7Ci0gICAgbV9idWZmZXIuYXBwZW5kKHRyYWNrLmlkKCkpOworICAgIG1fYnVm
ZmVyLmFwcGVuZCgiQXVkaW8gVHJhY2sgSUQ6ICIpOworICAgIG1fYnVmZmVyLmFwcGVuZChtX2F1
ZGlvVHJhY2tJRCk7CisgICAgZ2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygpOworfQorCit2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6Z2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygpCit7
CiAgICAgbV9idWZmZXIuYXBwZW5kKCIgQ291bnRlcjogIik7CiAgICAgbV9idWZmZXIuYXBwZW5k
TnVtYmVyKCsrbV9jb3VudGVyKTsKICAgICBtX2J1ZmZlci5hcHBlbmQoIlxyXG4tLS0tLS0tLS1c
clxuIik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpm
ZXRjaERhdGEoRmV0Y2hEYXRhQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9jayk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IHZhbHVlKG1fYnVmZmVyLmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5o
CmluZGV4IDRkYWVkNjczMWRlYTUzZTk3NTY2MWE0NGExMjcwZmYxOGRlMmQ4NDkuLmI3ZjNjMjE0
OGUzOTllYTIyMzZkOTJjODY1OWY3OTg3MWJhZTE3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZU1vY2suaApAQCAtMzQsMTggKzM0LDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlh
UmVjb3JkZXJQcml2YXRlTW9jayBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7
CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2sgZmluYWwKKyAg
ICA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrKE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIH5NZWRp
YVJlY29yZGVyUHJpdmF0ZU1vY2soKTsKKwogcHJpdmF0ZToKKyAgICAvLyBNZWRpYVJlY29yZGVy
UHJpdmF0ZQogICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlh
VGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIHNpemVfdCkgZmluYWw7Ci0gICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmKT4mJikgZmluYWw7
CisgICAgdm9pZCBmZXRjaERhdGEoRmV0Y2hEYXRhQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZp
bmFsOworICAgIHZvaWQgc3RvcFJlY29yZGluZygpIGZpbmFsOworCiAgICAgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSgpOwotICAgIAotICAgIHZvaWQgZ2VuZXJhdGVNb2NrU3RyaW5nKGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7CisgICAgdm9pZCBnZW5lcmF0ZU1vY2tDb3VudGVyU3Ry
aW5nKCk7CiAKICAgICBtdXRhYmxlIExvY2sgbV9idWZmZXJMb2NrOwogICAgIFN0cmluZ0J1aWxk
ZXIgbV9idWZmZXI7CiAgICAgdW5zaWduZWQgbV9jb3VudGVyIHsgMCB9OworICAgIFN0cmluZyBt
X2F1ZGlvVHJhY2tJRDsKKyAgICBTdHJpbmcgbV92aWRlb1RyYWNrSUQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmlu
ZGV4IDJlZGQ0NTkyMmQzY2JkNzEyNTY4NmU4N2U1YTIzYjdhNWEwNTExZDUuLmZmMWQxMDIyMjgw
NzgwZjEwZDc0N2NiOGUzZjg1OTZhYjQ1NDRhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW0uY3BwCkBAIC0zNSw5ICszNSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgOiBtX3N0cmVhbVRyYWNrKHRy
YWNrKQorICAgICwgbV9hdWRpb1NvdXJjZSh0cmFjay5zb3VyY2UoKSkKICAgICAsIG1faWQodHJh
Y2suaWQoKSkKICAgICAsIG1fbGFiZWwodHJhY2subGFiZWwoKSkKLSAgICAsIG1fdGltZWxpbmVP
ZmZzZXQoTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQogICAgICwgbV9yZW5kZXJlciB7IEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUoKSB9CiB7CiAgICAgdHJhY2suYWRkT2Jz
ZXJ2ZXIoKnRoaXMpOwpAQCAtNjIsNDAgKzYyLDMwIEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbTo6Y2xlYXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2lzQ2xlYXJlZCA9
IHRydWU7Ci0gICAgc3RyZWFtVHJhY2soKS5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Ci0KLSAgICBt
X3JlbmRlcmVyLT5jbGVhcigpOwotfQotCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW06OnBsYXlJbnRlcm5hbCgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAg
IGlmIChtX2lzUGxheWluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1BsYXlpbmcgPSB0
cnVlOwotICAgIG1fYXV0b1BsYXkgPSBmYWxzZTsKKyAgICAgICAgbV9hdWRpb1NvdXJjZS0+cmVt
b3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiAKLSAgICBtX3JlbmRlcmVyLT5zdGFydCgp
OworICAgIHN0cmVhbVRyYWNrKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcmVuZGVy
ZXItPmNsZWFyKCk7CiB9CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxh
eSgpCiB7Ci0gICAgcGxheUludGVybmFsKCk7CisgICAgbV9zaG91bGRQbGF5ID0gdHJ1ZTsKKyAg
ICB1cGRhdGVSZW5kZXJlcigpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW06OnBhdXNlKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKCFt
X2lzUGxheWluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsK
LSAgICBtX2F1dG9QbGF5ID0gZmFsc2U7CisgICAgbV9zaG91bGRQbGF5ID0gZmFsc2U7CisgICAg
dXBkYXRlUmVuZGVyZXIoKTsKK30KIAotICAgIG1fcmVuZGVyZXItPnN0b3AoKTsKK3ZvaWQgQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBt
X211dGVkID0gbXV0ZWQ7CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKIH0KIAogdm9pZCBBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQpAQCAtMTA5LDQ2
ICs5OSw1NSBAQCBmbG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBj
b25zdAogfQogCiAvLyBNYXkgZ2V0IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgotdm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW06OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHNh
bXBsZVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7Ci0g
ICAgaWYgKCFtX2lzUGxheWluZykgewotICAgICAgICBtX3JlbmRlcmVyLT5zdG9wKCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBtX3JlbmRlcmVyLT5wdXNoU2FtcGxlcyhzYW1wbGVU
aW1lLCBhdWRpb0RhdGEsIGRlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7Ci0KLSAgICBpZiAobV9h
dXRvUGxheSAmJiAhbV9oYXNTdGFydGVkQXV0b3BsYXkpIHsKLSAgICAgICAgbV9oYXNTdGFydGVk
QXV0b3BsYXkgPSB0cnVlOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgICAgIGlmIChtX2F1dG9QbGF5KQot
ICAgICAgICAgICAgICAgIHBsYXlJbnRlcm5hbCgpOwotICAgICAgICB9KTsKLSAgICB9CiB9CiAK
IHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tNdXRlZENoYW5nZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewotICAgIHVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgp
OworICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiB9CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbTo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiB7
Ci0gICAgdXBkYXRlUmVuZGVyZXJNdXRlZFN0YXRlKCk7CisgICAgdXBkYXRlUmVuZGVyZXIoKTsK
K30KKwordm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp0cmFja0VuZGVkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCi12b2lk
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgp
Cit2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyKCkKIHsK
LSAgICBpZiAoc3RyZWFtVHJhY2soKS5tdXRlZCgpIHx8IHN0cmVhbVRyYWNrKCkuZW5kZWQoKSB8
fCAhc3RyZWFtVHJhY2soKS5lbmFibGVkKCkpIHsKLSAgICAgICAgcGF1c2UoKTsKKyAgICBpZiAo
IW1fc2hvdWxkUGxheSB8fCBtX211dGVkIHx8IHN0cmVhbVRyYWNrKCkubXV0ZWQoKSB8fCBzdHJl
YW1UcmFjaygpLmVuZGVkKCkgfHwgIXN0cmVhbVRyYWNrKCkuZW5hYmxlZCgpKSB7CisgICAgICAg
IHN0b3BSZW5kZXJlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHBsYXkoKTsKKyAg
ICBzdGFydFJlbmRlcmVyKCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bTo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit2b2lkIEF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW06OnN0YXJ0UmVuZGVyZXIoKQogewotICAgIHBhdXNlKCk7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAobV9pc1BsYXlpbmcpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1faXNQbGF5aW5nID0gdHJ1ZTsKKyAgICBtX2F1ZGlvU291cmNlLT5hZGRB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3JlbmRlcmVyLT5zdGFydCgpOworfQor
Cit2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnN0b3BSZW5kZXJlcigpCit7Cisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAoIW1faXNQbGF5aW5nKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2lzUGxheWluZyA9IGZhbHNlOworICAgIG1fYXVkaW9Tb3VyY2Ut
PnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcmVuZGVyZXItPnN0b3Ao
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbS5oCmluZGV4IGYzMjVjNmRkNjljZjgyY2ExODA1YWQxNTFkMTc0NmRiNmQxNmQ3NmQu
LjhhZGUyNWM1ZGVmNmJkMWQ3M2U3NWE5N2I5ZGIzZTBhNDQ3OTY0YjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKQEAgLTM0LDcgKzM0LDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI7CiAKLWNsYXNzIEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgQXVkaW9UcmFja1ByaXZh
dGUsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKK2NsYXNzIEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0gZmluYWwKKyAgICA6IHB1YmxpYyBBdWRpb1RyYWNr
UHJpdmF0ZQorICAgICwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIK
KyAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSkK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+
IGNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFtVHJhY2spCkBAIC00Nyw5ICs1
MCw2IEBAIHB1YmxpYzoKIAogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzdHJlYW1UcmFj
aygpIHsgcmV0dXJuIG1fc3RyZWFtVHJhY2suZ2V0KCk7IH0KIAotICAgIE1lZGlhVGltZSB0aW1l
bGluZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZWxpbmVPZmZzZXQ7IH0KLSAgICB2b2lk
IHNldFRpbWVsaW5lT2Zmc2V0KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KSB7IG1fdGltZWxpbmVP
ZmZzZXQgPSBvZmZzZXQ7IH0KLQogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIHZvaWQgcGxheSgp
OwpAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwog
ICAgIGZsb2F0IHZvbHVtZSgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRNdXRlZChib29sIG11dGVk
KSB7IG1fbXV0ZWQgPSBtdXRlZDsgfQorICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CiAgICAgYm9v
bCBtdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWQ7IH0KIAogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRApAQCAtNzcsMzAgKzc3LDMyIEBAIHByb3RlY3RlZDoKICAgICBpbnQgdHJhY2tJbmRl
eCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW5kZXg7IH0KIAogICAgIC8vIE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjpPYnNlcnZlcgotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsK
ICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAg
ICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgIGZpbmFs
OwogICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
ICBmaW5hbDsKICAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgZmluYWwgeyB9CiAKLSAgICB2b2lkIHBsYXlJbnRlcm5hbCgpOwotICAgIHZvaWQg
dXBkYXRlUmVuZGVyZXJNdXRlZFN0YXRlKCk7CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW9TYW1wbGVPYnNlcnZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CisKKyAgICB2b2lkIHN0YXJ0UmVuZGVyZXIoKTsK
KyAgICB2b2lkIHN0b3BSZW5kZXJlcigpOworICAgIHZvaWQgdXBkYXRlUmVuZGVyZXIoKTsKIAog
ICAgIC8vIE1haW4gdGhyZWFkIHdyaXRhYmxlIG1lbWJlcnMKICAgICBib29sIG1faXNQbGF5aW5n
IHsgZmFsc2UgfTsKLSAgICBib29sIG1fYXV0b1BsYXkgeyBmYWxzZSB9OworICAgIGJvb2wgbV9z
aG91bGRQbGF5IHsgZmFsc2UgfTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9pc0NsZWFyZWQgeyBmYWxzZSB9OwogCiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlPiBtX3N0cmVhbVRyYWNrOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlv
U291cmNlOwogICAgIEF0b21TdHJpbmcgbV9pZDsKICAgICBBdG9tU3RyaW5nIG1fbGFiZWw7CiAg
ICAgaW50IG1faW5kZXggeyAwIH07Ci0gICAgTWVkaWFUaW1lIG1fdGltZWxpbmVPZmZzZXQ7CiAK
ICAgICAvLyBBdWRpbyB0aHJlYWQgbWVtYmVycwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4gbV9yZW5kZXJlcjsKLSAgICBib29sIG1faGFzU3RhcnRl
ZEF1dG9wbGF5IHsgZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IGFk
Y2YxMmIwMWVlN2FlODZjYTNkZjQ1YjI3ODE3NmNhYWQwNGYzNjQuLjdiMmQwYzc5NmJhOWIxNWU3
MjNiNDQ1NThhZGVjNzRiMTFmODI5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAtMTIxLDYg
KzEyMSwxMiBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9yRWFjaFRyYWNrKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoY29uc3QgTWVkaWFTdHJlYW1UcmFjawogICAgICAgICBjYWxsYmFjaygqdHJh
Y2spOwogfQogCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9yRWFjaFRyYWNrKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKT4mIGNhbGxiYWNrKQoreworICAg
IGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKQorICAgICAgICBjYWxsYmFj
aygqdHJhY2spOworfQorCiB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dXBkYXRlQWN0aXZlU3Rh
dGUoTm90aWZ5Q2xpZW50T3B0aW9uIG5vdGlmeUNsaWVudE9wdGlvbikKIHsKICAgICBib29sIG5l
d0FjdGl2ZVN0YXRlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IGNlNmI3MTA4NjUxMWVm
MjkzYjg5ODY1MDk2NDYyOGZkNzY4ZDIzYWQuLjc5Mjg5YjgxMjM2MzlkYjk2MmZkMTJkMjkyNzg3
Mzc4NDMwOTAwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoK
ICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsKICAgICBi
b29sIGhhc1RyYWNrcygpIGNvbnN0IHsgcmV0dXJuICFtX3RyYWNrU2V0LmlzRW1wdHkoKTsgfQog
ICAgIHZvaWQgZm9yRWFjaFRyYWNrKGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKT4mKSBjb25zdDsKKyAgICB2b2lkIGZvckVhY2hUcmFjayhjb25zdCBG
dW5jdGlvbjx2b2lkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik+Jik7CiAgICAgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUqIGFjdGl2ZVZpZGVvVHJhY2soKSB7IHJldHVybiBtX2FjdGl2ZVZpZGVv
VHJhY2s7IH0KIAogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjdGl2ZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IGM5OWMxNmM2ZDgwY2E0MWU0MmM3
ZGQxZTQyMGJmMTJhODkyODU4NTguLjRkMDhhZDczMzZjZWE0OTYwMGZhYjljNzEwZjk3YzIwMDNm
NzRkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTc4LDE2ICs3OCwxMCBA
QCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6fk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKCkKICAg
ICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCi12b2lkIE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKE9i
c2VydmVyJik+JiBhcHBseSkgY29uc3QKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmZv
ckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JiBhcHBseSkgY29u
c3QKIHsKLSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnNDb3B5OwotICAgIHsKLSAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOwotICAgICAgICBvYnNl
cnZlcnNDb3B5ID0gY29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJzKTsKLSAgICB9Ci0gICAgZm9yIChh
dXRvKiBvYnNlcnZlciA6IG9ic2VydmVyc0NvcHkpIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX29ic2VydmVyc0xvY2spOwotICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIG9ic2Vy
dmVyIGhhcyBub3QgYmVlbiBkZXN0cm95ZWQuCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogY29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJzKSkgewog
ICAgICAgICBpZiAoIW1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBhcHBseSgqb2JzZXJ2ZXIpOwpAQCAtOTYsMTMgKzkwLDEzIEBA
IHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmZvckVhY2hPYnNlcnZlcihjb25zdCBXVEY6
OkZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImCiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
OmFkZE9ic2VydmVyKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIp
CiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbV9vYnNlcnZlcnMuYWRkKCZvYnNlcnZlcik7CiB9
CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnJlbW92ZU9ic2VydmVyKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7CiB9CiAKQEAgLTI2MSwyNiArMjU1
LDEyIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKICAgICB9KTsKIH0KIAotLy8gTWF5IGdldCBjYWxs
ZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KLXZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSwgY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjpoYXNTdGFydGVkUHJvZHVjaW5nQXVkaW9EYXRhKCkKIHsKLSAgICBpZiAoIW1faGFzU2Vu
dFN0YXJ0UHJvZHVjZWREYXRhKSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKLSAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoIW1faGF2ZVByb2R1
Y2VkRGF0YSkgewotICAgICAgICAgICAgICAgIG1faGF2ZVByb2R1Y2VkRGF0YSA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgdXBkYXRlUmVhZHlTdGF0ZSgpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgbV9oYXNTZW50U3RhcnRQcm9kdWNlZERhdGEgPSB0cnVlOwotICAgICAgICB9KTsKKyAg
ICBpZiAobV9oYXZlUHJvZHVjZWREYXRhKQogICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
Zm9yRWFjaE9ic2VydmVyKFsmXShhdXRvJiBvYnNlcnZlcikgewotICAgICAgICBvYnNlcnZlci5h
dWRpb1NhbXBsZXNBdmFpbGFibGUoKnRoaXMsIG1lZGlhVGltZSwgZGF0YSwgZGVzY3JpcHRpb24s
IHNhbXBsZUNvdW50KTsKLSAgICB9KTsKKyAgICBtX2hhdmVQcm9kdWNlZERhdGEgPSB0cnVlOwor
ICAgIHVwZGF0ZVJlYWR5U3RhdGUoKTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6dXBkYXRlUmVhZHlTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCBmOWI1
ZDEwMTUxNGU3MWYyM2M3YjZhM2FmMmNlMjE2OTBkNGU1MmIzLi5hYzdmNzY5MGQyY2M4YmM1ZGE2
ZjZkYmY4NmJjMWU5OWNiMWRjZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTYy
LDkgKzYyLDYgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmFibGVkQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IHNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBs
ZSYpIHsgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgeyB9OwotCi0gICAgICAgIC8vIE1heSBnZXQgY2FsbGVkIG9uIGEg
YmFja2dyb3VuZCB0aHJlYWQuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFp
bGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3Qp
IHsgfTsKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4g
Y3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsK
QEAgLTEwMCw2ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+IGNsb25lKCk7CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UoKSB7IHJldHVy
biBtX3NvdXJjZS5nZXQoKTsgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuZFRy
YWNrKCk7CkBAIC0xMzIsMTUgKzEzMCwxNSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlKFJlZjxjb25zdCBMb2dnZXI+JiYsIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmLCBTdHJpbmcmJiBpZCk7CiAKLSAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlT2Jz
ZXJ2ZXIKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgogICAgIHZvaWQgc291
cmNlU3RhcnRlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsOwogICAg
IHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VTZXR0aW5n
c0NoYW5nZWQoKSBmaW5hbDsKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBm
aW5hbDsKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmluYWw7
Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90
KSBmaW5hbDsKICAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpIGZpbmFsOworICAgIHZvaWQg
aGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpIGZpbmFsOwogCiAgICAgdm9pZCB1cGRhdGVS
ZWFkeVN0YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggMjk1MjkxNmQ2Y2Y5YTg2
YWNlMzAyZDhlYjFhMTVkNzExMTlmNDVlZS4uYTRmNjg5NWEzNWYzMjRkMWIzN2NhZTQ1M2M4NThl
NjI2Y2JhZmZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTYwLDE1ICs2MCwyOSBAQCBS
ZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKFR5cGUgdHlwZSwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgZGV2aQogICAgIG1faGFzaGVkSUQgPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobV9wZXJzaXN0ZW50SUQs
IG1faWRIYXNoU2FsdCk7CiB9CiAKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkQXVkaW9T
YW1wbGVPYnNlcnZlcihSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyJiBv
YnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2spOworICAgIG1fYXVkaW9TYW1w
bGVPYnNlcnZlcnMuYWRkKCZvYnNlcnZlcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcihSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1Nh
bXBsZU9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2spOwor
ICAgIG1fYXVkaW9TYW1wbGVPYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7Cit9CisKIHZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2Jz
ZXJ2ZXImIG9ic2VydmVyKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZl
cnNMb2NrKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fb2JzZXJ2ZXJzLmFk
ZCgmb2JzZXJ2ZXIpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW92ZU9ic2Vy
dmVyKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fb2JzZXJ2ZXJzTG9jayk7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKICAgICBtX29ic2VydmVycy5yZW1vdmUoJm9ic2VydmVyKTsKICAgICBpZiAobV9v
YnNlcnZlcnMuaXNFbXB0eSgpKQogICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOwpAQCAtMTEy
LDE2ICsxMjYsMTAgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRJbnRlcnJ1cHRlZEZv
clRlc3RpbmcoYm9vbCBpbnRlcnJ1cHRlZCkKICAgICBub3RpZnlNdXRlZENoYW5nZShpbnRlcnJ1
cHRlZCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Zm9yRWFjaE9ic2VydmVyKGNv
bnN0IFdURjo6RnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYgYXBwbHkpIGNvbnN0Cit2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2b2lkKE9i
c2VydmVyJik+JiBhcHBseSkgY29uc3QKIHsKLSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZl
cnNDb3B5OwotICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVy
c0xvY2spOwotICAgICAgICBvYnNlcnZlcnNDb3B5ID0gY29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJz
KTsKLSAgICB9Ci0gICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IG9ic2VydmVyc0NvcHkpIHsKLSAg
ICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOwotICAgICAgICAv
LyBNYWtlIHN1cmUgdGhlIG9ic2VydmVyIGhhcyBub3QgYmVlbiBkZXN0cm95ZWQuCisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogY29weVRvVmVj
dG9yKG1fb2JzZXJ2ZXJzKSkgewogICAgICAgICBpZiAoIW1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9i
c2VydmVyKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhcHBseSgqb2JzZXJ2ZXIp
OwpAQCAtMTc4LDkgKzE4NiwyMiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2Ft
cGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKIAogdm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogewotICAgIGZvckVh
Y2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKLSAgICAgICAgb2JzZXJ2ZXIuYXVkaW9T
YW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKLSAgICB9KTsKKyAgICBpZiAoIW1faGFzU2VudFN0YXJ0UHJvZHVjZWRBdWRpb0RhdGEp
IHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKV0geworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBpZiAobV9oYXNTZW50U3RhcnRQcm9kdWNlZEF1ZGlvRGF0YSkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2hhc1NlbnRTdGFydFByb2R1
Y2VkQXVkaW9EYXRhID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0
byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgICAgICAgICBvYnNlcnZlci5oYXNTdGFydGVkUHJvZHVj
aW5nQXVkaW9EYXRhKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7Cisg
ICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IG1fYXVkaW9TYW1wbGVPYnNlcnZlcnMpCisgICAgICAg
IG9ic2VydmVyLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9EYXRhLCBkZXNjcmlw
dGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0
YXJ0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAxYjlkNmEyNDQ5YzUyMTM2NGRkMzJjYjQwYjM5
Njc2OTVhZjI1NDBjLi41NzYwNTM4NzMxMWZkMzE3MDhlMGNlYWUxZTFlYmE0NzFhMTBiZjBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02OSw3ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJlU291cmNl
T3JFcnJvcjsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZQogICAg
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdURjo6
RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPgotICAgICwgcHVibGljIENhbk1ha2VXZWFr
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZSwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+CiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwcm90ZWN0ZWQgTG9nZ2VySGVscGVyCiAj
ZW5kaWYKQEAgLTkyLDggKzkyLDE0IEBAIHB1YmxpYzoKICAgICAgICAgLy8gQ2FsbGVkIG9uIHRo
ZSBtYWluIHRocmVhZC4KICAgICAgICAgdmlydHVhbCB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJikgeyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIGhhc1N0YXJ0ZWRQcm9k
dWNpbmdBdWRpb0RhdGEoKSB7IH0KKyAgICB9OworICAgIGNsYXNzIEF1ZGlvU2FtcGxlT2JzZXJ2
ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+QXVkaW9TYW1wbGVPYnNlcnZlcigp
ID0gZGVmYXVsdDsKKwogICAgICAgICAvLyBNYXkgYmUgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0
aHJlYWQuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90IC8qbnVtYmVyT2ZGcmFtZXMqLykgeyB9CisgICAgICAgIHZpcnR1
YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90IC8q
bnVtYmVyT2ZGcmFtZXMqLykgPSAwOwogICAgIH07CiAKICAgICB2aXJ0dWFsIH5SZWFsdGltZU1l
ZGlhU291cmNlKCkgPSBkZWZhdWx0OwpAQCAtMTMxLDYgKzEzNyw5IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOwogCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBhZGRBdWRpb1NhbXBsZU9ic2VydmVyKEF1ZGlvU2FtcGxlT2JzZXJ2ZXImKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoQXVkaW9TYW1w
bGVPYnNlcnZlciYpOworCiAgICAgY29uc3QgSW50U2l6ZSBzaXplKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRTaXplKGNvbnN0IEludFNpemUmKTsKIApAQCAtMjUzLDggKzI2MiwxMSBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJp
bmcgbV9uYW1lOwotICAgIG11dGFibGUgUmVjdXJzaXZlTG9jayBtX29ic2VydmVyc0xvY2s7CiAg
ICAgSGFzaFNldDxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOworCisgICAgbXV0YWJsZSBSZWN1cnNp
dmVMb2NrIG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2NrOworICAgIEhhc2hTZXQ8QXVkaW9TYW1w
bGVPYnNlcnZlcio+IG1fYXVkaW9TYW1wbGVPYnNlcnZlcnM7CisKICAgICBJbnRTaXplIG1fc2l6
ZTsKICAgICBJbnRTaXplIG1faW50cmluc2ljU2l6ZTsKICAgICBkb3VibGUgbV9mcmFtZVJhdGUg
eyAzMCB9OwpAQCAtMjcyLDYgKzI4NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ludGVycnVw
dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FwdHVyZURpZEZhaWxlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNTZW50U3RhcnRQcm9k
dWNlZEF1ZGlvRGF0YSB7IGZhbHNlIH07CiB9OwogCiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAKaW5kZXggY2RmZTIzZmE0
YWNlMGI2ZGE2YmU5ZTc5NDU2OGRlODQwZmE0YjY2ZS4uYzI3ZTYwZjY2Y2NjZTkyNjIwZTI2NTc4
ZmY1OGEzYjBlNTc0ODA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3Bw
CkBAIC00NSw3ICs0NSw3IEBAIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6UmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpCiAKIFJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZTo6flJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSgpCiB7Ci1BU1NF
UlQoIW1fYXVkaW9Tb3VyY2UtPmhhc09ic2VydmVyKCp0aGlzKSk7CisgICAgQVNTRVJUKCFtX2F1
ZGlvU291cmNlLT5oYXNPYnNlcnZlcigqdGhpcykpOwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NpbmtzTG9jayk7CiAjZW5kaWYKQEAgLTU4LDExICs1
OCwxMyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSgp
CiB7CiAgICAgQVNTRVJUKCFtX2F1ZGlvU291cmNlLT5oYXNPYnNlcnZlcigqdGhpcykpOwogICAg
IG1fYXVkaW9Tb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBtX2F1ZGlvU291cmNlLT5z
b3VyY2UoKS5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKICAgICBpbml0aWFsaXplQ29u
dmVydGVyKCk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjp1bm9ic2Vy
dmVTb3VyY2UoKQogeworICAgIG1fYXVkaW9Tb3VyY2UtPnNvdXJjZSgpLnJlbW92ZUF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIG1fYXVkaW9Tb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0
aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAppbmRleCA4MTY3NjEz
ZGFkOGYyMzIzZjIxZmI5NzEyMDc3NjU4NDQxNDNjMDYyLi4xZWIwYTNjYmM5NzI3YTUxYWU4ZWVj
YTNjNzViOTgyMDRiMjM0ZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaApA
QCAtNTUsNiArNTUsNyBAQCBjbGFzcyBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UKICAgICA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2Us
IFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+CiAgICAgLCBwdWJsaWMgd2VicnRjOjpBdWRp
b1NvdXJjZUludGVyZmFjZQogICAgICwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVP
YnNlcnZlcgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgcHJpdmF0ZSBMb2dnZXJI
ZWxwZXIKICNlbmRpZgpAQCAtMTA4LDcgKzEwOSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNv
dXJjZU11dGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNp
emVfdCkgeyB9OwogCiAgICAgdmlydHVhbCBib29sIGlzUmVhY2hpbmdCdWZmZXJlZEF1ZGlvRGF0
YUhpZ2hMaW1pdCgpIHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
aW5nQnVmZmVyZWRBdWRpb0RhdGFMb3dMaW1pdCgpIHsgcmV0dXJuIGZhbHNlOyB9OwpAQCAtMTE4
LDEwICsxMTgsMTIgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
T2JzZXJ2ZXIgQVBJCiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIGZpbmFsIHsgc291cmNlTXV0ZWRDaGFuZ2VkKCk7IH0KICAgICB2b2lkIHRyYWNr
RW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IHNvdXJjZUVu
YWJsZWRDaGFuZ2VkKCk7IH0KLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkgeyBhdWRpb1NhbXBsZXNBdmFpbGFibGUobWVkaWFU
aW1lLCBkYXRhLCBkZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQpOyB9CiAgICAgdm9pZCB0cmFja0Vu
ZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9CiAgICAgdm9pZCB0cmFja1Nl
dHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQogCisgICAg
Ly8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciBBUEkKKyAgICB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIG92ZXJyaWRl
IHsgfTsKKwogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbnZlcnRlcigpOwogCiAgICAgUmVmPE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlPiBtX2F1ZGlvU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5o
CmluZGV4IDAzMDcwM2Q1NDAwYTQ2NmE5NzBhMDY5Yzc3NDM0YzBhMDRmNzI3NTEuLmU3ZDg4ODky
NDZmNGMxZTg4MGM0NzgyNmUzNjIzNmY1NmYzMGMyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVy
LmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYkF1ZGlv
U291cmNlUHJvdmlkZXI+LCBwdWJsaWMgQXVkaW9Tb3VyY2VQcm92aWRlciB7CitjbGFzcyBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYkF1ZGlv
U291cmNlUHJvdmlkZXIsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+LCBwdWJsaWMgQXVk
aW9Tb3VyY2VQcm92aWRlciB7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lck1lZGlhU3RyZWFtU291cmNlLmNwcAppbmRleCA5ZWQ1ZmVhY2E1ZTRlYWZiNzFkNjM5NjVl
NTk0YWE1ZTJlNDlhOWY4Li4xMTZiOTUyZjAxYmNlNzVmYjc1ZWNiOTIwYzYxZTY3NDdkZTBlMTIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5j
cHAKQEAgLTEwNiw3ICsxMDYsOCBAQCBHc3RTdHJlYW0qIHdlYmtpdE1lZGlhU3RyZWFtTmV3KE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB0cmFjaykKIH0KIAogY2xhc3MgV2ViS2l0TWVkaWFTdHJl
YW1UcmFja09ic2VydmVyCi0gICAgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9i
c2VydmVyIHsKKyAgICA6IHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIK
KyAgICAsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJL
aXRNZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIoKSB7IH07CkBAIC0xMzEsNyArMTMyLDcgQEAgcHVi
bGljOgogICAgICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY1B1c2hWaWRlb1NhbXBsZShtX21lZGlh
U3RyZWFtU3JjLCBnc3RzYW1wbGUpOwogICAgIH0KIAotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZh
aWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYsIHNpemVfdCkgZmluYWwKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbAogICAgIHsKICAgICAgICAgYXV0byBh
dWRpb2RhdGEgPSBzdGF0aWNfY2FzdDxjb25zdCBHU3RyZWFtZXJBdWRpb0RhdGEmPihhdWRpb0Rh
dGEpOwogCkBAIC0zNzUsOSArMzc2LDEwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFt
U3JjRmluYWxpemUoR09iamVjdCogb2JqZWN0KQogCiAgICAgR1NUX09CSkVDVF9MT0NLKHNlbGYp
OwogICAgIGlmIChzZWxmLT5zdHJlYW0pIHsKLSAgICAgICAgZm9yIChhdXRvJiB0cmFjayA6IHNl
bGYtPnN0cmVhbS0+dHJhY2tzKCkpCisgICAgICAgIGZvciAoYXV0byYgdHJhY2sgOiBzZWxmLT5z
dHJlYW0tPnRyYWNrcygpKSB7CisgICAgICAgICAgICB0cmFjay0+c291cmNlKCkucmVtb3ZlQXVk
aW9TYW1wbGVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsK
ICAgICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFj
a09ic2VydmVyLmdldCgpKTsKLQorICAgICAgICB9CiAgICAgICAgIHNlbGYtPnN0cmVhbS0+cmVt
b3ZlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtT2JzZXJ2ZXIpOwogICAgICAgICBzZWxmLT5z
dHJlYW0gPSBudWxscHRyOwogICAgIH0KQEAgLTM5NiwxMCArMzk4LDE0IEBAIHN0YXRpYyBHc3RT
dGF0ZUNoYW5nZVJldHVybiB3ZWJraXRNZWRpYVN0cmVhbVNyY0NoYW5nZVN0YXRlKEdzdEVsZW1l
bnQqIGVsZW1lbnQsCiAKICAgICAgICAgR1NUX09CSkVDVF9MT0NLKHNlbGYpOwogICAgICAgICBp
ZiAoc2VsZi0+c3RyZWFtKSB7Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+
c3RyZWFtLT50cmFja3MoKSkKKyAgICAgICAgICAgIGZvciAoYXV0byYgdHJhY2sgOiBzZWxmLT5z
dHJlYW0tPnRyYWNrcygpKSB7CisgICAgICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLnJlbW92
ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQo
KSk7CiAgICAgICAgICAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0
cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOwotICAgICAgICB9IGVsc2UgaWYgKHNlbGYtPnRyYWNr
KQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHNlbGYtPnRyYWNrKSB7CisgICAg
ICAgICAgICBzZWxmLT50cmFjay0+c291cmNlKCkucmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigq
c2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKICAgICAgICAgICAgIHNlbGYt
PnRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdl
dCgpKTsKKyAgICAgICAgfQogICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzZWxmKTsKICAgICB9
CiAKQEAgLTU0Myw5ICs1NDksMTAgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdE1lZGlhU3RyZWFt
U3JjU2V0dXBTcmMoV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsCiAgICAgfSBlbHNlCiAgICAg
ICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjQWRkUGFkKHNlbGYsIHBhZC5nZXQoKSwgcGFkX3RlbXBs
YXRlKTsKIAotICAgIGlmIChvYnNlcnZlX3RyYWNrKQorICAgIGlmIChvYnNlcnZlX3RyYWNrKSB7
CiAgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2Vy
dmVyLmdldCgpKTsKLQorICAgICAgICB0cmFjay0+c291cmNlKCkuYWRkQXVkaW9TYW1wbGVPYnNl
cnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKKyAgICB9CiAgICAg
Z3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudChlbGVtZW50KTsKICAgICByZXR1cm4g
VFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKaW5k
ZXggZmYzMGViMzdlYjcwZDljMWY0Yzc4YjRhYTEyMTRhNDFlMTY5MjQwZC4uMWMxY2U3MzEwZTcw
Y2I3NzczMGY2M2I3ZTJjNjg5NWVlNjBmZjRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLmgKQEAgLTQ2LDcgKzQ2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTsKIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbjsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMgZmluYWwgOiBwdWJsaWMgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciwgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQXVkaW9Tb3VyY2VQcm92
aWRlcgorICAgICwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisgICAgLCBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDPiBjcmVhdGUoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QygpOwpAQCAtNjIsMTEgKzY1LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDbGllbnQoQXVk
aW9Tb3VyY2VQcm92aWRlckNsaWVudCopIGZpbmFsOwogCiAgICAgLy8gTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6Ok9ic2VydmVyCi0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlv
RGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogICAg
IHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQogICAg
IHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7
IH0KICAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JikgZmluYWwgeyB9Ci0gICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgZmluYWwgeyB9CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CisKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29u
c3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKIAogICAgIHNpemVfdCBtX2xpc3RCdWZmZXJT
aXplIHsgMCB9OwogICAgIE9wdGlvbmFsPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4gbV9pbnB1
dERlc2NyaXB0aW9uOwpAQCAtNzcsOCArODIsMTAgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBt
X3JlYWRDb3VudCB7IDAgfTsKICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBtX2NsaWVu
dCB7IG51bGxwdHIgfTsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogbV9jYXB0dXJlU291
cmNlIHsgbnVsbHB0ciB9OworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsK
ICAgICBMb2NrIG1fbXV0ZXg7CiAgICAgYm9vbCBtX2Nvbm5lY3RlZCB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggYWU5MDJkMWJkM2FlMmRmOTNjZjEyNDgxNjFj
YjM3MjBlOTg2OTQ5NC4uNzkwZGJkMWIzYzkwZmM3MjQ5NGRiMWZlMzJkNmMyYjdiMjEwYmE1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtNTQs
MTEgKzU0LDE2IEBAIFJlZjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShNZWRpYVN0CiAKIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgc291cmNlKQogICAgIDogbV9jYXB0dXJlU291cmNlKCZzb3VyY2UpCisgICAg
LCBtX3NvdXJjZShzb3VyY2Uuc291cmNlKCkpCisgICAgLCBtX2VuYWJsZWQoc291cmNlLmVuYWJs
ZWQoKSkKIHsKKyAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiB9
CiAKIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMoKQogeworICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0
aGlzKTsKKwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CiAKICAgICBpZiAo
bV9jb25uZWN0ZWQgJiYgbV9jYXB0dXJlU291cmNlKQpAQCAtMTY1LDEwICsxNzAsMTUgQEAgdm9p
ZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJlKCkKICAgICB9CiB9CiAK
K3ZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENoYW5nZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIG1fZW5hYmxlZCA9IHRyYWNr
LmVuYWJsZWQoKTsKK30KKwogLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVh
ZC4KLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZyYW1lQ291bnQpCit2b2lkIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDb3VudCkKIHsKLSAgICBpZiAoIXRyYWNrLmVuYWJs
ZWQoKSkKKyAgICBpZiAoIW1fZW5hYmxlZCB8fCAhbV9jb25uZWN0ZWQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9
PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBhMTBkYzZjM2ExYjhkYzk0OGQwZTkwNTUxMzYy
NmMyZWVhZDkxYjU5Li42MjBjMWRjN2QzNmQ5OWM1Yjk2ZDJlOGU2NGYzOWMwZmQyZjQ4Yzg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00NjcsOCArNDY3LDEwIEBAIFJl
ZjxJbnRlcm5hbHM+IEludGVybmFsczo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIEludGVy
bmFsczo6fkludGVybmFscygpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAo
bV90cmFjaykKLSAgICAgICAgbV90cmFjay0+c291cmNlKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMp
OworICAgIGlmIChtX3RyYWNrU291cmNlKSB7CisgICAgICAgIG1fdHJhY2tTb3VyY2UtPnJlbW92
ZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV90cmFja1NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1w
bGVPYnNlcnZlcigqdGhpcyk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTE2NDAsOSArMTY0Miw5
IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24oYm9vbCBlbmFibGVkKQogICAgICAgICBwYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhQ2FwdHVy
ZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihlbmFibGVkKTsKIH0KIAotc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlUmVjb3JkZXJNb2NrU291cmNlKCkK
K3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZVJlY29y
ZGVyTW9ja1NvdXJjZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKLSAgICByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jaz4obmV3IE1lZGlhUmVjb3Jk
ZXJQcml2YXRlTW9jayk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZU1vY2s+KG5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2soc3RyZWFtKSk7CiB9CiAK
IHZvaWQgSW50ZXJuYWxzOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKCkKQEAgLTQ5
MzIsOCArNDkzNCw5IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRDYW1lcmFNZWRpYVN0cmVhbVRyYWNr
T3JpZW50YXRpb24oTWVkaWFTdHJlYW1UcmFjayYgdHJhY2ssIGluCiAKIHZvaWQgSW50ZXJuYWxz
OjpvYnNlcnZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaykKIHsKLSAg
ICBtX3RyYWNrID0gJnRyYWNrOwotICAgIG1fdHJhY2stPnNvdXJjZSgpLmFkZE9ic2VydmVyKCp0
aGlzKTsKKyAgICBtX3RyYWNrU291cmNlID0gJnRyYWNrLnNvdXJjZSgpOworICAgIG1fdHJhY2tT
b3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3RyYWNrU291cmNlLT5hZGRBdWRpb1Nh
bXBsZU9ic2VydmVyKCp0aGlzKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OmdyYWJOZXh0TWVkaWFT
dHJlYW1UcmFja0ZyYW1lKFRyYWNrRnJhbWVQcm9taXNlJiYgcHJvbWlzZSkKQEAgLTQ5NDcsNyAr
NDk1MCw3IEBAIHZvaWQgSW50ZXJuYWxzOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBs
ZSYgc2FtcGxlKQogICAgIGlmICghbV9uZXh0VHJhY2tGcmFtZVByb21pc2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGF1dG8mIHZpZGVvU2V0dGluZ3MgPSBtX3RyYWNrLT5zb3VyY2UoKS5zZXR0
aW5ncygpOworICAgIGF1dG8mIHZpZGVvU2V0dGluZ3MgPSBtX3RyYWNrU291cmNlLT5zZXR0aW5n
cygpOwogICAgIGlmICghdmlkZW9TZXR0aW5ncy53aWR0aCgpIHx8ICF2aWRlb1NldHRpbmdzLmhl
aWdodCgpKQogICAgICAgICByZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA4YjQ1ZWNlMTBlODAxZjBhOGQ3NWE2MWNjNzkzYmE1NWQ0Yzg0MTU1Li4wOWI2Yjk5
MTBkYmFlYThkYzE4ZGRhNTE2NGRkYjQ4ZDEwNjczNTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTEyMyw2ICsxMjMsNyBAQCBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9u
Q29uZmlndXJhdGlvbjsKIGNsYXNzIEludGVybmFscyBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVk
PEludGVybmFscz4sIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNl
cnZlcgorICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2Vy
dmVyCiAjZW5kaWYKICAgICB7CiBwdWJsaWM6CkBAIC05NzAsMTUgKzk3MSwxNiBAQCBwcml2YXRl
OgogCiAgICAgRXhjZXB0aW9uT3I8UmVuZGVyZWREb2N1bWVudE1hcmtlcio+IG1hcmtlckF0KE5v
ZGUmLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4KTsKIAotICAgIC8v
IFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIEFQSQogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIgQVBJCiAgICAgdm9pZCB2
aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYpIGZpbmFsOworICAgIC8vIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgQVBJCiAgICAgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbCB7IG1fdHJhY2tBdWRp
b1NhbXBsZUNvdW50Kys7IH0KIAogICAgIE9yaWVudGF0aW9uTm90aWZpZXIgbV9vcmllbnRhdGlv
bk5vdGlmaWVyOwogICAgIHVuc2lnbmVkIGxvbmcgbV90cmFja1ZpZGVvU2FtcGxlQ291bnQgeyAw
IH07CiAgICAgdW5zaWduZWQgbG9uZyBtX3RyYWNrQXVkaW9TYW1wbGVDb3VudCB7IDAgfTsKLSAg
ICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gbV90cmFjazsKKyAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV90cmFja1NvdXJjZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VHJhY2tGcmFt
ZVByb21pc2U+IG1fbmV4dFRyYWNrRnJhbWVQcm9taXNlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKaW5kZXggOWQ2ZmJhZjJlYjE3N2Q2ZWUyNjZmMjQzNjJlNjgyZWVjZWFj
OWIxNS4uZmJhNmEyOGExNjc4YTdhY2E2ODU2MDM3OTc0NmMzM2YxYTYwNDUzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
CiAgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHB1Ymxp
YyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCiAgICAgLCBwdWJsaWMg
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CkBAIC01NywxMSArNTgsMTMgQEAgcHVibGljOgogICAgICAgICAsIG1f
cmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCiAgICAgewogICAgICAgICBt
X3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9T
YW1wbGVPYnNlcnZlcigqdGhpcyk7CiAgICAgfQogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7
CiAgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fc291cmNlLT5yZW1v
dmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKICAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9i
c2VydmVyKCp0aGlzKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCA2OTY4
MGYyNGY4MGRlYTkzNzQyOTk1MjlmZTlmNjY3N2ExMmNkY2QwLi5mY2Y0ODRhZDQwOGRhYzdmMGQy
MTFhOTJmMzNjNDQ2YTA4MDQwOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC00Myw3
ICs0Myw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
Ci1NZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFT
dHJlYW1Qcml2YXRlJiBzdHJlYW0pCitNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRl
clByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiAgICAgOiBtX2lkZW50aWZpZXIo
TWVkaWFSZWNvcmRlcklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX2Nvbm5lY3Rpb24o
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkpCiB7CkBAIC02NCwxNSArNjQsMTkgQEAgTWVkaWFSZWNvcmRlclByaXZhdGU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogICAg
ICAgICB3aWR0aCA9IHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2stPnNldHRpbmdzKCkud2lkdGgo
KTsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OkNyZWF0ZVJlY29yZGVyIHsgbV9pZGVudGlm
aWVyLCAhIXNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2ssIHdpZHRoLCBoZWlnaHQgfSwgW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGF1dG8mJiBleGNlcHRpb24pIHsKLSAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhZXhjZXB0aW9uKQorICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRl
UmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaywgd2lk
dGgsIGhlaWdodCB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgYXVkaW9U
cmFjayA9IG1ha2VSZWZQdHIoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjayldKGF1dG8mJiBleGNl
cHRpb24pIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgbV9lcnJvckNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92
ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIG1fZXJyb3JDYWxsYmFjayhFeGNlcHRpb24geyBleGNlcHRpb24tPmNvZGUs
IFdURk1vdmUoZXhjZXB0aW9uLT5tZXNzYWdlKSB9KTsKKyAgICAgICAgaWYgKGF1ZGlvVHJhY2sp
CisgICAgICAgICAgICBzZXRBdWRpb1NvdXJjZSgmYXVkaW9UcmFjay0+c291cmNlKCkpOwogICAg
IH0sIDApOwogfQogCiBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRl
KCkKIHsKKyAgICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpSZWxlYXNlUmVjb3JkZXIg
eyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKQEAgLTg4LDExICs5Miw4IEBAIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFja1ByCiAjZW5kaWYKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JiB0cmFjaywgY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYg
YXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6
ZV90IG51bWJlck9mRnJhbWVzKQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IHNpemVfdCBudW1iZXJPZkZyYW1lcykKIHsKLSAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29y
ZGVkQXVkaW9UcmFja0lEKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9kZXNjcmlwdGlv
biAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7CiAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigp
LmRlc2NyaXB0aW9uKTsKQEAgLTEzMCw2ICsxMzEsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U2hh
cgogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKCkKIHsKKyAgICBz
ZXRBdWRpb1NvdXJjZShudWxscHRyKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlN0b3BSZWNvcmRpbmcgeyB9LCBtX2lkZW50aWZpZXIpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRleCA2ZDlmYWJlM2VhNzI0NzNmNDU5OTBjZThhZDE3
MmQwY2QwM2E4MTI2Li42ODAwOTQyYTMwZGNkYzQxYWMzYmFmZmQ5YmE3ODgxMjgwOWI0NmQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTQ0LDE4ICs0NCwyMSBAQCBjbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBNZWRpYVJlY29yZGVyUHJp
dmF0ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSwgcHVibGlj
IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZT4geworY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgZmluYWwK
KyAgICA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZQorICAgICwgcHVibGlj
IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIGV4cGxpY2l0IE1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNv
cmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIGV4cGxpY2l0IE1lZGlhUmVjb3JkZXJQcml2
YXRlKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpOwogICAgIH5NZWRpYVJlY29yZGVyUHJp
dmF0ZSgpOwogCiBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
CiAgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKLSAgICB2b2lkIGF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0Rh
dGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5h
bDsKICAgICB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSBmaW5hbDsK
ICAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVk
aW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkg
ZmluYWw7CiAKICAgICAvLyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CiAgICAgdm9p
ZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3Bw
CmluZGV4IGJkMWRlNDExYmYzMzQxZTlkMmJlMmI0MmEyOWQxNDhjMmJkOGQ0YTQuLjZjYjMyMWVk
MjU4OTQ4OWU5ZGIwY2JiZDViNTU5YjFlNTZhMDM0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNv
bnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlh
UmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKICAgICBpZiAobV91c2VHUFVQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaAppbmRleCBkMjU4OGQ0MmFiNjBkZGE2ZDI5NDg4ZmI4NWZlMmFjNTA1MDE4YmQyLi5lOTZi
OGZmMzY0ZGU1OTg4NjhmZDlkZjA1ZWE5MjViNDBkODNhYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25z
dCBXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsOwogI2VuZGlmCiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395953</attachid>
            <date>2020-04-09 08:25:18 -0700</date>
            <delta_ts>2020-04-09 09:24:47 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210180-20200409172515.patch</filename>
            <type>text/plain</type>
            <size>69754</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNlMThjOTQzNGM0ZTM5
Yjg5NzFmOGI3ZDJkOTdjOGRjMGQ0YjIxMi4uZTM1OTY4Y2MyZDhjM2I2YWQwYzY4ZTFmNzVmYjY5
MGI4ZTUyYjRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAyMC0wNC0wOSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGEgUmVh
bHRpbWVNZWRpYVNvdXJjZSBvYnNlcnZlciBkZWRpY2F0ZWQgdG8gcmVjZWl2aW5nIGF1ZGlvIHNh
bXBsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MDE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlOjpPYnNlcnZlciB3YXMgY2FsbGVkIG9uIHZhcmlvdXMgdGhyZWFkcyB3
aGljaCB3YXMgbWFraW5nIGl0ZXJhdGluZyB0aHJvdWdoIHRoZW0gZGlmZmljdWx0LgorICAgICAg
ICBPYnNlcnZlcnMgd2VyZSBjb3BpZWQgdG8gYSB2ZWN0b3IgZm9yIGl0ZXJhdGluZyBlYWNoIHRp
bWUgYW5kIGxvY2tpbmcgd2FzIGhhcHBlbmluZyBmb3IgZWFjaCBpbmRpdnVkdWFsIG9ic2VydmVy
LgorCisgICAgICAgIEluc3RlYWQgb2YgZG9pbmcgdGhhdCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIgbm8gbG9uZ2VyIGdpdmVzIGFjY2VzcyB0byBhdWRpbyBzYW1wbGVzLCBhbGwgaXRz
IG1ldGhvZHMgYXJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgQXVkaW9T
YW1wbGVPYnNlcnZlciBpcyBpbnRyb2R1Y2VkIHdpdGggYSBzaW5nbGUgbWV0aG9kIHRvIHJlY2Vp
dmUgYXVkaW8gc2FtcGxlcy4KKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSBrZWVwcyBhIHNl
dCBvZiBBdWRpb1NhbXBsZU9ic2VydmVyIHNlcGFyYXRlZCBmcm9tIGl0cyBleGlzdGluZyBPYnNl
cnZlciBoYXNoc2V0LgorICAgICAgICBUaGVzZSBvYnNlcnZlcnMgY2FuIG9ubHkgYmUgYWRkZWQv
cmVtb3ZlZCBmcm9tIHRoZSBtYWluIHRocmVhZCB3aGlsZSBhdWRpbyBzYW1wbGUgZGVsaXZlcnkg
dXN1YWxseSBoYXBwZW5zIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZC4KKyAgICAgICAgV2Ugbm8g
bG9uZ2VyIG5lZWQgdG8gY29weSB0aGUgYXVkaW8gc2FtcGxlIG9ic2VydmVycyBpbiBhIHZlY3Rv
ciBhbmQgbG9jayBvbmx5IG9uY2Ugd2hlbiBpdGVyYXRpbmcgdGhlIGF1ZGlvIHNhbXBsZSBvYnNl
cnZlcnMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVxdWlyZXMgdG8gdXBkYXRlIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlIGFuZCBSZWFsdGltZU1lZGlhU291cmNlIG9ic2VydmVycy4KKyAgICAg
ICAgVGhpcyBpbmNsdWRlcyBXZWJBdWRpbywgQXVkaW8gUmVuZGVyZXIgYW5kIE1lZGlhIFJlY29y
ZGVyLgorICAgICAgICBFYWNoIGNvcnJlc3BvbmRpbmcgY2xhc3MgaXMgbm93IHJlZ2lzdGVyaW5n
IGl0c2VsZiBhcyBhIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciBhbmQgd2hlbiBu
ZWVkZWQgYXMgYSBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlci4KKyAgICAgICAgVGhpcyBh
bGxvd3MgcmVtb3ZpbmcgdGhlIGFkZGl0aW9uYWwgY29weS1pbi12ZWN0b3IvbG9jayB0aGF0IHdh
cyBoYXBwZW5pbmcgd2hlbiBpdGVyYXRpbmcgb3ZlciBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
T2JzZXJ2ZXJzIGZvciBhdWRpbyBzYW1wbGVzLiAgICAgCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
YWxzbyBhbGxvd3MgZm9yIGEgY29uc3VtZXIgdG8gYWx3YXlzIG9ic2VydmUgdGhlIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlIGJ1dCByZWNlaXZlIGF1ZGlvIHNhbXBsZXMgb25seSB3aGVuIG5lZWRl
ZC4KKyAgICAgICAgV2UgY2hhbmdlIHRoZSBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGlt
cGxlbWVudGF0aW9uIHNvIHRoYXQsIGlmIHRoZSByZW5kZXJlciBpcyBtdXRlZCwgbm90IHBsYXlp
bmcsIHRoZSB0cmFjayBpcyBtdXRlZCBvciBub3QgZW5hYmxlZCwKKyAgICAgICAgaXQgbm8gbG9u
Z2VyIHJlY2VpdmVzIGF1ZGlvIHNhbXBsZXMuCisgICAgICAgIFRoaXMgaXMgZXNwZWNpYWxseSB1
c2VmdWwgaW4gdGhlIHR5cGljYWwgY2FzZSB3aGVyZSBhIHZpZGVvIGVsZW1lbnQgZGlzcGxheXMg
dGhlIGxvY2FsbHkgY2FwdHVyZWQgc3RyZWFtIChpbmNsdWRpbmcgYSBsb2NhbCBhdWRpbyB0cmFj
aykgYnV0IGlzIG11dGVkCisgICAgICAgIHRvIHByZXZlbnQgZmVlZGJhY2sgbG9vcC4KKyAgICAg
ICAgRm9yIHRoYXQgcmVhc29uLCB0aGUgcGxheWVyIGlzIG5vdyBzZXR0aW5nIHRoZSBtdXRlZCBz
dGF0ZSBvZiB0aGUgcmVuZGVyZXIgaW5zdGVhZCBvZiBzZXR0aW5nIHZvbHVtZSB0byAwLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdCBzZXRzLgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpzZXRWb2x1bWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpzZXRNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6c2V0QXVkaW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp+TWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbDo6c3RvcFJlY29yZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmZldGNoRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlTW9jayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6
On5NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVNb2NrOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UmVjb3JkZXJQcml2YXRlTW9jazo6c2FtcGxlQnVmZmVyVXBkYXRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OmdlbmVyYXRlTW9ja0Nv
dW50ZXJTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2Nr
OjpmZXRjaERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGVNb2NrLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OmNsZWFyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGF1c2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0TXV0ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6YXVkaW9TYW1wbGVz
QXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW06OnRyYWNrTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW06OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tFbmRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp1cGRhdGVSZW5kZXJlcik6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzdGFydFJlbmRlcmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnN0b3BS
ZW5kZXJlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3ZWJr
aXRNZWRpYVN0cmVhbVNyY0ZpbmFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1lZGlh
U3RyZWFtU3JjQ2hhbmdlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6d2Via2l0TWVkaWFTdHJl
YW1TcmNTZXR1cFNyYyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9y
RWFjaFRyYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
Zm9yRWFjaE9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6Omhhc1N0YXJ0ZWRQcm9kdWNpbmdBdWRpb0RhdGEpOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjphZGRBdWRpb1NhbXBsZU9ic2VydmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW92ZUF1ZGlvU2FtcGxl
T2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkT2Jz
ZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2Jz
ZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6Zm9yRWFjaE9i
c2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1
ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpvYnNlcnZlU291cmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6dW5vYnNlcnZl
U291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Ojp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjp+SW50ZXJuYWxzKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJl
Y29yZGVyTW9ja1NvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9ic2VydmVN
ZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6dmlkZW9TYW1w
bGVBdmFpbGFibGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisKIDIwMjAtMDQt
MDkgIERlbGFuIEF6YWJhbmkgIDxkYXphYmFuaUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92
ZSB1bm5lY2Vzc2FyeSBleHBsaWNpdCBwYXJzaW5nIGZvciBtb0BtYXhzaXplIHZhbHVlICJpbmZp
bml0eSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNTNhZWY4Yzg1ZTNlMThhYWM1YWNmMDdhMmJiZTlhZjM2YTQ3ZjY2
ZC4uNzgwYzFiMjAwM2MxNmE4Yzc3OTgwMzZkMmVjMjYyZWE3MjdmYmU5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNyBAQAorMjAyMC0wNC0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgSW50cm9kdWNlIGEgUmVhbHRpbWVNZWRpYVNvdXJjZSBvYnNlcnZlciBk
ZWRpY2F0ZWQgdG8gcmVjZWl2aW5nIGF1ZGlvIHNhbXBsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE4MAorCisgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVcGRhdGUgU291cmNlUHJveHkgdG8gYmUgYW4gQXVk
aW9TYW1wbGVPYnNlcnZlci4KKyAgICAgICAgVXBkYXRlIE1lZGlhUmVjb3JkZXIgdG8gb25seSBs
aXN0ZW4gZm9yIGF1ZGlvIHNhbXBsZXMgaWYgR1BVIHJlbW90ZSB3cml0ZXIgaXMgc3VjY2Vzc2Z1
bGx5IGNyZWF0ZWQuCisgICAgICAgIEl0IGFsc28gc3RvcHMgbGlzdGVuaW5nIHRvIGF1ZGlvIHNh
bXBsZXMgYXMgc29vbiBhcyBzdG9wcGluZyB0aGUgcmVjb3JkaW5nLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6U291cmNl
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
b3VyY2VQcm94eTo6flNvdXJjZVByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJp
dmF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92
aWRlci5oOgorCiAyMDIwLTA0LTA5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgVXNlckRhdGE6OmRlY29kZSBzaG91bGQgYWRkIGJvdW5kcyBjaGVja3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmNwcAppbmRleCBiNWRlYjhiMzVjOGFiMWZlYjc5YWJiM2ZkMGUzZWUzYmYwMjU0NGNhLi42
NTlhY2VkNTViZmUwZDFjMzFlYzdkMzYwZjc2M2NmNjBiZWQwYTZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCkBA
IC02NCwxMCArNjQsMTAgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVj
b3JkZXJDcmVhdG9yKGNyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQogICAgIG1fY3VzdG9tQ3JlYXRv
ciA9IGNyZWF0b3I7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4g
TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3N0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclBy
aXZhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsK
ICAgICBpZiAobV9jdXN0b21DcmVhdG9yKQotICAgICAgICByZXR1cm4gbV9jdXN0b21DcmVhdG9y
KCk7CisgICAgICAgIHJldHVybiBtX2N1c3RvbUNyZWF0b3Ioc3RyZWFtKTsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CkBAIC0yMjcsMTEg
KzIyNyw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtCiAgICAgbV9wcml2YXRlLT5zYW1wbGVC
dWZmZXJVcGRhdGVkKHRyYWNrLCBtZWRpYVNhbXBsZSk7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRl
cjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywg
Y29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRp
b0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qg
c2FtcGxlQ291bnQpCi17Ci0gICAgbV9wcml2YXRlLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUodHJh
Y2ssIG1lZGlhVGltZSwgYXVkaW9EYXRhLCBkZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQpOwotfQot
CiBib29sIE1lZGlhUmVjb3JkZXI6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAog
ewogICAgIHJldHVybiBtX3N0YXRlICE9IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5o
CmluZGV4IGU4YmJiODUxZGZjNjE3ZGU2ZTA4NTQ5Yjc5ZjZhNDQ3NjQ3OTdiZDAuLjljMzQ4OTQ2
NjkyZTAyMTYyZWQ2NDJjZmFjOGYwNTg5OTBiODkxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtMzgsNyArMzgs
NyBAQCBjbGFzcyBCbG9iOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBNZWRpYVJlY29yZGVyUHJp
dmF0ZTsKIAotdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+KCpj
cmVhdG9yRnVuY3Rpb24pKCk7Cit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZT4oKmNyZWF0b3JGdW5jdGlvbikoTWVkaWFTdHJlYW1Qcml2YXRlJik7CiAKIGNsYXNz
IE1lZGlhUmVjb3JkZXIgZmluYWwKICAgICA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QKQEAgLTc4
LDcgKzc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYVJlY29yZGVyKERvY3VtZW50
JiwgUmVmPE1lZGlhU3RyZWFtPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZh
dGU+JiYsIE9wdGlvbnMmJiA9IHsgfSk7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVudCYs
IGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKERvY3VtZW50
JiwgTWVkaWFTdHJlYW1Qcml2YXRlJik7CiAgICAgCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkg
Y29uc3Q7CiAKQEAgLTEwNyw4ICsxMDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdHJhY2tTZXR0
aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH07CiAgICAgdm9p
ZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9
OwogICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYs
IE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwot
ICAgIAorCiAgICAgc3RhdGljIGNyZWF0b3JGdW5jdGlvbiBtX2N1c3RvbUNyZWF0b3I7CiAgICAg
CiAgICAgT3B0aW9ucyBtX29wdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCmluZGV4
IGZjYjA5N2VlNzU5ZmY1ZGZiNzY0OThkNTA5MGU0Y2NjYzBjOWQ1YTYuLjQ0YzlkMDdhOWI5NzUw
ZDY2MjZlYjc1ODdlYWJjNTEzZjQzNmI4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3Bw
CkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1l
ZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6
OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQog
ewogICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCmluZGV4IDJlMmY0MzZlYzBhZjhhZWY5NzUwODFj
YmFiNDA4ZDQ1M2Q0ZWIyNGEuLjExYmFhZGNlYTg2OWU3YTI5MTk2NjJhYjJkOGNlZjU0NzBjMmVk
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0
ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFT
dHJlYW1Qcml2YXRlJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29s
IHZhbHVlKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwCmluZGV4IDAxZmYyMDgwMGU1YzA2YWIyZjY2Zjg2YTI0ZWFlY2FlNmJm
MjYxNTYuLmU5ODA0ODQxZDc0ODNlYjcyNGY3NTQ2NjMwYzZmZGU3YjMxMmE0NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01ODIsNyArNTgyLDcgQEAgcHVibGlj
OgogICAgIEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OwogcHJpdmF0ZToK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRl
KGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3Jk
ZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0K
ICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGYwM2YxMTg2N2Jk
OWI5ZjE0ZGJhN2Q2ZjcwODkxYjg4ZGIwNmRlOGUuLjQzOGJiOWE0MjNmMGQ0ZDk0OTUyYTNhYWU0
ZDQyNjZmZTNkN2Y2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTU2MCw3ICs1
NjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHZvbHVtZSk7
CiAgICAgbV92b2x1bWUgPSB2b2x1bWU7CiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1f
YXVkaW9UcmFja01hcC52YWx1ZXMoKSkKLSAgICAgICAgdHJhY2stPnNldFZvbHVtZShtX211dGVk
ID8gMCA6IG1fdm9sdW1lKTsKKyAgICAgICAgdHJhY2stPnNldFZvbHVtZShtX3ZvbHVtZSk7CiB9
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRNdXRlZChi
b29sIG11dGVkKQpAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpzZXRNdXRlZChib29sIG11dGVkKQogICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgbXV0ZWQpOwogICAgIG1fbXV0ZWQgPSBtdXRlZDsKICAgICBmb3IgKGNvbnN0
IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQotICAgICAgICB0cmFjay0+
c2V0Vm9sdW1lKG1fbXV0ZWQgPyAwIDogbV92b2x1bWUpOworICAgICAgICB0cmFjay0+c2V0TXV0
ZWQobV9tdXRlZCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpoYXNWaWRlbygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCmluZGV4IGE2
OTkzY2EyODFkYjg4MmVjOTkyZmZhZDc0Y2ExZjliMzE5M2I2ZGUuLjI2Nzk5OGQwNmQ1Zjg5OWFk
YTExNGIwOGQwYTFlMmUxMjMwNTc4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBA
IC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVkaWFSZWNvcmRlclBy
aXZhdGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2Vs
ZWN0VHJhY2tzKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorTWVkaWFSZWNvcmRl
clByaXZhdGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
c2VsZWN0VHJhY2tzKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIEF1ZGlvVmlk
ZW9TZWxlY3RlZFRyYWNrcyBzZWxlY3RlZFRyYWNrczsKICAgICBzdHJlYW0uZm9yRWFjaFRyYWNr
KFsmXShhdXRvJiB0cmFjaykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IDYwNDMwYjQx
YjMyNTA0MmNmMmIxZGUzNmE4ODY5ZGUwMmM5MGI1YTUuLmUyOGUzODM2YjFmOTcxMTM3NDA4OTMz
ZmIxZTBkMzI1ODhiMDhlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVk
aWFTb3VyY2UuaCIKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTQzLDI5ICs0NCw1
MyBAQCBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9E
YXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCi1jbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7
CitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSA6CisgICAgcHVibGljIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgfk1lZGlh
UmVjb3JkZXJQcml2YXRlKCkgPSBkZWZhdWx0OworICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgp
OwogCiAgICAgc3RydWN0IEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyB7Ci0gICAgICAgIGNvbnN0
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrIHsgbnVsbHB0ciB9OwotICAgICAg
ICBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlkZW9UcmFjayB7IG51bGxwdHIgfTsK
KyAgICAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2sgeyBudWxscHRyIH07
CisgICAgICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrIHsgbnVsbHB0ciB9
OwogICAgIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvVmlkZW9TZWxlY3RlZFRy
YWNrcyBzZWxlY3RUcmFja3MoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBzZWxlY3RUcmFja3MoTWVk
aWFTdHJlYW1Qcml2YXRlJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRl
ZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgPSAwOwogCi0gICAgdmly
dHVhbCB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRC
dWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHN0b3BSZWNvcmRpbmcoKSB7IH07CisgICAgdXNpbmcgRmV0Y2hEYXRhQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpPjsKKyAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxi
YWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29yZGluZygpID0gMDsKIAogICAg
IHVzaW5nIEVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
Jik+OwogICAgIHZvaWQgc2V0RXJyb3JDYWxsYmFjayhFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxs
YmFjaykgeyBtX2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spOyB9CiAKK3By
b3RlY3RlZDoKKyAgICB2b2lkIHNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlPiYmKTsKKwogcHJvdGVjdGVkOgogICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNhbGxiYWNr
OworCitwcml2YXRlOgorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlvU291
cmNlOwogfTsKIAoraW5saW5lIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNldEF1ZGlvU291
cmNlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIGF1ZGlvU291cmNlKQoreworICAgIGlm
IChtX2F1ZGlvU291cmNlKQorICAgICAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVBdWRpb1NhbXBs
ZU9ic2VydmVyKCp0aGlzKTsKKworICAgIG1fYXVkaW9Tb3VyY2UgPSBXVEZNb3ZlKGF1ZGlvU291
cmNlKTsKKworICAgIGlmIChtX2F1ZGlvU291cmNlKQorICAgICAgICBtX2F1ZGlvU291cmNlLT5h
ZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKK30KKworaW5saW5lIE1lZGlhUmVjb3JkZXJQ
cml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQoreworICAgIGlmIChtX2F1ZGlvU291cmNl
KQorICAgICAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlz
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRleCAy
ZDVhMzU5YjIzMWJjOTQyOTAxMDY4NDZkYzZhOTg1MmI3YmE3ODY3Li44Nzg5NDBiMGY5MTAyNDMz
NzU4M2RhYTZjZjMyNzM4MmE1ZjVmZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGwuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0p
CitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsK
ICAgICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRvIGltcGxlbWVudCBzdXBwb3J0IGZvciBtdWx0
aXBsZSBhdWRpby92aWRlbyB0cmFja3MKICAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBjaG9vc2Ug
dGhlIGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0cmFjay4KQEAgLTUxLDExICs1MSwxNSBA
QCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZQogICAgIFN0cmluZyBhdWRpb1RyYWNrSWQ7CiAgICAg
aWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spCiAgICAgICAgIGF1ZGlvVHJhY2tJZCA9IHNl
bGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2stPmlkKCk7CisKICAgICBTdHJpbmcgdmlkZW9UcmFja0lk
OwogICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKQogICAgICAgICB2aWRlb1RyYWNr
SWQgPSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5pZCgpOwogCi0gICAgcmV0dXJuIG1ha2VV
bmlxdWU8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPih3cml0ZXIucmVsZWFzZU5vbk51bGwo
KSwgV1RGTW92ZShhdWRpb1RyYWNrSWQpLCBXVEZNb3ZlKHZpZGVvVHJhY2tJZCkpOworICAgIGF1
dG8gcmVjb3JkZXIgPSBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4od3Jp
dGVyLnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoYXVkaW9UcmFja0lkKSwgV1RGTW92ZSh2aWRl
b1RyYWNrSWQpKTsKKyAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykKKyAgICAgICAg
cmVjb3JkZXItPnNldEF1ZGlvU291cmNlKCZzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5zb3Vy
Y2UoKSk7CisgICAgcmV0dXJuIHJlY29yZGVyOwogfQogCiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbChSZWY8TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI+JiYgd3JpdGVyLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQsIFN0cmluZyYmIHZpZGVv
VHJhY2tJZCkKQEAgLTY1LDYgKzY5LDExIEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0CiB7CiB9
CiAKK01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6fk1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbCgpCit7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7Cit9CisKIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKIHsKICAg
ICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQpAQCAtNzIsMTAgKzgx
LDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnNhbXBsZUJ1ZmZlclVwZGF0
ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXYKICAgICBtX3dyaXRlci0+YXBwZW5kVmlkZW9T
YW1wbGVCdWZmZXIoc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxl
QnVmZmVyKTsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0
IFdURjo6TWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBs
ZUNvdW50KQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IHNpemVfdCBzYW1wbGVDb3VudCkKIHsKLSAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVk
QXVkaW9UcmFja0lEKQotICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oZGF0YSkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0
aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBl
KTsKICAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRp
b24sIG1lZGlhVGltZSwgc2FtcGxlQ291bnQpOwpAQCAtODMsMTAgKzkwLDExIEBAIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVk
aWFTdHJlYW1UcmFja1ByCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzdG9w
UmVjb3JkaW5nKCkKIHsKKyAgICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsKICAgICBtX3dyaXRl
ci0+c3RvcFJlY29yZGluZygpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bDo6ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4m
JiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlQVZGSW1wbDo6ZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNrJiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgbV93cml0ZXItPmZldGNoRGF0YShbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbWltZVR5cGUgPSBtaW1lVHlwZSgpXShhdXRv
JiYgYnVmZmVyKSBtdXRhYmxlIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShi
dWZmZXIpLCBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaApp
bmRleCAwY2YwZGYzYzY0Y2M5NzEzZTMwNTliZTM2Y2FjYzlmYzdjY2MwYjM2Li43MTlhZGJiYWU5
MThiMjdmN2VlYzcyZWQ0NzYyZWM3ZWY2ZjhlZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmgKQEAgLTMzLDIyICszMywyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIAotY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsIGZpbmFsIDogcHVibGljIE1lZGlhUmVjb3JkZXJQcml2YXRlIHsKK2NsYXNzIE1lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbCBmaW5hbAorICAgIDogcHVibGljIE1lZGlhUmVjb3JkZXJQ
cml2YXRlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gY3JlYXRlKGNv
bnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBjcmVhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJik7Cisg
ICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbCgpOwogCiBwcml2YXRlOgogICAgIE1lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbChSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+JiYs
IFN0cmluZyYmIGF1ZGlvVHJhY2tJZCwgU3RyaW5nJiYgdmlkZW9UcmFja0lkKTsKIAogICAgIGZy
aWVuZCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBzdGQ6Om1h
a2VfdW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4oUmVmPE1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyPiYmLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwogCisgICAgLy8gTWVkaWFSZWNv
cmRlclByaXZhdGUKICAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwotICAgIHZvaWQgYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwotICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJik+JiYpIGZp
bmFsOworICAgIHZvaWQgZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNrJiYpIGZpbmFsOworICAg
IHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90
KSBmaW5hbDsKKwogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKTsKICAgICB2b2lkIHN0b3BS
ZWNvcmRpbmcoKTsKLSAgICAKKwogICAgIFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4g
bV93cml0ZXI7CiAgICAgU3RyaW5nIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQ7CiAgICAgU3RyaW5n
IG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5j
cHAKaW5kZXggZjJhYzhjMjdjYjQ1Yzk3YzJkYzAzYjhmZTRhNzM2OTE3ZDRiY2Y4Ny4uYTFkMGQx
MGMwNjExMWU2OGE0NmU1NDg1NGRjOTYxZWRlMjA3NmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrLmNwcApAQCAtMzMsMzAgKzMzLDUxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQo
Y29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYpCitNZWRp
YVJlY29yZGVyUHJpdmF0ZU1vY2s6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayhNZWRpYVN0cmVh
bVByaXZhdGUmIHN0cmVhbSkKIHsKLSAgICBnZW5lcmF0ZU1vY2tTdHJpbmcodHJhY2spOworICAg
IGF1dG8gc2VsZWN0ZWRUcmFja3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tz
KHN0cmVhbSk7CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spIHsKKyAgICAgICAg
bV9hdWRpb1RyYWNrSUQgPSBzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5pZCgpOworICAgICAg
ICBzZXRBdWRpb1NvdXJjZSgmc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjay0+c291cmNlKCkpOwor
ICAgIH0KKyAgICBpZiAoc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjaykKKyAgICAgICAgbV92aWRl
b1RyYWNrSUQgPSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5pZCgpOwogfQogCi12b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3Qp
CitNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6On5NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2soKQog
ewotICAgIGdlbmVyYXRlTW9ja1N0cmluZyh0cmFjayk7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVs
bHB0cik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tT
dHJpbmcoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQordm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2s6OnN0b3BSZWNvcmRpbmcoKQoreworICAgIHNldEF1ZGlvU291cmNl
KG51bGxwdHIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6c2FtcGxlQnVm
ZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikK
K3sKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9jayk7CisgICAgbV9idWZm
ZXIuYXBwZW5kKCJWaWRlbyBUcmFjayBJRDogIik7CisgICAgbV9idWZmZXIuYXBwZW5kKG1fdmlk
ZW9UcmFja0lEKTsKKyAgICBnZW5lcmF0ZU1vY2tDb3VudGVyU3RyaW5nKCk7Cit9CisKK3ZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RG
OjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCBzaXplX3QpCiB7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2J1
ZmZlckxvY2spOwotICAgIGlmICh0cmFjay50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8pCi0gICAgICAgIG1fYnVmZmVyLmFwcGVuZCgiQXVkaW8gVHJhY2sgSUQ6ICIp
OwotICAgIGVsc2UKLSAgICAgICAgbV9idWZmZXIuYXBwZW5kKCJWaWRlbyBUcmFjayBJRDogIik7
Ci0gICAgbV9idWZmZXIuYXBwZW5kKHRyYWNrLmlkKCkpOworICAgIG1fYnVmZmVyLmFwcGVuZCgi
QXVkaW8gVHJhY2sgSUQ6ICIpOworICAgIG1fYnVmZmVyLmFwcGVuZChtX2F1ZGlvVHJhY2tJRCk7
CisgICAgZ2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygpOworfQorCit2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlTW9jazo6Z2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygpCit7CiAgICAgbV9idWZm
ZXIuYXBwZW5kKCIgQ291bnRlcjogIik7CiAgICAgbV9idWZmZXIuYXBwZW5kTnVtYmVyKCsrbV9j
b3VudGVyKTsKICAgICBtX2J1ZmZlci5hcHBlbmQoIlxyXG4tLS0tLS0tLS1cclxuIik7CiB9CiAK
LXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEoRmV0
Y2hEYXRhQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKG1fYnVmZmVyTG9jayk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZhbHVlKG1fYnVm
ZmVyLmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCmluZGV4IDRkYWVk
NjczMWRlYTUzZTk3NTY2MWE0NGExMjcwZmYxOGRlMmQ4NDkuLmI3ZjNjMjE0OGUzOTllYTIyMzZk
OTJjODY1OWY3OTg3MWJhZTE3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaApA
QCAtMzQsMTggKzM0LDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcml2
YXRlTW9jayBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7CitjbGFzcyBXRUJD
T1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2sgZmluYWwKKyAgICA6IHB1YmxpYyBN
ZWRpYVJlY29yZGVyUHJpdmF0ZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrKE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIH5NZWRpYVJlY29yZGVyUHJp
dmF0ZU1vY2soKTsKKwogcHJpdmF0ZToKKyAgICAvLyBNZWRpYVJlY29yZGVyUHJpdmF0ZQogICAg
IHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYs
IE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29u
c3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVf
dCkgZmluYWw7Ci0gICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmKT4mJikgZmluYWw7CisgICAgdm9pZCBm
ZXRjaERhdGEoRmV0Y2hEYXRhQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworICAgIHZv
aWQgc3RvcFJlY29yZGluZygpIGZpbmFsOworCiAgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSgp
OwotICAgIAotICAgIHZvaWQgZ2VuZXJhdGVNb2NrU3RyaW5nKGNvbnN0IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJik7CisgICAgdm9pZCBnZW5lcmF0ZU1vY2tDb3VudGVyU3RyaW5nKCk7CiAKICAg
ICBtdXRhYmxlIExvY2sgbV9idWZmZXJMb2NrOwogICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXI7
CiAgICAgdW5zaWduZWQgbV9jb3VudGVyIHsgMCB9OworICAgIFN0cmluZyBtX2F1ZGlvVHJhY2tJ
RDsKKyAgICBTdHJpbmcgbV92aWRlb1RyYWNrSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IDJlZGQ0NTky
MmQzY2JkNzEyNTY4NmU4N2U1YTIzYjdhNWEwNTExZDUuLmZmMWQxMDIyMjgwNzgwZjEwZDc0N2Ni
OGUzZjg1OTZhYjQ1NDRhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
Y3BwCkBAIC0zNSw5ICszNSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgOiBtX3N0cmVhbVRyYWNrKHRyYWNrKQorICAgICwg
bV9hdWRpb1NvdXJjZSh0cmFjay5zb3VyY2UoKSkKICAgICAsIG1faWQodHJhY2suaWQoKSkKICAg
ICAsIG1fbGFiZWwodHJhY2subGFiZWwoKSkKLSAgICAsIG1fdGltZWxpbmVPZmZzZXQoTWVkaWFU
aW1lOjppbnZhbGlkVGltZSgpKQogICAgICwgbV9yZW5kZXJlciB7IEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyOjpjcmVhdGUoKSB9CiB7CiAgICAgdHJhY2suYWRkT2JzZXJ2ZXIoKnRoaXMp
OwpAQCAtNjIsNDAgKzYyLDMwIEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6
Y2xlYXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2lzQ2xlYXJlZCA9IHRydWU7Ci0gICAg
c3RyZWFtVHJhY2soKS5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Ci0KLSAgICBtX3JlbmRlcmVyLT5j
bGVhcigpOwotfQotCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBsYXlJbnRl
cm5hbCgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmIChtX2lzUGxh
eWluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1BsYXlpbmcgPSB0cnVlOwotICAgIG1f
YXV0b1BsYXkgPSBmYWxzZTsKKyAgICAgICAgbV9hdWRpb1NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1w
bGVPYnNlcnZlcigqdGhpcyk7CiAKLSAgICBtX3JlbmRlcmVyLT5zdGFydCgpOworICAgIHN0cmVh
bVRyYWNrKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcmVuZGVyZXItPmNsZWFyKCk7
CiB9CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxheSgpCiB7Ci0gICAg
cGxheUludGVybmFsKCk7CisgICAgbV9zaG91bGRQbGF5ID0gdHJ1ZTsKKyAgICB1cGRhdGVSZW5k
ZXJlcigpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBhdXNlKCkK
IHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKCFtX2lzUGxheWluZykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKLSAgICBtX2F1dG9Q
bGF5ID0gZmFsc2U7CisgICAgbV9zaG91bGRQbGF5ID0gZmFsc2U7CisgICAgdXBkYXRlUmVuZGVy
ZXIoKTsKK30KIAotICAgIG1fcmVuZGVyZXItPnN0b3AoKTsKK3ZvaWQgQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBtX211dGVkID0gbXV0
ZWQ7CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQpAQCAtMTA5LDQ2ICs5OSw1NSBAQCBm
bG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogfQogCiAv
LyBNYXkgZ2V0IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgotdm9pZCBBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW06OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7Ci0gICAgaWYgKCFtX2lz
UGxheWluZykgewotICAgICAgICBtX3JlbmRlcmVyLT5zdG9wKCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KICAgICBtX3JlbmRlcmVyLT5wdXNoU2FtcGxlcyhzYW1wbGVUaW1lLCBhdWRpb0Rh
dGEsIGRlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7Ci0KLSAgICBpZiAobV9hdXRvUGxheSAmJiAh
bV9oYXNTdGFydGVkQXV0b3BsYXkpIHsKLSAgICAgICAgbV9oYXNTdGFydGVkQXV0b3BsYXkgPSB0
cnVlOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKLSAgICAgICAgICAgIGlmIChtX2F1dG9QbGF5KQotICAgICAgICAgICAg
ICAgIHBsYXlJbnRlcm5hbCgpOwotICAgICAgICB9KTsKLSAgICB9CiB9CiAKIHZvaWQgQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmKQogewotICAgIHVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpOworICAgIHVwZGF0
ZVJlbmRlcmVyKCk7CiB9CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJh
Y2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiB7Ci0gICAgdXBkYXRl
UmVuZGVyZXJNdXRlZFN0YXRlKCk7CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKK30KKwordm9pZCBB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikKK3sKKyAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCi12b2lkIEF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpCit2b2lkIEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyKCkKIHsKLSAgICBpZiAoc3Ry
ZWFtVHJhY2soKS5tdXRlZCgpIHx8IHN0cmVhbVRyYWNrKCkuZW5kZWQoKSB8fCAhc3RyZWFtVHJh
Y2soKS5lbmFibGVkKCkpIHsKLSAgICAgICAgcGF1c2UoKTsKKyAgICBpZiAoIW1fc2hvdWxkUGxh
eSB8fCBtX211dGVkIHx8IHN0cmVhbVRyYWNrKCkubXV0ZWQoKSB8fCBzdHJlYW1UcmFjaygpLmVu
ZGVkKCkgfHwgIXN0cmVhbVRyYWNrKCkuZW5hYmxlZCgpKSB7CisgICAgICAgIHN0b3BSZW5kZXJl
cigpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHBsYXkoKTsKKyAgICBzdGFydFJlbmRl
cmVyKCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tFbmRl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW06OnN0YXJ0UmVuZGVyZXIoKQogewotICAgIHBhdXNlKCk7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBpZiAobV9pc1BsYXlpbmcpCisgICAgICAgIHJldHVybjsKKworICAg
IG1faXNQbGF5aW5nID0gdHJ1ZTsKKyAgICBtX2F1ZGlvU291cmNlLT5hZGRBdWRpb1NhbXBsZU9i
c2VydmVyKCp0aGlzKTsKKyAgICBtX3JlbmRlcmVyLT5zdGFydCgpOworfQorCit2b2lkIEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnN0b3BSZW5kZXJlcigpCit7CisgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBpZiAoIW1faXNQbGF5aW5nKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2lzUGxheWluZyA9IGZhbHNlOworICAgIG1fYXVkaW9Tb3VyY2UtPnJlbW92ZUF1ZGlv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcmVuZGVyZXItPnN0b3AoKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCmlu
ZGV4IGYzMjVjNmRkNjljZjgyY2ExODA1YWQxNTFkMTc0NmRiNmQxNmQ3NmQuLjhhZGUyNWM1ZGVm
NmJkMWQ3M2U3NWE5N2I5ZGIzZTBhNDQ3OTY0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtLmgKQEAgLTM0LDcgKzM0LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI7CiAKLWNsYXNzIEF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgQXVkaW9UcmFja1ByaXZhdGUsIHByaXZhdGUg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKK2NsYXNzIEF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0gZmluYWwKKyAgICA6IHB1YmxpYyBBdWRpb1RyYWNrUHJpdmF0ZQorICAg
ICwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZh
dGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSkKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+IGNyZWF0ZShNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFtVHJhY2spCkBAIC00Nyw5ICs1MCw2IEBAIHB1Ymxp
YzoKIAogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzdHJlYW1UcmFjaygpIHsgcmV0dXJu
IG1fc3RyZWFtVHJhY2suZ2V0KCk7IH0KIAotICAgIE1lZGlhVGltZSB0aW1lbGluZU9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGltZWxpbmVPZmZzZXQ7IH0KLSAgICB2b2lkIHNldFRpbWVsaW5l
T2Zmc2V0KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KSB7IG1fdGltZWxpbmVPZmZzZXQgPSBvZmZz
ZXQ7IH0KLQogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIHZvaWQgcGxheSgpOwpAQCAtNTksNyAr
NTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogICAgIGZsb2F0IHZv
bHVtZSgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRNdXRlZChib29sIG11dGVkKSB7IG1fbXV0ZWQg
PSBtdXRlZDsgfQorICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CiAgICAgYm9vbCBtdXRlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fbXV0ZWQ7IH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAt
NzcsMzAgKzc3LDMyIEBAIHByb3RlY3RlZDoKICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1faW5kZXg7IH0KIAogICAgIC8vIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpPYnNlcnZlcgotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKICAgICB2b2lkIHRy
YWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIHRyYWNr
TXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgIGZpbmFsOwogICAgIHZvaWQg
dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpICBmaW5hbDsKICAg
ICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmlu
YWwgeyB9CiAKLSAgICB2b2lkIHBsYXlJbnRlcm5hbCgpOwotICAgIHZvaWQgdXBkYXRlUmVuZGVy
ZXJNdXRlZFN0YXRlKCk7CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVP
YnNlcnZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHNpemVfdCkgZmluYWw7CisKKyAgICB2b2lkIHN0YXJ0UmVuZGVyZXIoKTsKKyAgICB2b2lkIHN0
b3BSZW5kZXJlcigpOworICAgIHZvaWQgdXBkYXRlUmVuZGVyZXIoKTsKIAogICAgIC8vIE1haW4g
dGhyZWFkIHdyaXRhYmxlIG1lbWJlcnMKICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsK
LSAgICBib29sIG1fYXV0b1BsYXkgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRQbGF5IHsg
ZmFsc2UgfTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0NsZWFy
ZWQgeyBmYWxzZSB9OwogCiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVh
bVRyYWNrOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlvU291cmNlOwogICAg
IEF0b21TdHJpbmcgbV9pZDsKICAgICBBdG9tU3RyaW5nIG1fbGFiZWw7CiAgICAgaW50IG1faW5k
ZXggeyAwIH07Ci0gICAgTWVkaWFUaW1lIG1fdGltZWxpbmVPZmZzZXQ7CiAKICAgICAvLyBBdWRp
byB0aHJlYWQgbWVtYmVycwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcj4gbV9yZW5kZXJlcjsKLSAgICBib29sIG1faGFzU3RhcnRlZEF1dG9wbGF5IHsg
ZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IGFkY2YxMmIwMWVlN2Fl
ODZjYTNkZjQ1YjI3ODE3NmNhYWQwNGYzNjQuLjdiMmQwYzc5NmJhOWIxNWU3MjNiNDQ1NThhZGVj
NzRiMTFmODI5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAtMTIxLDYgKzEyMSwxMiBAQCB2
b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9yRWFjaFRyYWNrKGNvbnN0IEZ1bmN0aW9uPHZvaWQo
Y29uc3QgTWVkaWFTdHJlYW1UcmFjawogICAgICAgICBjYWxsYmFjaygqdHJhY2spOwogfQogCit2
b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9yRWFjaFRyYWNrKGNvbnN0IEZ1bmN0aW9uPHZvaWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKT4mIGNhbGxiYWNrKQoreworICAgIGZvciAoYXV0byYg
dHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKQorICAgICAgICBjYWxsYmFjaygqdHJhY2spOwor
fQorCiB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5Q2xp
ZW50T3B0aW9uIG5vdGlmeUNsaWVudE9wdGlvbikKIHsKICAgICBib29sIG5ld0FjdGl2ZVN0YXRl
ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IGNlNmI3MTA4NjUxMWVmMjkzYjg5ODY1MDk2
NDYyOGZkNzY4ZDIzYWQuLjc5Mjg5YjgxMjM2MzlkYjk2MmZkMTJkMjkyNzg3Mzc4NDMwOTAwOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsKICAgICBib29sIGhhc1RyYWNr
cygpIGNvbnN0IHsgcmV0dXJuICFtX3RyYWNrU2V0LmlzRW1wdHkoKTsgfQogICAgIHZvaWQgZm9y
RWFjaFRyYWNrKGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKT4mKSBjb25zdDsKKyAgICB2b2lkIGZvckVhY2hUcmFjayhjb25zdCBGdW5jdGlvbjx2b2lk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik+Jik7CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUqIGFjdGl2ZVZpZGVvVHJhY2soKSB7IHJldHVybiBtX2FjdGl2ZVZpZGVvVHJhY2s7IH0KIAog
ICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjdGl2ZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IGM5OWMxNmM2ZDgwY2E0MWU0MmM3ZGQxZTQyMGJmMTJh
ODkyODU4NTguLjRkMDhhZDczMzZjZWE0OTYwMGZhYjljNzEwZjk3YzIwMDNmNzRkZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTc4LDE2ICs3OCwxMCBAQCBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6fk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKCkKICAgICBtX3NvdXJjZS0+
cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Ojpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JiBh
cHBseSkgY29uc3QKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmZvckVhY2hPYnNlcnZl
cihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JiBhcHBseSkgY29uc3QKIHsKLSAgICBW
ZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnNDb3B5OwotICAgIHsKLSAgICAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOwotICAgICAgICBvYnNlcnZlcnNDb3B5ID0g
Y29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJzKTsKLSAgICB9Ci0gICAgZm9yIChhdXRvKiBvYnNlcnZl
ciA6IG9ic2VydmVyc0NvcHkpIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29i
c2VydmVyc0xvY2spOwotICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIG9ic2VydmVyIGhhcyBub3Qg
YmVlbiBkZXN0cm95ZWQuCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBmb3IgKGF1
dG8qIG9ic2VydmVyIDogY29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJzKSkgewogICAgICAgICBpZiAo
IW1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBhcHBseSgqb2JzZXJ2ZXIpOwpAQCAtOTYsMTMgKzkwLDEzIEBAIHZvaWQgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6OmZvckVhY2hPYnNlcnZlcihjb25zdCBXVEY6OkZ1bmN0aW9uPHZv
aWQoT2JzZXJ2ZXImCiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmFkZE9ic2VydmVy
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOworICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAgICAgbV9vYnNlcnZlcnMuYWRkKCZvYnNlcnZlcik7CiB9CiAKIHZvaWQgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU6OnJlbW92ZU9ic2VydmVyKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X29ic2VydmVyc0xvY2spOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbV9vYnNl
cnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7CiB9CiAKQEAgLTI2MSwyNiArMjU1LDEyIEBAIHZvaWQg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxl
JiBtZWRpYVNhbXBsZSkKICAgICB9KTsKIH0KIAotLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNr
Z3JvdW5kIHRocmVhZC4KLXZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBz
aXplX3Qgc2FtcGxlQ291bnQpCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpoYXNTdGFy
dGVkUHJvZHVjaW5nQXVkaW9EYXRhKCkKIHsKLSAgICBpZiAoIW1faGFzU2VudFN0YXJ0UHJvZHVj
ZWREYXRhKSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldIHsKLSAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoIW1faGF2ZVByb2R1Y2VkRGF0YSkgewot
ICAgICAgICAgICAgICAgIG1faGF2ZVByb2R1Y2VkRGF0YSA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgdXBkYXRlUmVhZHlTdGF0ZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9oYXNT
ZW50U3RhcnRQcm9kdWNlZERhdGEgPSB0cnVlOwotICAgICAgICB9KTsKKyAgICBpZiAobV9oYXZl
UHJvZHVjZWREYXRhKQogICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZm9yRWFjaE9ic2Vy
dmVyKFsmXShhdXRvJiBvYnNlcnZlcikgewotICAgICAgICBvYnNlcnZlci5hdWRpb1NhbXBsZXNB
dmFpbGFibGUoKnRoaXMsIG1lZGlhVGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50
KTsKLSAgICB9KTsKKyAgICBtX2hhdmVQcm9kdWNlZERhdGEgPSB0cnVlOworICAgIHVwZGF0ZVJl
YWR5U3RhdGUoKTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6dXBkYXRlUmVh
ZHlTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCBmOWI1ZDEwMTUxNGU3MWYy
M2M3YjZhM2FmMmNlMjE2OTBkNGU1MmIzLi5hYzdmNzY5MGQyY2M4YmM1ZGE2ZjZkYmY4NmJjMWU5
OWNiMWRjZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTYyLDkgKzYyLDYgQEAg
cHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNhbXBsZUJ1ZmZl
clVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIHsgfTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikgeyB9OwotCi0gICAgICAgIC8vIE1heSBnZXQgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0
aHJlYWQuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlv
RGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIHsgfTsKICAgICB9
OwogCiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gY3JlYXRlKFJlZjxj
b25zdCBMb2dnZXI+JiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKQEAgLTEwMCw2ICs5
Nyw3IEBAIHB1YmxpYzoKICAgICBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IGNsb25lKCk7
CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UoKSB7IHJldHVybiBtX3NvdXJjZS5n
ZXQoKTsgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlLmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZSB0eXBlKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuZFRyYWNrKCk7CkBAIC0x
MzIsMTUgKzEzMCwxNSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlKFJlZjxjb25zdCBMb2dnZXI+JiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmLCBT
dHJpbmcmJiBpZCk7CiAKLSAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlT2JzZXJ2ZXIKKyAgICAv
LyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgogICAgIHZvaWQgc291cmNlU3RhcnRlZCgp
IGZpbmFsOwogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNl
TXV0ZWRDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKSBm
aW5hbDsKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBmaW5hbDsKICAgICB2
b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9pZCBh
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKICAg
ICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpIGZpbmFsOworICAgIHZvaWQgaGFzU3RhcnRlZFBy
b2R1Y2luZ0F1ZGlvRGF0YSgpIGZpbmFsOwogCiAgICAgdm9pZCB1cGRhdGVSZWFkeVN0YXRlKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggOGM3ZjhiMGRlNzhlNGUxOGQ1OWI5YTZiMDA0
NDNhNTMyNzM0ODk0OC4uOWZkYmYwMTUzYzY4Y2I2YjNiOThiMjRiMDVmZDkwOTdkMGRjNWYxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTYwLDE1ICs2MCwyOSBAQCBSZWFsdGltZU1lZGlh
U291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKFR5cGUgdHlwZSwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgZGV2aQogICAgIG1faGFzaGVkSUQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobV9wZXJzaXN0ZW50SUQsIG1faWRIYXNoU2Fs
dCk7CiB9CiAKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkQXVkaW9TYW1wbGVPYnNlcnZl
cihSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyJiBvYnNlcnZlcikKK3sK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2spOworICAgIG1fYXVkaW9TYW1wbGVPYnNlcnZlcnMu
YWRkKCZvYnNlcnZlcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlQXVk
aW9TYW1wbGVPYnNlcnZlcihSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVy
JiBvYnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2spOworICAgIG1fYXVkaW9T
YW1wbGVPYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7Cit9CisKIHZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6YWRkT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXImIG9ic2Vy
dmVyKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIp
OwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW92ZU9ic2VydmVyKFJlYWx0aW1l
TWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fb2JzZXJ2ZXJzTG9jayk7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICBtX29ic2VydmVycy5yZW1vdmUoJm9ic2VydmVyKTsKICAgICBpZiAobV9vYnNlcnZlcnMuaXNF
bXB0eSgpKQogICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOwpAQCAtMTE2LDE2ICsxMzAsMTAg
QEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRJbnRlcnJ1cHRlZEZvclRlc3RpbmcoYm9v
bCBpbnRlcnJ1cHRlZCkKICAgICBub3RpZnlNdXRlZENoYW5nZShpbnRlcnJ1cHRlZCk7CiB9CiAK
LXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Zm9yRWFjaE9ic2VydmVyKGNvbnN0IFdURjo6RnVu
Y3Rpb248dm9pZChPYnNlcnZlciYpPiYgYXBwbHkpIGNvbnN0Cit2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JiBh
cHBseSkgY29uc3QKIHsKLSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnNDb3B5OwotICAg
IHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOwotICAg
ICAgICBvYnNlcnZlcnNDb3B5ID0gY29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJzKTsKLSAgICB9Ci0g
ICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IG9ic2VydmVyc0NvcHkpIHsKLSAgICAgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOwotICAgICAgICAvLyBNYWtlIHN1cmUg
dGhlIG9ic2VydmVyIGhhcyBub3QgYmVlbiBkZXN0cm95ZWQuCisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogY29weVRvVmVjdG9yKG1fb2JzZXJ2
ZXJzKSkgewogICAgICAgICBpZiAoIW1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhcHBseSgqb2JzZXJ2ZXIpOwpAQCAtMTgyLDkg
KzE5MCwyMiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogewotICAgIGZvckVhY2hPYnNlcnZlcihb
Jl0oYXV0byYgb2JzZXJ2ZXIpIHsKLSAgICAgICAgb2JzZXJ2ZXIuYXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHRpbWUsIGF1ZGlvRGF0YSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKLSAgICB9
KTsKKyAgICBpZiAoIW1faGFzU2VudFN0YXJ0UHJvZHVjZWRBdWRpb0RhdGEpIHsKKyAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewor
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBpZiAobV9oYXNTZW50U3RhcnRQcm9kdWNlZEF1ZGlvRGF0YSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBtX2hhc1NlbnRTdGFydFByb2R1Y2VkQXVkaW9EYXRh
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIp
IHsKKyAgICAgICAgICAgICAgICBvYnNlcnZlci5oYXNTdGFydGVkUHJvZHVjaW5nQXVkaW9EYXRh
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7CisgICAgZm9yIChhdXRv
KiBvYnNlcnZlciA6IG1fYXVkaW9TYW1wbGVPYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT5h
dWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9EYXRhLCBkZXNjcmlwdGlvbiwgbnVtYmVy
T2ZGcmFtZXMpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaAppbmRleCAxYjlkNmEyNDQ5YzUyMTM2NGRkMzJjYjQwYjM5Njc2OTVhZjI1NDBj
Li41NzYwNTM4NzMxMWZkMzE3MDhlMGNlYWUxZTFlYmE0NzFhMTBiZjBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5oCkBAIC02OSw3ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdURjo6RGVzdHJ1Y3Rpb25U
aHJlYWQ6Ok1haW5SdW5Mb29wPgotICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2U+CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVNZWRpYVNv
dXJjZSwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+CiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgLCBwcm90ZWN0ZWQgTG9nZ2VySGVscGVyCiAjZW5kaWYKQEAgLTky
LDggKzkyLDE0IEBAIHB1YmxpYzoKICAgICAgICAgLy8gQ2FsbGVkIG9uIHRoZSBtYWluIHRocmVh
ZC4KICAgICAgICAgdmlydHVhbCB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxl
JikgeyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIGhhc1N0YXJ0ZWRQcm9kdWNpbmdBdWRpb0Rh
dGEoKSB7IH0KKyAgICB9OworICAgIGNsYXNzIEF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworICAgIHB1
YmxpYzoKKyAgICAgICAgdmlydHVhbCB+QXVkaW9TYW1wbGVPYnNlcnZlcigpID0gZGVmYXVsdDsK
KwogICAgICAgICAvLyBNYXkgYmUgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
c2l6ZV90IC8qbnVtYmVyT2ZGcmFtZXMqLykgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBhdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90IC8qbnVtYmVyT2ZGcmFt
ZXMqLykgPSAwOwogICAgIH07CiAKICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlKCkg
PSBkZWZhdWx0OwpAQCAtMTMxLDYgKzEzNyw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRB
dWRpb1NhbXBsZU9ic2VydmVyKEF1ZGlvU2FtcGxlT2JzZXJ2ZXImKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoQXVkaW9TYW1wbGVPYnNlcnZlciYp
OworCiAgICAgY29uc3QgSW50U2l6ZSBzaXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaXplKGNv
bnN0IEludFNpemUmKTsKIApAQCAtMjUzLDggKzI2MiwxMSBAQCBwcml2YXRlOgogICAgIFN0cmlu
ZyBtX3BlcnNpc3RlbnRJRDsKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9uYW1lOwot
ICAgIG11dGFibGUgUmVjdXJzaXZlTG9jayBtX29ic2VydmVyc0xvY2s7CiAgICAgSGFzaFNldDxP
YnNlcnZlcio+IG1fb2JzZXJ2ZXJzOworCisgICAgbXV0YWJsZSBSZWN1cnNpdmVMb2NrIG1fYXVk
aW9TYW1wbGVPYnNlcnZlcnNMb2NrOworICAgIEhhc2hTZXQ8QXVkaW9TYW1wbGVPYnNlcnZlcio+
IG1fYXVkaW9TYW1wbGVPYnNlcnZlcnM7CisKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBJbnRT
aXplIG1faW50cmluc2ljU2l6ZTsKICAgICBkb3VibGUgbV9mcmFtZVJhdGUgeyAzMCB9OwpAQCAt
MjcyLDYgKzI4NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ludGVycnVwdGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fY2FwdHVyZURpZEZhaWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lz
RW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNTZW50U3RhcnRQcm9kdWNlZEF1ZGlvRGF0
YSB7IGZhbHNlIH07CiB9OwogCiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAKaW5kZXggY2RmZTIzZmE0YWNlMGI2ZGE2YmU5
ZTc5NDU2OGRlODQwZmE0YjY2ZS4uYzI3ZTYwZjY2Y2NjZTkyNjIwZTI2NTc4ZmY1OGEzYjBlNTc0
ODA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC00NSw3ICs0
NSw3IEBAIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpCiAKIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZTo6flJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSgpCiB7Ci1BU1NFUlQoIW1fYXVkaW9T
b3VyY2UtPmhhc09ic2VydmVyKCp0aGlzKSk7CisgICAgQVNTRVJUKCFtX2F1ZGlvU291cmNlLT5o
YXNPYnNlcnZlcigqdGhpcykpOwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX3NpbmtzTG9jayk7CiAjZW5kaWYKQEAgLTU4LDExICs1OCwxMyBAQCB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSgpCiB7CiAgICAgQVNT
RVJUKCFtX2F1ZGlvU291cmNlLT5oYXNPYnNlcnZlcigqdGhpcykpOwogICAgIG1fYXVkaW9Tb3Vy
Y2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBtX2F1ZGlvU291cmNlLT5zb3VyY2UoKS5hZGRB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKICAgICBpbml0aWFsaXplQ29udmVydGVyKCk7CiB9
CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjp1bm9ic2VydmVTb3VyY2UoKQog
eworICAgIG1fYXVkaW9Tb3VyY2UtPnNvdXJjZSgpLnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIo
KnRoaXMpOwogICAgIG1fYXVkaW9Tb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAppbmRleCA4MTY3NjEzZGFkOGYyMzIzZjIx
ZmI5NzEyMDc3NjU4NDQxNDNjMDYyLi4xZWIwYTNjYmM5NzI3YTUxYWU4ZWVjYTNjNzViOTgyMDRi
MjM0ZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaApAQCAtNTUsNiArNTUs
NyBAQCBjbGFzcyBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UKICAgICA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UsIFdURjo6RGVzdHJ1
Y3Rpb25UaHJlYWQ6Ok1haW4+CiAgICAgLCBwdWJsaWMgd2VicnRjOjpBdWRpb1NvdXJjZUludGVy
ZmFjZQogICAgICwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAg
ICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIKICNlbmRp
ZgpAQCAtMTA4LDcgKzEwOSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hh
bmdlZCgpOwogICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgeyB9Owog
CiAgICAgdmlydHVhbCBib29sIGlzUmVhY2hpbmdCdWZmZXJlZEF1ZGlvRGF0YUhpZ2hMaW1pdCgp
IHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoaW5nQnVmZmVyZWRB
dWRpb0RhdGFMb3dMaW1pdCgpIHsgcmV0dXJuIGZhbHNlOyB9OwpAQCAtMTE4LDEwICsxMTgsMTIg
QEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgQVBJ
CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZp
bmFsIHsgc291cmNlTXV0ZWRDaGFuZ2VkKCk7IH0KICAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IHNvdXJjZUVuYWJsZWRDaGFuZ2Vk
KCk7IH0KLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzYW1wbGVDb3VudCkgeyBhdWRpb1NhbXBsZXNBdmFpbGFibGUobWVkaWFUaW1lLCBkYXRhLCBk
ZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQpOyB9CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQogCisgICAgLy8gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciBBUEkKKyAgICB2b2lkIGF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIG92ZXJyaWRlIHsgfTsKKwogICAg
IHZvaWQgaW5pdGlhbGl6ZUNvbnZlcnRlcigpOwogCiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlPiBtX2F1ZGlvU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oCmluZGV4IDAzMDcw
M2Q1NDAwYTQ2NmE5NzBhMDY5Yzc3NDM0YzBhMDRmNzI3NTEuLmU3ZDg4ODkyNDZmNGMxZTg4MGM0
NzgyNmUzNjIzNmY1NmYzMGMyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmgKQEAgLTMyLDcg
KzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYkF1ZGlvU291cmNlUHJvdmlk
ZXI+LCBwdWJsaWMgQXVkaW9Tb3VyY2VQcm92aWRlciB7CitjbGFzcyBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYkF1ZGlvU291cmNlUHJvdmlk
ZXIsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+LCBwdWJsaWMgQXVkaW9Tb3VyY2VQcm92
aWRlciB7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3Ry
ZWFtU291cmNlLmNwcAppbmRleCA5ZWQ1ZmVhY2E1ZTRlYWZiNzFkNjM5NjVlNTk0YWE1ZTJlNDlh
OWY4Li4xMTZiOTUyZjAxYmNlNzVmYjc1ZWNiOTIwYzYxZTY3NDdkZTBlMTIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
TWVkaWFTdHJlYW1Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKQEAgLTEwNiw3
ICsxMDYsOCBAQCBHc3RTdHJlYW0qIHdlYmtpdE1lZGlhU3RyZWFtTmV3KE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlKiB0cmFjaykKIH0KIAogY2xhc3MgV2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2Vy
dmVyCi0gICAgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKKyAg
ICA6IHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICAsIHB1Ymxp
YyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJLaXRNZWRpYVN0cmVh
bVRyYWNrT2JzZXJ2ZXIoKSB7IH07CkBAIC0xMzEsNyArMTMyLDcgQEAgcHVibGljOgogICAgICAg
ICB3ZWJraXRNZWRpYVN0cmVhbVNyY1B1c2hWaWRlb1NhbXBsZShtX21lZGlhU3RyZWFtU3JjLCBn
c3RzYW1wbGUpOwogICAgIH0KIAotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkg
ZmluYWwKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgc2l6ZV90KSBmaW5hbAogICAgIHsKICAgICAgICAgYXV0byBhdWRpb2RhdGEgPSBz
dGF0aWNfY2FzdDxjb25zdCBHU3RyZWFtZXJBdWRpb0RhdGEmPihhdWRpb0RhdGEpOwogCkBAIC0z
NzUsOSArMzc2LDEwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjRmluYWxpemUo
R09iamVjdCogb2JqZWN0KQogCiAgICAgR1NUX09CSkVDVF9MT0NLKHNlbGYpOwogICAgIGlmIChz
ZWxmLT5zdHJlYW0pIHsKLSAgICAgICAgZm9yIChhdXRvJiB0cmFjayA6IHNlbGYtPnN0cmVhbS0+
dHJhY2tzKCkpCisgICAgICAgIGZvciAoYXV0byYgdHJhY2sgOiBzZWxmLT5zdHJlYW0tPnRyYWNr
cygpKSB7CisgICAgICAgICAgICB0cmFjay0+c291cmNlKCkucmVtb3ZlQXVkaW9TYW1wbGVPYnNl
cnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKICAgICAgICAgICAg
IHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdl
dCgpKTsKLQorICAgICAgICB9CiAgICAgICAgIHNlbGYtPnN0cmVhbS0+cmVtb3ZlT2JzZXJ2ZXIo
KnNlbGYtPm1lZGlhU3RyZWFtT2JzZXJ2ZXIpOwogICAgICAgICBzZWxmLT5zdHJlYW0gPSBudWxs
cHRyOwogICAgIH0KQEAgLTM5NiwxMCArMzk4LDE0IEBAIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJl
dHVybiB3ZWJraXRNZWRpYVN0cmVhbVNyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQs
CiAKICAgICAgICAgR1NUX09CSkVDVF9MT0NLKHNlbGYpOwogICAgICAgICBpZiAoc2VsZi0+c3Ry
ZWFtKSB7Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+c3RyZWFtLT50cmFj
a3MoKSkKKyAgICAgICAgICAgIGZvciAoYXV0byYgdHJhY2sgOiBzZWxmLT5zdHJlYW0tPnRyYWNr
cygpKSB7CisgICAgICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLnJlbW92ZUF1ZGlvU2FtcGxl
T2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CiAgICAgICAg
ICAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2Jz
ZXJ2ZXIuZ2V0KCkpOwotICAgICAgICB9IGVsc2UgaWYgKHNlbGYtPnRyYWNrKQorICAgICAgICAg
ICAgfQorICAgICAgICB9IGVsc2UgaWYgKHNlbGYtPnRyYWNrKSB7CisgICAgICAgICAgICBzZWxm
LT50cmFjay0+c291cmNlKCkucmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqc2VsZi0+bWVkaWFT
dHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKICAgICAgICAgICAgIHNlbGYtPnRyYWNrLT5yZW1v
dmVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKKyAgICAg
ICAgfQogICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzZWxmKTsKICAgICB9CiAKQEAgLTU0Myw5
ICs1NDksMTAgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBTcmMo
V2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsCiAgICAgfSBlbHNlCiAgICAgICAgIHdlYmtpdE1l
ZGlhU3RyZWFtU3JjQWRkUGFkKHNlbGYsIHBhZC5nZXQoKSwgcGFkX3RlbXBsYXRlKTsKIAotICAg
IGlmIChvYnNlcnZlX3RyYWNrKQorICAgIGlmIChvYnNlcnZlX3RyYWNrKSB7CiAgICAgICAgIHRy
YWNrLT5hZGRPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsK
LQorICAgICAgICB0cmFjay0+c291cmNlKCkuYWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqc2VsZi0+
bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKKyAgICB9CiAgICAgZ3N0X2VsZW1lbnRf
c3luY19zdGF0ZV93aXRoX3BhcmVudChlbGVtZW50KTsKICAgICByZXR1cm4gVFJVRTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKaW5kZXggZmYzMGViMzdl
YjcwZDljMWY0Yzc4YjRhYTEyMTRhNDFlMTY5MjQwZC4uMWMxY2U3MzEwZTcwY2I3NzczMGY2M2I3
ZTJjNjg5NWVlNjBmZjRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLmgKQEAgLTQ2LDcgKzQ2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZTsKIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIAot
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMgZmluYWwg
OiBwdWJsaWMgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
Ok9ic2VydmVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQXVkaW9Tb3VyY2VQcm92aWRlcgorICAgICwg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisgICAgLCBSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KTsKICAgICB2aXJ0dWFsIH5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpOwpAQCAtNjIs
MTEgKzY1LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92
aWRlckNsaWVudCopIGZpbmFsOwogCiAgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9i
c2VydmVyCi0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tF
bmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQogICAgIHZvaWQgdHJhY2tN
dXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KICAgICB2b2lk
IHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9
Ci0gICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
ZmluYWwgeyB9CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgZmluYWw7CisKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBs
ZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
Jiwgc2l6ZV90KSBmaW5hbDsKIAogICAgIHNpemVfdCBtX2xpc3RCdWZmZXJTaXplIHsgMCB9Owog
ICAgIE9wdGlvbmFsPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4gbV9pbnB1dERlc2NyaXB0aW9u
OwpAQCAtNzcsOCArODIsMTAgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX3JlYWRDb3VudCB7
IDAgfTsKICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIg
fTsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogbV9jYXB0dXJlU291cmNlIHsgbnVsbHB0
ciB9OworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAgICBMb2NrIG1f
bXV0ZXg7CiAgICAgYm9vbCBtX2Nvbm5lY3RlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2VuYWJs
ZWQgeyB0cnVlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMubW0KaW5kZXggYWU5MDJkMWJkM2FlMmRmOTNjZjEyNDgxNjFjYjM3MjBlOTg2OTQ5
NC4uNzkwZGJkMWIzYzkwZmM3MjQ5NGRiMWZlMzJkNmMyYjdiMjEwYmE1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtNTQsMTEgKzU0LDE2IEBA
IFJlZjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OmNyZWF0ZShNZWRpYVN0CiAKIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
OjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
c291cmNlKQogICAgIDogbV9jYXB0dXJlU291cmNlKCZzb3VyY2UpCisgICAgLCBtX3NvdXJjZShz
b3VyY2Uuc291cmNlKCkpCisgICAgLCBtX2VuYWJsZWQoc291cmNlLmVuYWJsZWQoKSkKIHsKKyAg
ICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiB9CiAKIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKQog
eworICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKwogICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CiAKICAgICBpZiAobV9jb25uZWN0ZWQg
JiYgbV9jYXB0dXJlU291cmNlKQpAQCAtMTY1LDEwICsxNzAsMTUgQEAgdm9pZCBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJlKCkKICAgICB9CiB9CiAKK3ZvaWQgV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIG1fZW5hYmxlZCA9IHRyYWNrLmVuYWJsZWQoKTsK
K30KKwogLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KLXZvaWQgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgc2l6ZV90IGZyYW1lQ291bnQpCit2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
LCBzaXplX3QgZnJhbWVDb3VudCkKIHsKLSAgICBpZiAoIXRyYWNrLmVuYWJsZWQoKSkKKyAgICBp
ZiAoIW1fZW5hYmxlZCB8fCAhbV9jb25uZWN0ZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFT
U0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURl
c2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCAxYzdmYzAwZjY1YmI1MjJjNTg3NTU0ZGU4OWExNjczMTIxZTRiZDk3
Li44ZDlkNzY3MTNhMjVhYmZjOTU4MjY0OGQwZmExNjY1NThmNmY4MTc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00NjYsOCArNDY2LDEwIEBAIFJlZjxJbnRlcm5hbHM+
IEludGVybmFsczo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIEludGVybmFsczo6fkludGVy
bmFscygpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAobV90cmFjaykKLSAg
ICAgICAgbV90cmFjay0+c291cmNlKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIGlmICht
X3RyYWNrU291cmNlKSB7CisgICAgICAgIG1fdHJhY2tTb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0
aGlzKTsKKyAgICAgICAgbV90cmFja1NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigq
dGhpcyk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTE2MzksOSArMTY0MSw5IEBAIHZvaWQgSW50
ZXJuYWxzOjpzZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oYm9vbCBlbmFi
bGVkKQogICAgICAgICBwYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbihlbmFibGVkKTsKIH0KIAotc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlUmVjb3JkZXJNb2NrU291cmNlKCkKK3N0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZVJlY29yZGVyTW9ja1NvdXJj
ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jaz4obmV3IE1lZGlhUmVjb3JkZXJQcml2YXRlTW9j
ayk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s+
KG5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2soc3RyZWFtKSk7CiB9CiAKIHZvaWQgSW50ZXJu
YWxzOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKCkKQEAgLTQ5MjUsOCArNDkyNyw5
IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRDYW1lcmFNZWRpYVN0cmVhbVRyYWNrT3JpZW50YXRpb24o
TWVkaWFTdHJlYW1UcmFjayYgdHJhY2ssIGluCiAKIHZvaWQgSW50ZXJuYWxzOjpvYnNlcnZlTWVk
aWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaykKIHsKLSAgICBtX3RyYWNrID0g
JnRyYWNrOwotICAgIG1fdHJhY2stPnNvdXJjZSgpLmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBt
X3RyYWNrU291cmNlID0gJnRyYWNrLnNvdXJjZSgpOworICAgIG1fdHJhY2tTb3VyY2UtPmFkZE9i
c2VydmVyKCp0aGlzKTsKKyAgICBtX3RyYWNrU291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVy
KCp0aGlzKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OmdyYWJOZXh0TWVkaWFTdHJlYW1UcmFja0Zy
YW1lKFRyYWNrRnJhbWVQcm9taXNlJiYgcHJvbWlzZSkKQEAgLTQ5NDAsNyArNDk0Myw3IEBAIHZv
aWQgSW50ZXJuYWxzOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQog
ICAgIGlmICghbV9uZXh0VHJhY2tGcmFtZVByb21pc2UpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGF1dG8mIHZpZGVvU2V0dGluZ3MgPSBtX3RyYWNrLT5zb3VyY2UoKS5zZXR0aW5ncygpOworICAg
IGF1dG8mIHZpZGVvU2V0dGluZ3MgPSBtX3RyYWNrU291cmNlLT5zZXR0aW5ncygpOwogICAgIGlm
ICghdmlkZW9TZXR0aW5ncy53aWR0aCgpIHx8ICF2aWRlb1NldHRpbmdzLmhlaWdodCgpKQogICAg
ICAgICByZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBjYjZl
MTQ3Y2Q2NmZlZGYxMmNhMTVkYmM4MmY1ZDE2YWM2ZDhhNjk2Li4yZThhYTIyODU1Y2Q5ZWU1YmE0
MTJhNzcwY2Q1NTBlZGU2NzAxMjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTEyMyw2ICsxMjMsNyBAQCBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bjsKIGNsYXNzIEludGVybmFscyBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPEludGVybmFscz4s
IHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwg
cHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCiAjZW5kaWYK
ICAgICB7CiBwdWJsaWM6CkBAIC05NjksMTUgKzk3MCwxNiBAQCBwcml2YXRlOgogCiAgICAgRXhj
ZXB0aW9uT3I8UmVuZGVyZWREb2N1bWVudE1hcmtlcio+IG1hcmtlckF0KE5vZGUmLCBjb25zdCBT
dHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4KTsKIAotICAgIC8vIFJlYWx0aW1lTWVk
aWFTb3VyY2U6Ok9ic2VydmVyIEFQSQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgLy8g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIgQVBJCiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2
YWlsYWJsZShNZWRpYVNhbXBsZSYpIGZpbmFsOworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgQVBJCiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbCB7IG1fdHJhY2tBdWRpb1NhbXBsZUNvdW50
Kys7IH0KIAogICAgIE9yaWVudGF0aW9uTm90aWZpZXIgbV9vcmllbnRhdGlvbk5vdGlmaWVyOwog
ICAgIHVuc2lnbmVkIGxvbmcgbV90cmFja1ZpZGVvU2FtcGxlQ291bnQgeyAwIH07CiAgICAgdW5z
aWduZWQgbG9uZyBtX3RyYWNrQXVkaW9TYW1wbGVDb3VudCB7IDAgfTsKLSAgICBSZWZQdHI8TWVk
aWFTdHJlYW1UcmFjaz4gbV90cmFjazsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4g
bV90cmFja1NvdXJjZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VHJhY2tGcmFtZVByb21pc2U+IG1f
bmV4dFRyYWNrRnJhbWVQcm9taXNlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKaW5kZXggMjlmNjZiY2I1Mzc0ZDAzZTgwNDA0ZGQ3MDNlNmM4M2EzZTRmYTkzZS4uZDI5NDQ5
NzMyZTBkZTcwYzg3ZTI4NDAzM2Q5YjEwNDkxYzY1YTdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGNs
YXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5CiAgICAgOiBwdWJs
aWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHB1YmxpYyBSZWFsdGltZU1l
ZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCiAgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CkBAIC02MCwxMSArNjEsMTMgQEAgcHVibGljOgogICAgICAgICAsIG1fcmluZ0J1ZmZlciht
YWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRk
T2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7CiAgICAgfQogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7CiAgICAgICAgIHN0
b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBs
ZU9ic2VydmVyKCp0aGlzKTsKICAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlz
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCA2OTY4MGYyNGY4MGRlYTkz
NzQyOTk1MjlmZTlmNjY3N2ExMmNkY2QwLi5mY2Y0ODRhZDQwOGRhYzdmMGQyMTFhOTJmMzNjNDQ2
YTA4MDQwOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC00Myw3ICs0Myw3IEBACiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1NZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRl
JiBzdHJlYW0pCitNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoTWVk
aWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiAgICAgOiBtX2lkZW50aWZpZXIoTWVkaWFSZWNvcmRl
cklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX2Nvbm5lY3Rpb24oV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpCiB7
CkBAIC02NCwxNSArNjQsMTkgQEAgTWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogICAgICAgICB3aWR0aCA9
IHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2stPnNldHRpbmdzKCkud2lkdGgoKTsKICAgICB9CiAK
LSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXI6OkNyZWF0ZVJlY29yZGVyIHsgbV9pZGVudGlmaWVyLCAhIXNlbGVj
dGVkVHJhY2tzLmF1ZGlvVHJhY2ssIHdpZHRoLCBoZWlnaHQgfSwgW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyldKGF1dG8mJiBleGNlcHRpb24pIHsKLSAgICAgICAgaWYgKCF3ZWFr
VGhpcyB8fCAhZXhjZXB0aW9uKQorICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRlUmVjb3JkZXIgeyBt
X2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCB9
LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgYXVkaW9UcmFjayA9IG1ha2VS
ZWZQdHIoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjayldKGF1dG8mJiBleGNlcHRpb24pIHsKKyAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9lcnJv
ckNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24t
Pm1lc3NhZ2UpIH0pOworICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJu
IG1fZXJyb3JDYWxsYmFjayhFeGNlcHRpb24geyBleGNlcHRpb24tPmNvZGUsIFdURk1vdmUoZXhj
ZXB0aW9uLT5tZXNzYWdlKSB9KTsKKyAgICAgICAgaWYgKGF1ZGlvVHJhY2spCisgICAgICAgICAg
ICBzZXRBdWRpb1NvdXJjZSgmYXVkaW9UcmFjay0+c291cmNlKCkpOwogICAgIH0sIDApOwogfQog
CiBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKCkKIHsKKyAgICBz
ZXRBdWRpb1NvdXJjZShudWxscHRyKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpSZWxlYXNlUmVjb3JkZXIgeyBtX2lkZW50aWZp
ZXIgfSwgMCk7CiB9CiAKQEAgLTg4LDExICs5Miw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1By
CiAjZW5kaWYKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgY29u
c3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9m
RnJhbWVzKQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0
YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1i
ZXJPZkZyYW1lcykKIHsKLSAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkQXVkaW9UcmFj
a0lEKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlw
dGlvbikgewogICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigp
LnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CiAg
ICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9u
KTsKQEAgLTEzMCw2ICsxMzEsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpmZXRjaERh
dGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U2hhcgogCiB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKCkKIHsKKyAgICBzZXRBdWRpb1NvdXJj
ZShudWxscHRyKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OlN0b3BSZWNvcmRpbmcgeyB9LCBtX2lkZW50aWZpZXIpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuaAppbmRleCA2ZDlmYWJlM2VhNzI0NzNmNDU5OTBjZThhZDE3MmQwY2QwM2E4MTI2
Li42ODAwOTQyYTMwZGNkYzQxYWMzYmFmZmQ5YmE3ODgxMjgwOWI0NmQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmgKQEAgLTQ0LDE4ICs0NCwyMSBAQCBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSwgcHVibGljIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlOjpDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZT4geworY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgZmluYWwKKyAgICA6IHB1Ymxp
YyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZQorICAgICwgcHVibGljIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJl
Y29yZGVyUHJpdmF0ZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIGV4cGxpY2l0IE1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtUHJpdmF0ZSYpOworICAgIGV4cGxpY2l0IE1lZGlhUmVjb3JkZXJQcml2YXRlKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpOwogICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpOwogCiBw
cml2YXRlOgogICAgIC8vIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlCiAgICAgdm9pZCBz
YW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JiwgV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdU
Rjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBX
ZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKICAgICB2b2lk
IGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSBmaW5hbDsKICAgICB2b2lkIHN0
b3BSZWNvcmRpbmcoKSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25z
dCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29u
c3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CiAKICAg
ICAvLyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CiAgICAgdm9pZCBzdG9yYWdlQ2hh
bmdlZChTaGFyZWRNZW1vcnkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCmluZGV4IGJkMWRl
NDExYmYzMzQxZTlkMmJlMmI0MmEyOWQxNDhjMmJkOGQ0YTQuLjZjYjMyMWVkMjU4OTQ4OWU5ZGIw
Y2JiZDViNTU5YjFlNTZhMDM0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMzQs
NyArMzQsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJl
Y29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYgc3RyZWFtKQorc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKICAgICBpZiAobV91c2VHUFVQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaAppbmRleCBk
MjU4OGQ0MmFiNjBkZGE2ZDI5NDg4ZmI4NWZlMmFjNTA1MDE4YmQyLi5lOTZiOGZmMzY0ZGU1OTg4
NjhmZDlkZjA1ZWE5MjViNDBkODNhYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApAQCAtMzUs
NyArMzUsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBXZWJDb3JlOjpN
ZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsOwogI2VuZGlmCiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395961</attachid>
            <date>2020-04-09 09:24:52 -0700</date>
            <delta_ts>2020-04-09 23:48:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210180-20200409182450.patch</filename>
            <type>text/plain</type>
            <size>70640</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNlMThjOTQzNGM0ZTM5
Yjg5NzFmOGI3ZDJkOTdjOGRjMGQ0YjIxMi4uMjk2MWQ0NTJlNTYxNDc3ZTk2ZTY4YTM3YTVjMjY4
NjkxMGM5NmU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAyMC0wNC0wOSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGEgUmVh
bHRpbWVNZWRpYVNvdXJjZSBvYnNlcnZlciBkZWRpY2F0ZWQgdG8gcmVjZWl2aW5nIGF1ZGlvIHNh
bXBsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MDE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlOjpPYnNlcnZlciB3YXMgY2FsbGVkIG9uIHZhcmlvdXMgdGhyZWFkcyB3
aGljaCB3YXMgbWFraW5nIGl0ZXJhdGluZyB0aHJvdWdoIHRoZW0gZGlmZmljdWx0LgorICAgICAg
ICBPYnNlcnZlcnMgd2VyZSBjb3BpZWQgdG8gYSB2ZWN0b3IgZm9yIGl0ZXJhdGluZyBlYWNoIHRp
bWUgYW5kIGxvY2tpbmcgd2FzIGhhcHBlbmluZyBmb3IgZWFjaCBpbmRpdnVkdWFsIG9ic2VydmVy
LgorCisgICAgICAgIEluc3RlYWQgb2YgZG9pbmcgdGhhdCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIgbm8gbG9uZ2VyIGdpdmVzIGFjY2VzcyB0byBhdWRpbyBzYW1wbGVzLCBhbGwgaXRz
IG1ldGhvZHMgYXJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgQXVkaW9T
YW1wbGVPYnNlcnZlciBpcyBpbnRyb2R1Y2VkIHdpdGggYSBzaW5nbGUgbWV0aG9kIHRvIHJlY2Vp
dmUgYXVkaW8gc2FtcGxlcy4KKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSBrZWVwcyBhIHNl
dCBvZiBBdWRpb1NhbXBsZU9ic2VydmVyIHNlcGFyYXRlZCBmcm9tIGl0cyBleGlzdGluZyBPYnNl
cnZlciBoYXNoc2V0LgorICAgICAgICBUaGVzZSBvYnNlcnZlcnMgY2FuIG9ubHkgYmUgYWRkZWQv
cmVtb3ZlZCBmcm9tIHRoZSBtYWluIHRocmVhZCB3aGlsZSBhdWRpbyBzYW1wbGUgZGVsaXZlcnkg
dXN1YWxseSBoYXBwZW5zIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZC4KKyAgICAgICAgV2Ugbm8g
bG9uZ2VyIG5lZWQgdG8gY29weSB0aGUgYXVkaW8gc2FtcGxlIG9ic2VydmVycyBpbiBhIHZlY3Rv
ciBhbmQgbG9jayBvbmx5IG9uY2Ugd2hlbiBpdGVyYXRpbmcgdGhlIGF1ZGlvIHNhbXBsZSBvYnNl
cnZlcnMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVxdWlyZXMgdG8gdXBkYXRlIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlIGFuZCBSZWFsdGltZU1lZGlhU291cmNlIG9ic2VydmVycy4KKyAgICAg
ICAgVGhpcyBpbmNsdWRlcyBXZWJBdWRpbywgQXVkaW8gUmVuZGVyZXIgYW5kIE1lZGlhIFJlY29y
ZGVyLgorICAgICAgICBFYWNoIGNvcnJlc3BvbmRpbmcgY2xhc3MgaXMgbm93IHJlZ2lzdGVyaW5n
IGl0c2VsZiBhcyBhIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciBhbmQgd2hlbiBu
ZWVkZWQgYXMgYSBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlci4KKyAgICAgICAgVGhpcyBh
bGxvd3MgcmVtb3ZpbmcgdGhlIGFkZGl0aW9uYWwgY29weS1pbi12ZWN0b3IvbG9jayB0aGF0IHdh
cyBoYXBwZW5pbmcgd2hlbiBpdGVyYXRpbmcgb3ZlciBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
T2JzZXJ2ZXJzIGZvciBhdWRpbyBzYW1wbGVzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsc28g
YWxsb3dzIGZvciBhIGNvbnN1bWVyIHRvIGFsd2F5cyBvYnNlcnZlIHRoZSBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSBidXQgcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIG9ubHkgd2hlbiBuZWVkZWQuCisg
ICAgICAgIFdlIGNoYW5nZSB0aGUgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSBpbXBsZW1l
bnRhdGlvbiBzbyB0aGF0LCBpZiB0aGUgcmVuZGVyZXIgaXMgbXV0ZWQsIG5vdCBwbGF5aW5nLCB0
aGUgdHJhY2sgaXMgbXV0ZWQgb3Igbm90IGVuYWJsZWQsCisgICAgICAgIGl0IG5vIGxvbmdlciBy
ZWNlaXZlcyBhdWRpbyBzYW1wbGVzLgorICAgICAgICBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVs
IGluIHRoZSB0eXBpY2FsIGNhc2Ugd2hlcmUgYSB2aWRlbyBlbGVtZW50IGRpc3BsYXlzIHRoZSBs
b2NhbGx5IGNhcHR1cmVkIHN0cmVhbSAoaW5jbHVkaW5nIGEgbG9jYWwgYXVkaW8gdHJhY2spIGJ1
dCBpcyBtdXRlZAorICAgICAgICB0byBwcmV2ZW50IGZlZWRiYWNrIGxvb3AuCisgICAgICAgIEZv
ciB0aGF0IHJlYXNvbiwgdGhlIHBsYXllciBpcyBub3cgc2V0dGluZyB0aGUgbXV0ZWQgc3RhdGUg
b2YgdGhlIHJlbmRlcmVyIGluc3RlYWQgb2Ygc2V0dGluZyB2b2x1bWUgdG8gMC4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Qgc2V0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c2V0Vm9sdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2V0TXV0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGU6OnNlbGVjdFRyYWNrcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGU6OnNldEF1ZGlvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6fk1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGw6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjpmZXRjaERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpNZWRpYVJlY29yZGVyUHJpdmF0
ZU1vY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjp+TWVk
aWFSZWNvcmRlclByaXZhdGVNb2NrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlTW9jazo6c3RvcFJlY29yZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tDb3VudGVy
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6ZmV0
Y2hEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlTW9jay5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpwbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBhdXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnNldE11dGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp0
cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtOjp0cmFja0VuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnRyYWNrRW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dXBkYXRlUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c3RhcnRSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzdG9wUmVuZGVy
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2Via2l0TWVk
aWFTdHJlYW1TcmNGaW5hbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJraXRNZWRpYVN0cmVh
bVNyY0NoYW5nZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3Jj
U2V0dXBTcmMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hU
cmFjayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmZvckVh
Y2hPYnNlcnZlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OnJlbW92ZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpoYXNTdGFydGVkUHJvZHVjaW5nQXVkaW9EYXRhKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkQXVkaW9TYW1wbGVPYnNlcnZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdmVBdWRpb1NhbXBsZU9ic2Vy
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9ic2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW92ZU9ic2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmZvckVhY2hPYnNlcnZl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb1Nh
bXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlOjp+UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnVub2JzZXJ2ZVNvdXJj
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjp0cmFja0VuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6fkludGVybmFscyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZWNvcmRl
ck1vY2tTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvYnNlcnZlTWVkaWFT
dHJlYW1UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorCiAyMDIwLTA0LTA5ICBE
ZWxhbiBBemFiYW5pICA8ZGF6YWJhbmlAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW5u
ZWNlc3NhcnkgZXhwbGljaXQgcGFyc2luZyBmb3IgbW9AbWF4c2l6ZSB2YWx1ZSAiaW5maW5pdHki
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDUzYWVmOGM4NWUzZTE4YWFjNWFjZjA3YTJiYmU5YWYzNmE0N2Y2NmQuLjc4
MGMxYjIwMDNjMTZhOGM3Nzk4MDM2ZDJlYzI2MmVhNzI3ZmJlOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMjAtMDQtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVkaWFTb3VyY2Ugb2JzZXJ2ZXIgZGVkaWNh
dGVkIHRvIHJlY2VpdmluZyBhdWRpbyBzYW1wbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxODAKKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgVXBkYXRlIFNvdXJjZVByb3h5IHRvIGJlIGFuIEF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIuCisgICAgICAgIFVwZGF0ZSBNZWRpYVJlY29yZGVyIHRvIG9ubHkgbGlzdGVu
IGZvciBhdWRpbyBzYW1wbGVzIGlmIEdQVSByZW1vdGUgd3JpdGVyIGlzIHN1Y2Nlc3NmdWxseSBj
cmVhdGVkLgorICAgICAgICBJdCBhbHNvIHN0b3BzIGxpc3RlbmluZyB0byBhdWRpbyBzYW1wbGVz
IGFzIHNvb24gYXMgc3RvcHBpbmcgdGhlIHJlY29yZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNl
UHJveHk6On5Tb3VyY2VQcm94eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclBy
aXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNv
cmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIu
aDoKKwogMjAyMC0wNC0wOSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVzZXJEYXRhOjpkZWNvZGUgc2hvdWxkIGFkZCBib3VuZHMgY2hlY2tzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAKaW5kZXggYjVkZWI4YjM1YzhhYjFmZWI3OWFiYjNmZDBlM2VlM2JmMDI1NDRjYS4uYWVkODU1
ZmUyNTRiNzNkNWQ3YmViMWJlMmY4YmRhNGYyNmJhYmYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtNDQs
NyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChNZWRpYVJlY29yZGVyKTsKIAotY3JlYXRvckZ1bmN0aW9uIE1lZGlhUmVjb3JkZXI6Om1f
Y3VzdG9tQ3JlYXRvciA9IG51bGxwdHI7CitNZWRpYVJlY29yZGVyOjpDcmVhdG9yRnVuY3Rpb24g
TWVkaWFSZWNvcmRlcjo6bV9jdXN0b21DcmVhdG9yID0gbnVsbHB0cjsKIAogRXhjZXB0aW9uT3I8
UmVmPE1lZGlhUmVjb3JkZXI+PiBNZWRpYVJlY29yZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBPcHRpb25zJiYgb3B0aW9ucykKIHsKQEAg
LTU5LDE1ICs1OSwxNSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVj
b3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZQogICAgIHJldHVybiByZWNv
cmRlcjsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJD
cmVhdG9yKGNyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQordm9pZCBNZWRpYVJlY29yZGVyOjpzZXRD
dXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKENyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQogewog
ICAgIG1fY3VzdG9tQ3JlYXRvciA9IGNyZWF0b3I7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkK
K3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYVN0cmVhbVBy
aXZhdGUmIHN0cmVhbSkKIHsKICAgICBpZiAobV9jdXN0b21DcmVhdG9yKQotICAgICAgICByZXR1
cm4gbV9jdXN0b21DcmVhdG9yKCk7CisgICAgICAgIHJldHVybiBtX2N1c3RvbUNyZWF0b3Ioc3Ry
ZWFtKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCk7CkBAIC0yMjcsMTEgKzIyNyw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2FtcGxlQnVm
ZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtCiAgICAg
bV9wcml2YXRlLT5zYW1wbGVCdWZmZXJVcGRhdGVkKHRyYWNrLCBtZWRpYVNhbXBsZSk7CiB9CiAK
LXZvaWQgTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJiB0cmFjaywgY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRm
b3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgbV9wcml2YXRlLT5hdWRpb1Nh
bXBsZXNBdmFpbGFibGUodHJhY2ssIG1lZGlhVGltZSwgYXVkaW9EYXRhLCBkZXNjcmlwdGlvbiwg
c2FtcGxlQ291bnQpOwotfQotCiBib29sIE1lZGlhUmVjb3JkZXI6OnZpcnR1YWxIYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0YXRlICE9IFJlY29yZGluZ1N0YXRl
OjpJbmFjdGl2ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5oCmluZGV4IGU4YmJiODUxZGZjNjE3ZGU2ZTA4NTQ5Yjc5ZjZhNDQ3
NjQ3OTdiZDAuLmMyMTBkOTEzNGNhMGQ3NTA3NzBkMDNjOTQ3YmE5NDUzNGM4N2E5YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXIuaApAQCAtMzgsOCArMzgsNiBAQCBjbGFzcyBCbG9iOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFz
cyBNZWRpYVJlY29yZGVyUHJpdmF0ZTsKIAotdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+KCpjcmVhdG9yRnVuY3Rpb24pKCk7Ci0KIGNsYXNzIE1lZGlhUmVjb3Jk
ZXIgZmluYWwKICAgICA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QKICAgICAsIHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhUmVjb3JkZXI+CkBAIC02Miw3ICs2MCw5IEBAIHB1YmxpYzoKICAgICAKICAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPE1lZGlhUmVjb3JkZXI+PiBjcmVhdGUoRG9jdW1lbnQm
LCBSZWY8TWVkaWFTdHJlYW0+JiYsIE9wdGlvbnMmJiA9IHsgfSk7CiAgICAgCi0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q3VzdG9tUHJpdmF0ZVJlY29yZGVyQ3JlYXRvcihjcmVh
dG9yRnVuY3Rpb24pOworICAgIHVzaW5nIENyZWF0b3JGdW5jdGlvbiA9IHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4oKikoTWVkaWFTdHJlYW1Qcml2YXRlJik7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9y
KENyZWF0b3JGdW5jdGlvbik7CiAgICAgCiAgICAgUmVjb3JkaW5nU3RhdGUgc3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAgCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgTWVkaWFSZWNvcmRlcihEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmLCBPcHRpb25zJiYgPSB7IH0p
OwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmLCBjb25zdCBNZWRpYVN0cmVhbVByaXZh
dGUmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBj
cmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVudCYsIE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OwogICAgIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCkBAIC0xMDcsOSArMTA3
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgZmluYWwgeyB9OwogICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKICAgICB2b2lkIHNhbXBsZUJ1ZmZl
clVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwot
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKLSAgICAKLSAgICBzdGF0aWMgY3JlYXRv
ckZ1bmN0aW9uIG1fY3VzdG9tQ3JlYXRvcjsKKworICAgIHN0YXRpYyBDcmVhdG9yRnVuY3Rpb24g
bV9jdXN0b21DcmVhdG9yOwogICAgIAogICAgIE9wdGlvbnMgbV9vcHRpb25zOwogICAgIFJlZjxN
ZWRpYVN0cmVhbT4gbV9zdHJlYW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCmluZGV4IGZj
YjA5N2VlNzU5ZmY1ZGZiNzY0OThkNTA5MGU0Y2NjYzBjOWQ1YTYuLjQ0YzlkMDdhOWI5NzUwZDY2
MjZlYjc1ODdlYWJjNTEzZjQzNmI4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBA
IC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlh
UmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNy
ZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewog
ICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oCmluZGV4IDJlMmY0MzZlYzBhZjhhZWY5NzUwODFjYmFi
NDA4ZDQ1M2Q0ZWIyNGEuLjExYmFhZGNlYTg2OWU3YTI5MTk2NjJhYjJkOGNlZjU0NzBjMmVkYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKIAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwgc3RkOjp1bmlx
dWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShj
b25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJl
YW1Qcml2YXRlJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29sIHZh
bHVlKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCmluZGV4IDAxZmYyMDgwMGU1YzA2YWIyZjY2Zjg2YTI0ZWFlY2FlNmJmMjYx
NTYuLmU5ODA0ODQxZDc0ODNlYjcyNGY3NTQ2NjMwYzZmZGU3YjMxMmE0NTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01ODIsNyArNTgyLDcgQEAgcHVibGljOgog
ICAgIEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OwogcHJpdmF0ZToKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNv
bnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICNl
bmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGYwM2YxMTg2N2JkOWI5
ZjE0ZGJhN2Q2ZjcwODkxYjg4ZGIwNmRlOGUuLjQzOGJiOWE0MjNmMGQ0ZDk0OTUyYTNhYWU0ZDQy
NjZmZTNkN2Y2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTU2MCw3ICs1NjAs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9sdW1l
KGZsb2F0IHZvbHVtZSkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHZvbHVtZSk7CiAg
ICAgbV92b2x1bWUgPSB2b2x1bWU7CiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fYXVk
aW9UcmFja01hcC52YWx1ZXMoKSkKLSAgICAgICAgdHJhY2stPnNldFZvbHVtZShtX211dGVkID8g
MCA6IG1fdm9sdW1lKTsKKyAgICAgICAgdHJhY2stPnNldFZvbHVtZShtX3ZvbHVtZSk7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRNdXRlZChib29s
IG11dGVkKQpAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpzZXRNdXRlZChib29sIG11dGVkKQogICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUiwgbXV0ZWQpOwogICAgIG1fbXV0ZWQgPSBtdXRlZDsKICAgICBmb3IgKGNvbnN0IGF1
dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQotICAgICAgICB0cmFjay0+c2V0
Vm9sdW1lKG1fbXV0ZWQgPyAwIDogbV92b2x1bWUpOworICAgICAgICB0cmFjay0+c2V0TXV0ZWQo
bV9tdXRlZCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpoYXNWaWRlbygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCmluZGV4IGE2OTkz
Y2EyODFkYjg4MmVjOTkyZmZhZDc0Y2ExZjliMzE5M2I2ZGUuLjI2Nzk5OGQwNmQ1Zjg5OWFkYTEx
NGIwOGQwYTFlMmUxMjMwNTc4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC0z
Miw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVkaWFSZWNvcmRlclByaXZh
dGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0
VHJhY2tzKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorTWVkaWFSZWNvcmRlclBy
aXZhdGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2Vs
ZWN0VHJhY2tzKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIEF1ZGlvVmlkZW9T
ZWxlY3RlZFRyYWNrcyBzZWxlY3RlZFRyYWNrczsKICAgICBzdHJlYW0uZm9yRWFjaFRyYWNrKFsm
XShhdXRvJiB0cmFjaykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IDYwNDMwYjQxYjMy
NTA0MmNmMmIxZGUzNmE4ODY5ZGUwMmM5MGI1YTUuLmUyOGUzODM2YjFmOTcxMTM3NDA4OTMzZmIx
ZTBkMzI1ODhiMDhlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2UuaCIKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTQzLDI5ICs0NCw1MyBA
QCBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRh
OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCi1jbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7Citj
bGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSA6CisgICAgcHVibGljIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgfk1lZGlhUmVj
b3JkZXJQcml2YXRlKCkgPSBkZWZhdWx0OworICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpOwog
CiAgICAgc3RydWN0IEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyB7Ci0gICAgICAgIGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrIHsgbnVsbHB0ciB9OwotICAgICAgICBj
b25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlkZW9UcmFjayB7IG51bGxwdHIgfTsKKyAg
ICAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2sgeyBudWxscHRyIH07Cisg
ICAgICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrIHsgbnVsbHB0ciB9Owog
ICAgIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNr
cyBzZWxlY3RUcmFja3MoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBzZWxlY3RUcmFja3MoTWVkaWFT
dHJlYW1Qcml2YXRlJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChj
b25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHN0b3BSZWNvcmRpbmcoKSB7IH07CisgICAgdXNpbmcgRmV0Y2hEYXRhQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpPjsKKyAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNr
JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29yZGluZygpID0gMDsKIAogICAgIHVz
aW5nIEVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+
OwogICAgIHZvaWQgc2V0RXJyb3JDYWxsYmFjayhFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxsYmFj
aykgeyBtX2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spOyB9CiAKK3Byb3Rl
Y3RlZDoKKyAgICB2b2lkIHNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiYmKTsKKwogcHJvdGVjdGVkOgogICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNhbGxiYWNrOwor
Citwcml2YXRlOgorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlvU291cmNl
OwogfTsKIAoraW5saW5lIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNldEF1ZGlvU291cmNl
KFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIGF1ZGlvU291cmNlKQoreworICAgIGlmICht
X2F1ZGlvU291cmNlKQorICAgICAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9i
c2VydmVyKCp0aGlzKTsKKworICAgIG1fYXVkaW9Tb3VyY2UgPSBXVEZNb3ZlKGF1ZGlvU291cmNl
KTsKKworICAgIGlmIChtX2F1ZGlvU291cmNlKQorICAgICAgICBtX2F1ZGlvU291cmNlLT5hZGRB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKK30KKworaW5saW5lIE1lZGlhUmVjb3JkZXJQcml2
YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQoreworICAgIGlmIChtX2F1ZGlvU291cmNlKQor
ICAgICAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRleCAyZDVh
MzU5YjIzMWJjOTQyOTAxMDY4NDZkYzZhOTg1MmI3YmE3ODY3Li44Nzg5NDBiMGY5MTAyNDMzNzU4
M2RhYTZjZjMyNzM4MmE1ZjVmZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGwuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCitz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAg
ICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRvIGltcGxlbWVudCBzdXBwb3J0IGZvciBtdWx0aXBs
ZSBhdWRpby92aWRlbyB0cmFja3MKICAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBjaG9vc2UgdGhl
IGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0cmFjay4KQEAgLTUxLDExICs1MSwxNSBAQCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGw6OmNyZWF0ZQogICAgIFN0cmluZyBhdWRpb1RyYWNrSWQ7CiAgICAgaWYg
KHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spCiAgICAgICAgIGF1ZGlvVHJhY2tJZCA9IHNlbGVj
dGVkVHJhY2tzLmF1ZGlvVHJhY2stPmlkKCk7CisKICAgICBTdHJpbmcgdmlkZW9UcmFja0lkOwog
ICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKQogICAgICAgICB2aWRlb1RyYWNrSWQg
PSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5pZCgpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlx
dWU8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPih3cml0ZXIucmVsZWFzZU5vbk51bGwoKSwg
V1RGTW92ZShhdWRpb1RyYWNrSWQpLCBXVEZNb3ZlKHZpZGVvVHJhY2tJZCkpOworICAgIGF1dG8g
cmVjb3JkZXIgPSBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4od3JpdGVy
LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoYXVkaW9UcmFja0lkKSwgV1RGTW92ZSh2aWRlb1Ry
YWNrSWQpKTsKKyAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykKKyAgICAgICAgcmVj
b3JkZXItPnNldEF1ZGlvU291cmNlKCZzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5zb3VyY2Uo
KSk7CisgICAgcmV0dXJuIHJlY29yZGVyOwogfQogCiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbChSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI+JiYgd3JpdGVyLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQsIFN0cmluZyYmIHZpZGVvVHJh
Y2tJZCkKQEAgLTY1LDYgKzY5LDExIEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6TWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0CiB7CiB9CiAK
K01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6fk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bCgpCit7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7Cit9CisKIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKIHsKICAgICBp
ZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQpAQCAtNzIsMTAgKzgxLDgg
QEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQo
Y29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXYKICAgICBtX3dyaXRlci0+YXBwZW5kVmlkZW9TYW1w
bGVCdWZmZXIoc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVm
ZmVyKTsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IFdU
Rjo6TWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNv
dW50KQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlv
RGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNp
emVfdCBzYW1wbGVDb3VudCkKIHsKLSAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkQXVk
aW9UcmFja0lEKQotICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVy
TGlzdD4oZGF0YSkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9u
KCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsK
ICAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24s
IG1lZGlhVGltZSwgc2FtcGxlQ291bnQpOwpAQCAtODMsMTAgKzkwLDExIEBAIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFT
dHJlYW1UcmFja1ByCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzdG9wUmVj
b3JkaW5nKCkKIHsKKyAgICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsKICAgICBtX3dyaXRlci0+
c3RvcFJlY29yZGluZygpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwg
Y29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbDo6ZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNrJiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgbV93cml0ZXItPmZldGNoRGF0YShbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbWltZVR5cGUgPSBtaW1lVHlwZSgpXShhdXRvJiYg
YnVmZmVyKSBtdXRhYmxlIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShidWZm
ZXIpLCBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaAppbmRl
eCAwY2YwZGYzYzY0Y2M5NzEzZTMwNTliZTM2Y2FjYzlmYzdjY2MwYjM2Li43MTlhZGJiYWU5MThi
MjdmN2VlYzcyZWQ0NzYyZWM3ZWY2ZjhlZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGVBVkZJbXBsLmgKQEAgLTMzLDIyICszMywyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIAotY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsIGZpbmFsIDogcHVibGljIE1lZGlhUmVjb3JkZXJQcml2YXRlIHsKK2NsYXNzIE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbCBmaW5hbAorICAgIDogcHVibGljIE1lZGlhUmVjb3JkZXJQcml2
YXRlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gY3JlYXRlKGNvbnN0
IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsPiBjcmVhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAg
fk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbCgpOwogCiBwcml2YXRlOgogICAgIE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbChSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+JiYsIFN0
cmluZyYmIGF1ZGlvVHJhY2tJZCwgU3RyaW5nJiYgdmlkZW9UcmFja0lkKTsKIAogICAgIGZyaWVu
ZCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBzdGQ6Om1ha2Vf
dW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4oUmVmPE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyPiYmLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwogCisgICAgLy8gTWVkaWFSZWNvcmRl
clByaXZhdGUKICAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwotICAgIHZvaWQgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpIGZpbmFsOwotICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJik+JiYpIGZpbmFs
OworICAgIHZvaWQgZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBm
aW5hbDsKKwogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKTsKICAgICB2b2lkIHN0b3BSZWNv
cmRpbmcoKTsKLSAgICAKKwogICAgIFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gbV93
cml0ZXI7CiAgICAgU3RyaW5nIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQ7CiAgICAgU3RyaW5nIG1f
cmVjb3JkZWRWaWRlb1RyYWNrSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAK
aW5kZXggZjJhYzhjMjdjYjQ1Yzk3YzJkYzAzYjhmZTRhNzM2OTE3ZDRiY2Y4Ny4uYTFkMGQxMGMw
NjExMWU2OGE0NmU1NDg1NGRjOTYxZWRlMjA3NmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrLmNwcApAQCAtMzMsMzAgKzMzLDUxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29u
c3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYpCitNZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2s6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayhNZWRpYVN0cmVhbVBy
aXZhdGUmIHN0cmVhbSkKIHsKLSAgICBnZW5lcmF0ZU1vY2tTdHJpbmcodHJhY2spOworICAgIGF1
dG8gc2VsZWN0ZWRUcmFja3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tzKHN0
cmVhbSk7CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spIHsKKyAgICAgICAgbV9h
dWRpb1RyYWNrSUQgPSBzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5pZCgpOworICAgICAgICBz
ZXRBdWRpb1NvdXJjZSgmc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjay0+c291cmNlKCkpOworICAg
IH0KKyAgICBpZiAoc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjaykKKyAgICAgICAgbV92aWRlb1Ry
YWNrSUQgPSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5pZCgpOwogfQogCi12b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlTW9jazo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpCitN
ZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6On5NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2soKQogewot
ICAgIGdlbmVyYXRlTW9ja1N0cmluZyh0cmFjayk7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0
cik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tTdHJp
bmcoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQordm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZU1vY2s6OnN0b3BSZWNvcmRpbmcoKQoreworICAgIHNldEF1ZGlvU291cmNlKG51
bGxwdHIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6c2FtcGxlQnVmZmVy
VXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikKK3sK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9jayk7CisgICAgbV9idWZmZXIu
YXBwZW5kKCJWaWRlbyBUcmFjayBJRDogIik7CisgICAgbV9idWZmZXIuYXBwZW5kKG1fdmlkZW9U
cmFja0lEKTsKKyAgICBnZW5lcmF0ZU1vY2tDb3VudGVyU3RyaW5nKCk7Cit9CisKK3ZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpCiB7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2J1ZmZl
ckxvY2spOwotICAgIGlmICh0cmFjay50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8pCi0gICAgICAgIG1fYnVmZmVyLmFwcGVuZCgiQXVkaW8gVHJhY2sgSUQ6ICIpOwot
ICAgIGVsc2UKLSAgICAgICAgbV9idWZmZXIuYXBwZW5kKCJWaWRlbyBUcmFjayBJRDogIik7Ci0g
ICAgbV9idWZmZXIuYXBwZW5kKHRyYWNrLmlkKCkpOworICAgIG1fYnVmZmVyLmFwcGVuZCgiQXVk
aW8gVHJhY2sgSUQ6ICIpOworICAgIG1fYnVmZmVyLmFwcGVuZChtX2F1ZGlvVHJhY2tJRCk7Cisg
ICAgZ2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlTW9jazo6Z2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygpCit7CiAgICAgbV9idWZmZXIu
YXBwZW5kKCIgQ291bnRlcjogIik7CiAgICAgbV9idWZmZXIuYXBwZW5kTnVtYmVyKCsrbV9jb3Vu
dGVyKTsKICAgICBtX2J1ZmZlci5hcHBlbmQoIlxyXG4tLS0tLS0tLS1cclxuIik7CiB9CiAKLXZv
aWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEoRmV0Y2hE
YXRhQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fYnVmZmVyTG9jayk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZhbHVlKG1fYnVmZmVy
Lmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCmluZGV4IDRkYWVkNjcz
MWRlYTUzZTk3NTY2MWE0NGExMjcwZmYxOGRlMmQ4NDkuLmI3ZjNjMjE0OGUzOTllYTIyMzZkOTJj
ODY1OWY3OTg3MWJhZTE3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaApAQCAt
MzQsMTggKzM0LDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcml2YXRl
TW9jayBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7CitjbGFzcyBXRUJDT1JF
X0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2sgZmluYWwKKyAgICA6IHB1YmxpYyBNZWRp
YVJlY29yZGVyUHJpdmF0ZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrKE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0
ZU1vY2soKTsKKwogcHJpdmF0ZToKKyAgICAvLyBNZWRpYVJlY29yZGVyUHJpdmF0ZQogICAgIHZv
aWQgc2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1l
ZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkg
ZmluYWw7Ci0gICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8
U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmKT4mJikgZmluYWw7CisgICAgdm9pZCBmZXRj
aERhdGEoRmV0Y2hEYXRhQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworICAgIHZvaWQg
c3RvcFJlY29yZGluZygpIGZpbmFsOworCiAgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSgpOwot
ICAgIAotICAgIHZvaWQgZ2VuZXJhdGVNb2NrU3RyaW5nKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJik7CisgICAgdm9pZCBnZW5lcmF0ZU1vY2tDb3VudGVyU3RyaW5nKCk7CiAKICAgICBt
dXRhYmxlIExvY2sgbV9idWZmZXJMb2NrOwogICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXI7CiAg
ICAgdW5zaWduZWQgbV9jb3VudGVyIHsgMCB9OworICAgIFN0cmluZyBtX2F1ZGlvVHJhY2tJRDsK
KyAgICBTdHJpbmcgbV92aWRlb1RyYWNrSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IDJlZGQ0NTkyMmQz
Y2JkNzEyNTY4NmU4N2U1YTIzYjdhNWEwNTExZDUuLjIzOGQyMDU0NTY5Mzc2ZWNkYTMzZWFhMTZj
Y2FlM2E2ZmU3NjY0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3Bw
CkBAIC0zNSw5ICszNSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgOiBtX3N0cmVhbVRyYWNrKHRyYWNrKQorICAgICwgbV9h
dWRpb1NvdXJjZSh0cmFjay5zb3VyY2UoKSkKICAgICAsIG1faWQodHJhY2suaWQoKSkKICAgICAs
IG1fbGFiZWwodHJhY2subGFiZWwoKSkKLSAgICAsIG1fdGltZWxpbmVPZmZzZXQoTWVkaWFUaW1l
OjppbnZhbGlkVGltZSgpKQogICAgICwgbV9yZW5kZXJlciB7IEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyOjpjcmVhdGUoKSB9CiB7CiAgICAgdHJhY2suYWRkT2JzZXJ2ZXIoKnRoaXMpOwpA
QCAtNjIsNDUgKzYyLDM2IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6Y2xl
YXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2lzQ2xlYXJlZCA9IHRydWU7Ci0gICAgc3Ry
ZWFtVHJhY2soKS5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Ci0KLSAgICBtX3JlbmRlcmVyLT5jbGVh
cigpOwotfQotCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBsYXlJbnRlcm5h
bCgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmIChtX2lzUGxheWlu
ZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1BsYXlpbmcgPSB0cnVlOwotICAgIG1fYXV0
b1BsYXkgPSBmYWxzZTsKKyAgICAgICAgbV9hdWRpb1NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVP
YnNlcnZlcigqdGhpcyk7CiAKLSAgICBtX3JlbmRlcmVyLT5zdGFydCgpOworICAgIHN0cmVhbVRy
YWNrKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcmVuZGVyZXItPmNsZWFyKCk7CiB9
CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxheSgpCiB7Ci0gICAgcGxh
eUludGVybmFsKCk7CisgICAgbV9zaG91bGRQbGF5ID0gdHJ1ZTsKKyAgICB1cGRhdGVSZW5kZXJl
cigpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBhdXNlKCkKIHsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKCFtX2lzUGxheWluZykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKLSAgICBtX2F1dG9QbGF5
ID0gZmFsc2U7CisgICAgbV9zaG91bGRQbGF5ID0gZmFsc2U7CisgICAgdXBkYXRlUmVuZGVyZXIo
KTsKK30KIAotICAgIG1fcmVuZGVyZXItPnN0b3AoKTsKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBtX211dGVkID0gbXV0ZWQ7
CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogewogICAgIG1fcmVuZGVyZXItPnNldFZv
bHVtZSh2b2x1bWUpOworICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiB9CiAKIGZsb2F0IEF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW06OnZvbHVtZSgpIGNvbnN0CkBAIC0xMDksNDYgKzEwMCw1NSBA
QCBmbG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogfQog
CiAvLyBNYXkgZ2V0IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgotdm9pZCBBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUsIGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW06OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7Ci0gICAgaWYgKCFt
X2lzUGxheWluZykgewotICAgICAgICBtX3JlbmRlcmVyLT5zdG9wKCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KICAgICBtX3JlbmRlcmVyLT5wdXNoU2FtcGxlcyhzYW1wbGVUaW1lLCBhdWRp
b0RhdGEsIGRlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7Ci0KLSAgICBpZiAobV9hdXRvUGxheSAm
JiAhbV9oYXNTdGFydGVkQXV0b3BsYXkpIHsKLSAgICAgICAgbV9oYXNTdGFydGVkQXV0b3BsYXkg
PSB0cnVlOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgICAgIGlmIChtX2F1dG9QbGF5KQotICAgICAgICAg
ICAgICAgIHBsYXlJbnRlcm5hbCgpOwotICAgICAgICB9KTsKLSAgICB9CiB9CiAKIHZvaWQgQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKQogewotICAgIHVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpOworICAgIHVw
ZGF0ZVJlbmRlcmVyKCk7CiB9CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6
dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiB7Ci0gICAgdXBk
YXRlUmVuZGVyZXJNdXRlZFN0YXRlKCk7CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKK30KKwordm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikKK3sKKyAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCi12b2lkIEF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpCit2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyKCkKIHsKLSAgICBpZiAo
c3RyZWFtVHJhY2soKS5tdXRlZCgpIHx8IHN0cmVhbVRyYWNrKCkuZW5kZWQoKSB8fCAhc3RyZWFt
VHJhY2soKS5lbmFibGVkKCkpIHsKLSAgICAgICAgcGF1c2UoKTsKKyAgICBpZiAoIW1fc2hvdWxk
UGxheSB8fCAhdm9sdW1lKCkgfHwgbV9tdXRlZCB8fCBzdHJlYW1UcmFjaygpLm11dGVkKCkgfHwg
c3RyZWFtVHJhY2soKS5lbmRlZCgpIHx8ICFzdHJlYW1UcmFjaygpLmVuYWJsZWQoKSkgeworICAg
ICAgICBzdG9wUmVuZGVyZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBwbGF5KCk7
CisgICAgc3RhcnRSZW5kZXJlcigpOwogfQogCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW06OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQordm9pZCBBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzdGFydFJlbmRlcmVyKCkKIHsKLSAgICBwYXVzZSgpOwor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKG1faXNQbGF5aW5nKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2lzUGxheWluZyA9IHRydWU7CisgICAgbV9hdWRpb1NvdXJjZS0+
YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgbV9yZW5kZXJlci0+c3RhcnQoKTsK
K30KKwordm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzdG9wUmVuZGVyZXIoKQor
eworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKCFtX2lzUGxheWluZykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBtX2F1ZGlvU291
cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3JlbmRlcmVyLT5z
dG9wKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW0uaAppbmRleCBmMzI1YzZkZDY5Y2Y4MmNhMTgwNWFkMTUxZDE3NDZkYjZkMTZk
NzZkLi44YWRlMjVjNWRlZjZiZDFkNzNlNzVhOTdiOWRiM2UwYTQ0Nzk2NGI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCkBAIC0zNCw3ICszNCwxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOwogCi1jbGFz
cyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIEF1ZGlvVHJhY2tQ
cml2YXRlLCBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CitjbGFz
cyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsCisgICAgOiBwdWJsaWMgQXVkaW9U
cmFja1ByaXZhdGUKKyAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2Vy
dmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2
ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0pCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKQpAQCAtNDcs
OSArNTAsNiBAQCBwdWJsaWM6CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFt
VHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKLSAgICBNZWRpYVRpbWUg
dGltZWxpbmVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3RpbWVsaW5lT2Zmc2V0OyB9Ci0gICAg
dm9pZCBzZXRUaW1lbGluZU9mZnNldChjb25zdCBNZWRpYVRpbWUmIG9mZnNldCkgeyBtX3RpbWVs
aW5lT2Zmc2V0ID0gb2Zmc2V0OyB9Ci0KICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICB2b2lkIHBs
YXkoKTsKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0
KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCBt
dXRlZCkgeyBtX211dGVkID0gbXV0ZWQ7IH0KKyAgICB2b2lkIHNldE11dGVkKGJvb2wpOwogICAg
IGJvb2wgbXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkOyB9CiAKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKQEAgLTc3LDMwICs3NywzMiBAQCBwcm90ZWN0ZWQ6CiAgICAgaW50IHRyYWNr
SW5kZXgoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2luZGV4OyB9CiAKICAgICAvLyBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRm
b3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmlu
YWw7CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7
CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpICBm
aW5hbDsKICAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSAgZmluYWw7CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsKLSAgICB2
b2lkIHVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpOworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgdm9pZCBzdGFydFJlbmRlcmVy
KCk7CisgICAgdm9pZCBzdG9wUmVuZGVyZXIoKTsKKyAgICB2b2lkIHVwZGF0ZVJlbmRlcmVyKCk7
CiAKICAgICAvLyBNYWluIHRocmVhZCB3cml0YWJsZSBtZW1iZXJzCiAgICAgYm9vbCBtX2lzUGxh
eWluZyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2F1dG9QbGF5IHsgZmFsc2UgfTsKKyAgICBib29s
IG1fc2hvdWxkUGxheSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNDbGVhcmVkIHsgZmFsc2UgfTsKIAogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4gbV9zdHJlYW1UcmFjazsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9h
dWRpb1NvdXJjZTsKICAgICBBdG9tU3RyaW5nIG1faWQ7CiAgICAgQXRvbVN0cmluZyBtX2xhYmVs
OwogICAgIGludCBtX2luZGV4IHsgMCB9OwotICAgIE1lZGlhVGltZSBtX3RpbWVsaW5lT2Zmc2V0
OwogCiAgICAgLy8gQXVkaW8gdGhyZWFkIG1lbWJlcnMKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IG1fcmVuZGVyZXI7Ci0gICAgYm9vbCBtX2hhc1N0
YXJ0ZWRBdXRvcGxheSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAppbmRl
eCBhZGNmMTJiMDFlZTdhZTg2Y2EzZGY0NWIyNzgxNzZjYWFkMDRmMzY0Li43YjJkMGM3OTZiYTli
MTVlNzIzYjQ0NTU4YWRlYzc0YjExZjgyOWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKQEAgLTEy
MSw2ICsxMjEsMTIgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hUcmFjayhjb25z
dCBGdW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2sKICAgICAgICAgY2FsbGJhY2so
KnRyYWNrKTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hUcmFjayhjb25z
dCBGdW5jdGlvbjx2b2lkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik+JiBjYWxsYmFjaykKK3sK
KyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgY2Fs
bGJhY2soKnRyYWNrKTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2
ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGllbnRPcHRpb24pCiB7CiAgICAgYm9v
bCBuZXdBY3RpdmVTdGF0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCBjZTZiNzEwODY1
MTFlZjI5M2I4OTg2NTA5NjQ2MjhmZDc2OGQyM2FkLi43OTI4OWI4MTIzNjM5ZGI5NjJmZDEyZDI5
Mjc4NzM3ODQzMDkwMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtODQsNiArODQsNyBAQCBwdWJs
aWM6CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgdHJhY2tzKCkgY29uc3Q7CiAg
ICAgYm9vbCBoYXNUcmFja3MoKSBjb25zdCB7IHJldHVybiAhbV90cmFja1NldC5pc0VtcHR5KCk7
IH0KICAgICB2b2lkIGZvckVhY2hUcmFjayhjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJik+JikgY29uc3Q7CisgICAgdm9pZCBmb3JFYWNoVHJhY2soY29u
c3QgRnVuY3Rpb248dm9pZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpPiYpOwogICAgIE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlKiBhY3RpdmVWaWRlb1RyYWNrKCkgeyByZXR1cm4gbV9hY3RpdmVW
aWRlb1RyYWNrOyB9CiAKICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY3Rp
dmU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAppbmRleCBjOTljMTZjNmQ4MGNhNDFl
NDJjN2RkMWU0MjBiZjEyYTg5Mjg1ODU4Li40ZDA4YWQ3MzM2Y2VhNDk2MDBmYWI5YzcxMGY5N2My
MDAzZjc0ZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCkBAIC03OCwxNiArNzgs
MTAgQEAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6On5NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSgp
CiAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6Zm9yRWFjaE9ic2VydmVyKGNvbnN0IFdURjo6RnVuY3Rpb248dm9p
ZChPYnNlcnZlciYpPiYgYXBwbHkpIGNvbnN0Cit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Ojpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYgYXBwbHkp
IGNvbnN0CiB7Ci0gICAgVmVjdG9yPE9ic2VydmVyKj4gb2JzZXJ2ZXJzQ29weTsKLSAgICB7Ci0g
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKLSAgICAgICAg
b2JzZXJ2ZXJzQ29weSA9IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycyk7Ci0gICAgfQotICAgIGZv
ciAoYXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnNDb3B5KSB7Ci0gICAgICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBv
YnNlcnZlciBoYXMgbm90IGJlZW4gZGVzdHJveWVkLgorICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycykp
IHsKICAgICAgICAgaWYgKCFtX29ic2VydmVycy5jb250YWlucyhvYnNlcnZlcikpCiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgYXBwbHkoKm9ic2VydmVyKTsKQEAgLTk2LDEzICs5MCwx
MyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpmb3JFYWNoT2JzZXJ2ZXIoY29uc3Qg
V1RGOjpGdW5jdGlvbjx2b2lkKE9ic2VydmVyJgogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjphZGRPYnNlcnZlcihNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2Vy
dmVyKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIp
OwogfQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpyZW1vdmVPYnNlcnZlcihNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOwogfQogCkBAIC0yNjEsMjYg
KzI1NSwxMiBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjp2aWRlb1NhbXBsZUF2YWls
YWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiAgICAgfSk7CiB9CiAKLS8vIE1heSBnZXQg
Y2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCi12b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQordm9pZCBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZTo6aGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpCiB7Ci0gICAgaWYgKCFtX2hh
c1NlbnRTdGFydFByb2R1Y2VkRGF0YSkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtU
aGlzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKCFtX2hhdmVQ
cm9kdWNlZERhdGEpIHsKLSAgICAgICAgICAgICAgICBtX2hhdmVQcm9kdWNlZERhdGEgPSB0cnVl
OwotICAgICAgICAgICAgICAgIHVwZGF0ZVJlYWR5U3RhdGUoKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIG1faGFzU2VudFN0YXJ0UHJvZHVjZWREYXRhID0gdHJ1ZTsKLSAgICAgICAgfSk7
CisgICAgaWYgKG1faGF2ZVByb2R1Y2VkRGF0YSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKLSAgICAgICAgb2JzZXJ2
ZXIuYXVkaW9TYW1wbGVzQXZhaWxhYmxlKCp0aGlzLCBtZWRpYVRpbWUsIGRhdGEsIGRlc2NyaXB0
aW9uLCBzYW1wbGVDb3VudCk7Ci0gICAgfSk7CisgICAgbV9oYXZlUHJvZHVjZWREYXRhID0gdHJ1
ZTsKKyAgICB1cGRhdGVSZWFkeVN0YXRlKCk7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OnVwZGF0ZVJlYWR5U3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKaW5kZXgg
ZjliNWQxMDE1MTRlNzFmMjNjN2I2YTNhZjJjZTIxNjkwZDRlNTJiMy4uYWM3Zjc2OTBkMmNjOGJj
NWRhNmY2ZGJmODZiYzFlOTljYjFkY2VjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBA
IC02Miw5ICs2Miw2IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrRW5hYmxl
ZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFT
YW1wbGUmKSB7IH07CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpIHsgfTsKLQotICAgICAgICAvLyBNYXkgZ2V0IGNhbGxlZCBv
biBhIGJhY2tncm91bmQgdGhyZWFkLgotICAgICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6
ZV90KSB7IH07CiAgICAgfTsKIAogICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+IGNyZWF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4m
Jik7CkBAIC0xMDAsNiArOTcsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlPiBjbG9uZSgpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyBy
ZXR1cm4gbV9zb3VyY2UuZ2V0KCk7IH0KKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlJiBz
b3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQ
T1JUIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSgpIGNvbnN0OwogCiAgICAgdm9pZCBl
bmRUcmFjaygpOwpAQCAtMTMyLDE1ICsxMzAsMTUgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmLCBSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4mJiwgU3RyaW5nJiYgaWQpOwogCi0gICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJj
ZU9ic2VydmVyCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKICAgICB2b2lk
IHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsK
ICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNlU2V0
dGluZ3NDaGFuZ2VkKCkgZmluYWw7CiAgICAgYm9vbCBwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5n
KCkgZmluYWw7CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYpIGZp
bmFsOwotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNp
emVfdCkgZmluYWw7CiAgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5hbDsKKyAgICB2
b2lkIGhhc1N0YXJ0ZWRQcm9kdWNpbmdBdWRpb0RhdGEoKSBmaW5hbDsKIAogICAgIHZvaWQgdXBk
YXRlUmVhZHlTdGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDhjN2Y4YjBkZTc4
ZTRlMThkNTliOWE2YjAwNDQzYTUzMjczNDg5NDguLjlmZGJmMDE1M2M2OGNiNmIzYjk4YjI0YjA1
ZmQ5MDk3ZDBkYzVmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC02MCwxNSArNjAsMjkg
QEAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmkKICAgICBtX2hhc2hlZElEID0gUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG1fcGVyc2lzdGVu
dElELCBtX2lkSGFzaFNhbHQpOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZEF1
ZGlvU2FtcGxlT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZl
ciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2NrKTsKKyAgICBtX2F1ZGlv
U2FtcGxlT2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9TYW1wbGVPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2Nr
KTsKKyAgICBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOworfQorCiB2
b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9ic2VydmVyKFJlYWx0aW1lTWVkaWFTb3VyY2U6
Ok9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fb2Jz
ZXJ2ZXJzTG9jayk7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBtX29ic2VydmVy
cy5hZGQoJm9ic2VydmVyKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdmVP
YnNlcnZlcihSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7CiAgICAgaWYg
KG1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKQEAg
LTExNiwxNiArMTMwLDEwIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0SW50ZXJydXB0
ZWRGb3JUZXN0aW5nKGJvb2wgaW50ZXJydXB0ZWQpCiAgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoaW50
ZXJydXB0ZWQpOwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmZvckVhY2hPYnNlcnZl
cihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KSBjb25zdAordm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlOjpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248dm9p
ZChPYnNlcnZlciYpPiYgYXBwbHkpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPE9ic2VydmVyKj4gb2Jz
ZXJ2ZXJzQ29weTsKLSAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNl
cnZlcnNMb2NrKTsKLSAgICAgICAgb2JzZXJ2ZXJzQ29weSA9IGNvcHlUb1ZlY3RvcihtX29ic2Vy
dmVycyk7Ci0gICAgfQotICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnNDb3B5KSB7
Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKLSAgICAg
ICAgLy8gTWFrZSBzdXJlIHRoZSBvYnNlcnZlciBoYXMgbm90IGJlZW4gZGVzdHJveWVkLgorICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlU
b1ZlY3RvcihtX29ic2VydmVycykpIHsKICAgICAgICAgaWYgKCFtX29ic2VydmVycy5jb250YWlu
cyhvYnNlcnZlcikpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYXBwbHkoKm9ic2Vy
dmVyKTsKQEAgLTE4Miw5ICsxOTAsMjIgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRl
b1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiAKIHZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKIHsKLSAgICBm
b3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7Ci0gICAgICAgIG9ic2VydmVyLmF1
ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBhdWRpb0RhdGEsIGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7Ci0gICAgfSk7CisgICAgaWYgKCFtX2hhc1NlbnRTdGFydFByb2R1Y2VkQXVkaW9E
YXRhKSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyldIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKG1faGFzU2VudFN0YXJ0UHJvZHVjZWRBdWRpb0Rh
dGEpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9oYXNTZW50U3RhcnRQ
cm9kdWNlZEF1ZGlvRGF0YSA9IHRydWU7CisgICAgICAgICAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZd
KGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuaGFzU3RhcnRlZFBy
b2R1Y2luZ0F1ZGlvRGF0YSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2sp
OworICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzKQorICAg
ICAgICBvYnNlcnZlci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgZGVz
Y3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
OjpzdGFydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggMWI5ZDZhMjQ0OWM1MjEzNjRkZDMyY2I0
MGIzOTY3Njk1YWYyNTQwYy4uNTc2MDUzODczMTFmZDMxNzA4ZTBjZWFlMWUxZWJhNDcxYTEwYmYw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNjksNyArNjksNyBAQCBzdHJ1Y3QgQ2FwdHVyZVNv
dXJjZU9yRXJyb3I7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJlYWx0aW1lTWVkaWFTb3VyY2UK
ICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291cmNlLCBX
VEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9vcD4KLSAgICAsIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxSZWFsdGltZU1lZGlhU291cmNlPgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2Vy
PgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgcHJvdGVjdGVkIExvZ2dlckhlbHBl
cgogI2VuZGlmCkBAIC05Miw4ICs5MiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIENhbGxlZCBv
biB0aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgIHZpcnR1YWwgdm9pZCB2aWRlb1NhbXBsZUF2YWls
YWJsZShNZWRpYVNhbXBsZSYpIHsgfQogCisgICAgICAgIHZpcnR1YWwgdm9pZCBoYXNTdGFydGVk
UHJvZHVjaW5nQXVkaW9EYXRhKCkgeyB9CisgICAgfTsKKyAgICBjbGFzcyBBdWRpb1NhbXBsZU9i
c2VydmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkF1ZGlvU2FtcGxlT2JzZXJ2
ZXIoKSA9IGRlZmF1bHQ7CisKICAgICAgICAgLy8gTWF5IGJlIGNhbGxlZCBvbiBhIGJhY2tncm91
bmQgdGhyZWFkLgotICAgICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNv
bnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYsIHNpemVfdCAvKm51bWJlck9mRnJhbWVzKi8pIHsgfQorICAgICAgICB2
aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVf
dCAvKm51bWJlck9mRnJhbWVzKi8pID0gMDsKICAgICB9OwogCiAgICAgdmlydHVhbCB+UmVhbHRp
bWVNZWRpYVNvdXJjZSgpID0gZGVmYXVsdDsKQEAgLTEzMSw2ICsxMzcsOSBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAorICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgYWRkQXVkaW9TYW1wbGVPYnNlcnZlcihBdWRpb1NhbXBsZU9ic2VydmVyJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKEF1ZGlv
U2FtcGxlT2JzZXJ2ZXImKTsKKwogICAgIGNvbnN0IEludFNpemUgc2l6ZSgpIGNvbnN0OwogICAg
IHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJik7CiAKQEAgLTI1Myw4ICsyNjIsMTEgQEAgcHJp
dmF0ZToKICAgICBTdHJpbmcgbV9wZXJzaXN0ZW50SUQ7CiAgICAgVHlwZSBtX3R5cGU7CiAgICAg
U3RyaW5nIG1fbmFtZTsKLSAgICBtdXRhYmxlIFJlY3Vyc2l2ZUxvY2sgbV9vYnNlcnZlcnNMb2Nr
OwogICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKworICAgIG11dGFibGUgUmVj
dXJzaXZlTG9jayBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jazsKKyAgICBIYXNoU2V0PEF1ZGlv
U2FtcGxlT2JzZXJ2ZXIqPiBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzOworCiAgICAgSW50U2l6ZSBt
X3NpemU7CiAgICAgSW50U2l6ZSBtX2ludHJpbnNpY1NpemU7CiAgICAgZG91YmxlIG1fZnJhbWVS
YXRlIHsgMzAgfTsKQEAgLTI3Miw2ICsyODQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pbnRl
cnJ1cHRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhcHR1cmVEaWRGYWlsZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzU2VudFN0YXJ0
UHJvZHVjZWRBdWRpb0RhdGEgeyBmYWxzZSB9OwogfTsKIAogc3RydWN0IENhcHR1cmVTb3VyY2VP
ckVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGNkZmUy
M2ZhNGFjZTBiNmRhNmJlOWU3OTQ1NjhkZTg0MGZhNGI2NmUuLmMyN2U2MGY2NmNjY2U5MjYyMGUy
NjU3OGZmNThhM2IwZTU3NDgwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
LmNwcApAQCAtNDUsNyArNDUsNyBAQCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaQogCiBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoKQogewot
QVNTRVJUKCFtX2F1ZGlvU291cmNlLT5oYXNPYnNlcnZlcigqdGhpcykpOworICAgIEFTU0VSVCgh
bV9hdWRpb1NvdXJjZS0+aGFzT2JzZXJ2ZXIoKnRoaXMpKTsKICNpZiBBU1NFUlRfRU5BQkxFRAog
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zaW5rc0xvY2spOwogI2VuZGlmCkBAIC01OCwx
MSArNTgsMTMgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6Om9ic2VydmVTb3Vy
Y2UoKQogewogICAgIEFTU0VSVCghbV9hdWRpb1NvdXJjZS0+aGFzT2JzZXJ2ZXIoKnRoaXMpKTsK
ICAgICBtX2F1ZGlvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9hdWRpb1NvdXJj
ZS0+c291cmNlKCkuYWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiAgICAgaW5pdGlhbGl6
ZUNvbnZlcnRlcigpOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6dW5v
YnNlcnZlU291cmNlKCkKIHsKKyAgICBtX2F1ZGlvU291cmNlLT5zb3VyY2UoKS5yZW1vdmVBdWRp
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKICAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVPYnNlcnZl
cigqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggODE2
NzYxM2RhZDhmMjMyM2YyMWZiOTcxMjA3NzY1ODQ0MTQzYzA2Mi4uNzdmYTk3YTIwNGYwODUxM2Y5
MWE2OWUyYWEyMGEyYjIzNGQwZTkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
LmgKQEAgLTU1LDYgKzU1LDcgQEAgY2xhc3MgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlCiAg
ICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgogICAgICwgcHVibGljIHdlYnJ0Yzo6
QXVkaW9Tb3VyY2VJbnRlcmZhY2UKICAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9n
Z2VySGVscGVyCiAjZW5kaWYKQEAgLTEwOCw3ICsxMDksNiBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBzb3VyY2VNdXRlZENoYW5nZWQoKTsKICAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCk7
Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
LCBzaXplX3QpIHsgfTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoaW5nQnVmZmVyZWRBdWRp
b0RhdGFIaWdoTGltaXQoKSB7IHJldHVybiBmYWxzZTsgfTsKICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZWFjaGluZ0J1ZmZlcmVkQXVkaW9EYXRhTG93TGltaXQoKSB7IHJldHVybiBmYWxzZTsgfTsKQEAg
LTExOCw3ICsxMTgsNiBAQCBwcml2YXRlOgogICAgIC8vIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpPYnNlcnZlciBBUEkKICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgZmluYWwgeyBzb3VyY2VNdXRlZENoYW5nZWQoKTsgfQogICAgIHZvaWQgdHJh
Y2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgc291cmNl
RW5hYmxlZENoYW5nZWQoKTsgfQotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KSB7IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtZWRp
YVRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7IH0KICAgICB2b2lkIHRyYWNr
RW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KICAgICB2b2lkIHRyYWNr
U2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1
ZGlvU291cmNlUHJvdmlkZXIuaAppbmRleCAwMzA3MDNkNTQwMGE0NjZhOTcwYTA2OWM3NzQzNGMw
YTA0ZjcyNzUxLi5lN2Q4ODg5MjQ2ZjRjMWU4ODBjNDc4MjZlMzYyMzZmNTZmMzBjMmFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlci5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyPiwgcHVibGljIEF1ZGlvU291cmNlUHJv
dmlkZXIgeworY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFk
OjpNYWluPiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgewogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
ck1lZGlhU3RyZWFtU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKaW5kZXggOWVkNWZl
YWNhNWU0ZWFmYjcxZDYzOTY1ZTU5NGFhNWUyZTQ5YTlmOC4uMTE2Yjk1MmYwMWJjZTc1ZmI3NWVj
YjkyMGM2MWU2NzQ3ZGUwZTEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
TWVkaWFTdHJlYW1Tb3VyY2UuY3BwCkBAIC0xMDYsNyArMTA2LDggQEAgR3N0U3RyZWFtKiB3ZWJr
aXRNZWRpYVN0cmVhbU5ldyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdHJhY2spCiB9CiAKIGNs
YXNzIFdlYktpdE1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlcgotICAgIDogcHVibGljIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CisgICAgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6Ok9ic2VydmVyCisgICAgLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9TYW1wbGVPYnNlcnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyKCkgeyB9OwpAQCAt
MTMxLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICAgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNQdXNo
VmlkZW9TYW1wbGUobV9tZWRpYVN0cmVhbVNyYywgZ3N0c2FtcGxlKTsKICAgICB9CiAKLSAgICB2
b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsCisgICAgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1
ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWwKICAg
ICB7CiAgICAgICAgIGF1dG8gYXVkaW9kYXRhID0gc3RhdGljX2Nhc3Q8Y29uc3QgR1N0cmVhbWVy
QXVkaW9EYXRhJj4oYXVkaW9EYXRhKTsKIApAQCAtMzc1LDkgKzM3NiwxMCBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRNZWRpYVN0cmVhbVNyY0ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKIAogICAgIEdT
VF9PQkpFQ1RfTE9DSyhzZWxmKTsKICAgICBpZiAoc2VsZi0+c3RyZWFtKSB7Ci0gICAgICAgIGZv
ciAoYXV0byYgdHJhY2sgOiBzZWxmLT5zdHJlYW0tPnRyYWNrcygpKQorICAgICAgICBmb3IgKGF1
dG8mIHRyYWNrIDogc2VsZi0+c3RyZWFtLT50cmFja3MoKSkgeworICAgICAgICAgICAgdHJhY2st
PnNvdXJjZSgpLnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJh
Y2tPYnNlcnZlci5nZXQoKSk7CiAgICAgICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnNl
bGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7Ci0KKyAgICAgICAgfQogICAgICAg
ICBzZWxmLT5zdHJlYW0tPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbU9ic2VydmVy
KTsKICAgICAgICAgc2VsZi0+c3RyZWFtID0gbnVsbHB0cjsKICAgICB9CkBAIC0zOTYsMTAgKzM5
OCwxNCBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2Via2l0TWVkaWFTdHJlYW1TcmND
aGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LAogCiAgICAgICAgIEdTVF9PQkpFQ1RfTE9D
SyhzZWxmKTsKICAgICAgICAgaWYgKHNlbGYtPnN0cmVhbSkgewotICAgICAgICAgICAgZm9yIChh
dXRvJiB0cmFjayA6IHNlbGYtPnN0cmVhbS0+dHJhY2tzKCkpCisgICAgICAgICAgICBmb3IgKGF1
dG8mIHRyYWNrIDogc2VsZi0+c3RyZWFtLT50cmFja3MoKSkgeworICAgICAgICAgICAgICAgIHRy
YWNrLT5zb3VyY2UoKS5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVh
bVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNl
cnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKLSAgICAgICAgfSBl
bHNlIGlmIChzZWxmLT50cmFjaykKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChz
ZWxmLT50cmFjaykgeworICAgICAgICAgICAgc2VsZi0+dHJhY2stPnNvdXJjZSgpLnJlbW92ZUF1
ZGlvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7
CiAgICAgICAgICAgICBzZWxmLT50cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3Ry
ZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CisgICAgICAgIH0KICAgICAgICAgR1NUX09CSkVDVF9V
TkxPQ0soc2VsZik7CiAgICAgfQogCkBAIC01NDMsOSArNTQ5LDEwIEBAIHN0YXRpYyBnYm9vbGVh
biB3ZWJraXRNZWRpYVN0cmVhbVNyY1NldHVwU3JjKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxm
LAogICAgIH0gZWxzZQogICAgICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY0FkZFBhZChzZWxmLCBw
YWQuZ2V0KCksIHBhZF90ZW1wbGF0ZSk7CiAKLSAgICBpZiAob2JzZXJ2ZV90cmFjaykKKyAgICBp
ZiAob2JzZXJ2ZV90cmFjaykgewogICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIoKnNlbGYtPm1l
ZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7Ci0KKyAgICAgICAgdHJhY2stPnNvdXJjZSgp
LmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5n
ZXQoKSk7CisgICAgfQogICAgIGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoZWxl
bWVudCk7CiAgICAgcmV0dXJuIFRSVUU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5oCmluZGV4IGZmMzBlYjM3ZWI3MGQ5YzFmNGM3OGI0YWExMjE0YTQxZTE2
OTI0MGQuLjFjMWNlNzMxMGU3MGNiNzc3MzBmNjNiN2UyYzY4OTVlZTYwZmY0YWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCkBAIC00Niw3ICs0NiwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1NhbXBsZURhdGFTb3VyY2U7CiBjbGFz
cyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIGZpbmFsIDogcHVibGljIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXIsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CitjbGFzcyBXRUJDT1JF
X0VYUE9SVCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyBmaW5hbAorICAgIDogcHVibGlj
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXIKKyAgICAsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpP
YnNlcnZlcgorICAgICwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4g
Y3JlYXRlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+V2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMoKTsKQEAgLTYyLDExICs2NSwxMyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKSBmaW5hbDsKIAogICAg
IC8vIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgotICAgIHZvaWQgYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
c2l6ZV90KSBmaW5hbDsKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBmaW5hbCB7IH0KICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgZmluYWwgeyB9CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQotICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgdHJhY2tF
bmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOworCisgICAgLy8g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorICAgIHZvaWQgYXVkaW9T
YW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CiAKICAgICBz
aXplX3QgbV9saXN0QnVmZmVyU2l6ZSB7IDAgfTsKICAgICBPcHRpb25hbDxDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24+IG1faW5wdXREZXNjcmlwdGlvbjsKQEAgLTc3LDggKzgyLDEwIEBAIHByaXZh
dGU6CiAgICAgdWludDY0X3QgbV9yZWFkQ291bnQgeyAwIH07CiAgICAgQXVkaW9Tb3VyY2VQcm92
aWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CiAgICAgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUqIG1fY2FwdHVyZVNvdXJjZSB7IG51bGxwdHIgfTsKKyAgICBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgTG9jayBtX211dGV4OwogICAgIGJvb2wgbV9jb25uZWN0
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmluZGV4IGFlOTAyZDFi
ZDNhZTJkZjkzY2YxMjQ4MTYxY2IzNzIwZTk4Njk0OTQuLjc5MGRiZDFiM2M5MGZjNzI0OTRkYjFm
ZTMyZDZjMmI3YjIxMGJhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMubW0KQEAgLTU0LDExICs1NCwxNiBAQCBSZWY8V2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM+IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoTWVkaWFTdAog
CiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHNvdXJjZSkKICAgICA6IG1fY2FwdHVyZVNv
dXJjZSgmc291cmNlKQorICAgICwgbV9zb3VyY2Uoc291cmNlLnNvdXJjZSgpKQorICAgICwgbV9l
bmFibGVkKHNvdXJjZS5lbmFibGVkKCkpCiB7CisgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxl
T2JzZXJ2ZXIoKnRoaXMpOwogfQogCiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCkKIHsKKyAgICBtX3NvdXJjZS0+cmVtb3ZlQXVk
aW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
bXV0ZXgpOwogCiAgICAgaWYgKG1fY29ubmVjdGVkICYmIG1fY2FwdHVyZVNvdXJjZSkKQEAgLTE2
NSwxMCArMTcwLDE1IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJl
cGFyZSgpCiAgICAgfQogfQogCit2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp0
cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykKK3sKKyAg
ICBtX2VuYWJsZWQgPSB0cmFjay5lbmFibGVkKCk7Cit9CisKIC8vIE1heSBnZXQgY2FsbGVkIG9u
IGEgYmFja2dyb3VuZCB0aHJlYWQuCi12b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQordm9p
ZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNv
bnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZyYW1lQ291bnQpCiB7Ci0g
ICAgaWYgKCF0cmFjay5lbmFibGVkKCkpCisgICAgaWYgKCFtX2VuYWJsZWQgfHwgIW1fY29ubmVj
dGVkKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMWM3ZmMwMGY2
NWJiNTIyYzU4NzU1NGRlODlhMTY3MzEyMWU0YmQ5Ny4uOGQ5ZDc2NzEzYTI1YWJmYzk1ODI2NDhk
MGZhMTY2NTU4ZjZmODE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
NDY2LDggKzQ2NiwxMCBAQCBSZWY8SW50ZXJuYWxzPiBJbnRlcm5hbHM6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCiBJbnRlcm5hbHM6On5JbnRlcm5hbHMoKQogewogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0gICAgaWYgKG1fdHJhY2spCi0gICAgICAgIG1fdHJhY2stPnNvdXJjZSgpLnJl
bW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBpZiAobV90cmFja1NvdXJjZSkgeworICAgICAgICBt
X3RyYWNrU291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fdHJhY2tTb3Vy
Y2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KICNlbmRpZgogfQog
CkBAIC0xNjM5LDkgKzE2NDEsOSBAQCB2b2lkIEludGVybmFsczo6c2V0TWVkaWFDYXB0dXJlUmVx
dWlyZXNTZWN1cmVDb25uZWN0aW9uKGJvb2wgZW5hYmxlZCkKICAgICAgICAgcGFnZS0+c2V0dGlu
Z3MoKS5zZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oZW5hYmxlZCk7CiB9
CiAKLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZVJl
Y29yZGVyTW9ja1NvdXJjZSgpCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQ
cml2YXRlPiBjcmVhdGVSZWNvcmRlck1vY2tTb3VyY2UoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJl
YW0pCiB7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZU1v
Y2s+KG5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2spOworICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrPihuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVN
b2NrKHN0cmVhbSkpOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0Q3VzdG9tUHJpdmF0ZVJlY29y
ZGVyQ3JlYXRvcigpCkBAIC00OTI1LDggKzQ5MjcsOSBAQCB2b2lkIEludGVybmFsczo6c2V0Q2Ft
ZXJhTWVkaWFTdHJlYW1UcmFja09yaWVudGF0aW9uKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBp
bgogCiB2b2lkIEludGVybmFsczo6b2JzZXJ2ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1U
cmFjayYgdHJhY2spCiB7Ci0gICAgbV90cmFjayA9ICZ0cmFjazsKLSAgICBtX3RyYWNrLT5zb3Vy
Y2UoKS5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV90cmFja1NvdXJjZSA9ICZ0cmFjay5zb3Vy
Y2UoKTsKKyAgICBtX3RyYWNrU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV90cmFj
a1NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiB9CiAKIHZvaWQgSW50ZXJu
YWxzOjpncmFiTmV4dE1lZGlhU3RyZWFtVHJhY2tGcmFtZShUcmFja0ZyYW1lUHJvbWlzZSYmIHBy
b21pc2UpCkBAIC00OTQwLDcgKzQ5NDMsNyBAQCB2b2lkIEludGVybmFsczo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICBpZiAoIW1fbmV4dFRyYWNrRnJhbWVQ
cm9taXNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvJiB2aWRlb1NldHRpbmdzID0gbV90
cmFjay0+c291cmNlKCkuc2V0dGluZ3MoKTsKKyAgICBhdXRvJiB2aWRlb1NldHRpbmdzID0gbV90
cmFja1NvdXJjZS0+c2V0dGluZ3MoKTsKICAgICBpZiAoIXZpZGVvU2V0dGluZ3Mud2lkdGgoKSB8
fCAhdmlkZW9TZXR0aW5ncy5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggY2I2ZTE0N2NkNjZmZWRmMTJjYTE1ZGJjODJmNWQx
NmFjNmQ4YTY5Ni4uMmU4YWEyMjg1NWNkOWVlNWJhNDEyYTc3MGNkNTUwZWRlNjcwMTI1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMjMsNiArMTIzLDcgQEAgc3RydWN0IE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CiBjbGFzcyBJbnRlcm5hbHMgZmluYWwg
OiBwdWJsaWMgUmVmQ291bnRlZDxJbnRlcm5hbHM+LCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAsIHByaXZhdGUgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgogI2VuZGlmCiAgICAgewogcHVibGljOgpAQCAtOTY5LDE1
ICs5NzAsMTYgQEAgcHJpdmF0ZToKIAogICAgIEV4Y2VwdGlvbk9yPFJlbmRlcmVkRG9jdW1lbnRN
YXJrZXIqPiBtYXJrZXJBdChOb2RlJiwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25l
ZCBpbmRleCk7CiAKLSAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciBBUEkKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2Vy
dmVyIEFQSQogICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5h
bDsKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIEFQSQog
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkg
ZmluYWwgeyBtX3RyYWNrQXVkaW9TYW1wbGVDb3VudCsrOyB9CiAKICAgICBPcmllbnRhdGlvbk5v
dGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllcjsKICAgICB1bnNpZ25lZCBsb25nIG1fdHJhY2tW
aWRlb1NhbXBsZUNvdW50IHsgMCB9OwogICAgIHVuc2lnbmVkIGxvbmcgbV90cmFja0F1ZGlvU2Ft
cGxlQ291bnQgeyAwIH07Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IG1fdHJhY2s7Cisg
ICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fdHJhY2tTb3VyY2U7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFRyYWNrRnJhbWVQcm9taXNlPiBtX25leHRUcmFja0ZyYW1lUHJvbWlzZTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDI5ZjY2YmNiNTM3NGQwM2U4
MDQwNGRkNzAzZTZjODNhM2U0ZmE5M2UuLmQyOTQ0OTczMmUwZGU3MGM4N2UyODQwMzNkOWIxMDQ5
MWM2NWE3YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC01MCw2ICs1MCw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpTb3VyY2VQcm94eQogICAgIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9i
c2VydmVyCisgICAgLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNl
cnZlcgogICAgICwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNjAsMTEgKzYxLDEzIEBAIHB1
YmxpYzoKICAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykp
KQogICAgIHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAg
bV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIH0KIAogICAgIH5T
b3VyY2VQcm94eSgpCiAgICAgewogICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworICAg
ICAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiAgICAgICAg
IG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5jcHAKaW5kZXggNjk2ODBmMjRmODBkZWE5Mzc0Mjk5NTI5ZmU5ZjY2NzdhMTJjZGNkMC4u
ZmNmNDg0YWQ0MDhkYWM3ZjBkMjExYTkyZjMzYzQ0NmEwODA0MDlmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcApAQCAtNDMsNyArNDMsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAotTWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorTWVkaWFSZWNvcmRlclBy
aXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQog
ICAgIDogbV9pZGVudGlmaWVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQog
ICAgICwgbV9jb25uZWN0aW9uKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpKQogewpAQCAtNjQsMTUgKzY0LDE5IEBAIE1lZGlh
UmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVBy
aXZhdGUmIHN0cmVhbSkKICAgICAgICAgd2lkdGggPSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNr
LT5zZXR0aW5ncygpLndpZHRoKCk7CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVS
ZWNvcmRlciB7IG1faWRlbnRpZmllciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLCB3aWR0
aCwgaGVpZ2h0IH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShhdXRvJiYg
ZXhjZXB0aW9uKSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMgfHwgIWV4Y2VwdGlvbikKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXI6OkNyZWF0ZVJlY29yZGVyIHsgbV9pZGVudGlmaWVyLCAhIXNlbGVjdGVkVHJh
Y2tzLmF1ZGlvVHJhY2ssIHdpZHRoLCBoZWlnaHQgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyksIGF1ZGlvVHJhY2sgPSBtYWtlUmVmUHRyKHNlbGVjdGVkVHJhY2tzLmF1ZGlv
VHJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fZXJyb3JDYWxsYmFjayhFeGNlcHRpb24geyBleGNl
cHRpb24tPmNvZGUsIFdURk1vdmUoZXhjZXB0aW9uLT5tZXNzYWdlKSB9KTsKKyAgICAgICAgaWYg
KGV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybiBtX2Vycm9yQ2FsbGJhY2soRXhjZXB0aW9u
IHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7CisgICAg
ICAgIGlmIChhdWRpb1RyYWNrKQorICAgICAgICAgICAgc2V0QXVkaW9Tb3VyY2UoJmF1ZGlvVHJh
Y2stPnNvdXJjZSgpKTsKICAgICB9LCAwKTsKIH0KIAogTWVkaWFSZWNvcmRlclByaXZhdGU6On5N
ZWRpYVJlY29yZGVyUHJpdmF0ZSgpCiB7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7CiAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdl
cjo6UmVsZWFzZVJlY29yZGVyIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCkBAIC04OCwxMSAr
OTIsOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNv
bnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcgogI2VuZGlmCiB9CiAKLXZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKK3ZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgaWYgKHRy
YWNrLmlkKCkgIT0gbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKICAgICAgICAgQVNTRVJUKGRl
c2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRp
b246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwogICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldU
Rjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBs
YXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CkBAIC0xMzAsNiArMTMxLDcgQEAgdm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVmUHRyPFdlYkNvcmU6OlNoYXIKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcFJl
Y29yZGluZygpCiB7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7CiAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpTdG9wUmVjb3JkaW5nIHsg
fSwgbV9pZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggNmQ5ZmFiZTNl
YTcyNDczZjQ1OTkwY2U4YWQxNzJkMGNkMDNhODEyNi4uNjgwMDk0MmEzMGRjZGM0MWFjM2JhZmZk
OWJhNzg4MTI4MDliNDZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC00NCwxOCArNDQsMjEg
QEAgY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xh
c3MgTWVkaWFSZWNvcmRlclByaXZhdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGUsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50LCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IHsKK2NsYXNzIE1lZGlhUmVj
b3JkZXJQcml2YXRlIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFSZWNvcmRlclBy
aXZhdGUKKyAgICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisgICAg
LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBNZWRpYVJlY29yZGVy
UHJpdmF0ZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAgICBleHBsaWNp
dCBNZWRpYVJlY29yZGVyUHJpdmF0ZShXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKTsKICAg
ICB+TWVkaWFSZWNvcmRlclByaXZhdGUoKTsKIAogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZQogICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJikg
ZmluYWw7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV2ViQ29yZTo6TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNv
cmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKT4mJikgZmluYWw7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CisgICAg
dm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBX
ZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogCiAgICAgLy8gU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U6OkNsaWVudAogICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5Kik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmNwcAppbmRleCBiZDFkZTQxMWJmMzM0MWU5ZDJiZTJiNDJhMjlkMTQ4
YzJiZDhkNGE0Li42Y2IzMjFlZDI1ODk0ODllOWRiMGNiYmQ1YjU1OWIxZTU2YTAzNDlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRp
YVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3N0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlclBy
b3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0
cmVhbSkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fdXNlR1BVUHJvY2Vz
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKaW5kZXggZDI1ODhkNDJhYjYwZGRhNmQyOTQ4OGZiODVm
ZTJhYzUwNTAxOGJkMi4uZTk2YjhmZjM2NGRlNTk4ODY4ZmQ5ZGYwNWVhOTI1YjQwZDgzYWFjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogCiBwcml2
YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJikgZmluYWw7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVh
dGVNZWRpYVJlY29yZGVyUHJpdmF0ZShXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5h
bDsKICNlbmRpZgogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396052</attachid>
            <date>2020-04-09 23:49:00 -0700</date>
            <delta_ts>2020-04-10 03:58:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210180-20200410084858.patch</filename>
            <type>text/plain</type>
            <size>70935</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNlMThjOTQzNGM0ZTM5
Yjg5NzFmOGI3ZDJkOTdjOGRjMGQ0YjIxMi4uMjk2MWQ0NTJlNTYxNDc3ZTk2ZTY4YTM3YTVjMjY4
NjkxMGM5NmU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAyMC0wNC0wOSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGEgUmVh
bHRpbWVNZWRpYVNvdXJjZSBvYnNlcnZlciBkZWRpY2F0ZWQgdG8gcmVjZWl2aW5nIGF1ZGlvIHNh
bXBsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MDE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlOjpPYnNlcnZlciB3YXMgY2FsbGVkIG9uIHZhcmlvdXMgdGhyZWFkcyB3
aGljaCB3YXMgbWFraW5nIGl0ZXJhdGluZyB0aHJvdWdoIHRoZW0gZGlmZmljdWx0LgorICAgICAg
ICBPYnNlcnZlcnMgd2VyZSBjb3BpZWQgdG8gYSB2ZWN0b3IgZm9yIGl0ZXJhdGluZyBlYWNoIHRp
bWUgYW5kIGxvY2tpbmcgd2FzIGhhcHBlbmluZyBmb3IgZWFjaCBpbmRpdnVkdWFsIG9ic2VydmVy
LgorCisgICAgICAgIEluc3RlYWQgb2YgZG9pbmcgdGhhdCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIgbm8gbG9uZ2VyIGdpdmVzIGFjY2VzcyB0byBhdWRpbyBzYW1wbGVzLCBhbGwgaXRz
IG1ldGhvZHMgYXJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgQXVkaW9T
YW1wbGVPYnNlcnZlciBpcyBpbnRyb2R1Y2VkIHdpdGggYSBzaW5nbGUgbWV0aG9kIHRvIHJlY2Vp
dmUgYXVkaW8gc2FtcGxlcy4KKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSBrZWVwcyBhIHNl
dCBvZiBBdWRpb1NhbXBsZU9ic2VydmVyIHNlcGFyYXRlZCBmcm9tIGl0cyBleGlzdGluZyBPYnNl
cnZlciBoYXNoc2V0LgorICAgICAgICBUaGVzZSBvYnNlcnZlcnMgY2FuIG9ubHkgYmUgYWRkZWQv
cmVtb3ZlZCBmcm9tIHRoZSBtYWluIHRocmVhZCB3aGlsZSBhdWRpbyBzYW1wbGUgZGVsaXZlcnkg
dXN1YWxseSBoYXBwZW5zIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZC4KKyAgICAgICAgV2Ugbm8g
bG9uZ2VyIG5lZWQgdG8gY29weSB0aGUgYXVkaW8gc2FtcGxlIG9ic2VydmVycyBpbiBhIHZlY3Rv
ciBhbmQgbG9jayBvbmx5IG9uY2Ugd2hlbiBpdGVyYXRpbmcgdGhlIGF1ZGlvIHNhbXBsZSBvYnNl
cnZlcnMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVxdWlyZXMgdG8gdXBkYXRlIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlIGFuZCBSZWFsdGltZU1lZGlhU291cmNlIG9ic2VydmVycy4KKyAgICAg
ICAgVGhpcyBpbmNsdWRlcyBXZWJBdWRpbywgQXVkaW8gUmVuZGVyZXIgYW5kIE1lZGlhIFJlY29y
ZGVyLgorICAgICAgICBFYWNoIGNvcnJlc3BvbmRpbmcgY2xhc3MgaXMgbm93IHJlZ2lzdGVyaW5n
IGl0c2VsZiBhcyBhIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciBhbmQgd2hlbiBu
ZWVkZWQgYXMgYSBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlci4KKyAgICAgICAgVGhpcyBh
bGxvd3MgcmVtb3ZpbmcgdGhlIGFkZGl0aW9uYWwgY29weS1pbi12ZWN0b3IvbG9jayB0aGF0IHdh
cyBoYXBwZW5pbmcgd2hlbiBpdGVyYXRpbmcgb3ZlciBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
T2JzZXJ2ZXJzIGZvciBhdWRpbyBzYW1wbGVzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsc28g
YWxsb3dzIGZvciBhIGNvbnN1bWVyIHRvIGFsd2F5cyBvYnNlcnZlIHRoZSBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSBidXQgcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIG9ubHkgd2hlbiBuZWVkZWQuCisg
ICAgICAgIFdlIGNoYW5nZSB0aGUgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSBpbXBsZW1l
bnRhdGlvbiBzbyB0aGF0LCBpZiB0aGUgcmVuZGVyZXIgaXMgbXV0ZWQsIG5vdCBwbGF5aW5nLCB0
aGUgdHJhY2sgaXMgbXV0ZWQgb3Igbm90IGVuYWJsZWQsCisgICAgICAgIGl0IG5vIGxvbmdlciBy
ZWNlaXZlcyBhdWRpbyBzYW1wbGVzLgorICAgICAgICBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVs
IGluIHRoZSB0eXBpY2FsIGNhc2Ugd2hlcmUgYSB2aWRlbyBlbGVtZW50IGRpc3BsYXlzIHRoZSBs
b2NhbGx5IGNhcHR1cmVkIHN0cmVhbSAoaW5jbHVkaW5nIGEgbG9jYWwgYXVkaW8gdHJhY2spIGJ1
dCBpcyBtdXRlZAorICAgICAgICB0byBwcmV2ZW50IGZlZWRiYWNrIGxvb3AuCisgICAgICAgIEZv
ciB0aGF0IHJlYXNvbiwgdGhlIHBsYXllciBpcyBub3cgc2V0dGluZyB0aGUgbXV0ZWQgc3RhdGUg
b2YgdGhlIHJlbmRlcmVyIGluc3RlYWQgb2Ygc2V0dGluZyB2b2x1bWUgdG8gMC4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Qgc2V0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c2V0Vm9sdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2V0TXV0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGU6OnNlbGVjdFRyYWNrcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGU6OnNldEF1ZGlvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6fk1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGw6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjpmZXRjaERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpNZWRpYVJlY29yZGVyUHJpdmF0
ZU1vY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjp+TWVk
aWFSZWNvcmRlclByaXZhdGVNb2NrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlTW9jazo6c3RvcFJlY29yZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tDb3VudGVy
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6ZmV0
Y2hEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlTW9jay5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpwbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBhdXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnNldE11dGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp0
cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtOjp0cmFja0VuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnRyYWNrRW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dXBkYXRlUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c3RhcnRSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzdG9wUmVuZGVy
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2Via2l0TWVk
aWFTdHJlYW1TcmNGaW5hbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJraXRNZWRpYVN0cmVh
bVNyY0NoYW5nZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3Jj
U2V0dXBTcmMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hU
cmFjayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmZvckVh
Y2hPYnNlcnZlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OnJlbW92ZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpoYXNTdGFydGVkUHJvZHVjaW5nQXVkaW9EYXRhKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkQXVkaW9TYW1wbGVPYnNlcnZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdmVBdWRpb1NhbXBsZU9ic2Vy
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9ic2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW92ZU9ic2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmZvckVhY2hPYnNlcnZl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb1Nh
bXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlOjp+UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnVub2JzZXJ2ZVNvdXJj
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjp0cmFja0VuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6fkludGVybmFscyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZWNvcmRl
ck1vY2tTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvYnNlcnZlTWVkaWFT
dHJlYW1UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorCiAyMDIwLTA0LTA5ICBE
ZWxhbiBBemFiYW5pICA8ZGF6YWJhbmlAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW5u
ZWNlc3NhcnkgZXhwbGljaXQgcGFyc2luZyBmb3IgbW9AbWF4c2l6ZSB2YWx1ZSAiaW5maW5pdHki
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDUzYWVmOGM4NWUzZTE4YWFjNWFjZjA3YTJiYmU5YWYzNmE0N2Y2NmQuLjc4
MGMxYjIwMDNjMTZhOGM3Nzk4MDM2ZDJlYzI2MmVhNzI3ZmJlOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMjAtMDQtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVkaWFTb3VyY2Ugb2JzZXJ2ZXIgZGVkaWNh
dGVkIHRvIHJlY2VpdmluZyBhdWRpbyBzYW1wbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxODAKKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgVXBkYXRlIFNvdXJjZVByb3h5IHRvIGJlIGFuIEF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIuCisgICAgICAgIFVwZGF0ZSBNZWRpYVJlY29yZGVyIHRvIG9ubHkgbGlzdGVu
IGZvciBhdWRpbyBzYW1wbGVzIGlmIEdQVSByZW1vdGUgd3JpdGVyIGlzIHN1Y2Nlc3NmdWxseSBj
cmVhdGVkLgorICAgICAgICBJdCBhbHNvIHN0b3BzIGxpc3RlbmluZyB0byBhdWRpbyBzYW1wbGVz
IGFzIHNvb24gYXMgc3RvcHBpbmcgdGhlIHJlY29yZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNl
UHJveHk6On5Tb3VyY2VQcm94eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclBy
aXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNv
cmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIu
aDoKKwogMjAyMC0wNC0wOSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVzZXJEYXRhOjpkZWNvZGUgc2hvdWxkIGFkZCBib3VuZHMgY2hlY2tzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAKaW5kZXggYjVkZWI4YjM1YzhhYjFmZWI3OWFiYjNmZDBlM2VlM2JmMDI1NDRjYS4uYWVkODU1
ZmUyNTRiNzNkNWQ3YmViMWJlMmY4YmRhNGYyNmJhYmYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtNDQs
NyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChNZWRpYVJlY29yZGVyKTsKIAotY3JlYXRvckZ1bmN0aW9uIE1lZGlhUmVjb3JkZXI6Om1f
Y3VzdG9tQ3JlYXRvciA9IG51bGxwdHI7CitNZWRpYVJlY29yZGVyOjpDcmVhdG9yRnVuY3Rpb24g
TWVkaWFSZWNvcmRlcjo6bV9jdXN0b21DcmVhdG9yID0gbnVsbHB0cjsKIAogRXhjZXB0aW9uT3I8
UmVmPE1lZGlhUmVjb3JkZXI+PiBNZWRpYVJlY29yZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBPcHRpb25zJiYgb3B0aW9ucykKIHsKQEAg
LTU5LDE1ICs1OSwxNSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVj
b3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZQogICAgIHJldHVybiByZWNv
cmRlcjsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJD
cmVhdG9yKGNyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQordm9pZCBNZWRpYVJlY29yZGVyOjpzZXRD
dXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKENyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQogewog
ICAgIG1fY3VzdG9tQ3JlYXRvciA9IGNyZWF0b3I7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkK
K3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYVN0cmVhbVBy
aXZhdGUmIHN0cmVhbSkKIHsKICAgICBpZiAobV9jdXN0b21DcmVhdG9yKQotICAgICAgICByZXR1
cm4gbV9jdXN0b21DcmVhdG9yKCk7CisgICAgICAgIHJldHVybiBtX2N1c3RvbUNyZWF0b3Ioc3Ry
ZWFtKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCk7CkBAIC0yMjcsMTEgKzIyNyw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2FtcGxlQnVm
ZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtCiAgICAg
bV9wcml2YXRlLT5zYW1wbGVCdWZmZXJVcGRhdGVkKHRyYWNrLCBtZWRpYVNhbXBsZSk7CiB9CiAK
LXZvaWQgTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJiB0cmFjaywgY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRm
b3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgbV9wcml2YXRlLT5hdWRpb1Nh
bXBsZXNBdmFpbGFibGUodHJhY2ssIG1lZGlhVGltZSwgYXVkaW9EYXRhLCBkZXNjcmlwdGlvbiwg
c2FtcGxlQ291bnQpOwotfQotCiBib29sIE1lZGlhUmVjb3JkZXI6OnZpcnR1YWxIYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0YXRlICE9IFJlY29yZGluZ1N0YXRl
OjpJbmFjdGl2ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5oCmluZGV4IGU4YmJiODUxZGZjNjE3ZGU2ZTA4NTQ5Yjc5ZjZhNDQ3
NjQ3OTdiZDAuLmMyMTBkOTEzNGNhMGQ3NTA3NzBkMDNjOTQ3YmE5NDUzNGM4N2E5YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXIuaApAQCAtMzgsOCArMzgsNiBAQCBjbGFzcyBCbG9iOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFz
cyBNZWRpYVJlY29yZGVyUHJpdmF0ZTsKIAotdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+KCpjcmVhdG9yRnVuY3Rpb24pKCk7Ci0KIGNsYXNzIE1lZGlhUmVjb3Jk
ZXIgZmluYWwKICAgICA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QKICAgICAsIHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhUmVjb3JkZXI+CkBAIC02Miw3ICs2MCw5IEBAIHB1YmxpYzoKICAgICAKICAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPE1lZGlhUmVjb3JkZXI+PiBjcmVhdGUoRG9jdW1lbnQm
LCBSZWY8TWVkaWFTdHJlYW0+JiYsIE9wdGlvbnMmJiA9IHsgfSk7CiAgICAgCi0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q3VzdG9tUHJpdmF0ZVJlY29yZGVyQ3JlYXRvcihjcmVh
dG9yRnVuY3Rpb24pOworICAgIHVzaW5nIENyZWF0b3JGdW5jdGlvbiA9IHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4oKikoTWVkaWFTdHJlYW1Qcml2YXRlJik7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9y
KENyZWF0b3JGdW5jdGlvbik7CiAgICAgCiAgICAgUmVjb3JkaW5nU3RhdGUgc3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAgCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgTWVkaWFSZWNvcmRlcihEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmLCBPcHRpb25zJiYgPSB7IH0p
OwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmLCBjb25zdCBNZWRpYVN0cmVhbVByaXZh
dGUmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBj
cmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVudCYsIE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OwogICAgIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCkBAIC0xMDcsOSArMTA3
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgZmluYWwgeyB9OwogICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKICAgICB2b2lkIHNhbXBsZUJ1ZmZl
clVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwot
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKLSAgICAKLSAgICBzdGF0aWMgY3JlYXRv
ckZ1bmN0aW9uIG1fY3VzdG9tQ3JlYXRvcjsKKworICAgIHN0YXRpYyBDcmVhdG9yRnVuY3Rpb24g
bV9jdXN0b21DcmVhdG9yOwogICAgIAogICAgIE9wdGlvbnMgbV9vcHRpb25zOwogICAgIFJlZjxN
ZWRpYVN0cmVhbT4gbV9zdHJlYW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCmluZGV4IGZj
YjA5N2VlNzU5ZmY1ZGZiNzY0OThkNTA5MGU0Y2NjYzBjOWQ1YTYuLjQ0YzlkMDdhOWI5NzUwZDY2
MjZlYjc1ODdlYWJjNTEzZjQzNmI4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBA
IC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlh
UmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNy
ZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewog
ICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oCmluZGV4IDJlMmY0MzZlYzBhZjhhZWY5NzUwODFjYmFi
NDA4ZDQ1M2Q0ZWIyNGEuLjExYmFhZGNlYTg2OWU3YTI5MTk2NjJhYjJkOGNlZjU0NzBjMmVkYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKIAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwgc3RkOjp1bmlx
dWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShj
b25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJl
YW1Qcml2YXRlJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29sIHZh
bHVlKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCmluZGV4IDAxZmYyMDgwMGU1YzA2YWIyZjY2Zjg2YTI0ZWFlY2FlNmJmMjYx
NTYuLmU5ODA0ODQxZDc0ODNlYjcyNGY3NTQ2NjMwYzZmZGU3YjMxMmE0NTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01ODIsNyArNTgyLDcgQEAgcHVibGljOgog
ICAgIEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OwogcHJpdmF0ZToKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNv
bnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICNl
bmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGYwM2YxMTg2N2JkOWI5
ZjE0ZGJhN2Q2ZjcwODkxYjg4ZGIwNmRlOGUuLjQzOGJiOWE0MjNmMGQ0ZDk0OTUyYTNhYWU0ZDQy
NjZmZTNkN2Y2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTU2MCw3ICs1NjAs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9sdW1l
KGZsb2F0IHZvbHVtZSkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHZvbHVtZSk7CiAg
ICAgbV92b2x1bWUgPSB2b2x1bWU7CiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fYXVk
aW9UcmFja01hcC52YWx1ZXMoKSkKLSAgICAgICAgdHJhY2stPnNldFZvbHVtZShtX211dGVkID8g
MCA6IG1fdm9sdW1lKTsKKyAgICAgICAgdHJhY2stPnNldFZvbHVtZShtX3ZvbHVtZSk7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRNdXRlZChib29s
IG11dGVkKQpAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpzZXRNdXRlZChib29sIG11dGVkKQogICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUiwgbXV0ZWQpOwogICAgIG1fbXV0ZWQgPSBtdXRlZDsKICAgICBmb3IgKGNvbnN0IGF1
dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQotICAgICAgICB0cmFjay0+c2V0
Vm9sdW1lKG1fbXV0ZWQgPyAwIDogbV92b2x1bWUpOworICAgICAgICB0cmFjay0+c2V0TXV0ZWQo
bV9tdXRlZCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpoYXNWaWRlbygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCmluZGV4IGE2OTkz
Y2EyODFkYjg4MmVjOTkyZmZhZDc0Y2ExZjliMzE5M2I2ZGUuLjI2Nzk5OGQwNmQ1Zjg5OWFkYTEx
NGIwOGQwYTFlMmUxMjMwNTc4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC0z
Miw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVkaWFSZWNvcmRlclByaXZh
dGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0
VHJhY2tzKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorTWVkaWFSZWNvcmRlclBy
aXZhdGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2Vs
ZWN0VHJhY2tzKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIEF1ZGlvVmlkZW9T
ZWxlY3RlZFRyYWNrcyBzZWxlY3RlZFRyYWNrczsKICAgICBzdHJlYW0uZm9yRWFjaFRyYWNrKFsm
XShhdXRvJiB0cmFjaykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IDYwNDMwYjQxYjMy
NTA0MmNmMmIxZGUzNmE4ODY5ZGUwMmM5MGI1YTUuLmUyOGUzODM2YjFmOTcxMTM3NDA4OTMzZmIx
ZTBkMzI1ODhiMDhlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2UuaCIKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTQzLDI5ICs0NCw1MyBA
QCBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRh
OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCi1jbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7Citj
bGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSA6CisgICAgcHVibGljIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgfk1lZGlhUmVj
b3JkZXJQcml2YXRlKCkgPSBkZWZhdWx0OworICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpOwog
CiAgICAgc3RydWN0IEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyB7Ci0gICAgICAgIGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrIHsgbnVsbHB0ciB9OwotICAgICAgICBj
b25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlkZW9UcmFjayB7IG51bGxwdHIgfTsKKyAg
ICAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2sgeyBudWxscHRyIH07Cisg
ICAgICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrIHsgbnVsbHB0ciB9Owog
ICAgIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNr
cyBzZWxlY3RUcmFja3MoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBzZWxlY3RUcmFja3MoTWVkaWFT
dHJlYW1Qcml2YXRlJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChj
b25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHN0b3BSZWNvcmRpbmcoKSB7IH07CisgICAgdXNpbmcgRmV0Y2hEYXRhQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpPjsKKyAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNr
JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29yZGluZygpID0gMDsKIAogICAgIHVz
aW5nIEVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+
OwogICAgIHZvaWQgc2V0RXJyb3JDYWxsYmFjayhFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxsYmFj
aykgeyBtX2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spOyB9CiAKK3Byb3Rl
Y3RlZDoKKyAgICB2b2lkIHNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiYmKTsKKwogcHJvdGVjdGVkOgogICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNhbGxiYWNrOwor
Citwcml2YXRlOgorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlvU291cmNl
OwogfTsKIAoraW5saW5lIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNldEF1ZGlvU291cmNl
KFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIGF1ZGlvU291cmNlKQoreworICAgIGlmICht
X2F1ZGlvU291cmNlKQorICAgICAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9i
c2VydmVyKCp0aGlzKTsKKworICAgIG1fYXVkaW9Tb3VyY2UgPSBXVEZNb3ZlKGF1ZGlvU291cmNl
KTsKKworICAgIGlmIChtX2F1ZGlvU291cmNlKQorICAgICAgICBtX2F1ZGlvU291cmNlLT5hZGRB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKK30KKworaW5saW5lIE1lZGlhUmVjb3JkZXJQcml2
YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQoreworICAgIGlmIChtX2F1ZGlvU291cmNlKQor
ICAgICAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRleCAyZDVh
MzU5YjIzMWJjOTQyOTAxMDY4NDZkYzZhOTg1MmI3YmE3ODY3Li44Nzg5NDBiMGY5MTAyNDMzNzU4
M2RhYTZjZjMyNzM4MmE1ZjVmZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGwuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCitz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAg
ICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRvIGltcGxlbWVudCBzdXBwb3J0IGZvciBtdWx0aXBs
ZSBhdWRpby92aWRlbyB0cmFja3MKICAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBjaG9vc2UgdGhl
IGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0cmFjay4KQEAgLTUxLDExICs1MSwxNSBAQCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGw6OmNyZWF0ZQogICAgIFN0cmluZyBhdWRpb1RyYWNrSWQ7CiAgICAgaWYg
KHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spCiAgICAgICAgIGF1ZGlvVHJhY2tJZCA9IHNlbGVj
dGVkVHJhY2tzLmF1ZGlvVHJhY2stPmlkKCk7CisKICAgICBTdHJpbmcgdmlkZW9UcmFja0lkOwog
ICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKQogICAgICAgICB2aWRlb1RyYWNrSWQg
PSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5pZCgpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlx
dWU8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPih3cml0ZXIucmVsZWFzZU5vbk51bGwoKSwg
V1RGTW92ZShhdWRpb1RyYWNrSWQpLCBXVEZNb3ZlKHZpZGVvVHJhY2tJZCkpOworICAgIGF1dG8g
cmVjb3JkZXIgPSBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4od3JpdGVy
LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoYXVkaW9UcmFja0lkKSwgV1RGTW92ZSh2aWRlb1Ry
YWNrSWQpKTsKKyAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykKKyAgICAgICAgcmVj
b3JkZXItPnNldEF1ZGlvU291cmNlKCZzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5zb3VyY2Uo
KSk7CisgICAgcmV0dXJuIHJlY29yZGVyOwogfQogCiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbChSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI+JiYgd3JpdGVyLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQsIFN0cmluZyYmIHZpZGVvVHJh
Y2tJZCkKQEAgLTY1LDYgKzY5LDExIEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6TWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0CiB7CiB9CiAK
K01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6fk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bCgpCit7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7Cit9CisKIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKIHsKICAgICBp
ZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQpAQCAtNzIsMTAgKzgxLDgg
QEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQo
Y29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXYKICAgICBtX3dyaXRlci0+YXBwZW5kVmlkZW9TYW1w
bGVCdWZmZXIoc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVm
ZmVyKTsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IFdU
Rjo6TWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNv
dW50KQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlv
RGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNp
emVfdCBzYW1wbGVDb3VudCkKIHsKLSAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkQXVk
aW9UcmFja0lEKQotICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVy
TGlzdD4oZGF0YSkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9u
KCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsK
ICAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24s
IG1lZGlhVGltZSwgc2FtcGxlQ291bnQpOwpAQCAtODMsMTAgKzkwLDExIEBAIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFT
dHJlYW1UcmFja1ByCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzdG9wUmVj
b3JkaW5nKCkKIHsKKyAgICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsKICAgICBtX3dyaXRlci0+
c3RvcFJlY29yZGluZygpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwg
Y29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbDo6ZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNrJiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgbV93cml0ZXItPmZldGNoRGF0YShbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbWltZVR5cGUgPSBtaW1lVHlwZSgpXShhdXRvJiYg
YnVmZmVyKSBtdXRhYmxlIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShidWZm
ZXIpLCBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaAppbmRl
eCAwY2YwZGYzYzY0Y2M5NzEzZTMwNTliZTM2Y2FjYzlmYzdjY2MwYjM2Li43MTlhZGJiYWU5MThi
MjdmN2VlYzcyZWQ0NzYyZWM3ZWY2ZjhlZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGVBVkZJbXBsLmgKQEAgLTMzLDIyICszMywyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIAotY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsIGZpbmFsIDogcHVibGljIE1lZGlhUmVjb3JkZXJQcml2YXRlIHsKK2NsYXNzIE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbCBmaW5hbAorICAgIDogcHVibGljIE1lZGlhUmVjb3JkZXJQcml2
YXRlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gY3JlYXRlKGNvbnN0
IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsPiBjcmVhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAg
fk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbCgpOwogCiBwcml2YXRlOgogICAgIE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbChSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+JiYsIFN0
cmluZyYmIGF1ZGlvVHJhY2tJZCwgU3RyaW5nJiYgdmlkZW9UcmFja0lkKTsKIAogICAgIGZyaWVu
ZCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBzdGQ6Om1ha2Vf
dW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4oUmVmPE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyPiYmLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwogCisgICAgLy8gTWVkaWFSZWNvcmRl
clByaXZhdGUKICAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwotICAgIHZvaWQgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpIGZpbmFsOwotICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJik+JiYpIGZpbmFs
OworICAgIHZvaWQgZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBm
aW5hbDsKKwogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKTsKICAgICB2b2lkIHN0b3BSZWNv
cmRpbmcoKTsKLSAgICAKKwogICAgIFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gbV93
cml0ZXI7CiAgICAgU3RyaW5nIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQ7CiAgICAgU3RyaW5nIG1f
cmVjb3JkZWRWaWRlb1RyYWNrSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAK
aW5kZXggZjJhYzhjMjdjYjQ1Yzk3YzJkYzAzYjhmZTRhNzM2OTE3ZDRiY2Y4Ny4uYTFkMGQxMGMw
NjExMWU2OGE0NmU1NDg1NGRjOTYxZWRlMjA3NmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrLmNwcApAQCAtMzMsMzAgKzMzLDUxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29u
c3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYpCitNZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2s6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayhNZWRpYVN0cmVhbVBy
aXZhdGUmIHN0cmVhbSkKIHsKLSAgICBnZW5lcmF0ZU1vY2tTdHJpbmcodHJhY2spOworICAgIGF1
dG8gc2VsZWN0ZWRUcmFja3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tzKHN0
cmVhbSk7CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spIHsKKyAgICAgICAgbV9h
dWRpb1RyYWNrSUQgPSBzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5pZCgpOworICAgICAgICBz
ZXRBdWRpb1NvdXJjZSgmc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjay0+c291cmNlKCkpOworICAg
IH0KKyAgICBpZiAoc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjaykKKyAgICAgICAgbV92aWRlb1Ry
YWNrSUQgPSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5pZCgpOwogfQogCi12b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlTW9jazo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpCitN
ZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6On5NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2soKQogewot
ICAgIGdlbmVyYXRlTW9ja1N0cmluZyh0cmFjayk7CisgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0
cik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tTdHJp
bmcoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQordm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZU1vY2s6OnN0b3BSZWNvcmRpbmcoKQoreworICAgIHNldEF1ZGlvU291cmNlKG51
bGxwdHIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6c2FtcGxlQnVmZmVy
VXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikKK3sK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9jayk7CisgICAgbV9idWZmZXIu
YXBwZW5kKCJWaWRlbyBUcmFjayBJRDogIik7CisgICAgbV9idWZmZXIuYXBwZW5kKG1fdmlkZW9U
cmFja0lEKTsKKyAgICBnZW5lcmF0ZU1vY2tDb3VudGVyU3RyaW5nKCk7Cit9CisKK3ZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpCiB7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2J1ZmZl
ckxvY2spOwotICAgIGlmICh0cmFjay50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8pCi0gICAgICAgIG1fYnVmZmVyLmFwcGVuZCgiQXVkaW8gVHJhY2sgSUQ6ICIpOwot
ICAgIGVsc2UKLSAgICAgICAgbV9idWZmZXIuYXBwZW5kKCJWaWRlbyBUcmFjayBJRDogIik7Ci0g
ICAgbV9idWZmZXIuYXBwZW5kKHRyYWNrLmlkKCkpOworICAgIG1fYnVmZmVyLmFwcGVuZCgiQXVk
aW8gVHJhY2sgSUQ6ICIpOworICAgIG1fYnVmZmVyLmFwcGVuZChtX2F1ZGlvVHJhY2tJRCk7Cisg
ICAgZ2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlTW9jazo6Z2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygpCit7CiAgICAgbV9idWZmZXIu
YXBwZW5kKCIgQ291bnRlcjogIik7CiAgICAgbV9idWZmZXIuYXBwZW5kTnVtYmVyKCsrbV9jb3Vu
dGVyKTsKICAgICBtX2J1ZmZlci5hcHBlbmQoIlxyXG4tLS0tLS0tLS1cclxuIik7CiB9CiAKLXZv
aWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEoRmV0Y2hE
YXRhQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fYnVmZmVyTG9jayk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZhbHVlKG1fYnVmZmVy
Lmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCmluZGV4IDRkYWVkNjcz
MWRlYTUzZTk3NTY2MWE0NGExMjcwZmYxOGRlMmQ4NDkuLmI3ZjNjMjE0OGUzOTllYTIyMzZkOTJj
ODY1OWY3OTg3MWJhZTE3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaApAQCAt
MzQsMTggKzM0LDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcml2YXRl
TW9jayBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7CitjbGFzcyBXRUJDT1JF
X0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2sgZmluYWwKKyAgICA6IHB1YmxpYyBNZWRp
YVJlY29yZGVyUHJpdmF0ZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrKE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0
ZU1vY2soKTsKKwogcHJpdmF0ZToKKyAgICAvLyBNZWRpYVJlY29yZGVyUHJpdmF0ZQogICAgIHZv
aWQgc2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1l
ZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkg
ZmluYWw7Ci0gICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8
U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmKT4mJikgZmluYWw7CisgICAgdm9pZCBmZXRj
aERhdGEoRmV0Y2hEYXRhQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworICAgIHZvaWQg
c3RvcFJlY29yZGluZygpIGZpbmFsOworCiAgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSgpOwot
ICAgIAotICAgIHZvaWQgZ2VuZXJhdGVNb2NrU3RyaW5nKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJik7CisgICAgdm9pZCBnZW5lcmF0ZU1vY2tDb3VudGVyU3RyaW5nKCk7CiAKICAgICBt
dXRhYmxlIExvY2sgbV9idWZmZXJMb2NrOwogICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXI7CiAg
ICAgdW5zaWduZWQgbV9jb3VudGVyIHsgMCB9OworICAgIFN0cmluZyBtX2F1ZGlvVHJhY2tJRDsK
KyAgICBTdHJpbmcgbV92aWRlb1RyYWNrSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IDJlZGQ0NTkyMmQz
Y2JkNzEyNTY4NmU4N2U1YTIzYjdhNWEwNTExZDUuLjIzOGQyMDU0NTY5Mzc2ZWNkYTMzZWFhMTZj
Y2FlM2E2ZmU3NjY0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3Bw
CkBAIC0zNSw5ICszNSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgOiBtX3N0cmVhbVRyYWNrKHRyYWNrKQorICAgICwgbV9h
dWRpb1NvdXJjZSh0cmFjay5zb3VyY2UoKSkKICAgICAsIG1faWQodHJhY2suaWQoKSkKICAgICAs
IG1fbGFiZWwodHJhY2subGFiZWwoKSkKLSAgICAsIG1fdGltZWxpbmVPZmZzZXQoTWVkaWFUaW1l
OjppbnZhbGlkVGltZSgpKQogICAgICwgbV9yZW5kZXJlciB7IEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyOjpjcmVhdGUoKSB9CiB7CiAgICAgdHJhY2suYWRkT2JzZXJ2ZXIoKnRoaXMpOwpA
QCAtNjIsNDUgKzYyLDM2IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6Y2xl
YXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2lzQ2xlYXJlZCA9IHRydWU7Ci0gICAgc3Ry
ZWFtVHJhY2soKS5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Ci0KLSAgICBtX3JlbmRlcmVyLT5jbGVh
cigpOwotfQotCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBsYXlJbnRlcm5h
bCgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmIChtX2lzUGxheWlu
ZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1BsYXlpbmcgPSB0cnVlOwotICAgIG1fYXV0
b1BsYXkgPSBmYWxzZTsKKyAgICAgICAgbV9hdWRpb1NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVP
YnNlcnZlcigqdGhpcyk7CiAKLSAgICBtX3JlbmRlcmVyLT5zdGFydCgpOworICAgIHN0cmVhbVRy
YWNrKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcmVuZGVyZXItPmNsZWFyKCk7CiB9
CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxheSgpCiB7Ci0gICAgcGxh
eUludGVybmFsKCk7CisgICAgbV9zaG91bGRQbGF5ID0gdHJ1ZTsKKyAgICB1cGRhdGVSZW5kZXJl
cigpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBhdXNlKCkKIHsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKCFtX2lzUGxheWluZykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKLSAgICBtX2F1dG9QbGF5
ID0gZmFsc2U7CisgICAgbV9zaG91bGRQbGF5ID0gZmFsc2U7CisgICAgdXBkYXRlUmVuZGVyZXIo
KTsKK30KIAotICAgIG1fcmVuZGVyZXItPnN0b3AoKTsKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBtX211dGVkID0gbXV0ZWQ7
CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogewogICAgIG1fcmVuZGVyZXItPnNldFZv
bHVtZSh2b2x1bWUpOworICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiB9CiAKIGZsb2F0IEF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW06OnZvbHVtZSgpIGNvbnN0CkBAIC0xMDksNDYgKzEwMCw1NSBA
QCBmbG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogfQog
CiAvLyBNYXkgZ2V0IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgotdm9pZCBBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUsIGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW06OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7Ci0gICAgaWYgKCFt
X2lzUGxheWluZykgewotICAgICAgICBtX3JlbmRlcmVyLT5zdG9wKCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KICAgICBtX3JlbmRlcmVyLT5wdXNoU2FtcGxlcyhzYW1wbGVUaW1lLCBhdWRp
b0RhdGEsIGRlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7Ci0KLSAgICBpZiAobV9hdXRvUGxheSAm
JiAhbV9oYXNTdGFydGVkQXV0b3BsYXkpIHsKLSAgICAgICAgbV9oYXNTdGFydGVkQXV0b3BsYXkg
PSB0cnVlOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgICAgIGlmIChtX2F1dG9QbGF5KQotICAgICAgICAg
ICAgICAgIHBsYXlJbnRlcm5hbCgpOwotICAgICAgICB9KTsKLSAgICB9CiB9CiAKIHZvaWQgQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKQogewotICAgIHVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpOworICAgIHVw
ZGF0ZVJlbmRlcmVyKCk7CiB9CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6
dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiB7Ci0gICAgdXBk
YXRlUmVuZGVyZXJNdXRlZFN0YXRlKCk7CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKK30KKwordm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikKK3sKKyAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCi12b2lkIEF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpCit2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyKCkKIHsKLSAgICBpZiAo
c3RyZWFtVHJhY2soKS5tdXRlZCgpIHx8IHN0cmVhbVRyYWNrKCkuZW5kZWQoKSB8fCAhc3RyZWFt
VHJhY2soKS5lbmFibGVkKCkpIHsKLSAgICAgICAgcGF1c2UoKTsKKyAgICBpZiAoIW1fc2hvdWxk
UGxheSB8fCAhdm9sdW1lKCkgfHwgbV9tdXRlZCB8fCBzdHJlYW1UcmFjaygpLm11dGVkKCkgfHwg
c3RyZWFtVHJhY2soKS5lbmRlZCgpIHx8ICFzdHJlYW1UcmFjaygpLmVuYWJsZWQoKSkgeworICAg
ICAgICBzdG9wUmVuZGVyZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBwbGF5KCk7
CisgICAgc3RhcnRSZW5kZXJlcigpOwogfQogCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW06OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQordm9pZCBBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzdGFydFJlbmRlcmVyKCkKIHsKLSAgICBwYXVzZSgpOwor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKG1faXNQbGF5aW5nKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2lzUGxheWluZyA9IHRydWU7CisgICAgbV9hdWRpb1NvdXJjZS0+
YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgbV9yZW5kZXJlci0+c3RhcnQoKTsK
K30KKwordm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzdG9wUmVuZGVyZXIoKQor
eworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKCFtX2lzUGxheWluZykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBtX2F1ZGlvU291
cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3JlbmRlcmVyLT5z
dG9wKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW0uaAppbmRleCBmMzI1YzZkZDY5Y2Y4MmNhMTgwNWFkMTUxZDE3NDZkYjZkMTZk
NzZkLi44YWRlMjVjNWRlZjZiZDFkNzNlNzVhOTdiOWRiM2UwYTQ0Nzk2NGI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCkBAIC0zNCw3ICszNCwxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOwogCi1jbGFz
cyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIEF1ZGlvVHJhY2tQ
cml2YXRlLCBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CitjbGFz
cyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsCisgICAgOiBwdWJsaWMgQXVkaW9U
cmFja1ByaXZhdGUKKyAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2Vy
dmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2
ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0pCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKQpAQCAtNDcs
OSArNTAsNiBAQCBwdWJsaWM6CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFt
VHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKLSAgICBNZWRpYVRpbWUg
dGltZWxpbmVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3RpbWVsaW5lT2Zmc2V0OyB9Ci0gICAg
dm9pZCBzZXRUaW1lbGluZU9mZnNldChjb25zdCBNZWRpYVRpbWUmIG9mZnNldCkgeyBtX3RpbWVs
aW5lT2Zmc2V0ID0gb2Zmc2V0OyB9Ci0KICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICB2b2lkIHBs
YXkoKTsKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0
KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCBt
dXRlZCkgeyBtX211dGVkID0gbXV0ZWQ7IH0KKyAgICB2b2lkIHNldE11dGVkKGJvb2wpOwogICAg
IGJvb2wgbXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkOyB9CiAKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKQEAgLTc3LDMwICs3NywzMiBAQCBwcm90ZWN0ZWQ6CiAgICAgaW50IHRyYWNr
SW5kZXgoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2luZGV4OyB9CiAKICAgICAvLyBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRm
b3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmlu
YWw7CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7
CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpICBm
aW5hbDsKICAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSAgZmluYWw7CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsKLSAgICB2
b2lkIHVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpOworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgdm9pZCBzdGFydFJlbmRlcmVy
KCk7CisgICAgdm9pZCBzdG9wUmVuZGVyZXIoKTsKKyAgICB2b2lkIHVwZGF0ZVJlbmRlcmVyKCk7
CiAKICAgICAvLyBNYWluIHRocmVhZCB3cml0YWJsZSBtZW1iZXJzCiAgICAgYm9vbCBtX2lzUGxh
eWluZyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2F1dG9QbGF5IHsgZmFsc2UgfTsKKyAgICBib29s
IG1fc2hvdWxkUGxheSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNDbGVhcmVkIHsgZmFsc2UgfTsKIAogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4gbV9zdHJlYW1UcmFjazsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9h
dWRpb1NvdXJjZTsKICAgICBBdG9tU3RyaW5nIG1faWQ7CiAgICAgQXRvbVN0cmluZyBtX2xhYmVs
OwogICAgIGludCBtX2luZGV4IHsgMCB9OwotICAgIE1lZGlhVGltZSBtX3RpbWVsaW5lT2Zmc2V0
OwogCiAgICAgLy8gQXVkaW8gdGhyZWFkIG1lbWJlcnMKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IG1fcmVuZGVyZXI7Ci0gICAgYm9vbCBtX2hhc1N0
YXJ0ZWRBdXRvcGxheSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAppbmRl
eCBhZGNmMTJiMDFlZTdhZTg2Y2EzZGY0NWIyNzgxNzZjYWFkMDRmMzY0Li43YjJkMGM3OTZiYTli
MTVlNzIzYjQ0NTU4YWRlYzc0YjExZjgyOWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKQEAgLTEy
MSw2ICsxMjEsMTIgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hUcmFjayhjb25z
dCBGdW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2sKICAgICAgICAgY2FsbGJhY2so
KnRyYWNrKTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hUcmFjayhjb25z
dCBGdW5jdGlvbjx2b2lkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik+JiBjYWxsYmFjaykKK3sK
KyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgY2Fs
bGJhY2soKnRyYWNrKTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2
ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGllbnRPcHRpb24pCiB7CiAgICAgYm9v
bCBuZXdBY3RpdmVTdGF0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCBjZTZiNzEwODY1
MTFlZjI5M2I4OTg2NTA5NjQ2MjhmZDc2OGQyM2FkLi43OTI4OWI4MTIzNjM5ZGI5NjJmZDEyZDI5
Mjc4NzM3ODQzMDkwMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtODQsNiArODQsNyBAQCBwdWJs
aWM6CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgdHJhY2tzKCkgY29uc3Q7CiAg
ICAgYm9vbCBoYXNUcmFja3MoKSBjb25zdCB7IHJldHVybiAhbV90cmFja1NldC5pc0VtcHR5KCk7
IH0KICAgICB2b2lkIGZvckVhY2hUcmFjayhjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJik+JikgY29uc3Q7CisgICAgdm9pZCBmb3JFYWNoVHJhY2soY29u
c3QgRnVuY3Rpb248dm9pZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpPiYpOwogICAgIE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlKiBhY3RpdmVWaWRlb1RyYWNrKCkgeyByZXR1cm4gbV9hY3RpdmVW
aWRlb1RyYWNrOyB9CiAKICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY3Rp
dmU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAppbmRleCBjOTljMTZjNmQ4MGNhNDFl
NDJjN2RkMWU0MjBiZjEyYTg5Mjg1ODU4Li40ZDA4YWQ3MzM2Y2VhNDk2MDBmYWI5YzcxMGY5N2My
MDAzZjc0ZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCkBAIC03OCwxNiArNzgs
MTAgQEAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6On5NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSgp
CiAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6Zm9yRWFjaE9ic2VydmVyKGNvbnN0IFdURjo6RnVuY3Rpb248dm9p
ZChPYnNlcnZlciYpPiYgYXBwbHkpIGNvbnN0Cit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Ojpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYgYXBwbHkp
IGNvbnN0CiB7Ci0gICAgVmVjdG9yPE9ic2VydmVyKj4gb2JzZXJ2ZXJzQ29weTsKLSAgICB7Ci0g
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKLSAgICAgICAg
b2JzZXJ2ZXJzQ29weSA9IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycyk7Ci0gICAgfQotICAgIGZv
ciAoYXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnNDb3B5KSB7Ci0gICAgICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBv
YnNlcnZlciBoYXMgbm90IGJlZW4gZGVzdHJveWVkLgorICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycykp
IHsKICAgICAgICAgaWYgKCFtX29ic2VydmVycy5jb250YWlucyhvYnNlcnZlcikpCiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgYXBwbHkoKm9ic2VydmVyKTsKQEAgLTk2LDEzICs5MCwx
MyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpmb3JFYWNoT2JzZXJ2ZXIoY29uc3Qg
V1RGOjpGdW5jdGlvbjx2b2lkKE9ic2VydmVyJgogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjphZGRPYnNlcnZlcihNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2Vy
dmVyKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIp
OwogfQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpyZW1vdmVPYnNlcnZlcihNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOwogfQogCkBAIC0yNjEsMjYg
KzI1NSwxMiBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjp2aWRlb1NhbXBsZUF2YWls
YWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiAgICAgfSk7CiB9CiAKLS8vIE1heSBnZXQg
Y2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCi12b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQordm9pZCBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZTo6aGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpCiB7Ci0gICAgaWYgKCFtX2hh
c1NlbnRTdGFydFByb2R1Y2VkRGF0YSkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtU
aGlzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKCFtX2hhdmVQ
cm9kdWNlZERhdGEpIHsKLSAgICAgICAgICAgICAgICBtX2hhdmVQcm9kdWNlZERhdGEgPSB0cnVl
OwotICAgICAgICAgICAgICAgIHVwZGF0ZVJlYWR5U3RhdGUoKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIG1faGFzU2VudFN0YXJ0UHJvZHVjZWREYXRhID0gdHJ1ZTsKLSAgICAgICAgfSk7
CisgICAgaWYgKG1faGF2ZVByb2R1Y2VkRGF0YSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKLSAgICAgICAgb2JzZXJ2
ZXIuYXVkaW9TYW1wbGVzQXZhaWxhYmxlKCp0aGlzLCBtZWRpYVRpbWUsIGRhdGEsIGRlc2NyaXB0
aW9uLCBzYW1wbGVDb3VudCk7Ci0gICAgfSk7CisgICAgbV9oYXZlUHJvZHVjZWREYXRhID0gdHJ1
ZTsKKyAgICB1cGRhdGVSZWFkeVN0YXRlKCk7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OnVwZGF0ZVJlYWR5U3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKaW5kZXgg
ZjliNWQxMDE1MTRlNzFmMjNjN2I2YTNhZjJjZTIxNjkwZDRlNTJiMy4uNTE2ZWVjNzY3NTNjNjc4
MWI1ZmE3YjAxYjEzYTM4NmU0YWExNDVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBA
IC02MiwxNSArNjIsMTIgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmFi
bGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAgdmlydHVh
bCB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRp
YVNhbXBsZSYpIHsgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgeyB9OwotCi0gICAgICAgIC8vIE1heSBnZXQgY2FsbGVk
IG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBz
aXplX3QpIHsgfTsKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiYmKTsKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjcmVhdGUoUmVm
PGNvbnN0IExvZ2dlcj4mJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYsIFN0cmluZyYmIGlk
KTsKIAotICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB+TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUoKTsKIAogICAgIGNvbnN0
IFN0cmluZyYgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgY29uc3QgU3RyaW5nJiBs
YWJlbCgpIGNvbnN0OwpAQCAtMTAwLDYgKzk3LDcgQEAgcHVibGljOgogICAgIFJlZjxNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZT4gY2xvbmUoKTsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNv
dXJjZSgpIHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9CisgICAgY29uc3QgUmVhbHRpbWVNZWRp
YVNvdXJjZSYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UuZ2V0KCk7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25zdDsKIAog
ICAgIHZvaWQgZW5kVHJhY2soKTsKQEAgLTEzMiwxNSArMTMwLDE1IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUoUmVmPGNvbnN0IExvZ2dlcj4mJiwgUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYsIFN0cmluZyYmIGlkKTsKIAotICAgIC8vIFJlYWx0aW1l
TWVkaWFTb3VyY2VPYnNlcnZlcgorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVy
CiAgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVk
KCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lk
IHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsOwogICAgIGJvb2wgcHJldmVudFNvdXJjZUZy
b21TdG9wcGluZygpIGZpbmFsOwogICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFT
YW1wbGUmKSBmaW5hbDsKLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkgZmlu
YWw7CisgICAgdm9pZCBoYXNTdGFydGVkUHJvZHVjaW5nQXVkaW9EYXRhKCkgZmluYWw7CiAKICAg
ICB2b2lkIHVwZGF0ZVJlYWR5U3RhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA4
YzdmOGIwZGU3OGU0ZTE4ZDU5YjlhNmIwMDQ0M2E1MzI3MzQ4OTQ4Li45ZmRiZjAxNTNjNjhjYjZi
M2I5OGIyNGIwNWZkOTA5N2QwZGM1ZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtNjAs
MTUgKzYwLDI5IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UoVHlw
ZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpCiAgICAgbV9oYXNoZWRJRCA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdCht
X3BlcnNpc3RlbnRJRCwgbV9pZEhhc2hTYWx0KTsKIH0KIAordm9pZCBSZWFsdGltZU1lZGlhU291
cmNlOjphZGRBdWRpb1NhbXBsZU9ic2VydmVyKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2Ft
cGxlT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7Cisg
ICAgbV9hdWRpb1NhbXBsZU9ic2VydmVycy5hZGQoJm9ic2VydmVyKTsKK30KKwordm9pZCBSZWFs
dGltZU1lZGlhU291cmNlOjpyZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2F1ZGlvU2FtcGxlT2Jz
ZXJ2ZXJzTG9jayk7CisgICAgbV9hdWRpb1NhbXBsZU9ic2VydmVycy5yZW1vdmUoJm9ic2VydmVy
KTsKK30KKwogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjphZGRPYnNlcnZlcihSZWFsdGltZU1l
ZGlhU291cmNlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX29ic2VydmVyc0xvY2spOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAg
bV9vYnNlcnZlcnMuYWRkKCZvYnNlcnZlcik7CiB9CiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVtb3ZlT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXImIG9ic2VydmVy
KQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIp
OwogICAgIGlmIChtX29ic2VydmVycy5pc0VtcHR5KCkpCiAgICAgICAgIHN0b3BCZWluZ09ic2Vy
dmVkKCk7CkBAIC0xMTYsMTYgKzEzMCwxMCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNl
dEludGVycnVwdGVkRm9yVGVzdGluZyhib29sIGludGVycnVwdGVkKQogICAgIG5vdGlmeU11dGVk
Q2hhbmdlKGludGVycnVwdGVkKTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpmb3JF
YWNoT2JzZXJ2ZXIoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JiBhcHBseSkg
Y29uc3QKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Zm9yRWFjaE9ic2VydmVyKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KSBjb25zdAogewotICAgIFZlY3RvcjxPYnNl
cnZlcio+IG9ic2VydmVyc0NvcHk7Ci0gICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fb2JzZXJ2ZXJzTG9jayk7Ci0gICAgICAgIG9ic2VydmVyc0NvcHkgPSBjb3B5VG9WZWN0
b3IobV9vYnNlcnZlcnMpOwotICAgIH0KLSAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogb2JzZXJ2
ZXJzQ29weSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fb2JzZXJ2ZXJzTG9j
ayk7Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgb2JzZXJ2ZXIgaGFzIG5vdCBiZWVuIGRlc3Ry
b3llZC4KKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGZvciAoYXV0byogb2JzZXJ2
ZXIgOiBjb3B5VG9WZWN0b3IobV9vYnNlcnZlcnMpKSB7CiAgICAgICAgIGlmICghbV9vYnNlcnZl
cnMuY29udGFpbnMob2JzZXJ2ZXIpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGFw
cGx5KCpvYnNlcnZlcik7CkBAIC0xODIsOSArMTkwLDIyIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKQogCiB2
b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRp
YVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMp
CiB7Ci0gICAgZm9yRWFjaE9ic2VydmVyKFsmXShhdXRvJiBvYnNlcnZlcikgewotICAgICAgICBv
YnNlcnZlci5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9EYXRhLCBkZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOwotICAgIH0pOworICAgIGlmICghbV9oYXNTZW50U3RhcnRQcm9k
dWNlZEF1ZGlvRGF0YSkgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmIChtX2hhc1NlbnRTdGFydFByb2R1
Y2VkQXVkaW9EYXRhKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1faGFz
U2VudFN0YXJ0UHJvZHVjZWRBdWRpb0RhdGEgPSB0cnVlOworICAgICAgICAgICAgZm9yRWFjaE9i
c2VydmVyKFsmXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICAgICAgICAgIG9ic2VydmVyLmhh
c1N0YXJ0ZWRQcm9kdWNpbmdBdWRpb0RhdGEoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYXVkaW9TYW1wbGVPYnNl
cnZlcnNMb2NrKTsKKyAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogbV9hdWRpb1NhbXBsZU9ic2Vy
dmVycykKKyAgICAgICAgb2JzZXJ2ZXItPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBhdWRp
b0RhdGEsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RhcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDFiOWQ2YTI0NDljNTIx
MzY0ZGQzMmNiNDBiMzk2NzY5NWFmMjU0MGMuLjU3NjA1Mzg3MzExZmQzMTcwOGUwY2VhZTFlMWVi
YTQ3MWExMGJmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTY5LDcgKzY5LDcgQEAgc3RydWN0
IENhcHR1cmVTb3VyY2VPckVycm9yOwogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1l
ZGlhU291cmNlCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRp
YVNvdXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpblJ1bkxvb3A+Ci0gICAgLCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4KKyAgICAsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxSZWFsdGltZU1lZGlhU291cmNlLCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0
aW9uOjpFYWdlcj4KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByb3RlY3RlZCBM
b2dnZXJIZWxwZXIKICNlbmRpZgpAQCAtOTIsOCArOTIsMTQgQEAgcHVibGljOgogICAgICAgICAv
LyBDYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlkZW9T
YW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSB7IH0KIAorICAgICAgICB2aXJ0dWFsIHZvaWQg
aGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpIHsgfQorICAgIH07CisgICAgY2xhc3MgQXVk
aW9TYW1wbGVPYnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5BdWRpb1Nh
bXBsZU9ic2VydmVyKCkgPSBkZWZhdWx0OworCiAgICAgICAgIC8vIE1heSBiZSBjYWxsZWQgb24g
YSBiYWNrZ3JvdW5kIHRocmVhZC4KLSAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QgLypudW1iZXJPZkZyYW1lcyovKSB7IH0K
KyAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCBzaXplX3QgLypudW1iZXJPZkZyYW1lcyovKSA9IDA7CiAgICAgfTsKIAogICAgIHZpcnR1
YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSA9IGRlZmF1bHQ7CkBAIC0xMzEsNiArMTM3LDkgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJik7CiAKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoQXVkaW9TYW1wbGVP
YnNlcnZlciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQXVkaW9TYW1wbGVPYnNl
cnZlcihBdWRpb1NhbXBsZU9ic2VydmVyJik7CisKICAgICBjb25zdCBJbnRTaXplIHNpemUoKSBj
b25zdDsKICAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpOwogCkBAIC0yNTMsOCArMjYy
LDExIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGVyc2lzdGVudElEOwogICAgIFR5cGUgbV90
eXBlOwogICAgIFN0cmluZyBtX25hbWU7Ci0gICAgbXV0YWJsZSBSZWN1cnNpdmVMb2NrIG1fb2Jz
ZXJ2ZXJzTG9jazsKICAgICBIYXNoU2V0PE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CisKKyAgICBt
dXRhYmxlIFJlY3Vyc2l2ZUxvY2sgbV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2s7CisgICAgSGFz
aFNldDxBdWRpb1NhbXBsZU9ic2VydmVyKj4gbV9hdWRpb1NhbXBsZU9ic2VydmVyczsKKwogICAg
IEludFNpemUgbV9zaXplOwogICAgIEludFNpemUgbV9pbnRyaW5zaWNTaXplOwogICAgIGRvdWJs
ZSBtX2ZyYW1lUmF0ZSB7IDMwIH07CkBAIC0yNzIsNiArMjg0LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faW50ZXJydXB0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYXB0dXJlRGlkRmFpbGVk
IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNFbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hh
c1NlbnRTdGFydFByb2R1Y2VkQXVkaW9EYXRhIHsgZmFsc2UgfTsKIH07CiAKIHN0cnVjdCBDYXB0
dXJlU291cmNlT3JFcnJvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApp
bmRleCBjZGZlMjNmYTRhY2UwYjZkYTZiZTllNzk0NTY4ZGU4NDBmYTRiNjZlLi5jMjdlNjBmNjZj
Y2NlOTI2MjBlMjY1NzhmZjU4YTNiMGU1NzQ4MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcmkK
IAogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjp+UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlKCkKIHsKLUFTU0VSVCghbV9hdWRpb1NvdXJjZS0+aGFzT2JzZXJ2ZXIoKnRoaXMpKTsKKyAg
ICBBU1NFUlQoIW1fYXVkaW9Tb3VyY2UtPmhhc09ic2VydmVyKCp0aGlzKSk7CiAjaWYgQVNTRVJU
X0VOQUJMRUQKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKICNlbmRp
ZgpAQCAtNTgsMTEgKzU4LDEzIEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpv
YnNlcnZlU291cmNlKCkKIHsKICAgICBBU1NFUlQoIW1fYXVkaW9Tb3VyY2UtPmhhc09ic2VydmVy
KCp0aGlzKSk7CiAgICAgbV9hdWRpb1NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1f
YXVkaW9Tb3VyY2UtPnNvdXJjZSgpLmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogICAg
IGluaXRpYWxpemVDb252ZXJ0ZXIoKTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9T
b3VyY2U6OnVub2JzZXJ2ZVNvdXJjZSgpCiB7CisgICAgbV9hdWRpb1NvdXJjZS0+c291cmNlKCku
cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiAgICAgbV9hdWRpb1NvdXJjZS0+cmVt
b3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5o
CmluZGV4IDgxNjc2MTNkYWQ4ZjIzMjNmMjFmYjk3MTIwNzc2NTg0NDE0M2MwNjIuLjc3ZmE5N2Ey
MDRmMDg1MTNmOTFhNjllMmFhMjBhMmIyMzRkMGU5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZS5oCkBAIC01NSw2ICs1NSw3IEBAIGNsYXNzIFJlYWx0aW1lT3V0Z29pbmdBdWRp
b1NvdXJjZQogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lT3V0Z29p
bmdBdWRpb1NvdXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KICAgICAsIHB1Ymxp
YyB3ZWJydGM6OkF1ZGlvU291cmNlSW50ZXJmYWNlCiAgICAgLCBwcml2YXRlIE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpb1NhbXBsZU9ic2VydmVyCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBw
cml2YXRlIExvZ2dlckhlbHBlcgogI2VuZGlmCkBAIC0xMDgsNyArMTA5LDYgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBzb3VyY2VFbmFibGVk
Q2hhbmdlZCgpOwotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KSB7IH07CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGluZ0J1
ZmZlcmVkQXVkaW9EYXRhSGlnaExpbWl0KCkgeyByZXR1cm4gZmFsc2U7IH07CiAgICAgdmlydHVh
bCBib29sIGlzUmVhY2hpbmdCdWZmZXJlZEF1ZGlvRGF0YUxvd0xpbWl0KCkgeyByZXR1cm4gZmFs
c2U7IH07CkBAIC0xMTgsNyArMTE4LDYgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgQVBJCiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgc291cmNlTXV0ZWRDaGFuZ2VkKCk7IH0KICAg
ICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5h
bCB7IHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCk7IH0KLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWls
YWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1l
LCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkgeyBhdWRpb1NhbXBsZXNBdmFp
bGFibGUobWVkaWFUaW1lLCBkYXRhLCBkZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQpOyB9CiAgICAg
dm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9CiAgICAg
dm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFs
IHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmgKaW5kZXggMDMwNzAzZDU0MDBhNDY2YTk3MGEw
NjljNzc0MzRjMGEwNGY3Mjc1MS4uZTdkODg4OTI0NmY0YzFlODgwYzQ3ODI2ZTM2MjM2ZjU2ZjMw
YzJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViQXVkaW9Tb3VyY2VQcm92aWRlcj4sIHB1YmxpYyBBdWRp
b1NvdXJjZVByb3ZpZGVyIHsKK2NsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViQXVkaW9Tb3VyY2VQcm92aWRlciwgV1RGOjpEZXN0cnVj
dGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBBdWRpb1NvdXJjZVByb3ZpZGVyIHsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCmlu
ZGV4IDllZDVmZWFjYTVlNGVhZmI3MWQ2Mzk2NWU1OTRhYTVlMmU0OWE5ZjguLjExNmI5NTJmMDFi
Y2U3NWZiNzVlY2I5MjBjNjFlNjc0N2RlMGUxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcApAQCAtMTA2LDcgKzEwNiw4IEBAIEdzdFN0
cmVhbSogd2Via2l0TWVkaWFTdHJlYW1OZXcoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHRyYWNr
KQogfQogCiBjbGFzcyBXZWJLaXRNZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIKLSAgICA6IHB1Ymxp
YyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgeworICAgIDogcHVibGljIE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIHZpcnR1YWwgfldlYktpdE1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlcigp
IHsgfTsKQEAgLTEzMSw3ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHdlYmtpdE1lZGlhU3Ry
ZWFtU3JjUHVzaFZpZGVvU2FtcGxlKG1fbWVkaWFTdHJlYW1TcmMsIGdzdHNhbXBsZSk7CiAgICAg
fQogCi0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbAorICAgIHZvaWQg
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3Qp
IGZpbmFsCiAgICAgewogICAgICAgICBhdXRvIGF1ZGlvZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IEdTdHJlYW1lckF1ZGlvRGF0YSY+KGF1ZGlvRGF0YSk7CiAKQEAgLTM3NSw5ICszNzYsMTAgQEAg
c3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJlYW1TcmNGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3Qp
CiAKICAgICBHU1RfT0JKRUNUX0xPQ0soc2VsZik7CiAgICAgaWYgKHNlbGYtPnN0cmVhbSkgewot
ICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+c3RyZWFtLT50cmFja3MoKSkKKyAgICAg
ICAgZm9yIChhdXRvJiB0cmFjayA6IHNlbGYtPnN0cmVhbS0+dHJhY2tzKCkpIHsKKyAgICAgICAg
ICAgIHRyYWNrLT5zb3VyY2UoKS5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCpzZWxmLT5tZWRp
YVN0cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOwogICAgICAgICAgICAgdHJhY2stPnJlbW92ZU9i
c2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOwotCisgICAgICAg
IH0KICAgICAgICAgc2VsZi0+c3RyZWFtLT5yZW1vdmVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJl
YW1PYnNlcnZlcik7CiAgICAgICAgIHNlbGYtPnN0cmVhbSA9IG51bGxwdHI7CiAgICAgfQpAQCAt
Mzk2LDEwICszOTgsMTQgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdlYmtpdE1lZGlh
U3RyZWFtU3JjQ2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwKIAogICAgICAgICBHU1Rf
T0JKRUNUX0xPQ0soc2VsZik7CiAgICAgICAgIGlmIChzZWxmLT5zdHJlYW0pIHsKLSAgICAgICAg
ICAgIGZvciAoYXV0byYgdHJhY2sgOiBzZWxmLT5zdHJlYW0tPnRyYWNrcygpKQorICAgICAgICAg
ICAgZm9yIChhdXRvJiB0cmFjayA6IHNlbGYtPnN0cmVhbS0+dHJhY2tzKCkpIHsKKyAgICAgICAg
ICAgICAgICB0cmFjay0+c291cmNlKCkucmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqc2VsZi0+
bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKICAgICAgICAgICAgICAgICB0cmFjay0+
cmVtb3ZlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoc2VsZi0+dHJhY2spCisgICAgICAgICAgICB9CisgICAgICAgIH0g
ZWxzZSBpZiAoc2VsZi0+dHJhY2spIHsKKyAgICAgICAgICAgIHNlbGYtPnRyYWNrLT5zb3VyY2Uo
KS5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2
ZXIuZ2V0KCkpOwogICAgICAgICAgICAgc2VsZi0+dHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxm
LT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOworICAgICAgICB9CiAgICAgICAgIEdT
VF9PQkpFQ1RfVU5MT0NLKHNlbGYpOwogICAgIH0KIApAQCAtNTQzLDkgKzU0OSwxMCBAQCBzdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0TWVkaWFTdHJlYW1TcmNTZXR1cFNyYyhXZWJLaXRNZWRpYVN0cmVh
bVNyYyogc2VsZiwKICAgICB9IGVsc2UKICAgICAgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNBZGRQ
YWQoc2VsZiwgcGFkLmdldCgpLCBwYWRfdGVtcGxhdGUpOwogCi0gICAgaWYgKG9ic2VydmVfdHJh
Y2spCisgICAgaWYgKG9ic2VydmVfdHJhY2spIHsKICAgICAgICAgdHJhY2stPmFkZE9ic2VydmVy
KCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOwotCisgICAgICAgIHRyYWNr
LT5zb3VyY2UoKS5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNr
T2JzZXJ2ZXIuZ2V0KCkpOworICAgIH0KICAgICBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhf
cGFyZW50KGVsZW1lbnQpOwogICAgIHJldHVybiBUUlVFOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAppbmRleCBmZjMwZWIzN2ViNzBkOWMxZjRjNzhiNGFh
MTIxNGE0MWUxNjkyNDBkLi4xYzFjZTczMTBlNzBjYjc3NzMwZjYzYjdlMmM2ODk1ZWU2MGZmNGFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtNDYs
NyArNDYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9TYW1wbGVEYXRhU291
cmNlOwogY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwogCi1jbGFzcyBXRUJDT1JFX0VY
UE9SVCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgeworY2xh
c3MgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMgZmluYWwKKyAg
ICA6IHB1YmxpYyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyCisgICAgLCBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICAsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxl
T2JzZXJ2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM+IGNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOwogICAgIHZpcnR1YWwg
fldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCk7CkBAIC02MiwxMSArNjUsMTMgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgZmlu
YWw7CiAKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAgICB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgZmluYWwgeyB9CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQogICAgIHZvaWQgdHJhY2tTZXR0aW5nc0No
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KLSAgICB2b2lkIHRyYWNr
RW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsK
KworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2
b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFs
OwogCiAgICAgc2l6ZV90IG1fbGlzdEJ1ZmZlclNpemUgeyAwIH07CiAgICAgT3B0aW9uYWw8Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uPiBtX2lucHV0RGVzY3JpcHRpb247CkBAIC03Nyw4ICs4Miwx
MCBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fcmVhZENvdW50IHsgMCB9OwogICAgIEF1ZGlv
U291cmNlUHJvdmlkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlKiBtX2NhcHR1cmVTb3VyY2UgeyBudWxscHRyIH07CisgICAgUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgIExvY2sgbV9tdXRleDsKICAgICBib29s
IG1fY29ubmVjdGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRl
eCBhZTkwMmQxYmQzYWUyZGY5M2NmMTI0ODE2MWNiMzcyMGU5ODY5NDk0Li43OTBkYmQxYjNjOTBm
YzcyNDk0ZGIxZmUzMmQ2YzJiN2IyMTBiYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC01NCwxMSArNTQsMTYgQEAgUmVmPFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDPiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRl
KE1lZGlhU3QKIAogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OldlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2UpCiAgICAgOiBt
X2NhcHR1cmVTb3VyY2UoJnNvdXJjZSkKKyAgICAsIG1fc291cmNlKHNvdXJjZS5zb3VyY2UoKSkK
KyAgICAsIG1fZW5hYmxlZChzb3VyY2UuZW5hYmxlZCgpKQogeworICAgIG1fc291cmNlLT5hZGRB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKIH0KIAogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiB7CisgICAgbV9zb3VyY2Ut
PnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworCiAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX211dGV4KTsKIAogICAgIGlmIChtX2Nvbm5lY3RlZCAmJiBtX2NhcHR1cmVTb3Vy
Y2UpCkBAIC0xNjUsMTAgKzE3MCwxNSBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjp1bnByZXBhcmUoKQogICAgIH0KIH0KIAordm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJh
Y2spCit7CisgICAgbV9lbmFibGVkID0gdHJhY2suZW5hYmxlZCgpOworfQorCiAvLyBNYXkgZ2V0
IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgotdm9pZCBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JiB0cmFjaywgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVD
b3VudCkKK3ZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNv
dW50KQogewotICAgIGlmICghdHJhY2suZW5hYmxlZCgpKQorICAgIGlmICghbV9lbmFibGVkIHx8
ICFtX2Nvbm5lY3RlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGRlc2NyaXB0aW9u
LnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVk
aW9TdHJlYW1CYXNpY1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IDFjN2ZjMDBmNjViYjUyMmM1ODc1NTRkZTg5YTE2NzMxMjFlNGJkOTcuLjhkOWQ3NjcxM2EyNWFi
ZmM5NTgyNjQ4ZDBmYTE2NjU1OGY2ZjgxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTQ2Niw4ICs0NjYsMTAgQEAgUmVmPEludGVybmFscz4gSW50ZXJuYWxzOjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogSW50ZXJuYWxzOjp+SW50ZXJuYWxzKCkKIHsKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotICAgIGlmIChtX3RyYWNrKQotICAgICAgICBtX3RyYWNrLT5z
b3VyY2UoKS5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgaWYgKG1fdHJhY2tTb3VyY2UpIHsK
KyAgICAgICAgbV90cmFja1NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBt
X3RyYWNrU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CiAj
ZW5kaWYKIH0KIApAQCAtMTYzOSw5ICsxNjQxLDkgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE1lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihib29sIGVuYWJsZWQpCiAgICAgICAgIHBh
Z2UtPnNldHRpbmdzKCkuc2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKGVu
YWJsZWQpOwogfQogCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRl
PiBjcmVhdGVSZWNvcmRlck1vY2tTb3VyY2UoKQorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlUmVjb3JkZXJNb2NrU291cmNlKE1lZGlhU3RyZWFtUHJp
dmF0ZSYgc3RyZWFtKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrPihuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrKTsKKyAgICByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jaz4obmV3IE1lZGlhUmVjb3Jk
ZXJQcml2YXRlTW9jayhzdHJlYW0pKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldEN1c3RvbVBy
aXZhdGVSZWNvcmRlckNyZWF0b3IoKQpAQCAtNDkyNSw4ICs0OTI3LDkgQEAgdm9pZCBJbnRlcm5h
bHM6OnNldENhbWVyYU1lZGlhU3RyZWFtVHJhY2tPcmllbnRhdGlvbihNZWRpYVN0cmVhbVRyYWNr
JiB0cmFjaywgaW4KIAogdm9pZCBJbnRlcm5hbHM6Om9ic2VydmVNZWRpYVN0cmVhbVRyYWNrKE1l
ZGlhU3RyZWFtVHJhY2smIHRyYWNrKQogewotICAgIG1fdHJhY2sgPSAmdHJhY2s7Ci0gICAgbV90
cmFjay0+c291cmNlKCkuYWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fdHJhY2tTb3VyY2UgPSAm
dHJhY2suc291cmNlKCk7CisgICAgbV90cmFja1NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgIG1fdHJhY2tTb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2
b2lkIEludGVybmFsczo6Z3JhYk5leHRNZWRpYVN0cmVhbVRyYWNrRnJhbWUoVHJhY2tGcmFtZVBy
b21pc2UmJiBwcm9taXNlKQpAQCAtNDk0MCw3ICs0OTQzLDcgQEAgdm9pZCBJbnRlcm5hbHM6OnZp
ZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgaWYgKCFtX25leHRU
cmFja0ZyYW1lUHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byYgdmlkZW9TZXR0
aW5ncyA9IG1fdHJhY2stPnNvdXJjZSgpLnNldHRpbmdzKCk7CisgICAgYXV0byYgdmlkZW9TZXR0
aW5ncyA9IG1fdHJhY2tTb3VyY2UtPnNldHRpbmdzKCk7CiAgICAgaWYgKCF2aWRlb1NldHRpbmdz
LndpZHRoKCkgfHwgIXZpZGVvU2V0dGluZ3MuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGNiNmUxNDdjZDY2ZmVkZjEyY2Ex
NWRiYzgyZjVkMTZhYzZkOGE2OTYuLjJlOGFhMjI4NTVjZDllZTViYTQxMmE3NzBjZDU1MGVkZTY3
MDEyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTIzLDYgKzEyMyw3IEBA
IHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogY2xhc3MgSW50ZXJu
YWxzIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8SW50ZXJuYWxzPiwgcHJpdmF0ZSBDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlcgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBwcml2
YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKICNlbmRpZgogICAgIHsKIHB1YmxpYzoK
QEAgLTk2OSwxNSArOTcwLDE2IEBAIHByaXZhdGU6CiAKICAgICBFeGNlcHRpb25PcjxSZW5kZXJl
ZERvY3VtZW50TWFya2VyKj4gbWFya2VyQXQoTm9kZSYsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlw
ZSwgdW5zaWduZWQgaW5kZXgpOwogCi0gICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2
ZXIgQVBJCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAvLyBSZWFsdGltZU1lZGlhU291
cmNlOjpPYnNlcnZlciBBUEkKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2Ft
cGxlJikgZmluYWw7CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNl
cnZlciBBUEkKICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
LCBzaXplX3QpIGZpbmFsIHsgbV90cmFja0F1ZGlvU2FtcGxlQ291bnQrKzsgfQogCiAgICAgT3Jp
ZW50YXRpb25Ob3RpZmllciBtX29yaWVudGF0aW9uTm90aWZpZXI7CiAgICAgdW5zaWduZWQgbG9u
ZyBtX3RyYWNrVmlkZW9TYW1wbGVDb3VudCB7IDAgfTsKICAgICB1bnNpZ25lZCBsb25nIG1fdHJh
Y2tBdWRpb1NhbXBsZUNvdW50IHsgMCB9OwotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBt
X3RyYWNrOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3RyYWNrU291cmNlOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxUcmFja0ZyYW1lUHJvbWlzZT4gbV9uZXh0VHJhY2tGcmFtZVBy
b21pc2U7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAyOWY2NmJj
YjUzNzRkMDNlODA0MDRkZDcwM2U2YzgzYTNlNGZhOTNlLi5kMjk0NDk3MzJlMGRlNzBjODdlMjg0
MDMzZDliMTA0OTFjNjVhN2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNTAs
NiArNTAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkKICAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlh
U291cmNlOjpPYnNlcnZlcgorICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
U2FtcGxlT2JzZXJ2ZXIKICAgICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xp
ZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTYwLDExICs2
MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U+KHRoaXMpKSkKICAgICB7CiAgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7
CisgICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKICAgICB9
CiAKICAgICB+U291cmNlUHJveHkoKQogICAgIHsKICAgICAgICAgc3RvcmFnZSgpLmludmFsaWRh
dGUoKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMp
OwogICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByaXZhdGUuY3BwCmluZGV4IDY5NjgwZjI0ZjgwZGVhOTM3NDI5OTUyOWZlOWY2Njc3
YTEyY2RjZDAuLmZjZjQ4NGFkNDA4ZGFjN2YwZDIxMWE5MmYzM2M0NDZhMDgwNDA5ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRp
YVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK01lZGlh
UmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUm
IHN0cmVhbSkKICAgICA6IG1faWRlbnRpZmllcihNZWRpYVJlY29yZGVySWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSkKICAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKIHsKQEAgLTY0LDE1ICs2NCwx
OSBAQCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVk
aWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiAgICAgICAgIHdpZHRoID0gc2VsZWN0ZWRUcmFja3Mu
dmlkZW9UcmFjay0+c2V0dGluZ3MoKS53aWR0aCgpOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlv
bi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdl
cjo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9U
cmFjaywgd2lkdGgsIGhlaWdodCB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlz
KV0oYXV0byYmIGV4Y2VwdGlvbikgewotICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFleGNlcHRp
b24pCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7IG1faWRlbnRpZmllciwgISFz
ZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLCB3aWR0aCwgaGVpZ2h0IH0sIFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBhdWRpb1RyYWNrID0gbWFrZVJlZlB0cihzZWxlY3RlZFRy
YWNrcy5hdWRpb1RyYWNrKV0oYXV0byYmIGV4Y2VwdGlvbikgeworICAgICAgICBpZiAoIXdlYWtU
aGlzKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2Vycm9yQ2FsbGJhY2soRXhjZXB0
aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7Cisg
ICAgICAgIGlmIChleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm4gbV9lcnJvckNhbGxiYWNr
KEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2Up
IH0pOworICAgICAgICBpZiAoYXVkaW9UcmFjaykKKyAgICAgICAgICAgIHNldEF1ZGlvU291cmNl
KCZhdWRpb1RyYWNrLT5zb3VyY2UoKSk7CiAgICAgfSwgMCk7CiB9CiAKIE1lZGlhUmVjb3JkZXJQ
cml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQogeworICAgIHNldEF1ZGlvU291cmNlKG51
bGxwdHIpOwogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXI6OlJlbGVhc2VSZWNvcmRlciB7IG1faWRlbnRpZmllciB9LCAwKTsKIH0KIApA
QCAtODgsMTEgKzkyLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2FtcGxlQnVmZmVy
VXBkYXRlZChjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHIKICNlbmRpZgogfQogCi12
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBNZWRpYVRpbWUmIHRp
bWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCit2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogewot
ICAgIGlmICh0cmFjay5pZCgpICE9IG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQpCi0gICAgICAgIHJl
dHVybjsKLQogICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CiAgICAgICAg
IEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9y
bURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKICAgICAgICAgbV9kZXNjcmlw
dGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNj
cmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwpAQCAtMTMwLDYgKzEz
MSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTaGFyCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGU6OnN0b3BSZWNvcmRpbmcoKQogeworICAgIHNldEF1ZGlvU291cmNlKG51bGxwdHIpOwogICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6U3RvcFJl
Y29yZGluZyB7IH0sIG1faWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4
IDZkOWZhYmUzZWE3MjQ3M2Y0NTk5MGNlOGFkMTcyZDBjZDAzYTgxMjYuLjY4MDA5NDJhMzBkY2Rj
NDFhYzNiYWZmZDliYTc4ODEyODA5YjQ2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApAQCAtNDQs
MTggKzQ0LDIxIEBAIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNs
aWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiB7CitjbGFz
cyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbAorICAgIDogcHVibGljIFdlYkNvcmU6Ok1lZGlh
UmVjb3JkZXJQcml2YXRlCisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNs
aWVudAorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgTWVk
aWFSZWNvcmRlclByaXZhdGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJik7Cisg
ICAgZXhwbGljaXQgTWVkaWFSZWNvcmRlclByaXZhdGUoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlJik7CiAgICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlKCk7CiAKIHByaXZhdGU6CiAgICAgLy8g
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGUKICAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0
ZWQoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBXZWJDb3JlOjpNZWRp
YVNhbXBsZSYpIGZpbmFsOwotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdl
YkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBj
b25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSk+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcFJlY29yZGluZygpIGZp
bmFsOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1l
JiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKIAogICAgIC8vIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlOjpDbGllbnQKICAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9y
eSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKaW5kZXggYmQxZGU0MTFiZjMzNDFlOWQyYmUy
YjQyYTI5ZDE0OGMyYmQ4ZDRhNC4uNmNiMzIxZWQyNTg5NDg5ZTlkYjBjYmJkNWI1NTliMWU1NmEw
MzQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0zNCw3ICszNCw3IEBACiBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6
Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJl
YW0pCitzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlh
UmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Q
cml2YXRlJiBzdHJlYW0pCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Vz
ZUdQVVByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCmluZGV4IGQyNTg4ZDQyYWI2MGRkYTZk
Mjk0ODhmYjg1ZmUyYWM1MDUwMThiZDIuLmU5NmI4ZmYzNjRkZTU5ODg2OGZkOWRmMDVlYTkyNWI0
MGQ4M2FhYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0zNSw3ICszNSw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NP
QSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IGNy
ZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0
ZSYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJp
dmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlJikgZmluYWw7CiAjZW5kaWYKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>