<?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>211718</bug_id>
          
          <creation_ts>2020-05-11 03:10:19 -0700</creation_ts>
          <short_desc>Introduce a RealtimeMediaSource video sample observer</short_desc>
          <delta_ts>2020-05-12 04:46:16 -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>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1651229</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 03:10:19 -0700</bug_when>
    <thetext>Introduce a RealtimeMediaSource video sample observer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651231</commentid>
    <comment_count>1</comment_count>
      <attachid>399008</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 03:17:32 -0700</bug_when>
    <thetext>Created attachment 399008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651266</commentid>
    <comment_count>2</comment_count>
      <attachid>399017</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 07:22:42 -0700</bug_when>
    <thetext>Created attachment 399017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651289</commentid>
    <comment_count>3</comment_count>
      <attachid>399017</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-05-11 09:24:20 -0700</bug_when>
    <thetext>Comment on attachment 399017
Patch

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

&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h:107
&gt;      if (m_audioSource)
&gt;          m_audioSource-&gt;removeAudioSampleObserver(*this);
&gt; +    if (m_videoSource)
&gt; +        m_videoSource-&gt;removeVideoSampleObserver(*this);

Maybe add a FIXME about removing these, since they should never be necessary?

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:210
&gt; +    auto locker = holdLock(m_videoSampleObserversLock);
&gt; +    for (auto* observer : m_videoSampleObservers)
&gt; +        observer-&gt;videoSampleAvailable(mediaSample);

Clients may perform an arbitrary amount of processing during a callback, so holding the lock for the duration of this loop might be asking for trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651308</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-11 10:33:48 -0700</bug_when>
    <thetext>Thanks for keeping the GStreamer bits compiling!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651318</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 10:49:26 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #4)
&gt; Thanks for keeping the GStreamer bits compiling!

np, note that the following step might be to call videoSampleAvailable from a background thread.
While this may not break compilation, this might require some GTK changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651325</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 10:55:47 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 399017 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399017&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h:107
&gt; &gt;      if (m_audioSource)
&gt; &gt;          m_audioSource-&gt;removeAudioSampleObserver(*this);
&gt; &gt; +    if (m_videoSource)
&gt; &gt; +        m_videoSource-&gt;removeVideoSampleObserver(*this);
&gt; 
&gt; Maybe add a FIXME about removing these, since they should never be necessary?

I added them as a just-in-case, maybe we should just keep the ASSERT.
The child class should really do it since otherwise, a half-destructed object might still receive samples. 

&gt; &gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:210
&gt; &gt; +    auto locker = holdLock(m_videoSampleObserversLock);
&gt; &gt; +    for (auto* observer : m_videoSampleObservers)
&gt; &gt; +        observer-&gt;videoSampleAvailable(mediaSample);
&gt; 
&gt; Clients may perform an arbitrary amount of processing during a callback, so
&gt; holding the lock for the duration of this loop might be asking for trouble.

This is the same design as for audio samples.
I think it is fine like it is since receiving video samples should not trigger adding/removing observers, and hopefully these actions will be in different threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651350</commentid>
    <comment_count>7</comment_count>
      <attachid>399017</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-11 11:36:15 -0700</bug_when>
    <thetext>Comment on attachment 399017
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h:107
&gt;&gt;&gt; +        m_videoSource-&gt;removeVideoSampleObserver(*this);
&gt;&gt; 
&gt;&gt; Maybe add a FIXME about removing these, since they should never be necessary?
&gt; 
&gt; I added them as a just-in-case, maybe we should just keep the ASSERT.
&gt; The child class should really do it since otherwise, a half-destructed object might still receive samples.

The child class destructor should do that early on otherwise, the object, while half destructed, might receive samples to process.
I&apos;ll add a comment.

&gt;&gt;&gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:210
&gt;&gt;&gt; +        observer-&gt;videoSampleAvailable(mediaSample);
&gt;&gt; 
&gt;&gt; Clients may perform an arbitrary amount of processing during a callback, so holding the lock for the duration of this loop might be asking for trouble.
&gt; 
&gt; This is the same design as for audio samples.
&gt; I think it is fine like it is since receiving video samples should not trigger adding/removing observers, and hopefully these actions will be in different threads.

This lock is locked in add/remove observers which should happen in the main thread while this one should happen in a background thread.
Normally, videoSampleAvailable should never synchronously add/remove observers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651652</commentid>
    <comment_count>8</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-05-12 00:22:22 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; (In reply to Philippe Normand from comment #4)
&gt; &gt; Thanks for keeping the GStreamer bits compiling!
&gt; 
&gt; np, note that the following step might be to call videoSampleAvailable from
&gt; a background thread.
&gt; While this may not break compilation, this might require some GTK changes.

Indeed, thanks. I&apos;ll look this patch today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651669</commentid>
    <comment_count>9</comment_count>
      <attachid>399111</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-12 02:30:10 -0700</bug_when>
    <thetext>Created attachment 399111
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651687</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-12 04:45:30 -0700</bug_when>
    <thetext>Committed r261553: &lt;https://trac.webkit.org/changeset/261553&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399111.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651688</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-12 04:46:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/63131874&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399008</attachid>
            <date>2020-05-11 03:17:32 -0700</date>
            <delta_ts>2020-05-11 07:22:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211718-20200511121729.patch</filename>
            <type>text/plain</type>
            <size>50807</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjBlNTdkNTVlMGQ0ZTQ0
OTYwMDMxNjdhNDkwZTFlNmY2N2Q3Mzg5Yy4uMTc4ODBlNGRlZmZkN2YyMTVjMDI3YThhNzhhY2Ez
OTQ4ZTJjNzljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDIwLTA1LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZWFs
dGltZU1lZGlhU291cmNlIHZpZGVvIHNhbXBsZSBvYnNlcnZlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNzE4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgaW50cm9kdWNlIGFuIG9ic2VydmVyIGRl
ZGljYXRlZCB0byB2aWRlbyBzYW1wbGVzIHNpbWlsYXJseSB0byBBdWRpb1NhbXBsZU9ic2VydmVy
IGZvciBhdWRpby4KKyAgICAgICAgVGhpcyB3aWxsIGFsbG93IHRvIG1vdmUgdmlkZW8gZnJhbWUg
cHJvY2Vzc2luZyBvdXQgb2YgdGhlIG1haW4gdGhyZWFkIHByb2dyZXNzaXZlbHkuCisgICAgICAg
IEZvciBub3csIHdlIHJlbW92ZSB2aWRlbyBzYW1wbGUgb2JzZXJ2aW5nIGZyb20gdGhlIHRyYWNr
IHByaXZhdGUgYW5kIG9ic2VydmVycyBzaG91bGQgbm93IHJlZ2lzdGVyIGRpcmVjdGx5IHRvIHRo
ZSByZWFsdGltZSBtZWRpYSBzb3VyY2UuCisgICAgICAgIFdlIHVwZGF0ZSB0aGUgdmFyaW91cyB1
c2VycywgaW5jbHVkaW5nIE1lZGlhUmVjb3JkZXIgYW5kIHRoZSBtZWRpYSBwbGF5ZXIuCisgICAg
ICAgIEluIGJvdGggY2FzZXMsIHRoZXkgd2lsbCBvbmx5IG9ic2VydmUgdGhlIHZpZGVvIHRyYWNr
IHRvIGJlIHBsYXllZC9yZWNvcmRlZC4KKworICAgICAgICBXZSBpbnRyb2R1Y2VkIFJlYWx0aW1l
TWVkaWFTb3VyY2U6Ok9ic2VydmVyOjpoYXNTdGFydGVkUHJvZHVjaW5nRGF0YSBjYWxsYmFjayBm
b3IgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUgc28gCisgICAgICAgIHRoYXQgbWFpbiB0aHJlYWQg
cHJvY2Vzc2luZyB3aGVuIHNhbXBsZXMgYXJlIGF2YWlsYWJsZSBjYW4gYmUgZG9uZS4KKworICAg
ICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXI6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
TWVkaWFTYW1wbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjplbnF1ZXVlVmlkZW9TYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNoZWNrU2VsZWN0
ZWRWaWRlb1RyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6c2FtcGxlQnVmZmVyVXBkYXRlZCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnNldFZpZGVvU291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
fk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6c3RvcFJlY29yZGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnNhbXBsZUJ1ZmZlclVw
ZGF0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGVNb2NrOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2spOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjp+TWVkaWFSZWNvcmRlclByaXZhdGVN
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6c3RvcFJl
Y29yZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OnZp
ZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlTW9jazo6c2FtcGxlQnVmZmVyVXBkYXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6aGFzU3RhcnRlZFByb2R1Y2luZ0Rh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnVwZGF0ZVJl
YWR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnZp
ZGVvU2FtcGxlQXZhaWxhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpoYXNTdGFydGVkUHJvZHVjaW5nQXVkaW9EYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkVmlkZW9TYW1wbGVP
YnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdmVW
aWRlb1NhbXBsZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnVwZGF0ZUhhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnVub2JzZXJ2ZVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnVw
ZGF0ZUJsYWNrRnJhbWVzU2VuZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZVZpZGVvU291cmNlOjp+UmVhbHRpbWVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWFsdGltZVZpZGVvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVWaWRlb1NvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAg
ICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1
dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
bW06CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6
cHJvY2Vzc05ld1NhbXBsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6c2FtcGxl
QnVmZmVyVXBkYXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmg6CisgICAgICAgICogcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp+SW50ZXJuYWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c3RvcE9ic2VydmluZ1JlYWx0aW1lTWVkaWFT
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvYnNlcnZlTWVkaWFTdHJlYW1U
cmFjayk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKwogMjAyMC0wNS0xMCAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBiYXNlNjQuYW55Lmh0bWwg
dGVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBkNWZiOTU0MzdjZmYwYzQ5N2FjYTkzZWY0ZDNhYTY1MGQ2MTE5MmUw
Li4zOWUyZGU5NjIyZjY1YWY0MDc3MTI3OTU1YzlkNmFhMjcyMjQxNWM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDIwLTA1LTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZWFsdGltZU1lZGlhU291cmNlIHZpZGVvIHNhbXBs
ZSBvYnNlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExNzE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlNvdXJjZVByb3h5Ojp+U291cmNlUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1wbGVCdWZmZXJVcGRhdGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuaDoKKwogMjAyMC0wNS0xMCAgQmFzdWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lA
c29ueS5jb20+CiAKICAgICAgICAgQWRkIEVOQUJMRV9QRVJJT0RJQ19NRU1PUllfTU9OSVRPUiBm
bGFnLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuY3BwCmluZGV4IGVjYTVlOWVjZjFlMjg3NzEwYmIwMTlmMjYwMDM1ZTE2MWIw
MmUwODkuLjcwY2YzNDc3MzZmZjRkMzY4YTIyYTcwNzM3OTc5Y2MzYmYyMGQ2OTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5jcHAKQEAgLTIyMiwxMSArMjIyLDYgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjp0cmFja0VuZGVk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKICAgICBzdG9wUmVjb3JkaW5nKCk7CiB9CiAKLXZv
aWQgTWVkaWFSZWNvcmRlcjo6c2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYgdHJhY2ssIE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKLXsKLSAgICBtX3ByaXZhdGUt
PnNhbXBsZUJ1ZmZlclVwZGF0ZWQodHJhY2ssIG1lZGlhU2FtcGxlKTsKLX0KLQogYm9vbCBNZWRp
YVJlY29yZGVyOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9zdGF0ZSAhPSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAppbmRleCA2YTQ5
NGQ0YTBjMzA1NTZhMThmN2RjNzQ2ODJmNmY2MWJiOTk0NDRlLi4yZmQ5ZWE1ODZjOWMwZTExYzAw
MTJhZmI1NjI2YjYzM2FjMjNlY2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTEwOCw3ICsxMDgsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KSBmaW5hbCB7IH07CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKICAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH07Ci0gICAgdm9pZCBzYW1wbGVCdWZmZXJV
cGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKIAog
ICAgIHN0YXRpYyBDcmVhdG9yRnVuY3Rpb24gbV9jdXN0b21DcmVhdG9yOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKaW5kZXggMWU0NDI3OWJmZGU3NWRmZWQ5MTllNzY4
MzRjNmU2ZDAwODA2M2EwYy4uZWNkMzM0ZTE0NjQ0ZjIxMzBiNDc1ZTMzNjlmYmRjOGY2MTNmNzdl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCkBAIC0zMCw3ICszMCw3IEBA
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheXMuaD4KICNpbmNsdWRlIDx3dGYv
RW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KIAogdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01T
YW1wbGVCdWZmZXIgKkNNU2FtcGxlQnVmZmVyUmVmOwpAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3Qg
UGxhdGZvcm1TYW1wbGUgewogICAgIH0gc2FtcGxlOwogfTsKIAotY2xhc3MgTWVkaWFTYW1wbGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNhbXBsZT4geworY2xhc3MgTWVkaWFTYW1wbGUgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TWVkaWFTYW1wbGU+IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5NZWRpYVNhbXBsZSgpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aAppbmRleCAwNTFkYmJiMzMyNjNiNDI4N2E0Njg1YTAxMGVmYmJkYzUwYTNlYjY0Li45NjYzMDc5
ZTJmODA0ZjMyMDk3M2FiY2VhNzAxYjAwNjlmYWZiYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaApAQCAtNTEsNyArNTEsMTIgQEAgY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKIGNs
YXNzIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW07CiAKLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyBmaW5h
bCA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHByaXZhdGUgTWVkaWFTdHJl
YW1Qcml2YXRlOjpPYnNlcnZlciwgcHVibGljIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNl
cnZlciwgcHVibGljIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50CitjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgZmluYWwKKyAgICA6IHB1YmxpYyBNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2UKKyAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW1Qcml2YXRl
OjpPYnNlcnZlcgorICAgICwgcHVibGljIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZl
cgorICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIK
KyAgICAsIHB1YmxpYyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudAogICAgICwgcHJp
dmF0ZSBMb2dnZXJIZWxwZXIKIHsKIHB1YmxpYzoKQEAgLTEzNCw3ICsxMzksNyBAQCBwcml2YXRl
OgogCiAgICAgTWVkaWFUaW1lIGNhbGN1bGF0ZVRpbWVsaW5lT2Zmc2V0KGNvbnN0IE1lZGlhU2Ft
cGxlJiwgZG91YmxlKTsKICAgICAKLSAgICB2b2lkIGVucXVldWVWaWRlb1NhbXBsZShNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJik7CisgICAgdm9pZCBlbnF1ZXVlVmlkZW9T
YW1wbGUoTWVkaWFTYW1wbGUmKTsKICAgICB2b2lkIGVucXVldWVDb3JyZWN0ZWRWaWRlb1NhbXBs
ZShNZWRpYVNhbXBsZSYpOwogICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvbldoZW5SZWFkeUZv
clZpZGVvRGF0YSgpOwogCkBAIC0xOTcsOSArMjAyLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCB0
cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsK
ICAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
b3ZlcnJpZGUgeyB9OwogICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsKLSAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIG92ZXJyaWRlOwogICAgIHZv
aWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsK
IAorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VjZTo6VmlkZW9TYW1wbGVPYnNlcnZlcgorICAgIHZv
aWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKKwogICAgIFJldGFp
blB0cjxQbGF0Zm9ybUxheWVyPiBjcmVhdGVWaWRlb0Z1bGxzY3JlZW5MYXllcigpIG92ZXJyaWRl
OwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKICAgICB2b2lk
IHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0KaW5kZXggMzY4NWRiYWY2NTM4MzgxNWM2ZDA3MmU5YzJmNTE5YjUxMDMw
MDZiYy4uYzA1ZjEwNmEwYWJhZTBjNjU2NDdkYThhNjY5ZTkyOTBhYTY4YjM0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMTU1LDE1ICsxNTUsMTcgQEAgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKCkKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVl
cygpKQogICAgICAgICB0cmFjay0+cGF1c2UoKTsKIAotICAgIGlmIChtX21lZGlhU3RyZWFtUHJp
dmF0ZSkgeworICAgIGlmIChtX21lZGlhU3RyZWFtUHJpdmF0ZSkKICAgICAgICAgbV9tZWRpYVN0
cmVhbVByaXZhdGUtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIAotICAgICAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQotICAgICAgICAgICAgdHJhY2stPnN0
cmVhbVRyYWNrKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIGZvciAoYXV0byYgdHJhY2sg
OiBtX2F1ZGlvVHJhY2tNYXAudmFsdWVzKCkpCisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygp
LnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIAotICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV92
aWRlb1RyYWNrTWFwLnZhbHVlcygpKQotICAgICAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCku
cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotICAgIH0KKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV92
aWRlb1RyYWNrTWFwLnZhbHVlcygpKQorICAgICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS5yZW1v
dmVPYnNlcnZlcigqdGhpcyk7CisKKyAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKQorICAgICAg
ICBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIo
KnRoaXMpOwogCiAgICAgW21fYm91bmRzQ2hhbmdlTGlzdGVuZXIgaW52YWxpZGF0ZV07CiAKQEAg
LTI3OSwxMSArMjgxLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OmVucXVldWVDb3JyZWN0ZWRWaWRlb1NhbXBsZShNZWRpYVNhbXAKICAgICB9CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1w
bGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYgc2FtcGxlKQor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVucXVldWVWaWRlb1Nh
bXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogewotICAgIGlmICgmdHJhY2sgIT0gYWN0aXZlVmlk
ZW9UcmFjaygpKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAoIW1faW1hZ2VQYWludGVyLm1l
ZGlhU2FtcGxlIHx8IG1fZGlzcGxheU1vZGUgIT0gUGF1c2VkSW1hZ2UpIHsKICAgICAgICAgbV9p
bWFnZVBhaW50ZXIubWVkaWFTYW1wbGUgPSAmc2FtcGxlOwogICAgICAgICBtX2ltYWdlUGFpbnRl
ci5jZ0ltYWdlID0gbnVsbHB0cjsKQEAgLTI5NCwxMyArMjkzLDE0IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTdHJl
YW1UcmFja1ByCiAgICAgaWYgKG1fZGlzcGxheU1vZGUgIT0gTGl2ZVByZXZpZXcgJiYgIW1fd2Fp
dGluZ0ZvckZpcnN0SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gdmlkZW9UcmFj
ayA9IG1fdmlkZW9UcmFja01hcC5nZXQodHJhY2suaWQoKSk7CisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBub3QgcXVlcnkgdGhlIG1hcCBlYWNoIHRpbWUgd2UgZ2V0IGEgc2FtcGxlLgorICAgIGF1
dG8gdmlkZW9UcmFjayA9IG1fdmlkZW9UcmFja01hcC5nZXQobV9hY3RpdmVWaWRlb1RyYWNrLT5p
ZCgpKTsKICAgICBNZWRpYVRpbWUgdGltZWxpbmVPZmZzZXQgPSB2aWRlb1RyYWNrLT50aW1lbGlu
ZU9mZnNldCgpOwogICAgIGlmICh0aW1lbGluZU9mZnNldCA9PSBNZWRpYVRpbWU6OmludmFsaWRU
aW1lKCkpIHsKICAgICAgICAgdGltZWxpbmVPZmZzZXQgPSBjYWxjdWxhdGVUaW1lbGluZU9mZnNl
dChzYW1wbGUsIHJlbmRlcmVyTGF0ZW5jeSk7CiAgICAgICAgIHZpZGVvVHJhY2stPnNldFRpbWVs
aW5lT2Zmc2V0KHRpbWVsaW5lT2Zmc2V0KTsKIAotICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElG
SUVSLCAidGltZWxpbmUgb2Zmc2V0IGZvciB0cmFjayAiLCB0cmFjay5pZCgpLCAiIHNldCB0byAi
LCB0aW1lbGluZU9mZnNldCk7CisgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJ0aW1l
bGluZSBvZmZzZXQgZm9yIHRyYWNrICIsIG1fYWN0aXZlVmlkZW9UcmFjay0+aWQoKSwgIiBzZXQg
dG8gIiwgdGltZWxpbmVPZmZzZXQpOwogICAgIH0KIAogICAgIERFQlVHX0xPRyhMT0dJREVOVElG
SUVSLCAib3JpZ2luYWwgc2FtcGxlID0gIiwgc2FtcGxlKTsKQEAgLTczNSwyNiArNzM1LDkgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmRpZFJlbW92ZVRyYWNr
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXQKICAgICB1cGRhdGVUcmFja3MoKTsKIH0KIAotdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUp
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoTWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKQogewotICAgIEFTU0VSVCh0cmFjay5p
ZCgpID09IG1lZGlhU2FtcGxlLnRyYWNrSUQoKSk7Ci0gICAgQVNTRVJUKG1lZGlhU2FtcGxlLnBs
YXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBl
KTsKLSAgICBBU1NFUlQobV9tZWRpYVN0cmVhbVByaXZhdGUpOwotCi0gICAgaWYgKHN0cmVhbVRp
bWUoKS50b0RvdWJsZSgpIDwgMCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc3dpdGNoICh0cmFj
ay50eXBlKCkpIHsKLSAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6Ci0g
ICAgICAgIC8vIERvIG5vdGhpbmcuCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Ci0gICAgICAgIGlmICgmdHJhY2sgPT0gbV9hY3Rp
dmVWaWRlb1RyYWNrLmdldCgpKQotICAgICAgICAgICAgZW5xdWV1ZVZpZGVvU2FtcGxlKHRyYWNr
LCBtZWRpYVNhbXBsZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBlbnF1ZXVlVmlkZW9T
YW1wbGUobWVkaWFTYW1wbGUpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQpA
QCAtODUxLDYgKzgzNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpjaGVja1NlbGVjdGVkVmlkZW9UcmFjaygpCiAgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2so
W3RoaXNdIHsKICAgICAgICAgYXV0byBvbGRWaWRlb1RyYWNrID0gbV9hY3RpdmVWaWRlb1RyYWNr
OwogICAgICAgICBib29sIGhpZGVWaWRlb0xheWVyID0gdHJ1ZTsKKwogICAgICAgICBtX2FjdGl2
ZVZpZGVvVHJhY2sgPSBudWxscHRyOwogICAgICAgICBpZiAoYXV0byogYWN0aXZlVmlkZW9UcmFj
ayA9IHRoaXMtPmFjdGl2ZVZpZGVvVHJhY2soKSkgewogICAgICAgICAgICAgZm9yIChjb25zdCBh
dXRvJiB0cmFjayA6IG1fdmlkZW9UcmFja01hcC52YWx1ZXMoKSkgewpAQCAtODc3LDYgKzg2MSwx
MyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2hlY2tTZWxl
Y3RlZFZpZGVvVHJhY2soKQogCiAgICAgICAgIG1fcGVuZGluZ1NlbGVjdGVkVHJhY2tDaGVjayA9
IGZhbHNlOwogICAgICAgICB1cGRhdGVEaXNwbGF5TW9kZSgpOworCisgICAgICAgIGlmIChvbGRW
aWRlb1RyYWNrICE9IG1fYWN0aXZlVmlkZW9UcmFjaykgeworICAgICAgICAgICAgaWYgKG9sZFZp
ZGVvVHJhY2spCisgICAgICAgICAgICAgICAgb2xkVmlkZW9UcmFjay0+c291cmNlKCkucmVtb3Zl
VmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgICAgICBpZiAobV9hY3RpdmVWaWRl
b1RyYWNrKQorICAgICAgICAgICAgICAgIG1fYWN0aXZlVmlkZW9UcmFjay0+c291cmNlKCkuYWRk
VmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIH0KICAgICB9KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IGUyOGUzODM2YjFmOTcxMTM3NDA4OTMzZmIxZTBkMzI1
ODhiMDhlMTcuLjI0ZmJlODg2NGRhNjNiYmI2ZGQzNDU0NWYxNjU2N2JkN2YyNTc0ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTQ0LDggKzQ0LDkgQEAgY2xhc3MgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU7CiBjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKIGNsYXNzIFNoYXJlZEJ1ZmZl
cjsKIAotY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgOgotICAgIHB1YmxpYyBSZWFsdGltZU1l
ZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcml2
YXRlCisgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZl
cgorICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIg
ewogcHVibGljOgogICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpOwogCkBAIC01NSw4ICs1Niw2
IEBAIHB1YmxpYzoKICAgICB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1ZpZGVv
U2VsZWN0ZWRUcmFja3Mgc2VsZWN0VHJhY2tzKE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwogCi0gICAg
dmlydHVhbCB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmLCBNZWRpYVNhbXBsZSYpID0gMDsKLQogICAgIHVzaW5nIEZldGNoRGF0YUNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKT47CiAgICAgdmlydHVhbCB2b2lkIGZldGNoRGF0YShGZXRjaERhdGFD
YWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BSZWNvcmRpbmcoKSA9IDA7CkBA
IC02NiwxMiArNjUsMTQgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRBdWRp
b1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgdm9pZCBzZXRWaWRl
b1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAKIHByb3RlY3RlZDoKICAg
ICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxsYmFjazsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9hdWRpb1NvdXJjZTsKKyAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV92aWRlb1NvdXJjZTsKIH07CiAKIGlubGluZSB2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjpzZXRBdWRpb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBh
dWRpb1NvdXJjZSkKQEAgLTg1LDEwICs4NiwyNSBAQCBpbmxpbmUgdm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6c2V0QXVkaW9Tb3VyY2UoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgYQog
ICAgICAgICBtX2F1ZGlvU291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKIH0K
IAoraW5saW5lIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNldFZpZGVvU291cmNlKFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHZpZGVvU291cmNlKQoreworICAgIGlmIChtX3ZpZGVv
U291cmNlKQorICAgICAgICBtX3ZpZGVvU291cmNlLT5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVy
KCp0aGlzKTsKKworICAgIG1fdmlkZW9Tb3VyY2UgPSBXVEZNb3ZlKHZpZGVvU291cmNlKTsKKwor
ICAgIGlmIChtX3ZpZGVvU291cmNlKQorICAgICAgICBtX3ZpZGVvU291cmNlLT5hZGRWaWRlb1Nh
bXBsZU9ic2VydmVyKCp0aGlzKTsKK30KKwogaW5saW5lIE1lZGlhUmVjb3JkZXJQcml2YXRlOjp+
TWVkaWFSZWNvcmRlclByaXZhdGUoKQogeworICAgIEFTU0VSVCghbV9hdWRpb1NvdXJjZSk7Cisg
ICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlKTsKICAgICBpZiAobV9hdWRpb1NvdXJjZSkKICAgICAg
ICAgbV9hdWRpb1NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAg
aWYgKG1fdmlkZW9Tb3VyY2UpCisgICAgICAgIG1fdmlkZW9Tb3VyY2UtPnJlbW92ZVZpZGVvU2Ft
cGxlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKaW5kZXggODc4OTQwYjBmOTEwMjQzMzc1
ODNkYWE2Y2YzMjczODJhNWY1ZmVhYi4uMmM5ZTljOGVmYTRmM2I0MjQwYWZlYmZlYTBhZTIwNmU4
NmNlZDNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAt
NTksNiArNTksOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
PiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZQogICAgIGF1dG8gcmVjb3JkZXIg
PSBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4od3JpdGVyLnJlbGVhc2VO
b25OdWxsKCksIFdURk1vdmUoYXVkaW9UcmFja0lkKSwgV1RGTW92ZSh2aWRlb1RyYWNrSWQpKTsK
ICAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykKICAgICAgICAgcmVjb3JkZXItPnNl
dEF1ZGlvU291cmNlKCZzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5zb3VyY2UoKSk7CisgICAg
aWYgKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spCisgICAgICAgIHJlY29yZGVyLT5zZXRWaWRl
b1NvdXJjZSgmc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjay0+c291cmNlKCkpOwogICAgIHJldHVy
biByZWNvcmRlcjsKIH0KIApAQCAtNzIsMTIgKzc0LDExIEBAIE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbDo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKFJlZjxNZWRpYVJlY29yZGVyUHJp
dmF0CiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6On5NZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGwoKQogewogICAgIHNldEF1ZGlvU291cmNlKG51bGxwdHIpOworICAgIHNldFZpZGVvU291
cmNlKG51bGxwdHIpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6c2Ft
cGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1l
ZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIpCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bDo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKIHsKLSAg
ICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQotICAgICAgICByZXR1
cm47CiAgICAgbV93cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5w
bGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiB9CiAKQEAgLTkxLDYgKzky
LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWUKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsOjpzdG9wUmVjb3JkaW5nKCkKIHsKICAgICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsK
KyAgICBzZXRWaWRlb1NvdXJjZShudWxscHRyKTsKICAgICBtX3dyaXRlci0+c3RvcFJlY29yZGlu
ZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaAppbmRleCA3MTlh
ZGJiYWU5MThiMjdmN2VlYzcyZWQ0NzYyZWM3ZWY2ZjhlZDJmLi5iZDZmNzU4ODI4ZDIyMDM2NGI1
ZGEwOWU3MTg2OGIxNzU4ZjJhMTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVJl
Y29yZGVyUHJpdmF0ZUFWRkltcGw+KFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4mJiwg
U3RyaW5nJiYsIFN0cmluZyYmKTsKIAogICAgIC8vIE1lZGlhUmVjb3JkZXJQcml2YXRlCi0gICAg
dm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwg
TWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlh
U2FtcGxlJikgZmluYWw7CiAgICAgdm9pZCBmZXRjaERhdGEoRmV0Y2hEYXRhQ2FsbGJhY2smJikg
ZmluYWw7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRp
bWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCBzaXplX3QpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAK
aW5kZXggYTFkMGQxMGMwNjExMWU2OGE0NmU1NDg1NGRjOTYxZWRlMjA3NmQ5Ni4uNmE1MjI4ODVk
MmNkZjNhYzk2NGUwMWYzNGY1NzZjYjRjZjhiMWVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrLmNwcApAQCAtNDAsMjEgKzQwLDI1IEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9j
azo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQog
ICAgICAgICBtX2F1ZGlvVHJhY2tJRCA9IHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2stPmlkKCk7
CiAgICAgICAgIHNldEF1ZGlvU291cmNlKCZzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5zb3Vy
Y2UoKSk7CiAgICAgfQotICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKQorICAgIGlm
IChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKSB7CiAgICAgICAgIG1fdmlkZW9UcmFja0lEID0g
c2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjay0+aWQoKTsKKyAgICAgICAgc2V0VmlkZW9Tb3VyY2Uo
JnNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2stPnNvdXJjZSgpKTsKKyAgICB9CiB9CiAKIE1lZGlh
UmVjb3JkZXJQcml2YXRlTW9jazo6fk1lZGlhUmVjb3JkZXJQcml2YXRlTW9jaygpCiB7CiAgICAg
c2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7CisgICAgc2V0VmlkZW9Tb3VyY2UobnVsbHB0cik7CiB9
CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpzdG9wUmVjb3JkaW5nKCkKIHsKICAg
ICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsKKyAgICBzZXRWaWRlb1NvdXJjZShudWxscHRyKTsK
IH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQo
Y29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpCit2b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlTW9jazo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKQog
ewogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9idWZmZXJMb2NrKTsKICAgICBtX2J1ZmZl
ci5hcHBlbmQoIlZpZGVvIFRyYWNrIElEOiAiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9j
ay5oCmluZGV4IGI3ZjNjMjE0OGUzOTllYTIyMzZkOTJjODY1OWY3OTg3MWJhZTE3ZDQuLmU1MTI5
ZGU2MDNjYWU0ODBjODg2ZmY0Y2IwYzA3NmM0YzgxMWE3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZU1vY2suaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
Ly8gTWVkaWFSZWNvcmRlclByaXZhdGUKLSAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29u
c3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOworICAgIHZv
aWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKICAgICB2b2lkIGZl
dGNoRGF0YShGZXRjaERhdGFDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CiAgICAgdm9p
ZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5k
ZXggZjM2M2Y5NDBhOTNmYWY2MmQzMTY2NGY0ZGM3MTE0MzRmM2JmYjg4YS4uNTY5ZjkwMTk3MGYy
MmMyODI1NjdlYmIwYjYzYzNiYWVlY2UzODVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRl
LmNwcApAQCAtMjM2LDI4ICsyMzYsMTIgQEAgYm9vbCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
cHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpCiAgICAgcmV0dXJuICFtX2lzRW5kZWQ7CiB9CiAK
LXZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlh
U2FtcGxlJiBtZWRpYVNhbXBsZSkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Omhhc1N0
YXJ0ZWRQcm9kdWNpbmdEYXRhKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAg
IGlmICghbV9oYXZlUHJvZHVjZWREYXRhKSB7Ci0gICAgICAgIG1faGF2ZVByb2R1Y2VkRGF0YSA9
IHRydWU7Ci0gICAgICAgIHVwZGF0ZVJlYWR5U3RhdGUoKTsKLSAgICB9Ci0KLSAgICBpZiAoIWVu
YWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbWVkaWFTYW1wbGUuc2V0VHJhY2tJRChp
ZCgpKTsKLSAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7Ci0gICAgICAg
IG9ic2VydmVyLnNhbXBsZUJ1ZmZlclVwZGF0ZWQoKnRoaXMsIG1lZGlhU2FtcGxlKTsKLSAgICB9
KTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6aGFzU3RhcnRlZFByb2R1Y2lu
Z0F1ZGlvRGF0YSgpCi17Ci0gICAgaWYgKG1faGF2ZVByb2R1Y2VkRGF0YSkKKyAgICBpZiAobV9o
YXNTdGFydGVkUHJvZHVjaW5nRGF0YSkKICAgICAgICAgcmV0dXJuOwotICAgIG1faGF2ZVByb2R1
Y2VkRGF0YSA9IHRydWU7CisgICAgbV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSA9IHRydWU7CiAg
ICAgdXBkYXRlUmVhZHlTdGF0ZSgpOwogfQogCkBAIC0yNjcsNyArMjUxLDcgQEAgdm9pZCBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6dXBkYXRlUmVhZHlTdGF0ZSgpCiAKICAgICBpZiAobV9pc0Vu
ZGVkKQogICAgICAgICBzdGF0ZSA9IFJlYWR5U3RhdGU6OkVuZGVkOwotICAgIGVsc2UgaWYgKG1f
aGF2ZVByb2R1Y2VkRGF0YSkKKyAgICBlbHNlIGlmIChtX2hhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRh
KQogICAgICAgICBzdGF0ZSA9IFJlYWR5U3RhdGU6OkxpdmU7CiAKICAgICBpZiAoc3RhdGUgPT0g
bV9yZWFkeVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKaW5kZXggMjJjYWRjZTg3ZWYy
YWI4ZWU4YTU1NWRhNzg5MzI2MmI5YjM4YjcwYy4uM2Y3ZTY4NDFkMGFjY2RhNDhmZGNhMmRiMWFh
MjBjMGY5NTJkNTQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBAIC01OSw3ICs1OSw2
IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tTZXR0
aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAw
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgeyB9OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVh
ZHlTdGF0ZUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSB7IH07CiAgICAgfTsKIApA
QCAtMTMzLDkgKzEzMiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQo
KSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsOwogICAgIGJv
b2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsOwotICAgIHZvaWQgdmlkZW9TYW1w
bGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKICAgICB2b2lkIGF1ZGlvVW5pdFdpbGxT
dGFydCgpIGZpbmFsOwotICAgIHZvaWQgaGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpIGZp
bmFsOworICAgIHZvaWQgaGFzU3RhcnRlZFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKIAogICAgIHZv
aWQgdXBkYXRlUmVhZHlTdGF0ZSgpOwogCkBAIC0xNTMsOCArMTUxLDcgQEAgcHJpdmF0ZToKICAg
ICBSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZSB7IFJlYWR5U3RhdGU6Ok5vbmUgfTsKICAgICBib29s
IG1faXNFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKLSAg
ICBib29sIG1faGF2ZVByb2R1Y2VkRGF0YSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhc1NlbnRT
dGFydFByb2R1Y2VkRGF0YSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1N0YXJ0ZWRQcm9kdWNp
bmdEYXRhIHsgZmFsc2UgfTsKICAgICBIaW50VmFsdWUgbV9jb250ZW50SGludCB7IEhpbnRWYWx1
ZTo6RW1wdHkgfTsKICAgICBSZWZQdHI8V2ViQXVkaW9Tb3VyY2VQcm92aWRlcj4gbV9hdWRpb1Nv
dXJjZVByb3ZpZGVyOwogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcAppbmRleCA2ZTlmNWI5NmUxNWUwODhiOGExODc4MWQ5ZjcwNDRkZGVmNmM4ZDk5
Li5lMGI4MjRhNjI2ZjY0NDZjMGM1NzM1ODZhMGVmZjlkNmQ5YzMzMTk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcApAQCAtNzQsNiArNzQsMjAgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpy
ZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKEF1ZGlvU2FtcGxlT2JzZXJ2ZXImIG9ic2VydmUKICAg
ICBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOwogfQogCit2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OmFkZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoVmlkZW9TYW1wbGVPYnNl
cnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrKTsKKyAgICBtX3Zp
ZGVvU2FtcGxlT2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOworfQorCit2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoVmlkZW9TYW1wbGVPYnNlcnZlciYg
b2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrKTsKKyAgICBtX3ZpZGVvU2Ft
cGxlT2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOworfQorCiB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwpAQCAtMTU0LDggKzE2OCwyNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6Om5vdGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKE9wdGlvblNldDxSZWFsdGltZU1l
ZAogICAgIH0pOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnVwZGF0ZUhhc1N0YXJ0
ZWRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9oYXNTZW50U3RhcnRQcm9kdWNlZERhdGEp
CisgICAgICAgIHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIodGhpcyldIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgaWYgKG1faGFzU2VudFN0YXJ0UHJvZHVjZWREYXRhKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2hhc1NlbnRTdGFydFByb2R1Y2VkRGF0YSA9IHRy
dWU7CisgICAgICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAg
ICAgICAgIG9ic2VydmVyLmhhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCk7CisgICAgICAgIH0pOwor
ICAgIH0pOworfQorCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxh
YmxlKE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKIHsKKyAgICAvLyBGSVhNRTogTWlncmF0ZSBS
ZWFsdGltZU1lZGlhU291cmNlIGNsaWVudHMgdG8gbm9uIG1haW4gdGhyZWFkIHByb2Nlc3Npbmcu
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ICAgICArK21fZnJhbWVDb3VudDsKIApAQCAtMTcwLDI1ICsyMDMsMTYgQEAgdm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1w
bGUpCiAgICAgfQogI2VuZGlmCiAKLSAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2Vy
dmVyKSB7Ci0gICAgICAgIG9ic2VydmVyLnZpZGVvU2FtcGxlQXZhaWxhYmxlKG1lZGlhU2FtcGxl
KTsKLSAgICB9KTsKKyAgICB1cGRhdGVIYXNTdGFydGVkUHJvZHVjaW5nRGF0YSgpOworCisgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7CisgICAg
Zm9yIChhdXRvKiBvYnNlcnZlciA6IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnMpCisgICAgICAgIG9i
c2VydmVyLT52aWRlb1NhbXBsZUF2YWlsYWJsZShtZWRpYVNhbXBsZSk7CiB9CiAKIHZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYg
dGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKIHsKLSAg
ICBpZiAoIW1faGFzU2VudFN0YXJ0UHJvZHVjZWRBdWRpb0RhdGEpIHsKLSAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewotICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICBpZiAobV9oYXNTZW50U3RhcnRQcm9kdWNlZEF1ZGlvRGF0YSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICBtX2hhc1NlbnRTdGFydFByb2R1Y2VkQXVkaW9EYXRhID0gdHJ1
ZTsKLSAgICAgICAgICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKLSAg
ICAgICAgICAgICAgICBvYnNlcnZlci5oYXNTdGFydGVkUHJvZHVjaW5nQXVkaW9EYXRhKCk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIHVwZGF0ZUhhc1N0YXJ0ZWRQ
cm9kdWNpbmdEYXRhKCk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYXVkaW9TYW1w
bGVPYnNlcnZlcnNMb2NrKTsKICAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogbV9hdWRpb1NhbXBs
ZU9ic2VydmVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBmOGFiYWEzYWViZWJiZTYzZWVkZTFm
NWQzMDIyN2Q4ODRlYjQ4MTc4Li41N2M5YmVlNDQ3MTNiYmY0NDZjYTY1ZGVlOGFhMDNiNTM1Yzkw
NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC04OSwxMCArODksNyBAQCBwdWJsaWM6CiAgICAg
ICAgIC8vIE9ic2VydmVyIHN0YXRlIHF1ZXJpZXMuCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwcmV2
ZW50U291cmNlRnJvbVN0b3BwaW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgICAgICAvLyBD
YWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlkZW9TYW1w
bGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSB7IH0KLQotICAgICAgICB2aXJ0dWFsIHZvaWQgaGFz
U3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgaGFz
U3RhcnRlZFByb2R1Y2luZ0RhdGEoKSB7IH0KICAgICB9OwogICAgIGNsYXNzIEF1ZGlvU2FtcGxl
T2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTEwMSw2ICs5OCwxMiBAQCBwdWJsaWM6CiAgICAg
ICAgIC8vIE1heSBiZSBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KICAgICAgICAgdmly
dHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3Qg
LypudW1iZXJPZkZyYW1lcyovKSA9IDA7CiAgICAgfTsKKyAgICBjbGFzcyBWaWRlb1NhbXBsZU9i
c2VydmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgflZpZGVvU2FtcGxlT2JzZXJ2
ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHZpZGVvU2FtcGxlQXZhaWxh
YmxlKE1lZGlhU2FtcGxlJikgeyB9CisgICAgfTsKIAogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVk
aWFTb3VyY2UoKSA9IGRlZmF1bHQ7CiAKQEAgLTEzOSw2ICsxNDIsOSBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBdWRpb1NhbXBsZU9ic2VydmVyKEF1ZGlvU2FtcGxlT2Jz
ZXJ2ZXImKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2
ZXIoQXVkaW9TYW1wbGVPYnNlcnZlciYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRW
aWRlb1NhbXBsZU9ic2VydmVyKFZpZGVvU2FtcGxlT2JzZXJ2ZXImKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoVmlkZW9TYW1wbGVPYnNlcnZlciYp
OworCiAgICAgY29uc3QgSW50U2l6ZSBzaXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaXplKGNv
bnN0IEludFNpemUmKTsKIApAQCAtMjUwLDYgKzI1Niw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIHZvaWQgaGFzRW5kZWQoKSB7IH0KIAorICAgIHZvaWQgdXBkYXRlSGFzU3RhcnRlZFByb2R1
Y2luZ0RhdGEoKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFJlZlB0cjxjb25z
dCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKQEAg
LTI2Nyw2ICsyNzUsOSBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVjdXJzaXZlTG9jayBtX2F1
ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jazsKICAgICBIYXNoU2V0PEF1ZGlvU2FtcGxlT2JzZXJ2ZXIq
PiBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzOwogCisgICAgbXV0YWJsZSBSZWN1cnNpdmVMb2NrIG1f
dmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrOworICAgIEhhc2hTZXQ8VmlkZW9TYW1wbGVPYnNlcnZl
cio+IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnM7CisKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBJ
bnRTaXplIG1faW50cmluc2ljU2l6ZTsKICAgICBkb3VibGUgbV9mcmFtZVJhdGUgeyAzMCB9OwpA
QCAtMjg0LDcgKzI5NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ludGVycnVwdGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fY2FwdHVyZURpZEZhaWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2lzRW5kZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNTZW50U3RhcnRQcm9kdWNlZEF1ZGlv
RGF0YSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1NlbnRTdGFydFByb2R1Y2VkRGF0YSB7IGZh
bHNlIH07CiB9OwogCiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggNWZjZTQ1NzkwOTk3ZjQ1OWM1NDI4Y2U2YTA2
MDI0NDQ0ZmZlYjI4OC4uMjRjZmQyOWNmY2YxNmJkM2Y2MmQ4YjZhMzZmNGMwOWI3NmQwOGQ2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCkBAIC03NCw2ICs3NCw3IEBA
IHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpvYnNlcnZlU291cmNlKCkKIHZvaWQg
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjp1bm9ic2VydmVTb3VyY2UoKQogewogICAgIG1f
dmlkZW9Tb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3ZpZGVvU291cmNlLT5z
b3VyY2UoKS5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKIH0KIAogdm9pZCBSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+JiYgbmV3U291cmNlKQpAQCAtMTE0LDExICsxMTUsMTMgQEAgdm9pZCBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OnN0b3AoKQogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2U6OnVwZGF0ZUJsYWNrRnJhbWVzU2VuZGluZygpCiB7CiAgICAgaWYgKCFtX211dGVkICYmIG1f
ZW5hYmxlZCkgeworICAgICAgICBtX3ZpZGVvU291cmNlLT5zb3VyY2UoKS5hZGRWaWRlb1NhbXBs
ZU9ic2VydmVyKCp0aGlzKTsKICAgICAgICAgaWYgKG1fYmxhY2tGcmFtZVRpbWVyLmlzQWN0aXZl
KCkpCiAgICAgICAgICAgICBtX2JsYWNrRnJhbWVUaW1lci5zdG9wKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKKyAgICBtX3ZpZGVvU291cmNlLT5zb3VyY2UoKS5yZW1vdmVWaWRlb1NhbXBs
ZU9ic2VydmVyKCp0aGlzKTsKICAgICBzZW5kQmxhY2tGcmFtZXNJZk5lZWRlZCgpOwogfQogCkBA
IC0yMDIsNiArMjA1LDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNlbmRP
bmVCbGFja0ZyYW1lKCkKICAgICBzZW5kRnJhbWUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6
VmlkZW9GcmFtZUJ1ZmZlcj4obV9ibGFja0ZyYW1lKSk7CiB9CiAKKy8vIE1heSBiZSBjYWxsZWQg
aW4gYSBiYWNrZ3JvdW5kIHRocmVhZC4KIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
OjpzZW5kRnJhbWUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4m
JiBidWZmZXIpCiB7CiAgICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1l
Ojpub3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKaW5kZXggYzY3MTk5MzMw
OTJmOWE5YTFmNDE2NzhlNWEzYjY3ZjY4NjgxZmExNC4uOTM3N2Q0NmI5MGZlMTEyN2QwNDJjOWYx
YTRkYTk4OThhMzc2ZjI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKQEAg
LTUxLDYgKzUxLDcgQEAgY2xhc3MgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlCiAgICAgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLCBX
VEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgogICAgICwgcHVibGljIHdlYnJ0Yzo6VmlkZW9U
cmFja1NvdXJjZUludGVyZmFjZQogICAgICwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1w
bGVPYnNlcnZlcgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgcHJpdmF0ZSBMb2dn
ZXJIZWxwZXIKICNlbmRpZgpAQCAtMTI4LDkgKzEyOSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQg
dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IHNvdXJj
ZU11dGVkQ2hhbmdlZCgpOyB9CiAgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpOyB9CiAgICAg
dm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFs
IHsgaW5pdGlhbGl6ZUZyb21Tb3VyY2UoKTsgfQotICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgb3ZlcnJpZGUgeyB9CiAg
ICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9CiAK
KyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIEFQSQorICAg
IHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBvdmVycmlkZSB7IH0KKwog
ICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV92aWRlb1NvdXJjZTsKICAgICBUaW1l
ciBtX2JsYWNrRnJhbWVUaW1lcjsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRl
b0ZyYW1lQnVmZmVyPiBtX2JsYWNrRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGQ0
ODczNGMxZjYwMjY2NzNhYTk3ODIzOTQ2MDRhNDA2MTY3M2E5NzQuLjE1ZTIyYTU4YTFjMjgzNWFk
MDQwZTk4YWI5OTcxN2FmNzk4ZTVlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00Niwx
NiArNDYsMTkgQEAgUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmMKIAogUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6flJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogeworICAgIG1fc291cmNlLT5yZW1vdmVWaWRlb1Nh
bXBsZU9ic2VydmVyKCp0aGlzKTsKICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMp
OwogfQogCiB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiB7
CiAgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisgICAgbV9zb3VyY2UtPmFkZFZpZGVvU2FtcGxlT2Jz
ZXJ2ZXIoKnRoaXMpOwogfQogCiB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BQcm9kdWNp
bmdEYXRhKCkKIHsKKyAgICBtX3NvdXJjZS0+cmVtb3ZlVmlkZW9TYW1wbGVPYnNlcnZlcigqdGhp
cyk7CiAgICAgbV9zb3VyY2UtPnN0b3AoKTsKIH0KIApAQCAtMTY2LDkgKzE2OSw2IEBAIFJlZlB0
cjxNZWRpYVNhbXBsZT4gUmVhbHRpbWVWaWRlb1NvdXJjZTo6YWRhcHRWaWRlb1NhbXBsZShNZWRp
YVNhbXBsZSYgc2FtcGxlKQogCiB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7Ci0gICAgaWYgKCFpc1Byb2R1Y2luZ0Rh
dGEoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1fZnJhbWVEZWNpbWF0aW9uID4gMSAm
JiArK21fZnJhbWVEZWNpbWF0aW9uQ291bnRlciAlIG1fZnJhbWVEZWNpbWF0aW9uKQogICAgICAg
ICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCBjY2NlOWI5YWExOTcwM2UwOTU3MzNl
ZDI3YTIzYzMzOGY2MzhhZWM2Li4yYjIzZmUzY2IxOGQwY2UzYzMxYTU2OTY2YjZiNGUyYmQ5OGEw
YjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC0zMyw3ICszMywxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiAKLWNsYXNzIFJlYWx0aW1l
VmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSwgcHVibGljIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHsKK2NsYXNzIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
ZmluYWwKKyAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlCisgICAgLCBwdWJsaWMgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291
cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWx0
aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYg
c291cmNlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92
ZShzb3VyY2UpKSk7IH0KIApAQCAtNTgsMTEgKzYxLDEzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBp
bnRlcnJ1cHRlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5pbnRlcnJ1cHRlZCgp
OyB9CiAgICAgYm9vbCBpc1NhbWVBcyhSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRoaXMgPT0gJnNvdXJjZSB8fCBtX3NvdXJjZS5wdHIoKSA9PSAmc291
cmNlOyB9CiAKLSAgICAvLyBPYnNlcnZlcgorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9i
c2VydmVyCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIHNv
dXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZp
bmFsOwogICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsOworCisgICAg
Ly8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlcgogICAgIHZvaWQgdmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IGQ1OTUyMGU2ZTMzMGRhYmRl
MGVlNzE2NGZjNzNlMzVlMjhiYjM3ZjguLjBiYWZmYTg4ZDhhNjc4MjI1Mzc1NDMwNDMwNWUwOGNl
ZTE2NmJhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTU1OCw2ICs1NTgs
NyBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2Ft
cGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYQogICAgIGlmICgrK21fZnJhbWVzQ291bnQgPD0g
ZnJhbWVzVG9Ecm9wV2hlblN0YXJ0aW5nKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gc2VuZCB0byBwcm9jZXNzIGZyYW1lIGZyb20gdGhlIGJh
Y2tncm91bmQgdGhyZWFkLgogICAgIGF1dG8gc2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpj
cmVhdGUoc2FtcGxlQnVmZmVyLCBtX3NhbXBsZVJvdGF0aW9uLCBbY2FwdHVyZUNvbm5lY3Rpb24g
aXNWaWRlb01pcnJvcmVkXSk7CiAgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXMsIHNhbXBs
ZSA9IFdURk1vdmUoc2FtcGxlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIHByb2Nlc3NOZXdGcmFt
ZShXVEZNb3ZlKHNhbXBsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2EuaAppbmRleCBkNzdhZmIyNjZmYjk0YjA2OWFiNTJkODBjZmM5NzVjMmIwZmU3
M2M2Li43ODZiNTUwYTk4ZTk2MjQ3MzAwYzg1NTc4YmMxMzM3ZTAyNDA4YzQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaApAQCAtNTAsNyArNTAs
NiBAQCBwcml2YXRlOgogICAgIC8vIHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlCiAgICAgdm9pZCBP
bkZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYpIGZpbmFsOwogCi0gICAgUmV0YWluUHRy
PENNU2FtcGxlQnVmZmVyUmVmPiBtX2J1ZmZlcjsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gbV9ibGFja0ZyYW1lOwogICAgIGludCBtX2JsYWNrRnJhbWVXaWR0aCB7IDAgfTsKICAg
ICBpbnQgbV9ibGFja0ZyYW1lSGVpZ2h0IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IDEwODFjZGUwNTg1MDFmMWU0NWNkMGUw
MzM5NjgyMzRjYzJjMWZiNmMuLmU4MGVjYzAxMzc4ZjNkNzkwN2MwNjdjNzk1YWQ3ZDI1NzQzYmM4
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
bW0KQEAgLTIwMCw3ICsyMDAsNiBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hOjpPbkZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUpCiAKIHZvaWQgUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnByb2Nlc3NOZXdTYW1wbGUoQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlLCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LCBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbikKIHsKLSAgICBtX2J1ZmZlciA9IHNhbXBsZTsK
ICAgICBhdXRvIHNpemUgPSB0aGlzLT5zaXplKCk7CiAgICAgaWYgKFdURjo6c2FmZUNhc3Q8aW50
Pih3aWR0aCkgIT0gc2l6ZS53aWR0aCgpIHx8IFdURjo6c2FmZUNhc3Q8aW50PihoZWlnaHQpICE9
IHNpemUuaGVpZ2h0KCkpCiAgICAgICAgIHNldEludHJpbnNpY1NpemUoSW50U2l6ZSh3aWR0aCwg
aGVpZ2h0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcAppbmRleCAxMzQ0MTI3YjhmYmZiZjFlNDdiYTY0ZDM2ZTZiMTNkNzBlODA2MDRhLi42
YmYwY2E0ODdkZDY0ZGJlZjUzOWQ5NDg4MGY2MjhjN2ZhMTYxYmYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTYyLDExICs2Miw4
IEBAIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hOjpSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYShSZWY8TWVkaWFTdHJlCiB7CiB9CiAKLXZvaWQgUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlQ29jb2E6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmLCBNZWRpYVNhbXBsZSYgc2FtcGxlKQordm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsK
LSAgICBpZiAoaXNTaWxlbmNlZCgpKQotICAgICAgICByZXR1cm47Ci0KICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBpZiAoISgrK21fbnVtYmVyT2ZGcmFtZXMgJSA2MCkpCiAgICAgICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgImZyYW1lICIsIG1fbnVtYmVyT2ZGcmFtZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuaAppbmRleCAw
NDg0YjFjZDEzMDJhZWExZWUzYWJhMjFiODIzZTJiNmVmZDQ0N2YzLi43NzEzZWQwYzE1OWExOWEy
MzU0OWE4ZTYzY2YxNzkxMzQ4N2NjZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuaApAQCAtNDQsOCArNDQsOCBAQCBwcml2YXRlOgogCiAgICAg
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4gY3JlYXRlQmxhY2tG
cmFtZShzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpIGZpbmFsOwogCi0gICAgLy8gTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIEFQSQotICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBk
YXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmluYWw7CisgICAg
Ly8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlciBBUEkKKyAgICB2b2lk
IHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmluYWw7CiAKICAgICBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY29udmVydFRvWVVWKENWUGl4ZWxCdWZmZXJSZWYpOwogICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGVQaXhlbEJ1ZmZlcihDVlBpeGVsQnVm
ZmVyUmVmLCB3ZWJydGM6OlZpZGVvUm90YXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCA2ZTI3
ODYzNjE2MTQyYTEzMTIyMTRmNDVkZWNiNGVmZGZkODk1NjYwLi4yMmI0Mzc4OTA1YzJiNWUxOWYy
MGUzNGM3MzYwYjZhY2ZlNDIyMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNjcsNiArNjcsNyBA
QCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogfQogI2VuZGlmCiAKKy8vIEZJWE1FOiBXZSBzaG91
bGQgbW92ZSBmcmFtZSBnZW5lcmF0aW9uIGluIGEgYmFja2dyb3VuZCB0aHJlYWQuCiBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQogICAgIDogUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
aGFzaFNhbHQpKQogICAgICwgbV9lbWl0RnJhbWVUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRo
aXMsICZNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2VuZXJhdGVGcmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA4N2JhMGE2MWVjMzNlYWI3YzI3ZDg1MDRmZTVmZjNi
ZmY1ODdkYmRjLi41MTllMTk4YWIyNTVlOTdhNzg4ZmE0NzRlMWQwY2NjNGZhODQ5ZDE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00NzcsMTAgKzQ3Nyw3IEBAIFJlZjxJ
bnRlcm5hbHM+IEludGVybmFsczo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIEludGVybmFs
czo6fkludGVybmFscygpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAobV90
cmFja1NvdXJjZSkgewotICAgICAgICBtX3RyYWNrU291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhp
cyk7Ci0gICAgICAgIG1fdHJhY2tTb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRo
aXMpOwotICAgIH0KKyAgICBzdG9wT2JzZXJ2aW5nUmVhbHRpbWVNZWRpYVNvdXJjZSgpOwogI2Vu
ZGlmCiB9CiAKQEAgLTUwNDAsMTkgKzUwMzcsNDQgQEAgdm9pZCBJbnRlcm5hbHM6OnNldENhbWVy
YU1lZGlhU3RyZWFtVHJhY2tPcmllbnRhdGlvbihNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaywgaW4K
ICAgICBzb3VyY2UubW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb25Ob3RpZmllcik7CiB9
CiAKLXZvaWQgSW50ZXJuYWxzOjpvYnNlcnZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRy
YWNrJiB0cmFjaykKK3ZvaWQgSW50ZXJuYWxzOjpzdG9wT2JzZXJ2aW5nUmVhbHRpbWVNZWRpYVNv
dXJjZSgpCiB7Ci0gICAgaWYgKG1fdHJhY2tTb3VyY2UpIHsKLSAgICAgICAgbV90cmFja1NvdXJj
ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotICAgICAgICBtX3RyYWNrU291cmNlLT5yZW1vdmVB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBpZiAoIW1fdHJhY2tTb3VyY2UpCisgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBtX3RyYWNrQXVkaW9TYW1wbGVDb3VudCA9IDA7Ci0gICAg
ICAgIG1fdHJhY2tWaWRlb1NhbXBsZUNvdW50ID0gMDsKKyAgICBzd2l0Y2ggKG1fdHJhY2tTb3Vy
Y2UtPnR5cGUoKSkgeworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86
CisgICAgICAgIG1fdHJhY2tTb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZp
ZGVvOgorICAgICAgICBtX3RyYWNrU291cmNlLT5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVyKCp0
aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CisgICAgbV90cmFj
a1NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgbV90cmFja1NvdXJjZSA9IG51
bGxwdHI7CisgICAgbV90cmFja0F1ZGlvU2FtcGxlQ291bnQgPSAwOworICAgIG1fdHJhY2tWaWRl
b1NhbXBsZUNvdW50ID0gMDsKK30KKwordm9pZCBJbnRlcm5hbHM6Om9ic2VydmVNZWRpYVN0cmVh
bVRyYWNrKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrKQoreworICAgIHN0b3BPYnNlcnZpbmdSZWFs
dGltZU1lZGlhU291cmNlKCk7CiAKICAgICBtX3RyYWNrU291cmNlID0gJnRyYWNrLnNvdXJjZSgp
OwogICAgIG1fdHJhY2tTb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKLSAgICBtX3RyYWNrU291
cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBzd2l0Y2ggKG1fdHJhY2tT
b3VyY2UtPnR5cGUoKSkgeworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW86CisgICAgICAgIG1fdHJhY2tTb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZp
ZGVvOgorICAgICAgICBtX3RyYWNrU291cmNlLT5hZGRWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlz
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpO
b25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiB9CiAKIHZvaWQgSW50
ZXJuYWxzOjpncmFiTmV4dE1lZGlhU3RyZWFtVHJhY2tGcmFtZShUcmFja0ZyYW1lUHJvbWlzZSYm
IHByb21pc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAyNWM3OWYxZjE5ZTc3
OGZhMDhjMDcwMjg4NWJkNThjYWZjNzJiN2QwLi5kOTI4ZWY0OGIyNmM2ZjkxYzEwYjEwNDhlYmU3
NWU3ODJmNzFiY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTEzMCw2ICsx
MzAsNyBAQCBjbGFzcyBJbnRlcm5hbHMgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnRlcm5h
bHM+LCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCiAgICAgLCBwcml2
YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICAsIHByaXZh
dGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlcgogI2VuZGlmCiAgICAg
ewogcHVibGljOgpAQCAtNzYzLDYgKzc2NCw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIHN0b3BPYnNlcnZpbmdSZWFsdGltZU1lZGlhU291
cmNlKCk7CisKICAgICB2b2lkIHNldE1vY2tBdWRpb1RyYWNrQ2hhbm5lbE51bWJlcihNZWRpYVN0
cmVhbVRyYWNrJiwgdW5zaWduZWQgc2hvcnQpOwogICAgIHZvaWQgc2V0Q2FtZXJhTWVkaWFTdHJl
YW1UcmFja09yaWVudGF0aW9uKE1lZGlhU3RyZWFtVHJhY2smLCBpbnQgb3JpZW50YXRpb24pOwog
ICAgIHVuc2lnbmVkIGxvbmcgdHJhY2tBdWRpb1NhbXBsZUNvdW50KCkgY29uc3QgeyByZXR1cm4g
bV90cmFja0F1ZGlvU2FtcGxlQ291bnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5k
ZXggZTg5M2NkMmMwOTFlZmZjYTQ3MDQ3YTQ4Zjg3NGZiZDQ2YmM5MzMxNS4uZTYwYzhmOGU1YzYy
M2FjYmI0ZGJlNWFkOTI0MzVlMzkzZGRmNTE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKQEAgLTUwLDggKzUwLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJv
eHkKLSAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgotICAgICwgcHVi
bGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICA6IHByaXZh
dGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBSZWFsdGltZU1l
ZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyCiAgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CkBAIC02MiwxMyArNjMsMzIgQEAgcHVibGljOgogICAgICAgICAsIG1fcmluZ0J1ZmZlciht
YWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRk
T2JzZXJ2ZXIoKnRoaXMpOwotICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7CisgICAgICAgIHN3aXRjaCAobV9zb3VyY2UtPnR5cGUoKSkgeworICAgICAgICBj
YXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICAgICAgbV9zb3Vy
Y2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86CisgICAgICAgICAg
ICBtX3NvdXJjZS0+YWRkVmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB+
U291cmNlUHJveHkoKQogICAgIHsKICAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKLSAg
ICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworCisgICAg
ICAgIHN3aXRjaCAobV9zb3VyY2UtPnR5cGUoKSkgeworICAgICAgICBjYXNlIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86CisgICAgICAgICAgICBtX3NvdXJjZS0+
cmVtb3ZlVmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KICAgICAgICAgbV9zb3VyY2UtPnJlbW92
ZU9ic2VydmVyKCp0aGlzKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCAz
NGVkNGU2MzBhYzE5OGIzMTA4MDMwZjc5YWEyM2M1M2E5M2Y2MTBmLi4zMTFjMTYxZTQ4YzBjODZk
ZjZhYWQ0NzAzYTM4NTY5NDVmYTEzMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC02
NCwyNiArNjQsMjcgQEAgTWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
KE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogICAgICAgICB3aWR0aCA9IHNlbGVjdGVkVHJh
Y2tzLnZpZGVvVHJhY2stPnNldHRpbmdzKCkud2lkdGgoKTsKICAgICB9CiAKLSAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlck1h
bmFnZXI6OkNyZWF0ZVJlY29yZGVyIHsgbV9pZGVudGlmaWVyLCAhIXNlbGVjdGVkVHJhY2tzLmF1
ZGlvVHJhY2ssIHdpZHRoLCBoZWlnaHQgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyksIGF1ZGlvVHJhY2sgPSBtYWtlUmVmUHRyKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2sp
XShhdXRvJiYgZXhjZXB0aW9uKSB7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7
IG1faWRlbnRpZmllciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLCB3aWR0aCwgaGVpZ2h0
IH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBhdWRpb1RyYWNrID0gbWFr
ZVJlZlB0cihzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKSwgdmlkZW9UcmFjayA9IG1ha2VSZWZQ
dHIoc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjayldKGF1dG8mJiBleGNlcHRpb24pIHsKICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGV4Y2Vw
dGlvbikKICAgICAgICAgICAgIHJldHVybiBtX2Vycm9yQ2FsbGJhY2soRXhjZXB0aW9uIHsgZXhj
ZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7CiAgICAgICAgIGlm
IChhdWRpb1RyYWNrKQogICAgICAgICAgICAgc2V0QXVkaW9Tb3VyY2UoJmF1ZGlvVHJhY2stPnNv
dXJjZSgpKTsKKyAgICAgICAgaWYgKHZpZGVvVHJhY2spCisgICAgICAgICAgICBzZXRWaWRlb1Nv
dXJjZSgmdmlkZW9UcmFjay0+c291cmNlKCkpOwogICAgIH0sIDApOwogfQogCiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKCkKIHsKICAgICBzZXRBdWRpb1NvdXJj
ZShudWxscHRyKTsKKyAgICBzZXRWaWRlb1NvdXJjZShudWxscHRyKTsKICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpSZWxlYXNlUmVj
b3JkZXIgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmIHRyYWNrLCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYgc2FtcGxlKQordm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkK
IHsKLSAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQotICAgICAg
ICByZXR1cm47CiAgICAgaWYgKGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6
OmNyZWF0ZShzYW1wbGUpKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlIHsgV1RGTW92ZSgqcmVtb3Rl
U2FtcGxlKSB9LCBtX2lkZW50aWZpZXIpOwogfQpAQCAtMTI4LDYgKzEyOSw3IEBAIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0
cjxXZWJDb3JlOjpTaGFyCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5n
KCkKIHsKICAgICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsKKyAgICBzZXRWaWRlb1NvdXJjZShu
dWxscHRyKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVj
b3JkZXI6OlN0b3BSZWNvcmRpbmcgeyB9LCBtX2lkZW50aWZpZXIpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuaAppbmRleCA2ODAwOTQyYTMwZGNkYzQxYWMzYmFmZmQ5YmE3ODgxMjgwOWI0NmQ2Li42
ZmYyOTQwNzk5NDdiNmFjOTY2YmU5MGFlNmE4M2M0MDExNDgwNTU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2
YXRlLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlCi0gICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNv
bnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVkaWFTYW1w
bGUmKSBmaW5hbDsKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlh
U2FtcGxlJikgZmluYWw7CiAgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KT4mJikgZmluYWw7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CiAgICAgdm9pZCBh
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3Jl
OjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCBzaXplX3QpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399017</attachid>
            <date>2020-05-11 07:22:42 -0700</date>
            <delta_ts>2020-05-12 02:30:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211718-20200511162240.patch</filename>
            <type>text/plain</type>
            <size>56098</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjBlNTdkNTVlMGQ0ZTQ0
OTYwMDMxNjdhNDkwZTFlNmY2N2Q3Mzg5Yy4uMGNkNTE0ZWYxZjZhZWUzYjk2NzhlZTk3Njk1MDc5
MGZjMTk5NGEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTA1LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZWFs
dGltZU1lZGlhU291cmNlIHZpZGVvIHNhbXBsZSBvYnNlcnZlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNzE4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgaW50cm9kdWNlIGFuIG9ic2VydmVyIGRl
ZGljYXRlZCB0byB2aWRlbyBzYW1wbGVzIHNpbWlsYXJseSB0byBBdWRpb1NhbXBsZU9ic2VydmVy
IGZvciBhdWRpby4KKyAgICAgICAgVGhpcyB3aWxsIGFsbG93IHRvIG1vdmUgdmlkZW8gZnJhbWUg
cHJvY2Vzc2luZyBvdXQgb2YgdGhlIG1haW4gdGhyZWFkIHByb2dyZXNzaXZlbHkuCisgICAgICAg
IEZvciBub3csIHdlIHJlbW92ZSB2aWRlbyBzYW1wbGUgb2JzZXJ2aW5nIGZyb20gdGhlIHRyYWNr
IHByaXZhdGUgYW5kIG9ic2VydmVycyBzaG91bGQgbm93IHJlZ2lzdGVyIGRpcmVjdGx5IHRvIHRo
ZSByZWFsdGltZSBtZWRpYSBzb3VyY2UuCisgICAgICAgIFdlIHVwZGF0ZSB0aGUgdmFyaW91cyB1
c2VycywgaW5jbHVkaW5nIE1lZGlhUmVjb3JkZXIgYW5kIHRoZSBtZWRpYSBwbGF5ZXIuCisgICAg
ICAgIEluIGJvdGggY2FzZXMsIHRoZXkgd2lsbCBvbmx5IG9ic2VydmUgdGhlIHZpZGVvIHRyYWNr
IHRvIGJlIHBsYXllZC9yZWNvcmRlZCwgd2hpY2ggaXMgYm90aCBtb3JlIGVmZmljaWVudCBhbmQg
c2ltcGxlci4KKworICAgICAgICBXZSBpbnRyb2R1Y2VkIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9i
c2VydmVyOjpoYXNTdGFydGVkUHJvZHVjaW5nRGF0YSBjYWxsYmFjayBmb3IgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUgc28gCisgICAgICAgIHRoYXQgdGhlIHByb2Nlc3NpbmcgdG8gZG8gd2hlbiB0
aGUgZmlyc3Qgc2FtcGxlcyBhcmUgYXZhaWxhYmxlIGNhbiBiZSBkb25lIG9uIHRoZSBtYWluIHRo
cmVhZC4KKworICAgICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSBubyBsb25nZXIgZmlsdGVy
cyBvdXQgc2FtcGxlcyBpZiBpdCBpcyBub3QgZW5hYmxlZC4KKyAgICAgICAgQXMgc3VjaCwgZWFj
aCBjb25zdW1lciBpcyBub3cgcmVzcG9uc2libGUgdG8gb2JzZXJ2ZS91bm9ic2VydmUgdGhlIHNv
dXJjZSB3aGVuIGl0cyB0cmFjayBnZXRzIGVuYWJsZWQvZGlzYWJsZWQgc2ltaWxhcmx5IGFzIGZv
ciBhdWRpbywKKyAgICAgICAgb3IgZG8gbm90aGluZyBpZiB0cmFjayBpcyBub3QgZW5hYmxlZC4K
KworICAgICAgICBTaW1pbGFybHksIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hIHdp
bGwgbm93IG9ubHkgb2JzZXJ2ZSB2aWRlbyBzYW1wbGVzIHdoZW4gdGhlIHRyYWNrIGlzIGVuYWJs
ZWQgYW5kIG5vdCBtdXRlZC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgor
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6c2FtcGxlQnVmZmVyVXBkYXRlZCk6IERlbGV0
ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1w
bGUpOgorICAgICAgICBXZSBjYW4gcmVub3ZlIHRoZSB0cmFjayBjaGVjayBzaW5jZSB3ZSBvbmx5
IG9ic2VydmUgdGhlIGFjdGl2ZSB2aWRlbyB0cmFjay4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpj
aGVja1NlbGVjdGVkVmlkZW9UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzZXRWaWRlb1NvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQ
cml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGw6On5NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnN0b3BSZWNvcmRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzYW1w
bGVCdWZmZXJVcGRhdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6fk1lZGlhUmVjb3Jk
ZXJQcml2YXRlTW9jayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1v
Y2s6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZh
dGVNb2NrOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Omhhc1N0YXJ0ZWRQ
cm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Ojp1cGRhdGVSZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6aGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZFZp
ZGVvU2FtcGxlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVtb3ZlVmlkZW9TYW1wbGVPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjp1cGRhdGVIYXNTdGFydGVkUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjp1
bm9ic2VydmVTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlOjp1cGRhdGVCbGFja0ZyYW1lc1NlbmRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlYWx0aW1lVmlkZW9Tb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNl
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRw
dXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbik6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2E6OnByb2Nlc3NOZXdTYW1wbGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6dmlkZW9TYW1wbGVBdmFp
bGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29j
b2E6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6fklu
dGVybmFscyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnN0b3BPYnNlcnZpbmdSZWFs
dGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6b2JzZXJ2ZU1l
ZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisKIDIwMjAt
MDUtMTAgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggYmFzZTY0
LmFueS5odG1sIHRlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDVmYjk1NDM3Y2ZmMGM0OTdhY2E5M2VmNGQzYWE2
NTBkNjExOTJlMC4uMzllMmRlOTYyMmY2NWFmNDA3NzEyNzk1NWM5ZDZhYTI3MjI0MTVjNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0wNS0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGEgUmVhbHRpbWVNZWRpYVNvdXJjZSB2
aWRlbyBzYW1wbGUgb2JzZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTcxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
b3VyY2VQcm94eTo6U291cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6flNvdXJjZVByb3h5KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRl
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3BSZWNv
cmRpbmcpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2FtcGxlQnVm
ZmVyVXBkYXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmg6CisKIDIwMjAtMDUtMTAgIEJhc3VrZSBTdXp1a2kgIDxiYXN1
a2Uuc3V6dWtpQHNvbnkuY29tPgogCiAgICAgICAgIEFkZCBFTkFCTEVfUEVSSU9ESUNfTUVNT1JZ
X01PTklUT1IgZmxhZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCBlY2E1ZTllY2YxZTI4NzcxMGJiMDE5ZjI2
MDAzNWUxNjFiMDJlMDg5Li43MGNmMzQ3NzM2ZmY0ZDM2OGEyMmE3MDczNzk3OWNjM2JmMjBkNjky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuY3BwCkBAIC0yMjIsMTEgKzIyMiw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6
dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiAgICAgc3RvcFJlY29yZGluZygp
OwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXI6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCi17Ci0gICAg
bV9wcml2YXRlLT5zYW1wbGVCdWZmZXJVcGRhdGVkKHRyYWNrLCBtZWRpYVNhbXBsZSk7Ci19Ci0K
IGJvb2wgTWVkaWFSZWNvcmRlcjo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fc3RhdGUgIT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgK
aW5kZXggNmE0OTRkNGEwYzMwNTU2YTE4ZjdkYzc0NjgyZjZmNjFiYjk5NDQ0ZS4uMmZkOWVhNTg2
YzljMGUxMWMwMDEyYWZiNTYyNmI2MzNhYzIzZWNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCkBAIC0xMDgsNyArMTA4
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgZmluYWwgeyB9OwogICAgIHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH07CiAgICAgdm9pZCB0cmFja0VuYWJsZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9OwotICAgIHZvaWQgc2Ft
cGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikg
ZmluYWw7CiAKICAgICBzdGF0aWMgQ3JlYXRvckZ1bmN0aW9uIG1fY3VzdG9tQ3JlYXRvcjsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXggMDUxZGJiYjMzMjYzYjQyODdhNDY4NWEw
MTBlZmJiZGM1MGEzZWI2NC4uOTY2MzA3OWUyZjgwNGYzMjA5NzNhYmNlYTcwMWIwMDY5ZmFmYmI4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTUxLDcgKzUxLDEyIEBAIGNsYXNzIFBp
eGVsQnVmZmVyQ29uZm9ybWVyQ1Y7CiBjbGFzcyBWaWRlb0xheWVyTWFuYWdlck9iakM7CiBjbGFz
cyBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOwogCi1jbGFzcyBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlLCBwcml2YXRlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OkNsaWVudAorY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
IGZpbmFsCisgICAgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisgICAgLCBw
cml2YXRlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICAsIHB1YmxpYyBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICAsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291
cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyCisgICAgLCBwdWJsaWMgU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjpDbGllbnQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCiB7CiBwdWJsaWM6CkBA
IC0xMzQsNyArMTM5LDcgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhVGltZSBjYWxjdWxhdGVUaW1l
bGluZU9mZnNldChjb25zdCBNZWRpYVNhbXBsZSYsIGRvdWJsZSk7CiAgICAgCi0gICAgdm9pZCBl
bnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYp
OworICAgIHZvaWQgZW5xdWV1ZVZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJik7CiAgICAgdm9pZCBl
bnF1ZXVlQ29ycmVjdGVkVmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmKTsKICAgICB2b2lkIHJlcXVl
c3ROb3RpZmljYXRpb25XaGVuUmVhZHlGb3JWaWRlb0RhdGEoKTsKIApAQCAtMTk3LDkgKzIwMiwx
MSBAQCBwcml2YXRlOgogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmKSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsKICAgICB2b2lkIHRyYWNrRW5h
YmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07Ci0gICAg
dm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFT
YW1wbGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAKKyAgICAvLyBSZWFsdGltZU1lZGlhU291Y2U6OlZp
ZGVvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2Ft
cGxlJikgZmluYWw7CisKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gY3JlYXRlVmlkZW9G
dWxsc2NyZWVuTGF5ZXIoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJl
Y3QpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDM2ODVkYmFmNjUz
ODM4MTVjNmQwNzJlOWMyZjUxOWI1MTAzMDA2YmMuLjAxOTkyYTViYjZiMWVjNTA0YjUzMWMzMjZl
Y2E4ZDEyMjQ4N2FkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTE1NSwxNSAr
MTU1LDE3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6fk1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQygpCiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFj
ayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkKICAgICAgICAgdHJhY2stPnBhdXNlKCk7CiAK
LSAgICBpZiAobV9tZWRpYVN0cmVhbVByaXZhdGUpIHsKKyAgICBpZiAobV9tZWRpYVN0cmVhbVBy
aXZhdGUpCiAgICAgICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5yZW1vdmVPYnNlcnZlcigqdGhp
cyk7CiAKLSAgICAgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMo
KSkKLSAgICAgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnJlbW92ZU9ic2VydmVyKCp0aGlz
KTsKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQorICAg
ICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAKLSAgICAg
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdmlkZW9UcmFja01hcC52YWx1ZXMoKSkKLSAgICAgICAg
ICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKLSAgICB9Cisg
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdmlkZW9UcmFja01hcC52YWx1ZXMoKSkKKyAgICAgICAg
dHJhY2stPnN0cmVhbVRyYWNrKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKG1f
YWN0aXZlVmlkZW9UcmFjaykKKyAgICAgICAgbV9hY3RpdmVWaWRlb1RyYWNrLT5zb3VyY2UoKS5y
ZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKIAogICAgIFttX2JvdW5kc0NoYW5nZUxp
c3RlbmVyIGludmFsaWRhdGVdOwogCkBAIC0yNzksMTEgKzI4MSw4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlQ29ycmVjdGVkVmlkZW9TYW1wbGUo
TWVkaWFTYW1wCiAgICAgfQogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFj
aywgTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKLSAg
ICBpZiAoJnRyYWNrICE9IGFjdGl2ZVZpZGVvVHJhY2soKSkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgaWYgKCFtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSB8fCBtX2Rpc3BsYXlNb2RlICE9IFBh
dXNlZEltYWdlKSB7CiAgICAgICAgIG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlID0gJnNhbXBs
ZTsKICAgICAgICAgbV9pbWFnZVBhaW50ZXIuY2dJbWFnZSA9IG51bGxwdHI7CkBAIC0yOTQsMTMg
KzI5MywxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5x
dWV1ZVZpZGVvU2FtcGxlKE1lZGlhU3RyZWFtVHJhY2tQcgogICAgIGlmIChtX2Rpc3BsYXlNb2Rl
ICE9IExpdmVQcmV2aWV3ICYmICFtX3dhaXRpbmdGb3JGaXJzdEltYWdlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBhdXRvIHZpZGVvVHJhY2sgPSBtX3ZpZGVvVHJhY2tNYXAuZ2V0KHRyYWNrLmlk
KCkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IHF1ZXJ5IHRoZSBtYXAgZWFjaCB0aW1l
IHdlIGdldCBhIHNhbXBsZS4KKyAgICBhdXRvIHZpZGVvVHJhY2sgPSBtX3ZpZGVvVHJhY2tNYXAu
Z2V0KG1fYWN0aXZlVmlkZW9UcmFjay0+aWQoKSk7CiAgICAgTWVkaWFUaW1lIHRpbWVsaW5lT2Zm
c2V0ID0gdmlkZW9UcmFjay0+dGltZWxpbmVPZmZzZXQoKTsKICAgICBpZiAodGltZWxpbmVPZmZz
ZXQgPT0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKSB7CiAgICAgICAgIHRpbWVsaW5lT2Zmc2V0
ID0gY2FsY3VsYXRlVGltZWxpbmVPZmZzZXQoc2FtcGxlLCByZW5kZXJlckxhdGVuY3kpOwogICAg
ICAgICB2aWRlb1RyYWNrLT5zZXRUaW1lbGluZU9mZnNldCh0aW1lbGluZU9mZnNldCk7CiAKLSAg
ICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInRpbWVsaW5lIG9mZnNldCBmb3IgdHJhY2sg
IiwgdHJhY2suaWQoKSwgIiBzZXQgdG8gIiwgdGltZWxpbmVPZmZzZXQpOworICAgICAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSLCAidGltZWxpbmUgb2Zmc2V0IGZvciB0cmFjayAiLCBtX2FjdGl2
ZVZpZGVvVHJhY2stPmlkKCksICIgc2V0IHRvICIsIHRpbWVsaW5lT2Zmc2V0KTsKICAgICB9CiAK
ICAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgIm9yaWdpbmFsIHNhbXBsZSA9ICIsIHNhbXBs
ZSk7CkBAIC00NzEsNyArNDcxLDcgQEAgUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIAogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpEaXNwbGF5TW9kZSBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnREaXNwbGF5TW9kZSgpIGNvbnN0CiB7Ci0gICAgaWYg
KG1faW50cmluc2ljU2l6ZS5pc0VtcHR5KCkgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgIW1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQorICAgIGlmIChtX2ludHJpbnNpY1NpemUuaXNFbXB0
eSgpIHx8ICFtZXRhRGF0YUF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gTm9uZTsKIAogICAg
IGlmIChhdXRvKiB0cmFjayA9IGFjdGl2ZVZpZGVvVHJhY2soKSkgewpAQCAtNzM1LDI2ICs3MzUs
MTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmRpZFJlbW92
ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXQKICAgICB1cGRhdGVUcmFja3MoKTsKIH0KIAot
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNhbXBsZUJ1ZmZlclVw
ZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYgbWVkaWFT
YW1wbGUpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9T
YW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKQogewotICAgIEFTU0VSVCh0
cmFjay5pZCgpID09IG1lZGlhU2FtcGxlLnRyYWNrSUQoKSk7Ci0gICAgQVNTRVJUKG1lZGlhU2Ft
cGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZm
ZXJUeXBlKTsKLSAgICBBU1NFUlQobV9tZWRpYVN0cmVhbVByaXZhdGUpOwotCiAgICAgaWYgKHN0
cmVhbVRpbWUoKS50b0RvdWJsZSgpIDwgMCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3dpdGNo
ICh0cmFjay50eXBlKCkpIHsKLSAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5v
bmU6Ci0gICAgICAgIC8vIERvIG5vdGhpbmcuCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Ci0gICAgICAgIGlmICgmdHJhY2sgPT0g
bV9hY3RpdmVWaWRlb1RyYWNrLmdldCgpKQotICAgICAgICAgICAgZW5xdWV1ZVZpZGVvU2FtcGxl
KHRyYWNrLCBtZWRpYVNhbXBsZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBlbnF1ZXVl
VmlkZW9TYW1wbGUobWVkaWFTYW1wbGUpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKQpAQCAtODUxLDYgKzgzNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpjaGVja1NlbGVjdGVkVmlkZW9UcmFjaygpCiAgICAgc2NoZWR1bGVEZWZlcnJl
ZFRhc2soW3RoaXNdIHsKICAgICAgICAgYXV0byBvbGRWaWRlb1RyYWNrID0gbV9hY3RpdmVWaWRl
b1RyYWNrOwogICAgICAgICBib29sIGhpZGVWaWRlb0xheWVyID0gdHJ1ZTsKKwogICAgICAgICBt
X2FjdGl2ZVZpZGVvVHJhY2sgPSBudWxscHRyOwogICAgICAgICBpZiAoYXV0byogYWN0aXZlVmlk
ZW9UcmFjayA9IHRoaXMtPmFjdGl2ZVZpZGVvVHJhY2soKSkgewogICAgICAgICAgICAgZm9yIChj
b25zdCBhdXRvJiB0cmFjayA6IG1fdmlkZW9UcmFja01hcC52YWx1ZXMoKSkgewpAQCAtODc3LDYg
Kzg2NCwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2hl
Y2tTZWxlY3RlZFZpZGVvVHJhY2soKQogCiAgICAgICAgIG1fcGVuZGluZ1NlbGVjdGVkVHJhY2tD
aGVjayA9IGZhbHNlOwogICAgICAgICB1cGRhdGVEaXNwbGF5TW9kZSgpOworCisgICAgICAgIGlm
IChvbGRWaWRlb1RyYWNrICE9IG1fYWN0aXZlVmlkZW9UcmFjaykgeworICAgICAgICAgICAgaWYg
KG9sZFZpZGVvVHJhY2spCisgICAgICAgICAgICAgICAgb2xkVmlkZW9UcmFjay0+c291cmNlKCku
cmVtb3ZlVmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgICAgICBpZiAobV9hY3Rp
dmVWaWRlb1RyYWNrKQorICAgICAgICAgICAgICAgIG1fYWN0aXZlVmlkZW9UcmFjay0+c291cmNl
KCkuYWRkVmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIH0KICAgICB9KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IGUyOGUzODM2YjFmOTcxMTM3NDA4OTMzZmIx
ZTBkMzI1ODhiMDhlMTcuLjI0ZmJlODg2NGRhNjNiYmI2ZGQzNDU0NWYxNjU2N2JkN2YyNTc0ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTQ0LDggKzQ0LDkgQEAgY2xhc3MgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU7CiBjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKIGNsYXNzIFNoYXJl
ZEJ1ZmZlcjsKIAotY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgOgotICAgIHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKK2NsYXNzIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlCisgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVP
YnNlcnZlcgorICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2Jz
ZXJ2ZXIgewogcHVibGljOgogICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpOwogCkBAIC01NSw4
ICs1Niw2IEBAIHB1YmxpYzoKICAgICB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRp
b1ZpZGVvU2VsZWN0ZWRUcmFja3Mgc2VsZWN0VHJhY2tzKE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwog
Ci0gICAgdmlydHVhbCB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpID0gMDsKLQogICAgIHVzaW5nIEZldGNoRGF0YUNh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKT47CiAgICAgdmlydHVhbCB2b2lkIGZldGNoRGF0YShGZXRj
aERhdGFDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BSZWNvcmRpbmcoKSA9
IDA7CkBAIC02NiwxMiArNjUsMTQgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBz
ZXRBdWRpb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgdm9pZCBz
ZXRWaWRlb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAKIHByb3RlY3Rl
ZDoKICAgICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxsYmFjazsKIAogcHJpdmF0ZToKICAgICBS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9hdWRpb1NvdXJjZTsKKyAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gbV92aWRlb1NvdXJjZTsKIH07CiAKIGlubGluZSB2b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlOjpzZXRBdWRpb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4mJiBhdWRpb1NvdXJjZSkKQEAgLTg1LDEwICs4NiwyNSBAQCBpbmxpbmUgdm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6c2V0QXVkaW9Tb3VyY2UoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
JiYgYQogICAgICAgICBtX2F1ZGlvU291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlz
KTsKIH0KIAoraW5saW5lIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNldFZpZGVvU291cmNl
KFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHZpZGVvU291cmNlKQoreworICAgIGlmICht
X3ZpZGVvU291cmNlKQorICAgICAgICBtX3ZpZGVvU291cmNlLT5yZW1vdmVWaWRlb1NhbXBsZU9i
c2VydmVyKCp0aGlzKTsKKworICAgIG1fdmlkZW9Tb3VyY2UgPSBXVEZNb3ZlKHZpZGVvU291cmNl
KTsKKworICAgIGlmIChtX3ZpZGVvU291cmNlKQorICAgICAgICBtX3ZpZGVvU291cmNlLT5hZGRW
aWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKK30KKwogaW5saW5lIE1lZGlhUmVjb3JkZXJQcml2
YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQogeworICAgIEFTU0VSVCghbV9hdWRpb1NvdXJj
ZSk7CisgICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlKTsKICAgICBpZiAobV9hdWRpb1NvdXJjZSkK
ICAgICAgICAgbV9hdWRpb1NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7
CisgICAgaWYgKG1fdmlkZW9Tb3VyY2UpCisgICAgICAgIG1fdmlkZW9Tb3VyY2UtPnJlbW92ZVZp
ZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKaW5kZXggODc4OTQwYjBmOTEw
MjQzMzc1ODNkYWE2Y2YzMjczODJhNWY1ZmVhYi4uMmM5ZTljOGVmYTRmM2I0MjQwYWZlYmZlYTBh
ZTIwNmU4NmNlZDNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNw
cApAQCAtNTksNiArNTksOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZQogICAgIGF1dG8gcmVj
b3JkZXIgPSBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4od3JpdGVyLnJl
bGVhc2VOb25OdWxsKCksIFdURk1vdmUoYXVkaW9UcmFja0lkKSwgV1RGTW92ZSh2aWRlb1RyYWNr
SWQpKTsKICAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykKICAgICAgICAgcmVjb3Jk
ZXItPnNldEF1ZGlvU291cmNlKCZzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5zb3VyY2UoKSk7
CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spCisgICAgICAgIHJlY29yZGVyLT5z
ZXRWaWRlb1NvdXJjZSgmc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjay0+c291cmNlKCkpOwogICAg
IHJldHVybiByZWNvcmRlcjsKIH0KIApAQCAtNzIsMTIgKzc0LDExIEBAIE1lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbDo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKFJlZjxNZWRpYVJlY29y
ZGVyUHJpdmF0CiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6On5NZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGwoKQogewogICAgIHNldEF1ZGlvU291cmNlKG51bGxwdHIpOworICAgIHNldFZp
ZGVvU291cmNlKG51bGxwdHIpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bDo6c2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJh
Y2ssIE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIpCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikK
IHsKLSAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQotICAgICAg
ICByZXR1cm47CiAgICAgbV93cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1
ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiB9CiAKQEAgLTkx
LDYgKzkyLDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWUKIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsOjpzdG9wUmVjb3JkaW5nKCkKIHsKICAgICBzZXRBdWRpb1NvdXJjZShudWxs
cHRyKTsKKyAgICBzZXRWaWRlb1NvdXJjZShudWxscHRyKTsKICAgICBtX3dyaXRlci0+c3RvcFJl
Y29yZGluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaAppbmRl
eCA3MTlhZGJiYWU5MThiMjdmN2VlYzcyZWQ0NzYyZWM3ZWY2ZjhlZDJmLi5iZDZmNzU4ODI4ZDIy
MDM2NGI1ZGEwOWU3MTg2OGIxNzU4ZjJhMTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGVBVkZJbXBsLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gc3RkOjptYWtlX3VuaXF1ZTxN
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+KFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cj4mJiwgU3RyaW5nJiYsIFN0cmluZyYmKTsKIAogICAgIC8vIE1lZGlhUmVjb3JkZXJQcml2YXRl
Ci0gICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJikgZmluYWw7CiAgICAgdm9pZCBmZXRjaERhdGEoRmV0Y2hEYXRhQ2FsbGJh
Y2smJikgZmluYWw7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9j
ay5jcHAKaW5kZXggYTFkMGQxMGMwNjExMWU2OGE0NmU1NDg1NGRjOTYxZWRlMjA3NmQ5Ni4uNmE1
MjI4ODVkMmNkZjNhYzk2NGUwMWYzNGY1NzZjYjRjZjhiMWVhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGVNb2NrLmNwcApAQCAtNDAsMjEgKzQwLDI1IEBAIE1lZGlhUmVjb3JkZXJQcml2
YXRlTW9jazo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3Ry
ZWFtKQogICAgICAgICBtX2F1ZGlvVHJhY2tJRCA9IHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2st
PmlkKCk7CiAgICAgICAgIHNldEF1ZGlvU291cmNlKCZzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNr
LT5zb3VyY2UoKSk7CiAgICAgfQotICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKQor
ICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKSB7CiAgICAgICAgIG1fdmlkZW9UcmFj
a0lEID0gc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjay0+aWQoKTsKKyAgICAgICAgc2V0VmlkZW9T
b3VyY2UoJnNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2stPnNvdXJjZSgpKTsKKyAgICB9CiB9CiAK
IE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6fk1lZGlhUmVjb3JkZXJQcml2YXRlTW9jaygpCiB7
CiAgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7CisgICAgc2V0VmlkZW9Tb3VyY2UobnVsbHB0
cik7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpzdG9wUmVjb3JkaW5nKCkK
IHsKICAgICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsKKyAgICBzZXRWaWRlb1NvdXJjZShudWxs
cHRyKTsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVw
ZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpCit2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1w
bGUmKQogewogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9idWZmZXJMb2NrKTsKICAgICBt
X2J1ZmZlci5hcHBlbmQoIlZpZGVvIFRyYWNrIElEOiAiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2
YXRlTW9jay5oCmluZGV4IGI3ZjNjMjE0OGUzOTllYTIyMzZkOTJjODY1OWY3OTg3MWJhZTE3ZDQu
LmU1MTI5ZGU2MDNjYWU0ODBjODg2ZmY0Y2IwYzA3NmM0YzgxMWE3YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVN
b2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2suaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgLy8gTWVkaWFSZWNvcmRlclByaXZhdGUKLSAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0
ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwor
ICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKICAgICB2
b2lkIGZldGNoRGF0YShGZXRjaERhdGFDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CiAg
ICAgdm9pZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5j
cHAKaW5kZXggZjM2M2Y5NDBhOTNmYWY2MmQzMTY2NGY0ZGM3MTE0MzRmM2JmYjg4YS4uNTY5Zjkw
MTk3MGYyMmMyODI1NjdlYmIwYjYzYzNiYWVlY2UzODVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmNwcApAQCAtMjM2LDI4ICsyMzYsMTIgQEAgYm9vbCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6cHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpCiAgICAgcmV0dXJuICFtX2lzRW5kZWQ7
CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
Omhhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwotICAgIGlmICghbV9oYXZlUHJvZHVjZWREYXRhKSB7Ci0gICAgICAgIG1faGF2ZVByb2R1Y2Vk
RGF0YSA9IHRydWU7Ci0gICAgICAgIHVwZGF0ZVJlYWR5U3RhdGUoKTsKLSAgICB9Ci0KLSAgICBp
ZiAoIWVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbWVkaWFTYW1wbGUuc2V0VHJh
Y2tJRChpZCgpKTsKLSAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7Ci0g
ICAgICAgIG9ic2VydmVyLnNhbXBsZUJ1ZmZlclVwZGF0ZWQoKnRoaXMsIG1lZGlhU2FtcGxlKTsK
LSAgICB9KTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6aGFzU3RhcnRlZFBy
b2R1Y2luZ0F1ZGlvRGF0YSgpCi17Ci0gICAgaWYgKG1faGF2ZVByb2R1Y2VkRGF0YSkKKyAgICBp
ZiAobV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSkKICAgICAgICAgcmV0dXJuOwotICAgIG1faGF2
ZVByb2R1Y2VkRGF0YSA9IHRydWU7CisgICAgbV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSA9IHRy
dWU7CiAgICAgdXBkYXRlUmVhZHlTdGF0ZSgpOwogfQogCkBAIC0yNjcsNyArMjUxLDcgQEAgdm9p
ZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6dXBkYXRlUmVhZHlTdGF0ZSgpCiAKICAgICBpZiAo
bV9pc0VuZGVkKQogICAgICAgICBzdGF0ZSA9IFJlYWR5U3RhdGU6OkVuZGVkOwotICAgIGVsc2Ug
aWYgKG1faGF2ZVByb2R1Y2VkRGF0YSkKKyAgICBlbHNlIGlmIChtX2hhc1N0YXJ0ZWRQcm9kdWNp
bmdEYXRhKQogICAgICAgICBzdGF0ZSA9IFJlYWR5U3RhdGU6OkxpdmU7CiAKICAgICBpZiAoc3Rh
dGUgPT0gbV9yZWFkeVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKaW5kZXggMjJjYWRj
ZTg3ZWYyYWI4ZWU4YTU1NWRhNzg5MzI2MmI5YjM4YjcwYy4uM2Y3ZTY4NDFkMGFjY2RhNDhmZGNh
MmRiMWFhMjBjMGY5NTJkNTQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBAIC01OSw3
ICs1OSw2IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJh
Y2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgeyB9OwogICAgICAgICB2aXJ0dWFsIHZv
aWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSB7IH07CiAgICAg
fTsKIApAQCAtMTMzLDkgKzEzMiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VNdXRlZENo
YW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsOwog
ICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsOwotICAgIHZvaWQgdmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKICAgICB2b2lkIGF1ZGlvVW5p
dFdpbGxTdGFydCgpIGZpbmFsOwotICAgIHZvaWQgaGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0
YSgpIGZpbmFsOworICAgIHZvaWQgaGFzU3RhcnRlZFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKIAog
ICAgIHZvaWQgdXBkYXRlUmVhZHlTdGF0ZSgpOwogCkBAIC0xNTMsOCArMTUxLDcgQEAgcHJpdmF0
ZToKICAgICBSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZSB7IFJlYWR5U3RhdGU6Ok5vbmUgfTsKICAg
ICBib29sIG1faXNFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc0VuZGVkIHsgZmFsc2Ug
fTsKLSAgICBib29sIG1faGF2ZVByb2R1Y2VkRGF0YSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hh
c1NlbnRTdGFydFByb2R1Y2VkRGF0YSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1N0YXJ0ZWRQ
cm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKICAgICBIaW50VmFsdWUgbV9jb250ZW50SGludCB7IEhp
bnRWYWx1ZTo6RW1wdHkgfTsKICAgICBSZWZQdHI8V2ViQXVkaW9Tb3VyY2VQcm92aWRlcj4gbV9h
dWRpb1NvdXJjZVByb3ZpZGVyOwogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmNwcAppbmRleCA2ZTlmNWI5NmUxNWUwODhiOGExODc4MWQ5ZjcwNDRkZGVm
NmM4ZDk5Li5mN2Q5MDk2ZGI1Y2EwZDY3NzVlNGFmZjAzN2E5YmE2NWIzZTZlMzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmNwcApAQCAtNzQsNiArNzQsMjAgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlOjpyZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKEF1ZGlvU2FtcGxlT2JzZXJ2ZXImIG9ic2Vy
dmUKICAgICBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOwogfQogCit2
b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoVmlkZW9TYW1w
bGVPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrKTsKKyAg
ICBtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOworfQorCit2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoVmlkZW9TYW1wbGVPYnNl
cnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrKTsKKyAgICBtX3Zp
ZGVvU2FtcGxlT2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOworfQorCiB2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTU0LDggKzE2OCwyNyBAQCB2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2U6Om5vdGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKE9wdGlvblNldDxSZWFs
dGltZU1lZAogICAgIH0pOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnVwZGF0ZUhh
c1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9oYXNTdGFydGVkUHJvZHVjaW5n
RGF0YSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAobV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSA9
IHRydWU7CisgICAgICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKKyAg
ICAgICAgICAgIG9ic2VydmVyLmhhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCk7CisgICAgICAgIH0p
OworICAgIH0pOworfQorCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKIHsKKyAgICAvLyBGSVhNRTogTWlncmF0
ZSBSZWFsdGltZU1lZGlhU291cmNlIGNsaWVudHMgdG8gbm9uIG1haW4gdGhyZWFkIHByb2Nlc3Np
bmcuCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICArK21fZnJhbWVDb3VudDsKIApAQCAtMTcwLDI1ICsyMDMsMTYgQEAgdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgbWVkaWFT
YW1wbGUpCiAgICAgfQogI2VuZGlmCiAKLSAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9i
c2VydmVyKSB7Ci0gICAgICAgIG9ic2VydmVyLnZpZGVvU2FtcGxlQXZhaWxhYmxlKG1lZGlhU2Ft
cGxlKTsKLSAgICB9KTsKKyAgICB1cGRhdGVIYXNTdGFydGVkUHJvZHVjaW5nRGF0YSgpOworCisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7Cisg
ICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnMpCisgICAgICAg
IG9ic2VydmVyLT52aWRlb1NhbXBsZUF2YWlsYWJsZShtZWRpYVNhbXBsZSk7CiB9CiAKIHZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKIHsK
LSAgICBpZiAoIW1faGFzU2VudFN0YXJ0UHJvZHVjZWRBdWRpb0RhdGEpIHsKLSAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewotICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICBpZiAobV9oYXNTZW50U3RhcnRQcm9kdWNlZEF1ZGlvRGF0YSkKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICBtX2hhc1NlbnRTdGFydFByb2R1Y2VkQXVkaW9EYXRhID0g
dHJ1ZTsKLSAgICAgICAgICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsK
LSAgICAgICAgICAgICAgICBvYnNlcnZlci5oYXNTdGFydGVkUHJvZHVjaW5nQXVkaW9EYXRhKCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIHVwZGF0ZUhhc1N0YXJ0
ZWRQcm9kdWNpbmdEYXRhKCk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYXVkaW9T
YW1wbGVPYnNlcnZlcnNMb2NrKTsKICAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogbV9hdWRpb1Nh
bXBsZU9ic2VydmVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBmOGFiYWEzYWViZWJiZTYzZWVk
ZTFmNWQzMDIyN2Q4ODRlYjQ4MTc4Li4xZGI4MTE0NTk2ZmI4ZjE5YTA4M2EwM2JhYjM4ZGJkZjI1
OGE1ODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC04OSwxMCArODksNyBAQCBwdWJsaWM6CiAg
ICAgICAgIC8vIE9ic2VydmVyIHN0YXRlIHF1ZXJpZXMuCiAgICAgICAgIHZpcnR1YWwgYm9vbCBw
cmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgICAgICAv
LyBDYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlkZW9T
YW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSB7IH0KLQotICAgICAgICB2aXJ0dWFsIHZvaWQg
aGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQg
aGFzU3RhcnRlZFByb2R1Y2luZ0RhdGEoKSB7IH0KICAgICB9OwogICAgIGNsYXNzIEF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTEwMSw2ICs5OCwxMiBAQCBwdWJsaWM6CiAg
ICAgICAgIC8vIE1heSBiZSBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KICAgICAgICAg
dmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXpl
X3QgLypudW1iZXJPZkZyYW1lcyovKSA9IDA7CiAgICAgfTsKKyAgICBjbGFzcyBWaWRlb1NhbXBs
ZU9ic2VydmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgflZpZGVvU2FtcGxlT2Jz
ZXJ2ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHZpZGVvU2FtcGxlQXZh
aWxhYmxlKE1lZGlhU2FtcGxlJikgeyB9CisgICAgfTsKIAogICAgIHZpcnR1YWwgflJlYWx0aW1l
TWVkaWFTb3VyY2UoKSA9IGRlZmF1bHQ7CiAKQEAgLTEzOSw2ICsxNDIsOSBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBdWRpb1NhbXBsZU9ic2VydmVyKEF1ZGlvU2FtcGxl
T2JzZXJ2ZXImKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUF1ZGlvU2FtcGxlT2Jz
ZXJ2ZXIoQXVkaW9TYW1wbGVPYnNlcnZlciYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBh
ZGRWaWRlb1NhbXBsZU9ic2VydmVyKFZpZGVvU2FtcGxlT2JzZXJ2ZXImKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoVmlkZW9TYW1wbGVPYnNlcnZl
ciYpOworCiAgICAgY29uc3QgSW50U2l6ZSBzaXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaXpl
KGNvbnN0IEludFNpemUmKTsKIApAQCAtMjUwLDYgKzI1Niw4IEBAIHByaXZhdGU6CiAKICAgICB2
aXJ0dWFsIHZvaWQgaGFzRW5kZWQoKSB7IH0KIAorICAgIHZvaWQgdXBkYXRlSGFzU3RhcnRlZFBy
b2R1Y2luZ0RhdGEoKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFJlZlB0cjxj
b25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsK
QEAgLTI2Nyw2ICsyNzUsOSBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVjdXJzaXZlTG9jayBt
X2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jazsKICAgICBIYXNoU2V0PEF1ZGlvU2FtcGxlT2JzZXJ2
ZXIqPiBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzOwogCisgICAgbXV0YWJsZSBSZWN1cnNpdmVMb2Nr
IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrOworICAgIEhhc2hTZXQ8VmlkZW9TYW1wbGVPYnNl
cnZlcio+IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnM7CisKICAgICBJbnRTaXplIG1fc2l6ZTsKICAg
ICBJbnRTaXplIG1faW50cmluc2ljU2l6ZTsKICAgICBkb3VibGUgbV9mcmFtZVJhdGUgeyAzMCB9
OwpAQCAtMjg0LDcgKzI5NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ludGVycnVwdGVkIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fY2FwdHVyZURpZEZhaWxlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2lzRW5kZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNTZW50U3RhcnRQcm9kdWNlZEF1
ZGlvRGF0YSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhIHsg
ZmFsc2UgfTsKIH07CiAKIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvciB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAppbmRleCA1ZmNlNDU3OTA5OTdmNDU5YzU0MjhjZTZh
MDYwMjQ0NDRmZmViMjg4Li42MjgzZjVmMDY2YzYxNWE2ZmM4Y2ExM2RlNzY5MjRjNTI4NzcxMDM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKQEAgLTc0LDYgKzc0LDcg
QEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6Om9ic2VydmVTb3VyY2UoKQogdm9p
ZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnVub2JzZXJ2ZVNvdXJjZSgpCiB7CiAgICAg
bV92aWRlb1NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fdmlkZW9Tb3VyY2Ut
PnNvdXJjZSgpLnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2b2lkIFJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4mJiBuZXdTb3VyY2UpCkBAIC0xMTQsMTEgKzExNSwxMyBAQCB2b2lkIFJlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCgpCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZTo6dXBkYXRlQmxhY2tGcmFtZXNTZW5kaW5nKCkKIHsKICAgICBpZiAoIW1fbXV0ZWQgJiYg
bV9lbmFibGVkKSB7CisgICAgICAgIG1fdmlkZW9Tb3VyY2UtPnNvdXJjZSgpLmFkZFZpZGVvU2Ft
cGxlT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAgICBpZiAobV9ibGFja0ZyYW1lVGltZXIuaXNBY3Rp
dmUoKSkKICAgICAgICAgICAgIG1fYmxhY2tGcmFtZVRpbWVyLnN0b3AoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIG1fdmlkZW9Tb3VyY2UtPnNvdXJjZSgpLnJlbW92ZVZpZGVvU2Ft
cGxlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIHNlbmRCbGFja0ZyYW1lc0lmTmVlZGVkKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKaW5kZXggYzY3MTk5MzMwOTJmOWE5YTFm
NDE2NzhlNWEzYjY3ZjY4NjgxZmExNC4uOTM3N2Q0NmI5MGZlMTEyN2QwNDJjOWYxYTRkYTk4OThh
Mzc2ZjI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKQEAgLTUxLDYgKzUx
LDcgQEAgY2xhc3MgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlCiAgICAgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLCBXVEY6OkRlc3Ry
dWN0aW9uVGhyZWFkOjpNYWluPgogICAgICwgcHVibGljIHdlYnJ0Yzo6VmlkZW9UcmFja1NvdXJj
ZUludGVyZmFjZQogICAgICwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2
ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZl
cgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIK
ICNlbmRpZgpAQCAtMTI4LDkgKzEyOSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgdHJhY2tNdXRl
ZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IHNvdXJjZU11dGVkQ2hh
bmdlZCgpOyB9CiAgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgZmluYWwgeyBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpOyB9CiAgICAgdm9pZCB0cmFj
a1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgaW5pdGlh
bGl6ZUZyb21Tb3VyY2UoKTsgfQotICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCB0
cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9CiAKKyAgICAvLyBS
ZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIEFQSQorICAgIHZvaWQgdmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBvdmVycmlkZSB7IH0KKwogICAgIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV92aWRlb1NvdXJjZTsKICAgICBUaW1lciBtX2JsYWNr
RnJhbWVUaW1lcjsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVm
ZmVyPiBtX2JsYWNrRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGQ0ODczNGMxZjYw
MjY2NzNhYTk3ODIzOTQ2MDRhNDA2MTY3M2E5NzQuLjE1ZTIyYTU4YTFjMjgzNWFkMDQwZTk4YWI5
OTcxN2FmNzk4ZTVlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00NiwxNiArNDYsMTkg
QEAgUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmMKIAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlYWx0
aW1lVmlkZW9Tb3VyY2UoKQogeworICAgIG1fc291cmNlLT5yZW1vdmVWaWRlb1NhbXBsZU9ic2Vy
dmVyKCp0aGlzKTsKICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2
b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiB7CiAgICAgbV9z
b3VyY2UtPnN0YXJ0KCk7CisgICAgbV9zb3VyY2UtPmFkZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRo
aXMpOwogfQogCiB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkK
IHsKKyAgICBtX3NvdXJjZS0+cmVtb3ZlVmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiAgICAg
bV9zb3VyY2UtPnN0b3AoKTsKIH0KIApAQCAtMTY2LDkgKzE2OSw2IEBAIFJlZlB0cjxNZWRpYVNh
bXBsZT4gUmVhbHRpbWVWaWRlb1NvdXJjZTo6YWRhcHRWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYg
c2FtcGxlKQogCiB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7Ci0gICAgaWYgKCFpc1Byb2R1Y2luZ0RhdGEoKSkKLSAg
ICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1fZnJhbWVEZWNpbWF0aW9uID4gMSAmJiArK21fZnJh
bWVEZWNpbWF0aW9uQ291bnRlciAlIG1fZnJhbWVEZWNpbWF0aW9uKQogICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCBjY2NlOWI5YWExOTcwM2UwOTU3MzNlZDI3YTIzYzMz
OGY2MzhhZWM2Li4yYjIzZmUzY2IxOGQwY2UzYzMxYTU2OTY2YjZiNGUyYmQ5OGEwYjliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5oCkBAIC0zMyw3ICszMywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiAKLWNsYXNzIFJlYWx0aW1lVmlkZW9Tb3Vy
Y2UgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSwgcHVibGljIFJlYWx0aW1lTWVk
aWFTb3VyY2U6Ok9ic2VydmVyIHsKK2NsYXNzIFJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwKKyAg
ICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlCisgICAgLCBwdWJsaWMgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRl
b1NhbXBsZU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lVmlkZW9T
b3VyY2U+IGNyZWF0ZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShzb3VyY2Up
KSk7IH0KIApAQCAtNTgsMTEgKzYxLDEzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBpbnRlcnJ1cHRl
ZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5pbnRlcnJ1cHRlZCgpOyB9CiAgICAg
Ym9vbCBpc1NhbWVBcyhSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRoaXMgPT0gJnNvdXJjZSB8fCBtX3NvdXJjZS5wdHIoKSA9PSAmc291cmNlOyB9CiAK
LSAgICAvLyBPYnNlcnZlcgorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCiAg
ICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZVNldHRp
bmdzQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsOwogICAg
IGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsOworCisgICAgLy8gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlcgogICAgIHZvaWQgdmlkZW9TYW1wbGVB
dmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKaW5kZXgg
YWE5ZTUzNTFlYjNiMTFjOWY0Y2M5MjA3MzExZjM4ODIzNWYyN2JiYy4uZGY2OTlhMGIwYzdhZWI0
YzUwMWYzMGQ1NTMxYzJiMDYwOTNlMWE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCkBAIC0xMDcsNyArMTA3LDggQEAgR3N0U3RyZWFt
KiB3ZWJraXRNZWRpYVN0cmVhbU5ldyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdHJhY2spCiAK
IGNsYXNzIFdlYktpdE1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlcgogICAgIDogcHVibGljIE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgotICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICAsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291
cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJLaXRNZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIoKSB7
IH07CkBAIC0xMzAsNyArMTMxLDcgQEAgcHVibGljOgogICAgIHZvaWQgdHJhY2tTZXR0aW5nc0No
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH07CiAgICAgdm9pZCByZWFk
eVN0YXRlQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKIAotICAg
IHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlh
U2FtcGxlJiBzYW1wbGUpIGZpbmFsCisgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRp
YVNhbXBsZSYgc2FtcGxlKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKCFtX2VuYWJsZWQpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0zODcsNiArMzg4LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0
TWVkaWFTdHJlYW1TcmNGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiAgICAgaWYgKHNlbGYtPnN0
cmVhbSkgewogICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+c3RyZWFtLT50cmFja3Mo
KSkgewogICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2
ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CisgICAgICAgICAgICB0
cmFjay0+c291cmNlKCkucmVtb3ZlVmlkZW9TYW1wbGVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJl
YW1UcmFja09ic2VydmVyLmdldCgpKTsKICAgICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZl
cigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKICAgICAgICAgfQogICAg
ICAgICBzZWxmLT5zdHJlYW0tPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbU9ic2Vy
dmVyKTsKQEAgLTQwOSwxMCArNDExLDEyIEBAIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3
ZWJraXRNZWRpYVN0cmVhbVNyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsCiAgICAg
ICAgIGlmIChzZWxmLT5zdHJlYW0pIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgdHJhY2sgOiBz
ZWxmLT5zdHJlYW0tPnRyYWNrcygpKSB7CiAgICAgICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgp
LnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZl
ci5nZXQoKSk7CisgICAgICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLnJlbW92ZVZpZGVvU2Ft
cGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CiAgICAg
ICAgICAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNr
T2JzZXJ2ZXIuZ2V0KCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKHNlbGYt
PnRyYWNrKSB7CiAgICAgICAgICAgICBzZWxmLT50cmFjay0+c291cmNlKCkucmVtb3ZlQXVkaW9T
YW1wbGVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKKyAg
ICAgICAgICAgIHNlbGYtPnRyYWNrLT5zb3VyY2UoKS5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVy
KCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOwogICAgICAgICAgICAgc2Vs
Zi0+dHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIu
Z2V0KCkpOwogICAgICAgICB9CiAgICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNlbGYpOwpAQCAt
NTYwLDcgKzU2NCwxNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0TWVkaWFTdHJlYW1TcmNTZXR1
cFNyYyhXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwKIAogICAgIGlmIChvYnNlcnZlX3RyYWNr
KSB7CiAgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09i
c2VydmVyLmdldCgpKTsKLSAgICAgICAgdHJhY2stPnNvdXJjZSgpLmFkZEF1ZGlvU2FtcGxlT2Jz
ZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CisgICAgICAgIGF1
dG8mIHNvdXJjZSA9IHRyYWNrLT5zb3VyY2UoKTsKKyAgICAgICAgc3dpdGNoIChzb3VyY2UudHlw
ZSgpKSB7CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86Cisg
ICAgICAgICAgICBzb3VyY2UuYWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJl
YW1UcmFja09ic2VydmVyLmdldCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAgICAgICAgc291cmNlLmFk
ZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQo
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpOb25lOgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IH0KICAgICB9CiAgICAgZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudChlbGVtZW50
KTsKICAgICByZXR1cm4gVFJVRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VMaWJXZWJS
VEMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1Jl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQy5jcHAKaW5kZXggNjliZTliNTNlOGE1
NzgyZTEzMWNjOTg4NDllM2JiZDhlMmQ5MmQzZi4uYjYwMDc1NzdkZDkxNjlhNDc5OTBiMGM1NDQx
YmM5MTMzMzEyYzc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQy5jcHAKQEAgLTUwLDExICs1MCw4IEBAIFJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQzo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlTGliV2ViUlRDKFJlZjxNCiB7CiB9CiAKLXZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlTGliV2ViUlRDOjpzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlTGliV2ViUlRDOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQog
ewotICAgIGlmIChpc1NpbGVuY2VkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIHN3aXRjaCAo
c2FtcGxlLnZpZGVvUm90YXRpb24oKSkgewogICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246Ok5vbmU6CiAgICAgICAgIG1fY3VycmVudFJvdGF0aW9uID0gd2VicnRjOjprVmlkZW9S
b3RhdGlvbl8wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUxpYldlYlJUQy5oCmluZGV4IDllMTc1OGRmOWY0NTFiNDcwYWYyZjdkNGU2
NTNlYTM1ODU0MWMwNGMuLjAwYzUwOWExYmMwODFmNTk0NjAyYWMwMjc3NDhmZGYxMmI1MTMwODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VMaWJXZWJSVEMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlTGliV2ViUlRDLmgKQEAgLTQxLDggKzQxLDggQEAgcHJpdmF0ZToKIAogICAgIHJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+IGNyZWF0ZUJsYWNrRnJhbWUo
c2l6ZV90LCBzaXplX3QpIGZpbmFsOwogCi0gICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
Ok9ic2VydmVyIEFQSQotICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgLy8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlciBBUEkKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxh
YmxlKE1lZGlhU2FtcGxlJikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCmluZGV4IGQ3
N2FmYjI2NmZiOTRiMDY5YWI1MmQ4MGNmYzk3NWMyYjBmZTczYzYuLjc4NmI1NTBhOThlOTYyNDcz
MDBjODU1NzhiYzEzMzdlMDI0MDhjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2VDb2NvYS5oCkBAIC01MCw3ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgLy8g
cnRjOjpWaWRlb1NpbmtJbnRlcmZhY2UKICAgICB2b2lkIE9uRnJhbWUoY29uc3Qgd2VicnRjOjpW
aWRlb0ZyYW1lJikgZmluYWw7CiAKLSAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IG1f
YnVmZmVyOwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX2JsYWNrRnJhbWU7CiAg
ICAgaW50IG1fYmxhY2tGcmFtZVdpZHRoIHsgMCB9OwogICAgIGludCBtX2JsYWNrRnJhbWVIZWln
aHQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29j
b2EubW0KaW5kZXggMTA4MWNkZTA1ODUwMWYxZTQ1Y2QwZTAzMzk2ODIzNGNjMmMxZmI2Yy4uZTgw
ZWNjMDEzNzhmM2Q3OTA3YzA2N2M3OTVhZDdkMjU3NDNiYzg5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtMjAwLDcgKzIwMCw2IEBA
IHZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUoY29uc3Qgd2Vi
cnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSkKIAogdm9pZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6cHJvY2Vzc05ld1NhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIHVuc2ln
bmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJv
dGF0aW9uKQogewotICAgIG1fYnVmZmVyID0gc2FtcGxlOwogICAgIGF1dG8gc2l6ZSA9IHRoaXMt
PnNpemUoKTsKICAgICBpZiAoV1RGOjpzYWZlQ2FzdDxpbnQ+KHdpZHRoKSAhPSBzaXplLndpZHRo
KCkgfHwgV1RGOjpzYWZlQ2FzdDxpbnQ+KGhlaWdodCkgIT0gc2l6ZS5oZWlnaHQoKSkKICAgICAg
ICAgc2V0SW50cmluc2ljU2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IDEzNDQxMjdi
OGZiZmJmMWU0N2JhNjRkMzZlNmIxM2Q3MGU4MDYwNGEuLjZiZjBjYTQ4N2RkNjRkYmVmNTM5ZDk0
ODgwZjYyOGM3ZmExNjFiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZUNvY29hLmNwcApAQCAtNjIsMTEgKzYyLDggQEAgUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlQ29jb2E6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hKFJlZjxNZWRp
YVN0cmUKIHsKIH0KIAotdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6c2Ft
cGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJiBz
YW1wbGUpCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hOjp2aWRlb1NhbXBs
ZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogewotICAgIGlmIChpc1NpbGVuY2VkKCkp
Ci0gICAgICAgIHJldHVybjsKLQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmICgh
KCsrbV9udW1iZXJPZkZyYW1lcyAlIDYwKSkKICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSLCAiZnJhbWUgIiwgbV9udW1iZXJPZkZyYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Q29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5oCmluZGV4IDA0ODRiMWNkMTMwMmFlYTFlZTNhYmEy
MWI4MjNlMmI2ZWZkNDQ3ZjMuLjc3MTNlZDBjMTU5YTE5YTIzNTQ5YThlNjNjZjE3OTEzNDg3Y2Nk
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5o
CkBAIC00NCw4ICs0NCw4IEBAIHByaXZhdGU6CiAKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2Vi
cnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiBjcmVhdGVCbGFja0ZyYW1lKHNpemVfdCB3aWR0aCwgc2l6
ZV90IGhlaWdodCkgZmluYWw7CiAKLSAgICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2Jz
ZXJ2ZXIgQVBJCi0gICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNl
OjpWaWRlb1NhbXBsZU9ic2VydmVyIEFQSQorICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUo
TWVkaWFTYW1wbGUmKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBj
b252ZXJ0VG9ZVVYoQ1ZQaXhlbEJ1ZmZlclJlZik7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IHJvdGF0ZVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYsIHdlYnJ0Yzo6VmlkZW9S
b3RhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggODdiYTBhNjFl
YzMzZWFiN2MyN2Q4NTA0ZmU1ZmYzYmZmNTg3ZGJkYy4uNTE5ZTE5OGFiMjU1ZTk3YTc4OGZhNDc0
ZTFkMGNjYzRmYTg0OWQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
NDc3LDEwICs0NzcsNyBAQCBSZWY8SW50ZXJuYWxzPiBJbnRlcm5hbHM6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCiBJbnRlcm5hbHM6On5JbnRlcm5hbHMoKQogewogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0gICAgaWYgKG1fdHJhY2tTb3VyY2UpIHsKLSAgICAgICAgbV90cmFja1NvdXJj
ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotICAgICAgICBtX3RyYWNrU291cmNlLT5yZW1vdmVB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKLSAgICB9CisgICAgc3RvcE9ic2VydmluZ1JlYWx0
aW1lTWVkaWFTb3VyY2UoKTsKICNlbmRpZgogfQogCkBAIC01MDQwLDE5ICs1MDM3LDQ0IEBAIHZv
aWQgSW50ZXJuYWxzOjpzZXRDYW1lcmFNZWRpYVN0cmVhbVRyYWNrT3JpZW50YXRpb24oTWVkaWFT
dHJlYW1UcmFjayYgdHJhY2ssIGluCiAgICAgc291cmNlLm1vbml0b3JPcmllbnRhdGlvbihtX29y
aWVudGF0aW9uTm90aWZpZXIpOwogfQogCi12b2lkIEludGVybmFsczo6b2JzZXJ2ZU1lZGlhU3Ry
ZWFtVHJhY2soTWVkaWFTdHJlYW1UcmFjayYgdHJhY2spCit2b2lkIEludGVybmFsczo6c3RvcE9i
c2VydmluZ1JlYWx0aW1lTWVkaWFTb3VyY2UoKQogewotICAgIGlmIChtX3RyYWNrU291cmNlKSB7
Ci0gICAgICAgIG1fdHJhY2tTb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKLSAgICAgICAg
bV90cmFja1NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgaWYg
KCFtX3RyYWNrU291cmNlKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV90cmFja0F1ZGlv
U2FtcGxlQ291bnQgPSAwOwotICAgICAgICBtX3RyYWNrVmlkZW9TYW1wbGVDb3VudCA9IDA7Cisg
ICAgc3dpdGNoIChtX3RyYWNrU291cmNlLT50eXBlKCkpIHsKKyAgICBjYXNlIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICBtX3RyYWNrU291cmNlLT5yZW1vdmVBdWRp
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKKyAgICAgICAgbV90cmFja1NvdXJjZS0+cmVtb3Zl
VmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQorICAgIG1fdHJhY2tTb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKwor
ICAgIG1fdHJhY2tTb3VyY2UgPSBudWxscHRyOworICAgIG1fdHJhY2tBdWRpb1NhbXBsZUNvdW50
ID0gMDsKKyAgICBtX3RyYWNrVmlkZW9TYW1wbGVDb3VudCA9IDA7Cit9CisKK3ZvaWQgSW50ZXJu
YWxzOjpvYnNlcnZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaykKK3sK
KyAgICBzdG9wT2JzZXJ2aW5nUmVhbHRpbWVNZWRpYVNvdXJjZSgpOwogCiAgICAgbV90cmFja1Nv
dXJjZSA9ICZ0cmFjay5zb3VyY2UoKTsKICAgICBtX3RyYWNrU291cmNlLT5hZGRPYnNlcnZlcigq
dGhpcyk7Ci0gICAgbV90cmFja1NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7
CisgICAgc3dpdGNoIChtX3RyYWNrU291cmNlLT50eXBlKCkpIHsKKyAgICBjYXNlIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICBtX3RyYWNrU291cmNlLT5hZGRBdWRp
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKKyAgICAgICAgbV90cmFja1NvdXJjZS0+YWRkVmlk
ZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgfQogfQogCiB2b2lkIEludGVybmFsczo6Z3JhYk5leHRNZWRpYVN0cmVhbVRyYWNrRnJh
bWUoVHJhY2tGcmFtZVByb21pc2UmJiBwcm9taXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKaW5kZXggMjVjNzlmMWYxOWU3NzhmYTA4YzA3MDI4ODViZDU4Y2FmYzcyYjdkMC4uZDkyOGVm
NDhiMjZjNmY5MWMxMGIxMDQ4ZWJlNzVlNzgyZjcxYmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCkBAIC0xMzAsNiArMTMwLDcgQEAgY2xhc3MgSW50ZXJuYWxzIGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8SW50ZXJuYWxzPiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb24KICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNl
OjpPYnNlcnZlcgogICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBs
ZU9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxl
T2JzZXJ2ZXIKICNlbmRpZgogICAgIHsKIHB1YmxpYzoKQEAgLTc2Myw2ICs3NjQsOCBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBzdG9wT2Jz
ZXJ2aW5nUmVhbHRpbWVNZWRpYVNvdXJjZSgpOworCiAgICAgdm9pZCBzZXRNb2NrQXVkaW9UcmFj
a0NoYW5uZWxOdW1iZXIoTWVkaWFTdHJlYW1UcmFjayYsIHVuc2lnbmVkIHNob3J0KTsKICAgICB2
b2lkIHNldENhbWVyYU1lZGlhU3RyZWFtVHJhY2tPcmllbnRhdGlvbihNZWRpYVN0cmVhbVRyYWNr
JiwgaW50IG9yaWVudGF0aW9uKTsKICAgICB1bnNpZ25lZCBsb25nIHRyYWNrQXVkaW9TYW1wbGVD
b3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tBdWRpb1NhbXBsZUNvdW50OyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGU4OTNjZDJjMDkxZWZmY2E0NzA0N2E0OGY4NzRmYmQ0
NmJjOTMzMTUuLmU2MGM4ZjhlNWM2MjNhY2JiNGRiZTVhZDkyNDM1ZTM5M2RkZjUxOTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC01MCw4ICs1MCw5IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5Ci0gICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6T2JzZXJ2ZXIKLSAgICAsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBs
ZU9ic2VydmVyCisgICAgOiBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisg
ICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAg
ICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlcgogICAg
ICwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNjIsMTMgKzYzLDMyIEBAIHB1YmxpYzoKICAg
ICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykpKQogICAgIHsK
ICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKLSAgICAgICAgbV9zb3VyY2Ut
PmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBzd2l0Y2ggKG1fc291cmNl
LT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRp
bzoKKyAgICAgICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OlZpZGVvOgorICAgICAgICAgICAgbV9zb3VyY2UtPmFkZFZpZGVvU2FtcGxlT2JzZXJ2ZXIo
KnRoaXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7CiAgICAgICAgIHN0b3Jh
Z2UoKS5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9i
c2VydmVyKCp0aGlzKTsKKworICAgICAgICBzd2l0Y2ggKG1fc291cmNlLT50eXBlKCkpIHsKKyAg
ICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgICAg
IG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgor
ICAgICAgICAgICAgbV9zb3VyY2UtPnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6Tm9uZToKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CiAg
ICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHAKaW5kZXggMzRlZDRlNjMwYWMxOThiMzEwODAzMGY3OWFhMjNjNTNhOTNm
NjEwZi4uMzExYzE2MWU0OGMwYzg2ZGY2YWFkNDcwM2EzODU2OTQ1ZmExMzMyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcml2YXRlLmNwcApAQCAtNjQsMjYgKzY0LDI3IEBAIE1lZGlhUmVjb3JkZXJQcml2YXRl
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKICAgICAg
ICAgd2lkdGggPSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5zZXR0aW5ncygpLndpZHRoKCk7
CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7IG1faWRlbnRpZmll
ciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLCB3aWR0aCwgaGVpZ2h0IH0sIFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBhdWRpb1RyYWNrID0gbWFrZVJlZlB0cihzZWxl
Y3RlZFRyYWNrcy5hdWRpb1RyYWNrKV0oYXV0byYmIGV4Y2VwdGlvbikgeworICAgIG1fY29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlcjo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVk
aW9UcmFjaywgd2lkdGgsIGhlaWdodCB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKSwgYXVkaW9UcmFjayA9IG1ha2VSZWZQdHIoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjayks
IHZpZGVvVHJhY2sgPSBtYWtlUmVmUHRyKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spXShhdXRv
JiYgZXhjZXB0aW9uKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICByZXR1cm4gbV9lcnJvckNh
bGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1l
c3NhZ2UpIH0pOwogICAgICAgICBpZiAoYXVkaW9UcmFjaykKICAgICAgICAgICAgIHNldEF1ZGlv
U291cmNlKCZhdWRpb1RyYWNrLT5zb3VyY2UoKSk7CisgICAgICAgIGlmICh2aWRlb1RyYWNrKQor
ICAgICAgICAgICAgc2V0VmlkZW9Tb3VyY2UoJnZpZGVvVHJhY2stPnNvdXJjZSgpKTsKICAgICB9
LCAwKTsKIH0KIAogTWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgp
CiB7CiAgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7CisgICAgc2V0VmlkZW9Tb3VyY2UobnVs
bHB0cik7CiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlcjo6UmVsZWFzZVJlY29yZGVyIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCi12
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdlYkNv
cmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgV2ViQ29yZTo6TWVkaWFTYW1wbGUm
IHNhbXBsZSkKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7Ci0gICAgaWYgKHRyYWNrLmlkKCkgIT0gbV9yZWNvcmRl
ZFZpZGVvVHJhY2tJRCkKLSAgICAgICAgcmV0dXJuOwogICAgIGlmIChhdXRvIHJlbW90ZVNhbXBs
ZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoc2FtcGxlKSkKICAgICAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpWaWRlb1NhbXBsZUF2YWls
YWJsZSB7IFdURk1vdmUoKnJlbW90ZVNhbXBsZSkgfSwgbV9pZGVudGlmaWVyKTsKIH0KQEAgLTEy
OCw2ICsxMjksNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpmZXRjaERhdGEoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U2hhcgogdm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6c3RvcFJlY29yZGluZygpCiB7CiAgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7
CisgICAgc2V0VmlkZW9Tb3VyY2UobnVsbHB0cik7CiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpTdG9wUmVjb3JkaW5nIHsgfSwgbV9pZGVudGlm
aWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggNjgwMDk0MmEzMGRjZGM0MWFjM2Jh
ZmZkOWJhNzg4MTI4MDliNDZkNi4uNmZmMjk0MDc5OTQ3YjZhYzk2NmJlOTBhZTZhODNjNDAxMTQ4
MDU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZQotICAgIHZvaWQg
c2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYsIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgdm9pZCB2aWRlb1NhbXBsZUF2
YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYpIGZpbmFsOwogICAgIHZvaWQgZmV0Y2hEYXRh
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcFJlY29yZGlu
ZygpIGZpbmFsOwogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVk
aWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3Jl
OjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDYxMWViMzcxMDlmM2UxYzUyNDIzNDg0MmNjYzNhYjVhMDFlNTAx
OGEuLjdmZmRkZDdjMWMzMWJjOGQzMTJlNGE1OTk0ZDkwYzU2NTE0ZTJjYTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA1LTExICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZWFsdGlt
ZU1lZGlhU291cmNlIHZpZGVvIHNhbXBsZSBvYnNlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNzE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0
dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1NZWRpYUVsZW1lbnQtZGlzYWJsZWQtdmlkZW8t
aXMtYmxhY2suaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICBEcml2ZS1ieSBmaXgsIHNpbmNl
IHdlIGFyZSBub3cgcmVjZWl2aW5nIHNhbXBsZXMgYnV0IG5vdCByZW5kZXJpbmcgdGhlbSB3aGVu
IHRyYWNrIGlzIG5vdCBlbmFibGVkLCB0aGUgbG9hZGVkZGF0YSBldmVudCBpcyBmaXJlZCBhcHBy
b3ByaWF0ZWx5LgorICAgICAgICBVcGRhdGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpjdXJyZW50RGlzcGxheU1vZGUgdG8gcmV0dXJuIFBhaW50SXRCbGFjayBpbiB0aGF0
IGNhc2UuCisKIDIwMjAtMDUtMTAgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBGaXggYmFzZTY0LmFueS5odG1sIHRlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFT
dHJlYW1UcmFjay1NZWRpYUVsZW1lbnQtZGlzYWJsZWQtdmlkZW8taXMtYmxhY2suaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
ZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLU1lZGlhRWxlbWVudC1kaXNhYmxl
ZC12aWRlby1pcy1ibGFjay5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMjExNjRjODNmYTI2ZGIx
YjAyOTljMTlkOGI5NzRiMDQ1NzJkNGQyNi4uM2VlYzI2OWVkMTVlNTQzOTExNjZlZDI3N2RmN2Zm
NWEyZDBmN2E2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLU1lZGlhRWxl
bWVudC1kaXNhYmxlZC12aWRlby1pcy1ibGFjay5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3Ry
ZWFtcy9NZWRpYVN0cmVhbVRyYWNrLU1lZGlhRWxlbWVudC1kaXNhYmxlZC12aWRlby1pcy1ibGFj
ay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw1IEBAIFRoaXMgdGVzdCBjaGVja3MgdGhh
dCBhIGRpc2FibGVkIHZpZGVvIHRyYWNrIGluIGEgTWVkaWFTdHJlYW0gaXMgcmVuZGVyZWQgYXMg
YmxhCiAKIAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElN
RU9VVCBUZXN0cyB0aGF0IGEgZGlzYWJsZWQgdmlkZW8gdHJhY2sgaW4gYSBNZWRpYVN0cmVhbSBp
cyByZW5kZXJlZCBhcyBibGFja25lc3MgVGVzdCB0aW1lZCBvdXQKK1BBU1MgVGVzdHMgdGhhdCBh
IGRpc2FibGVkIHZpZGVvIHRyYWNrIGluIGEgTWVkaWFTdHJlYW0gaXMgcmVuZGVyZWQgYXMgYmxh
Y2tuZXNzIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399111</attachid>
            <date>2020-05-12 02:30:10 -0700</date>
            <delta_ts>2020-05-12 04:45:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211718-20200512113007.patch</filename>
            <type>text/plain</type>
            <size>56297</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIzOWFlMTRjZGVjZWM4
M2NkYmNhNzVhOWVmZWUzNTI1OGNkNzdiNC4uMTY4ZTI1YmU2OTc5YmFmNzJjZDgwMTIxMTdiMTM5
MGUwNjI3NDY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTA1LTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZWFs
dGltZU1lZGlhU291cmNlIHZpZGVvIHNhbXBsZSBvYnNlcnZlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNzE4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFdlIGludHJvZHVjZSBhbiBvYnNlcnZlciBkZWRp
Y2F0ZWQgdG8gdmlkZW8gc2FtcGxlcyBzaW1pbGFybHkgdG8gQXVkaW9TYW1wbGVPYnNlcnZlciBm
b3IgYXVkaW8uCisgICAgICAgIFRoaXMgd2lsbCBhbGxvdyB0byBtb3ZlIHZpZGVvIGZyYW1lIHBy
b2Nlc3Npbmcgb3V0IG9mIHRoZSBtYWluIHRocmVhZCBwcm9ncmVzc2l2ZWx5LgorICAgICAgICBG
b3Igbm93LCB3ZSByZW1vdmUgdmlkZW8gc2FtcGxlIG9ic2VydmluZyBmcm9tIHRoZSB0cmFjayBw
cml2YXRlIGFuZCBvYnNlcnZlcnMgc2hvdWxkIG5vdyByZWdpc3RlciBkaXJlY3RseSB0byB0aGUg
cmVhbHRpbWUgbWVkaWEgc291cmNlLgorICAgICAgICBXZSB1cGRhdGUgdGhlIHZhcmlvdXMgdXNl
cnMsIGluY2x1ZGluZyBNZWRpYVJlY29yZGVyIGFuZCB0aGUgbWVkaWEgcGxheWVyLgorICAgICAg
ICBJbiBib3RoIGNhc2VzLCB0aGV5IHdpbGwgb25seSBvYnNlcnZlIHRoZSB2aWRlbyB0cmFjayB0
byBiZSBwbGF5ZWQvcmVjb3JkZWQsIHdoaWNoIGlzIGJvdGggbW9yZSBlZmZpY2llbnQgYW5kIHNp
bXBsZXIuCisKKyAgICAgICAgV2UgaW50cm9kdWNlZCBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNl
cnZlcjo6aGFzU3RhcnRlZFByb2R1Y2luZ0RhdGEgY2FsbGJhY2sgZm9yIE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlIHNvIAorICAgICAgICB0aGF0IHRoZSBwcm9jZXNzaW5nIHRvIGRvIHdoZW4gdGhl
IGZpcnN0IHNhbXBsZXMgYXJlIGF2YWlsYWJsZSBjYW4gYmUgZG9uZSBvbiB0aGUgbWFpbiB0aHJl
YWQuCisKKyAgICAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUgbm8gbG9uZ2VyIGZpbHRlcnMg
b3V0IHNhbXBsZXMgaWYgaXQgaXMgbm90IGVuYWJsZWQuCisgICAgICAgIEFzIHN1Y2gsIGVhY2gg
Y29uc3VtZXIgaXMgbm93IHJlc3BvbnNpYmxlIHRvIG9ic2VydmUvdW5vYnNlcnZlIHRoZSBzb3Vy
Y2Ugd2hlbiBpdHMgdHJhY2sgZ2V0cyBlbmFibGVkL2Rpc2FibGVkIHNpbWlsYXJseSBhcyBmb3Ig
YXVkaW8sCisgICAgICAgIG9yIGRvIG5vdGhpbmcgaWYgdHJhY2sgaXMgbm90IGVuYWJsZWQuCisK
KyAgICAgICAgU2ltaWxhcmx5LCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYSB3aWxs
IG5vdyBvbmx5IG9ic2VydmUgdmlkZW8gc2FtcGxlcyB3aGVuIHRoZSB0cmFjayBpcyBlbmFibGVk
IGFuZCBub3QgbXV0ZWQuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxl
KToKKyAgICAgICAgV2UgY2FuIHJlbm92ZSB0aGUgdHJhY2sgY2hlY2sgc2luY2Ugd2Ugb25seSBv
YnNlcnZlIHRoZSBhY3RpdmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2hl
Y2tTZWxlY3RlZFZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzYW1wbGVCdWZmZXJVcGRhdGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2V0VmlkZW9Tb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJp
dmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsOjp+TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzdG9wUmVjb3JkaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6c2FtcGxl
QnVmZmVyVXBkYXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6Ok1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6On5NZWRpYVJlY29yZGVy
UHJpdmF0ZU1vY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVNb2Nr
OjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
TW9jazo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVNb2NrOjpzYW1wbGVCdWZmZXJVcGRhdGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpoYXNTdGFydGVkUHJv
ZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
dXBkYXRlUmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Omhhc1N0YXJ0ZWRQcm9kdWNpbmdBdWRpb0RhdGEpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjphZGRWaWRl
b1NhbXBsZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6dXBkYXRlSGFzU3RhcnRlZFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6dW5v
YnNlcnZlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZTo6dXBkYXRlQmxhY2tGcmFtZXNTZW5kaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lVmlkZW9Tb3VyY2U6On5SZWFsdGltZVZpZGVvU291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXB0dXJlT3V0cHV0
RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZUNvY29hOjpwcm9jZXNzTmV3U2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OnZpZGVvU2FtcGxlQXZhaWxh
YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29h
OjpzYW1wbGVCdWZmZXJVcGRhdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6On5JbnRl
cm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzdG9wT2JzZXJ2aW5nUmVhbHRp
bWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9ic2VydmVNZWRp
YVN0cmVhbVRyYWNrKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorCiAyMDIwLTA1
LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBX
ZWJBdWRpb0J1ZmZlckxpc3QgdG8gZHluYW1pY2FsbHkgY2hhbmdlIGl0cyBudW1iZXIgb2YgZnJh
bWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDFmZDMwZjQyMWE3ZThkY2YxMTdhNzNhZmY1MjMyNzBhYzgxZDlkMDQu
LmIwNDFhOTVkMDQxNzlhZjQ3ZWYxMTAwYzIxODIzYTFhYWUyNTQ1MDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMjAtMDUtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEludHJvZHVjZSBhIFJlYWx0aW1lTWVkaWFTb3VyY2UgdmlkZW8gc2FtcGxl
IG9ic2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTE3MTgKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpT
b3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OlNvdXJjZVByb3h5Ojp+U291cmNlUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGluZyk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1wbGVCdWZmZXJVcGRhdGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuaDoKKwogMjAyMC0wNS0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWxsb3cgV2ViQXVkaW9CdWZmZXJMaXN0IHRvIGR5bmFtaWNhbGx5IGNoYW5n
ZSBpdHMgbnVtYmVyIG9mIGZyYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IGVjYTVlOWVjZjFlMjg3NzEw
YmIwMTlmMjYwMDM1ZTE2MWIwMmUwODkuLjcwY2YzNDc3MzZmZjRkMzY4YTIyYTcwNzM3OTc5Y2Mz
YmYyMGQ2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKQEAgLTIyMiwxMSArMjIyLDYgQEAgdm9pZCBNZWRpYVJl
Y29yZGVyOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKICAgICBzdG9wUmVj
b3JkaW5nKCk7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlcjo6c2FtcGxlQnVmZmVyVXBkYXRlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkK
LXsKLSAgICBtX3ByaXZhdGUtPnNhbXBsZUJ1ZmZlclVwZGF0ZWQodHJhY2ssIG1lZGlhU2FtcGxl
KTsKLX0KLQogYm9vbCBNZWRpYVJlY29yZGVyOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9zdGF0ZSAhPSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuaAppbmRleCA2YTQ5NGQ0YTBjMzA1NTZhMThmN2RjNzQ2ODJmNmY2MWJiOTk0NDRlLi4y
ZmQ5ZWE1ODZjOWMwZTExYzAwMTJhZmI1NjI2YjYzM2FjMjNlY2EwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTEw
OCw3ICsxMDgsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH07CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKICAgICB2b2lkIHRyYWNr
RW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH07Ci0gICAg
dm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFT
YW1wbGUmKSBmaW5hbDsKIAogICAgIHN0YXRpYyBDcmVhdG9yRnVuY3Rpb24gbV9jdXN0b21DcmVh
dG9yOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCAwNTFkYmJiMzMyNjNiNDI4
N2E0Njg1YTAxMGVmYmJkYzUwYTNlYjY0Li45NjYzMDc5ZTJmODA0ZjMyMDk3M2FiY2VhNzAxYjAw
NjlmYWZiYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtNTEsNyArNTEsMTIgQEAg
Y2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKIGNsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
QzsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW07CiAKLWNsYXNzIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2UsIHByaXZhdGUgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciwgcHVi
bGljIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciwgcHVibGljIFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6Q2xpZW50CitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMgZmluYWwKKyAgICA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UK
KyAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgorICAgICwgcHVibGlj
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgICwgcHVibGljIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIKKyAgICAsIHB1YmxpYyBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OkNsaWVudAogICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIKIHsKIHB1
YmxpYzoKQEAgLTEzNCw3ICsxMzksNyBAQCBwcml2YXRlOgogCiAgICAgTWVkaWFUaW1lIGNhbGN1
bGF0ZVRpbWVsaW5lT2Zmc2V0KGNvbnN0IE1lZGlhU2FtcGxlJiwgZG91YmxlKTsKICAgICAKLSAg
ICB2b2lkIGVucXVldWVWaWRlb1NhbXBsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlh
U2FtcGxlJik7CisgICAgdm9pZCBlbnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmKTsKICAg
ICB2b2lkIGVucXVldWVDb3JyZWN0ZWRWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYpOwogICAgIHZv
aWQgcmVxdWVzdE5vdGlmaWNhdGlvbldoZW5SZWFkeUZvclZpZGVvRGF0YSgpOwogCkBAIC0xOTcs
OSArMjAyLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsKICAgICB2b2lkIHRyYWNrU2V0dGluZ3ND
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQg
dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsg
fTsKLSAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
LCBNZWRpYVNhbXBsZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAorICAgIC8vIFJlYWx0aW1lTWVkaWFT
b3VjZTo6VmlkZW9TYW1wbGVPYnNlcnZlcgorICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUo
TWVkaWFTYW1wbGUmKSBmaW5hbDsKKwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBjcmVh
dGVWaWRlb0Z1bGxzY3JlZW5MYXllcigpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1l
KEZsb2F0UmVjdCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggMzY4
NWRiYWY2NTM4MzgxNWM2ZDA3MmU5YzJmNTE5YjUxMDMwMDZiYy4uMDE5OTJhNWJiNmIxZWM1MDRi
NTMxYzMyNmVjYThkMTIyNDg3YWRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAt
MTU1LDE1ICsxNTUsMTcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCkKICAgICBmb3IgKGNvbnN0IGF1
dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQogICAgICAgICB0cmFjay0+cGF1
c2UoKTsKIAotICAgIGlmIChtX21lZGlhU3RyZWFtUHJpdmF0ZSkgeworICAgIGlmIChtX21lZGlh
U3RyZWFtUHJpdmF0ZSkKICAgICAgICAgbV9tZWRpYVN0cmVhbVByaXZhdGUtPnJlbW92ZU9ic2Vy
dmVyKCp0aGlzKTsKIAotICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFw
LnZhbHVlcygpKQotICAgICAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkucmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX2F1ZGlvVHJhY2tNYXAudmFsdWVz
KCkpCisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnJlbW92ZU9ic2VydmVyKCp0aGlzKTsK
IAotICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV92aWRlb1RyYWNrTWFwLnZhbHVlcygpKQot
ICAgICAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwot
ICAgIH0KKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV92aWRlb1RyYWNrTWFwLnZhbHVlcygpKQor
ICAgICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisKKyAg
ICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKQorICAgICAgICBtX2FjdGl2ZVZpZGVvVHJhY2stPnNv
dXJjZSgpLnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogCiAgICAgW21fYm91bmRz
Q2hhbmdlTGlzdGVuZXIgaW52YWxpZGF0ZV07CiAKQEAgLTI3OSwxMSArMjgxLDggQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVucXVldWVDb3JyZWN0ZWRWaWRl
b1NhbXBsZShNZWRpYVNhbXAKICAgICB9CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYgc2FtcGxlKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OmVucXVldWVWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxl
KQogewotICAgIGlmICgmdHJhY2sgIT0gYWN0aXZlVmlkZW9UcmFjaygpKQotICAgICAgICByZXR1
cm47Ci0KICAgICBpZiAoIW1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlIHx8IG1fZGlzcGxheU1v
ZGUgIT0gUGF1c2VkSW1hZ2UpIHsKICAgICAgICAgbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUg
PSAmc2FtcGxlOwogICAgICAgICBtX2ltYWdlUGFpbnRlci5jZ0ltYWdlID0gbnVsbHB0cjsKQEAg
LTI5NCwxMyArMjkzLDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTdHJlYW1UcmFja1ByCiAgICAgaWYgKG1fZGlz
cGxheU1vZGUgIT0gTGl2ZVByZXZpZXcgJiYgIW1fd2FpdGluZ0ZvckZpcnN0SW1hZ2UpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGF1dG8gdmlkZW9UcmFjayA9IG1fdmlkZW9UcmFja01hcC5nZXQo
dHJhY2suaWQoKSk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3QgcXVlcnkgdGhlIG1hcCBl
YWNoIHRpbWUgd2UgZ2V0IGEgc2FtcGxlLgorICAgIGF1dG8gdmlkZW9UcmFjayA9IG1fdmlkZW9U
cmFja01hcC5nZXQobV9hY3RpdmVWaWRlb1RyYWNrLT5pZCgpKTsKICAgICBNZWRpYVRpbWUgdGlt
ZWxpbmVPZmZzZXQgPSB2aWRlb1RyYWNrLT50aW1lbGluZU9mZnNldCgpOwogICAgIGlmICh0aW1l
bGluZU9mZnNldCA9PSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpIHsKICAgICAgICAgdGltZWxp
bmVPZmZzZXQgPSBjYWxjdWxhdGVUaW1lbGluZU9mZnNldChzYW1wbGUsIHJlbmRlcmVyTGF0ZW5j
eSk7CiAgICAgICAgIHZpZGVvVHJhY2stPnNldFRpbWVsaW5lT2Zmc2V0KHRpbWVsaW5lT2Zmc2V0
KTsKIAotICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAidGltZWxpbmUgb2Zmc2V0IGZv
ciB0cmFjayAiLCB0cmFjay5pZCgpLCAiIHNldCB0byAiLCB0aW1lbGluZU9mZnNldCk7CisgICAg
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJ0aW1lbGluZSBvZmZzZXQgZm9yIHRyYWNrICIs
IG1fYWN0aXZlVmlkZW9UcmFjay0+aWQoKSwgIiBzZXQgdG8gIiwgdGltZWxpbmVPZmZzZXQpOwog
ICAgIH0KIAogICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCAib3JpZ2luYWwgc2FtcGxlID0g
Iiwgc2FtcGxlKTsKQEAgLTQ3MSw3ICs0NzEsNyBAQCBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogCiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OkRpc3BsYXlNb2RlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3VycmVudERpc3BsYXlNb2RlKCkgY29uc3QKIHsK
LSAgICBpZiAobV9pbnRyaW5zaWNTaXplLmlzRW1wdHkoKSB8fCAhbWV0YURhdGFBdmFpbGFibGUo
KSB8fCAhbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCisgICAgaWYgKG1faW50cmluc2ljU2l6
ZS5pc0VtcHR5KCkgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBOb25l
OwogCiAgICAgaWYgKGF1dG8qIHRyYWNrID0gYWN0aXZlVmlkZW9UcmFjaygpKSB7CkBAIC03MzUs
MjYgKzczNSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
ZGlkUmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdAogICAgIHVwZGF0ZVRyYWNrcygp
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2FtcGxl
QnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtcGxl
JiBtZWRpYVNhbXBsZSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiB7Ci0gICAg
QVNTRVJUKHRyYWNrLmlkKCkgPT0gbWVkaWFTYW1wbGUudHJhY2tJRCgpKTsKLSAgICBBU1NFUlQo
bWVkaWFTYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpDTVNh
bXBsZUJ1ZmZlclR5cGUpOwotICAgIEFTU0VSVChtX21lZGlhU3RyZWFtUHJpdmF0ZSk7Ci0KICAg
ICBpZiAoc3RyZWFtVGltZSgpLnRvRG91YmxlKCkgPCAwKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBzd2l0Y2ggKHRyYWNrLnR5cGUoKSkgewotICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6Tm9uZToKLSAgICAgICAgLy8gRG8gbm90aGluZy4KLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKLSAgICAgICAgaWYgKCZ0
cmFjayA9PSBtX2FjdGl2ZVZpZGVvVHJhY2suZ2V0KCkpCi0gICAgICAgICAgICBlbnF1ZXVlVmlk
ZW9TYW1wbGUodHJhY2ssIG1lZGlhU2FtcGxlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAg
IGVucXVldWVWaWRlb1NhbXBsZShtZWRpYVNhbXBsZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpCkBAIC04NTEsNiArODM3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OmNoZWNrU2VsZWN0ZWRWaWRlb1RyYWNrKCkKICAgICBzY2hlZHVs
ZURlZmVycmVkVGFzayhbdGhpc10gewogICAgICAgICBhdXRvIG9sZFZpZGVvVHJhY2sgPSBtX2Fj
dGl2ZVZpZGVvVHJhY2s7CiAgICAgICAgIGJvb2wgaGlkZVZpZGVvTGF5ZXIgPSB0cnVlOworCiAg
ICAgICAgIG1fYWN0aXZlVmlkZW9UcmFjayA9IG51bGxwdHI7CiAgICAgICAgIGlmIChhdXRvKiBh
Y3RpdmVWaWRlb1RyYWNrID0gdGhpcy0+YWN0aXZlVmlkZW9UcmFjaygpKSB7CiAgICAgICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV92aWRlb1RyYWNrTWFwLnZhbHVlcygpKSB7CkBA
IC04NzcsNiArODY0LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpjaGVja1NlbGVjdGVkVmlkZW9UcmFjaygpCiAKICAgICAgICAgbV9wZW5kaW5nU2VsZWN0
ZWRUcmFja0NoZWNrID0gZmFsc2U7CiAgICAgICAgIHVwZGF0ZURpc3BsYXlNb2RlKCk7CisKKyAg
ICAgICAgaWYgKG9sZFZpZGVvVHJhY2sgIT0gbV9hY3RpdmVWaWRlb1RyYWNrKSB7CisgICAgICAg
ICAgICBpZiAob2xkVmlkZW9UcmFjaykKKyAgICAgICAgICAgICAgICBvbGRWaWRlb1RyYWNrLT5z
b3VyY2UoKS5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgICAgIGlm
IChtX2FjdGl2ZVZpZGVvVHJhY2spCisgICAgICAgICAgICAgICAgbV9hY3RpdmVWaWRlb1RyYWNr
LT5zb3VyY2UoKS5hZGRWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgfQogICAg
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggZTI4ZTM4MzZiMWY5NzExMzc0
MDg5MzNmYjFlMGQzMjU4OGIwOGUxNy4uOWVhODFjOGIxOGY5YzE1Yzc4YzRmNjM1Y2IwNzYyZTcw
NTlmZTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaApAQCAtNDQsOCArNDQsOSBAQCBjbGFz
cyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xh
c3MgU2hhcmVkQnVmZmVyOwogCi1jbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSA6Ci0gICAgcHVi
bGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworY2xhc3MgTWVk
aWFSZWNvcmRlclByaXZhdGUKKyAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
b1NhbXBsZU9ic2VydmVyCisgICAgLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9T
YW1wbGVPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlKCk7CiAK
QEAgLTU1LDggKzU2LDYgQEAgcHVibGljOgogICAgIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIEF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBzZWxlY3RUcmFja3MoTWVkaWFTdHJlYW1Qcml2
YXRlJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgPSAwOwotCiAgICAgdXNpbmcgRmV0
Y2hEYXRhQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPjsKICAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hE
YXRhKEZldGNoRGF0YUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29y
ZGluZygpID0gMDsKQEAgLTY2LDEyICs2NSwxNCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAg
ICB2b2lkIHNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAg
ICB2b2lkIHNldFZpZGVvU291cmNlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKIAog
cHJvdGVjdGVkOgogICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNhbGxiYWNrOwogCiBwcml2YXRl
OgogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlvU291cmNlOworICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3ZpZGVvU291cmNlOwogfTsKIAogaW5saW5lIHZv
aWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPiYmIGF1ZGlvU291cmNlKQpAQCAtODUsMTAgKzg2LDI2IEBAIGlubGluZSB2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzZXRBdWRpb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBhCiAgICAgICAgIG1fYXVkaW9Tb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2
ZXIoKnRoaXMpOwogfQogCitpbmxpbmUgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2V0Vmlk
ZW9Tb3VyY2UoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgdmlkZW9Tb3VyY2UpCit7Cisg
ICAgaWYgKG1fdmlkZW9Tb3VyY2UpCisgICAgICAgIG1fdmlkZW9Tb3VyY2UtPnJlbW92ZVZpZGVv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgbV92aWRlb1NvdXJjZSA9IFdURk1vdmUodmlk
ZW9Tb3VyY2UpOworCisgICAgaWYgKG1fdmlkZW9Tb3VyY2UpCisgICAgICAgIG1fdmlkZW9Tb3Vy
Y2UtPmFkZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworfQorCiBpbmxpbmUgTWVkaWFSZWNv
cmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCiB7CisgICAgLy8gU3ViY2xhc3Nl
cyBzaG91bGQgc3RvcCBvYnNlcnZpbmcgc29ubmVyIHRoYW4gaGVyZS4gT3RoZXJ3aXNlIHRoZXkg
bWlnaHQgYmUgY2FsbGVkIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZCB3aGlsZSBoYWxmIGRlc3Ry
b3llZAorICAgIEFTU0VSVCghbV9hdWRpb1NvdXJjZSk7CisgICAgQVNTRVJUKCFtX3ZpZGVvU291
cmNlKTsKICAgICBpZiAobV9hdWRpb1NvdXJjZSkKICAgICAgICAgbV9hdWRpb1NvdXJjZS0+cmVt
b3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgaWYgKG1fdmlkZW9Tb3VyY2UpCisg
ICAgICAgIG1fdmlkZW9Tb3VyY2UtPnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbC5jcHAKaW5kZXggODc4OTQwYjBmOTEwMjQzMzc1ODNkYWE2Y2YzMjczODJhNWY1ZmVh
Yi4uMmM5ZTljOGVmYTRmM2I0MjQwYWZlYmZlYTBhZTIwNmU4NmNlZDNkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtNTksNiArNTksOCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGw6OmNyZWF0ZQogICAgIGF1dG8gcmVjb3JkZXIgPSBtYWtlVW5pcXVlPE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbD4od3JpdGVyLnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoYXVk
aW9UcmFja0lkKSwgV1RGTW92ZSh2aWRlb1RyYWNrSWQpKTsKICAgICBpZiAoc2VsZWN0ZWRUcmFj
a3MuYXVkaW9UcmFjaykKICAgICAgICAgcmVjb3JkZXItPnNldEF1ZGlvU291cmNlKCZzZWxlY3Rl
ZFRyYWNrcy5hdWRpb1RyYWNrLT5zb3VyY2UoKSk7CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLnZp
ZGVvVHJhY2spCisgICAgICAgIHJlY29yZGVyLT5zZXRWaWRlb1NvdXJjZSgmc2VsZWN0ZWRUcmFj
a3MudmlkZW9UcmFjay0+c291cmNlKCkpOwogICAgIHJldHVybiByZWNvcmRlcjsKIH0KIApAQCAt
NzIsMTIgKzc0LDExIEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6TWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsKFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0CiBNZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGw6On5NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwoKQogewogICAgIHNldEF1
ZGlvU291cmNlKG51bGxwdHIpOworICAgIHNldFZpZGVvU291cmNlKG51bGxwdHIpOwogfQogCi12
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6c2FtcGxlQnVmZmVyVXBkYXRlZChjb25z
dCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZm
ZXIpCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFi
bGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKIHsKLSAgICBpZiAodHJhY2suaWQoKSAhPSBt
X3JlY29yZGVkVmlkZW9UcmFja0lEKQotICAgICAgICByZXR1cm47CiAgICAgbV93cml0ZXItPmFw
cGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBs
ZS5jbVNhbXBsZUJ1ZmZlcik7CiB9CiAKQEAgLTkxLDYgKzkyLDcgQEAgdm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlh
VGltZSYgbWUKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzdG9wUmVjb3JkaW5n
KCkKIHsKICAgICBzZXRBdWRpb1NvdXJjZShudWxscHRyKTsKKyAgICBzZXRWaWRlb1NvdXJjZShu
dWxscHRyKTsKICAgICBtX3dyaXRlci0+c3RvcFJlY29yZGluZygpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2
YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaAppbmRleCA3MTlhZGJiYWU5MThiMjdmN2VlYzcyZWQ0
NzYyZWM3ZWY2ZjhlZDJmLi5iZDZmNzU4ODI4ZDIyMDM2NGI1ZGEwOWU3MTg2OGIxNzU4ZjJhMTFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgKQEAgLTQ2LDcgKzQ2LDcg
QEAgcHJpdmF0ZToKICAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2
YXRlQVZGSW1wbD4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+
KFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4mJiwgU3RyaW5nJiYsIFN0cmluZyYmKTsK
IAogICAgIC8vIE1lZGlhUmVjb3JkZXJQcml2YXRlCi0gICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRh
dGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsK
KyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmluYWw7CiAgICAg
dm9pZCBmZXRjaERhdGEoRmV0Y2hEYXRhQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBhdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAKaW5kZXggYTFkMGQxMGMwNjExMWU2
OGE0NmU1NDg1NGRjOTYxZWRlMjA3NmQ5Ni4uNmE1MjI4ODVkMmNkZjNhYzk2NGUwMWYzNGY1NzZj
YjRjZjhiMWVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcApAQCAtNDAs
MjEgKzQwLDI1IEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6TWVkaWFSZWNvcmRlclByaXZh
dGVNb2NrKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogICAgICAgICBtX2F1ZGlvVHJhY2tJ
RCA9IHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2stPmlkKCk7CiAgICAgICAgIHNldEF1ZGlvU291
cmNlKCZzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLT5zb3VyY2UoKSk7CiAgICAgfQotICAgIGlm
IChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKQorICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRl
b1RyYWNrKSB7CiAgICAgICAgIG1fdmlkZW9UcmFja0lEID0gc2VsZWN0ZWRUcmFja3MudmlkZW9U
cmFjay0+aWQoKTsKKyAgICAgICAgc2V0VmlkZW9Tb3VyY2UoJnNlbGVjdGVkVHJhY2tzLnZpZGVv
VHJhY2stPnNvdXJjZSgpKTsKKyAgICB9CiB9CiAKIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6
fk1lZGlhUmVjb3JkZXJQcml2YXRlTW9jaygpCiB7CiAgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0
cik7CisgICAgc2V0VmlkZW9Tb3VyY2UobnVsbHB0cik7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrOjpzdG9wUmVjb3JkaW5nKCkKIHsKICAgICBzZXRBdWRpb1NvdXJjZShudWxs
cHRyKTsKKyAgICBzZXRWaWRlb1NvdXJjZShudWxscHRyKTsKIH0KIAotdm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6
dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKQogewogICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9idWZmZXJMb2NrKTsKICAgICBtX2J1ZmZlci5hcHBlbmQoIlZpZGVvIFRyYWNr
IElEOiAiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCmluZGV4IGI3ZjNjMjE0OGUz
OTllYTIyMzZkOTJjODY1OWY3OTg3MWJhZTE3ZDQuLmU1MTI5ZGU2MDNjYWU0ODBjODg2ZmY0Y2Iw
YzA3NmM0YzgxMWE3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaApAQCAtNDIs
NyArNDIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gTWVkaWFSZWNvcmRlclByaXZh
dGUKLSAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOworICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFi
bGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKICAgICB2b2lkIGZldGNoRGF0YShGZXRjaERhdGFDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6
Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5kZXggZjM2M2Y5NDBhOTNmYWY2MmQz
MTY2NGY0ZGM3MTE0MzRmM2JmYjg4YS4uNTY5ZjkwMTk3MGYyMmMyODI1NjdlYmIwYjYzYzNiYWVl
Y2UzODVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcApAQCAtMjM2LDI4ICsyMzYs
MTIgQEAgYm9vbCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6cHJldmVudFNvdXJjZUZyb21TdG9w
cGluZygpCiAgICAgcmV0dXJuICFtX2lzRW5kZWQ7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkK
K3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Omhhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghbV9oYXZlUHJvZHVjZWRE
YXRhKSB7Ci0gICAgICAgIG1faGF2ZVByb2R1Y2VkRGF0YSA9IHRydWU7Ci0gICAgICAgIHVwZGF0
ZVJlYWR5U3RhdGUoKTsKLSAgICB9Ci0KLSAgICBpZiAoIWVuYWJsZWQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgbWVkaWFTYW1wbGUuc2V0VHJhY2tJRChpZCgpKTsKLSAgICBmb3JFYWNoT2Jz
ZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7Ci0gICAgICAgIG9ic2VydmVyLnNhbXBsZUJ1ZmZl
clVwZGF0ZWQoKnRoaXMsIG1lZGlhU2FtcGxlKTsKLSAgICB9KTsKLX0KLQotdm9pZCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6aGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpCi17Ci0gICAg
aWYgKG1faGF2ZVByb2R1Y2VkRGF0YSkKKyAgICBpZiAobV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0
YSkKICAgICAgICAgcmV0dXJuOwotICAgIG1faGF2ZVByb2R1Y2VkRGF0YSA9IHRydWU7CisgICAg
bV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSA9IHRydWU7CiAgICAgdXBkYXRlUmVhZHlTdGF0ZSgp
OwogfQogCkBAIC0yNjcsNyArMjUxLDcgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
dXBkYXRlUmVhZHlTdGF0ZSgpCiAKICAgICBpZiAobV9pc0VuZGVkKQogICAgICAgICBzdGF0ZSA9
IFJlYWR5U3RhdGU6OkVuZGVkOwotICAgIGVsc2UgaWYgKG1faGF2ZVByb2R1Y2VkRGF0YSkKKyAg
ICBlbHNlIGlmIChtX2hhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKQogICAgICAgICBzdGF0ZSA9IFJl
YWR5U3RhdGU6OkxpdmU7CiAKICAgICBpZiAoc3RhdGUgPT0gbV9yZWFkeVN0YXRlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmgKaW5kZXggMjJjYWRjZTg3ZWYyYWI4ZWU4YTU1NWRhNzg5MzI2MmI5
YjM4YjcwYy4uM2Y3ZTY4NDFkMGFjY2RhNDhmZGNhMmRiMWFhMjBjMGY5NTJkNTQ4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBAIC01OSw3ICs1OSw2IEBAIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
PSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja0VuYWJsZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2Ft
cGxlJikgeyB9OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSB7IH07CiAgICAgfTsKIApAQCAtMTMzLDkgKzEzMiw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIHNv
dXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsOwogICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21T
dG9wcGluZygpIGZpbmFsOwotICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1w
bGUmKSBmaW5hbDsKICAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpIGZpbmFsOwotICAgIHZv
aWQgaGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0YSgpIGZpbmFsOworICAgIHZvaWQgaGFzU3Rh
cnRlZFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlUmVhZHlTdGF0ZSgp
OwogCkBAIC0xNTMsOCArMTUxLDcgQEAgcHJpdmF0ZToKICAgICBSZWFkeVN0YXRlIG1fcmVhZHlT
dGF0ZSB7IFJlYWR5U3RhdGU6Ok5vbmUgfTsKICAgICBib29sIG1faXNFbmFibGVkIHsgdHJ1ZSB9
OwogICAgIGJvb2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGF2ZVByb2R1Y2Vk
RGF0YSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhc1NlbnRTdGFydFByb2R1Y2VkRGF0YSB7IGZh
bHNlIH07CisgICAgYm9vbCBtX2hhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKICAg
ICBIaW50VmFsdWUgbV9jb250ZW50SGludCB7IEhpbnRWYWx1ZTo6RW1wdHkgfTsKICAgICBSZWZQ
dHI8V2ViQXVkaW9Tb3VyY2VQcm92aWRlcj4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyOwogICAgIFJl
Zjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA2ZTlm
NWI5NmUxNWUwODhiOGExODc4MWQ5ZjcwNDRkZGVmNmM4ZDk5Li5mN2Q5MDk2ZGI1Y2EwZDY3NzVl
NGFmZjAzN2E5YmE2NWIzZTZlMzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtNzQsNiAr
NzQsMjAgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdmVBdWRpb1NhbXBsZU9ic2Vy
dmVyKEF1ZGlvU2FtcGxlT2JzZXJ2ZXImIG9ic2VydmUKICAgICBtX2F1ZGlvU2FtcGxlT2JzZXJ2
ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFk
ZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoVmlkZW9TYW1wbGVPYnNlcnZlciYgb2JzZXJ2ZXIpCit7Cisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
dmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrKTsKKyAgICBtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzLmFk
ZCgmb2JzZXJ2ZXIpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW92ZVZpZGVv
U2FtcGxlT2JzZXJ2ZXIoVmlkZW9TYW1wbGVPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fdmlkZW9T
YW1wbGVPYnNlcnZlcnNMb2NrKTsKKyAgICBtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzLnJlbW92ZSgm
b2JzZXJ2ZXIpOworfQorCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9ic2VydmVyKE9i
c2VydmVyJiBvYnNlcnZlcikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTU0
LDggKzE2OCwyNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6Om5vdGlmeVNldHRpbmdzRGlk
Q2hhbmdlT2JzZXJ2ZXJzKE9wdGlvblNldDxSZWFsdGltZU1lZAogICAgIH0pOwogfQogCit2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OnVwZGF0ZUhhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCkKK3sK
KyAgICBpZiAobV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0g
eworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBp
ZiAobV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgbV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSA9IHRydWU7CisgICAgICAgIGZvckVhY2hPYnNl
cnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgICAgIG9ic2VydmVyLmhhc1N0YXJ0
ZWRQcm9kdWNpbmdEYXRhKCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCiB2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBtZWRpYVNh
bXBsZSkKIHsKKyAgICAvLyBGSVhNRTogTWlncmF0ZSBSZWFsdGltZU1lZGlhU291cmNlIGNsaWVu
dHMgdG8gbm9uIG1haW4gdGhyZWFkIHByb2Nlc3NpbmcuCisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICArK21fZnJhbWVDb3VudDsKIApA
QCAtMTcwLDI1ICsyMDMsMTYgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBs
ZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiAgICAgfQogI2VuZGlmCiAKLSAg
ICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7Ci0gICAgICAgIG9ic2VydmVy
LnZpZGVvU2FtcGxlQXZhaWxhYmxlKG1lZGlhU2FtcGxlKTsKLSAgICB9KTsKKyAgICB1cGRhdGVI
YXNTdGFydGVkUHJvZHVjaW5nRGF0YSgpOworCisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7CisgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IG1f
dmlkZW9TYW1wbGVPYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT52aWRlb1NhbXBsZUF2YWls
YWJsZShtZWRpYVNhbXBsZSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKIHsKLSAgICBpZiAoIW1faGFzU2VudFN0YXJ0UHJv
ZHVjZWRBdWRpb0RhdGEpIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewotICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobV9oYXNTZW50U3RhcnRQcm9k
dWNlZEF1ZGlvRGF0YSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBtX2hh
c1NlbnRTdGFydFByb2R1Y2VkQXVkaW9EYXRhID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvckVhY2hP
YnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKLSAgICAgICAgICAgICAgICBvYnNlcnZlci5o
YXNTdGFydGVkUHJvZHVjaW5nQXVkaW9EYXRhKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfQorICAgIHVwZGF0ZUhhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCk7CiAKICAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2NrKTsKICAgICBm
b3IgKGF1dG8qIG9ic2VydmVyIDogbV9hdWRpb1NhbXBsZU9ic2VydmVycykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAppbmRleCBmOGFiYWEzYWViZWJiZTYzZWVkZTFmNWQzMDIyN2Q4ODRlYjQ4MTc4Li4xZGI4
MTE0NTk2ZmI4ZjE5YTA4M2EwM2JhYjM4ZGJkZjI1OGE1ODBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CkBAIC04OSwxMCArODksNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIE9ic2VydmVyIHN0YXRlIHF1
ZXJpZXMuCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgICAgICAvLyBDYWxsZWQgb24gdGhlIG1haW4gdGhyZWFk
LgotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUm
KSB7IH0KLQotICAgICAgICB2aXJ0dWFsIHZvaWQgaGFzU3RhcnRlZFByb2R1Y2luZ0F1ZGlvRGF0
YSgpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgaGFzU3RhcnRlZFByb2R1Y2luZ0RhdGEoKSB7
IH0KICAgICB9OwogICAgIGNsYXNzIEF1ZGlvU2FtcGxlT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTEwMSw2ICs5OCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIC8vIE1heSBiZSBjYWxsZWQgb24g
YSBiYWNrZ3JvdW5kIHRocmVhZC4KICAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QgLypudW1iZXJPZkZyYW1lcyovKSA9IDA7
CiAgICAgfTsKKyAgICBjbGFzcyBWaWRlb1NhbXBsZU9ic2VydmVyIHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIHZpcnR1YWwgflZpZGVvU2FtcGxlT2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgeyB9Cisg
ICAgfTsKIAogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSA9IGRlZmF1bHQ7CiAK
QEAgLTEzOSw2ICsxNDIsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRB
dWRpb1NhbXBsZU9ic2VydmVyKEF1ZGlvU2FtcGxlT2JzZXJ2ZXImKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoQXVkaW9TYW1wbGVPYnNlcnZlciYp
OwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRWaWRlb1NhbXBsZU9ic2VydmVyKFZpZGVv
U2FtcGxlT2JzZXJ2ZXImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVZpZGVvU2Ft
cGxlT2JzZXJ2ZXIoVmlkZW9TYW1wbGVPYnNlcnZlciYpOworCiAgICAgY29uc3QgSW50U2l6ZSBz
aXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKTsKIApAQCAtMjUw
LDYgKzI1Niw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgaGFzRW5kZWQoKSB7IH0K
IAorICAgIHZvaWQgdXBkYXRlSGFzU3RhcnRlZFByb2R1Y2luZ0RhdGEoKTsKKwogI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAg
IGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKQEAgLTI2Nyw2ICsyNzUsOSBAQCBwcml2YXRl
OgogICAgIG11dGFibGUgUmVjdXJzaXZlTG9jayBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jazsK
ICAgICBIYXNoU2V0PEF1ZGlvU2FtcGxlT2JzZXJ2ZXIqPiBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJz
OwogCisgICAgbXV0YWJsZSBSZWN1cnNpdmVMb2NrIG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2Nr
OworICAgIEhhc2hTZXQ8VmlkZW9TYW1wbGVPYnNlcnZlcio+IG1fdmlkZW9TYW1wbGVPYnNlcnZl
cnM7CisKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBJbnRTaXplIG1faW50cmluc2ljU2l6ZTsK
ICAgICBkb3VibGUgbV9mcmFtZVJhdGUgeyAzMCB9OwpAQCAtMjg0LDcgKzI5NSw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2ludGVycnVwdGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FwdHVy
ZURpZEZhaWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9OwotICAg
IGJvb2wgbV9oYXNTZW50U3RhcnRQcm9kdWNlZEF1ZGlvRGF0YSB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2hhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKIH07CiAKIHN0cnVjdCBDYXB0
dXJlU291cmNlT3JFcnJvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcApp
bmRleCA1ZmNlNDU3OTA5OTdmNDU5YzU0MjhjZTZhMDYwMjQ0NDRmZmViMjg4Li42MjgzZjVmMDY2
YzYxNWE2ZmM4Y2ExM2RlNzY5MjRjNTI4NzcxMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZS5jcHAKQEAgLTc0LDYgKzc0LDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6Om9ic2VydmVTb3VyY2UoKQogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2U6OnVub2JzZXJ2ZVNvdXJjZSgpCiB7CiAgICAgbV92aWRlb1NvdXJjZS0+cmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOworICAgIG1fdmlkZW9Tb3VyY2UtPnNvdXJjZSgpLnJlbW92ZVZpZGVvU2FtcGxl
T2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6
c2V0U291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiBuZXdTb3VyY2UpCkBAIC0x
MTQsMTEgKzExNSwxMyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCgp
CiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6dXBkYXRlQmxhY2tGcmFtZXNTZW5k
aW5nKCkKIHsKICAgICBpZiAoIW1fbXV0ZWQgJiYgbV9lbmFibGVkKSB7CisgICAgICAgIG1fdmlk
ZW9Tb3VyY2UtPnNvdXJjZSgpLmFkZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAg
ICBpZiAobV9ibGFja0ZyYW1lVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgICAgIG1fYmxhY2tG
cmFtZVRpbWVyLnN0b3AoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fdmlkZW9T
b3VyY2UtPnNvdXJjZSgpLnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIHNl
bmRCbGFja0ZyYW1lc0lmTmVlZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlLmgKaW5kZXggYzY3MTk5MzMwOTJmOWE5YTFmNDE2NzhlNWEzYjY3ZjY4NjgxZmExNC4uOTM3
N2Q0NmI5MGZlMTEyN2QwNDJjOWYxYTRkYTk4OThhMzc2ZjI5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlLmgKQEAgLTUxLDYgKzUxLDcgQEAgY2xhc3MgUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgogICAgICwg
cHVibGljIHdlYnJ0Yzo6VmlkZW9UcmFja1NvdXJjZUludGVyZmFjZQogICAgICwgcHJpdmF0ZSBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlcgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIKICNlbmRpZgpAQCAtMTI4LDkgKzEyOSwxMSBA
QCBwcml2YXRlOgogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKSBmaW5hbCB7IHNvdXJjZU11dGVkQ2hhbmdlZCgpOyB9CiAgICAgdm9pZCB0cmFja0Vu
YWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyBzb3VyY2VFbmFi
bGVkQ2hhbmdlZCgpOyB9CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgaW5pdGlhbGl6ZUZyb21Tb3VyY2UoKTsgfQotICAgIHZv
aWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2Ft
cGxlJikgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgZmluYWwgeyB9CiAKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb1Nh
bXBsZU9ic2VydmVyIEFQSQorICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1w
bGUmKSBvdmVycmlkZSB7IH0KKwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV92
aWRlb1NvdXJjZTsKICAgICBUaW1lciBtX2JsYWNrRnJhbWVUaW1lcjsKICAgICBydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiBtX2JsYWNrRnJhbWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCmluZGV4IGQ0ODczNGMxZjYwMjY2NzNhYTk3ODIzOTQ2MDRhNDA2MTY3M2E5
NzQuLjE1ZTIyYTU4YTFjMjgzNWFkMDQwZTk4YWI5OTcxN2FmNzk4ZTVlOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCkBAIC00NiwxNiArNDYsMTkgQEAgUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVh
bHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmMK
IAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogeworICAgIG1f
c291cmNlLT5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKICAgICBtX3NvdXJjZS0+
cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0
YXJ0UHJvZHVjaW5nRGF0YSgpCiB7CiAgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisgICAgbV9zb3Vy
Y2UtPmFkZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2b2lkIFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKIHsKKyAgICBtX3NvdXJjZS0+cmVtb3ZlVmlk
ZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CiAgICAgbV9zb3VyY2UtPnN0b3AoKTsKIH0KIApAQCAt
MTY2LDkgKzE2OSw2IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gUmVhbHRpbWVWaWRlb1NvdXJjZTo6
YWRhcHRWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiB2b2lkIFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7Ci0g
ICAgaWYgKCFpc1Byb2R1Y2luZ0RhdGEoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1f
ZnJhbWVEZWNpbWF0aW9uID4gMSAmJiArK21fZnJhbWVEZWNpbWF0aW9uQ291bnRlciAlIG1fZnJh
bWVEZWNpbWF0aW9uKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCBj
Y2NlOWI5YWExOTcwM2UwOTU3MzNlZDI3YTIzYzMzOGY2MzhhZWM2Li4yYjIzZmUzY2IxOGQwY2Uz
YzMxYTU2OTY2YjZiNGUyYmQ5OGEwYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC0zMyw3ICsz
MywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ7CiAKLWNsYXNzIFJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVN
ZWRpYVNvdXJjZSwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHsKK2NsYXNz
IFJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwKKyAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291
cmNlCisgICAgLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHB1
YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZShSZWY8UmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlYWx0
aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7IH0KIApAQCAtNTgsMTEgKzYxLDEzIEBA
IHByaXZhdGU6CiAgICAgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
c291cmNlLT5pbnRlcnJ1cHRlZCgpOyB9CiAgICAgYm9vbCBpc1NhbWVBcyhSZWFsdGltZU1lZGlh
U291cmNlJiBzb3VyY2UpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRoaXMgPT0gJnNvdXJjZSB8fCBt
X3NvdXJjZS5wdHIoKSA9PSAmc291cmNlOyB9CiAKLSAgICAvLyBPYnNlcnZlcgorICAgIC8vIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQo
KSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZv
aWQgc291cmNlU3RvcHBlZCgpIGZpbmFsOwogICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9w
cGluZygpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVP
YnNlcnZlcgogICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5h
bDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKaW5kZXggYWE5ZTUzNTFlYjNiMTFjOWY0Y2M5MjA3MzEx
ZjM4ODIzNWYyN2JiYy4uZGY2OTlhMGIwYzdhZWI0YzUwMWYzMGQ1NTMxYzJiMDYwOTNlMWE1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3Bw
CkBAIC0xMDcsNyArMTA3LDggQEAgR3N0U3RyZWFtKiB3ZWJraXRNZWRpYVN0cmVhbU5ldyhNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSogdHJhY2spCiAKIGNsYXNzIFdlYktpdE1lZGlhU3RyZWFtVHJh
Y2tPYnNlcnZlcgogICAgIDogcHVibGljIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZl
cgotICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIg
eworICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIK
KyAgICAsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJL
aXRNZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIoKSB7IH07CkBAIC0xMzAsNyArMTMxLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBmaW5hbCB7IH07CiAgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKIAotICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJiBzYW1wbGUpIGZpbmFsCisgICAg
dm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKSBmaW5hbAogICAg
IHsKICAgICAgICAgaWYgKCFtX2VuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0zODcs
NiArMzg4LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJlYW1TcmNGaW5hbGl6ZShHT2Jq
ZWN0KiBvYmplY3QpCiAgICAgaWYgKHNlbGYtPnN0cmVhbSkgewogICAgICAgICBmb3IgKGF1dG8m
IHRyYWNrIDogc2VsZi0+c3RyZWFtLT50cmFja3MoKSkgewogICAgICAgICAgICAgdHJhY2stPnNv
dXJjZSgpLnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tP
YnNlcnZlci5nZXQoKSk7CisgICAgICAgICAgICB0cmFjay0+c291cmNlKCkucmVtb3ZlVmlkZW9T
YW1wbGVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKICAg
ICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09i
c2VydmVyLmdldCgpKTsKICAgICAgICAgfQogICAgICAgICBzZWxmLT5zdHJlYW0tPnJlbW92ZU9i
c2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbU9ic2VydmVyKTsKQEAgLTQwOSwxMCArNDExLDEyIEBA
IHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJraXRNZWRpYVN0cmVhbVNyY0NoYW5nZVN0
YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsCiAgICAgICAgIGlmIChzZWxmLT5zdHJlYW0pIHsKICAg
ICAgICAgICAgIGZvciAoYXV0byYgdHJhY2sgOiBzZWxmLT5zdHJlYW0tPnRyYWNrcygpKSB7CiAg
ICAgICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIo
KnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CisgICAgICAgICAgICAgICAg
dHJhY2stPnNvdXJjZSgpLnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3Ry
ZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgdHJhY2stPnJlbW92ZU9i
c2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9IGVsc2UgaWYgKHNlbGYtPnRyYWNrKSB7CiAgICAgICAgICAgICBzZWxm
LT50cmFjay0+c291cmNlKCkucmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqc2VsZi0+bWVkaWFT
dHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKKyAgICAgICAgICAgIHNlbGYtPnRyYWNrLT5zb3Vy
Y2UoKS5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2Jz
ZXJ2ZXIuZ2V0KCkpOwogICAgICAgICAgICAgc2VsZi0+dHJhY2stPnJlbW92ZU9ic2VydmVyKCpz
ZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOwogICAgICAgICB9CiAgICAgICAg
IEdTVF9PQkpFQ1RfVU5MT0NLKHNlbGYpOwpAQCAtNTYwLDcgKzU2NCwxNyBAQCBzdGF0aWMgZ2Jv
b2xlYW4gd2Via2l0TWVkaWFTdHJlYW1TcmNTZXR1cFNyYyhXZWJLaXRNZWRpYVN0cmVhbVNyYyog
c2VsZiwKIAogICAgIGlmIChvYnNlcnZlX3RyYWNrKSB7CiAgICAgICAgIHRyYWNrLT5hZGRPYnNl
cnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKLSAgICAgICAgdHJh
Y2stPnNvdXJjZSgpLmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJh
Y2tPYnNlcnZlci5nZXQoKSk7CisgICAgICAgIGF1dG8mIHNvdXJjZSA9IHRyYWNrLT5zb3VyY2Uo
KTsKKyAgICAgICAgc3dpdGNoIChzb3VyY2UudHlwZSgpKSB7CisgICAgICAgIGNhc2UgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86CisgICAgICAgICAgICBzb3VyY2UuYWRkQXVkaW9T
YW1wbGVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OlZpZGVvOgorICAgICAgICAgICAgc291cmNlLmFkZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnNlbGYt
Pm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KICAgICB9CiAgICAgZ3N0X2VsZW1lbnRf
c3luY19zdGF0ZV93aXRoX3BhcmVudChlbGVtZW50KTsKICAgICByZXR1cm4gVFJVRTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2VMaWJXZWJSVEMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxp
YldlYlJUQy5jcHAKaW5kZXggNjliZTliNTNlOGE1NzgyZTEzMWNjOTg4NDllM2JiZDhlMmQ5MmQz
Zi4uYjYwMDc1NzdkZDkxNjlhNDc5OTBiMGM1NDQxYmM5MTMzMzEyYzc0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldl
YlJUQy5jcHAKQEAgLTUwLDExICs1MCw4IEBAIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxp
YldlYlJUQzo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlTGliV2ViUlRDKFJlZjxNCiB7CiB9
CiAKLXZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlTGliV2ViUlRDOjpzYW1wbGVCdWZm
ZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkK
K3ZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlTGliV2ViUlRDOjp2aWRlb1NhbXBsZUF2
YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogewotICAgIGlmIChpc1NpbGVuY2VkKCkpCi0g
ICAgICAgIHJldHVybjsKLQogICAgIHN3aXRjaCAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgewog
ICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6CiAgICAgICAgIG1fY3Vy
cmVudFJvdGF0aW9uID0gd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8wOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUxpYldlYlJUQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQy5oCmlu
ZGV4IDllMTc1OGRmOWY0NTFiNDcwYWYyZjdkNGU2NTNlYTM1ODU0MWMwNGMuLjAwYzUwOWExYmMw
ODFmNTk0NjAyYWMwMjc3NDhmZGYxMmI1MTMwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2VMaWJXZWJSVEMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlTGliV2ViUlRDLmgKQEAgLTQxLDgg
KzQxLDggQEAgcHJpdmF0ZToKIAogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVv
RnJhbWVCdWZmZXI+IGNyZWF0ZUJsYWNrRnJhbWUoc2l6ZV90LCBzaXplX3QpIGZpbmFsOwogCi0g
ICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIEFQSQotICAgIHZvaWQgc2Ft
cGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikg
ZmluYWw7CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlciBB
UEkKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmluYWw7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2VDb2NvYS5oCmluZGV4IGQ3N2FmYjI2NmZiOTRiMDY5YWI1MmQ4MGNmYzk3
NWMyYjBmZTczYzYuLjc4NmI1NTBhOThlOTYyNDczMDBjODU1NzhiYzEzMzdlMDI0MDhjNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCkBAIC01
MCw3ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgLy8gcnRjOjpWaWRlb1NpbmtJbnRlcmZhY2UKICAg
ICB2b2lkIE9uRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJikgZmluYWw7CiAKLSAgICBS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IG1fYnVmZmVyOwogICAgIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBtX2JsYWNrRnJhbWU7CiAgICAgaW50IG1fYmxhY2tGcmFtZVdpZHRoIHsg
MCB9OwogICAgIGludCBtX2JsYWNrRnJhbWVIZWlnaHQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggMTA4MWNkZTA1ODUwMWYx
ZTQ1Y2QwZTAzMzk2ODIzNGNjMmMxZmI2Yy4uZTgwZWNjMDEzNzhmM2Q3OTA3YzA2N2M3OTVhZDdk
MjU3NDNiYzg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5tbQpAQCAtMjAwLDcgKzIwMCw2IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2E6Ok9uRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSkKIAog
dm9pZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cHJvY2Vzc05ld1NhbXBsZShD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQs
IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uKQogewotICAgIG1fYnVmZmVyID0g
c2FtcGxlOwogICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKICAgICBpZiAoV1RGOjpzYWZl
Q2FzdDxpbnQ+KHdpZHRoKSAhPSBzaXplLndpZHRoKCkgfHwgV1RGOjpzYWZlQ2FzdDxpbnQ+KGhl
aWdodCkgIT0gc2l6ZS5oZWlnaHQoKSkKICAgICAgICAgc2V0SW50cmluc2ljU2l6ZShJbnRTaXpl
KHdpZHRoLCBoZWlnaHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlQ29jb2EuY3BwCmluZGV4IDEzNDQxMjdiOGZiZmJmMWU0N2JhNjRkMzZlNmIxM2Q3MGU4
MDYwNGEuLjZiZjBjYTQ4N2RkNjRkYmVmNTM5ZDk0ODgwZjYyOGM3ZmExNjFiZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtNjIs
MTEgKzYyLDggQEAgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OlJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZUNvY29hKFJlZjxNZWRpYVN0cmUKIHsKIH0KIAotdm9pZCBSZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6c2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJiBzYW1wbGUpCit2b2lkIFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2Ft
cGxlKQogewotICAgIGlmIChpc1NpbGVuY2VkKCkpCi0gICAgICAgIHJldHVybjsKLQogI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmICghKCsrbV9udW1iZXJPZkZyYW1lcyAlIDYwKSkK
ICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiZnJhbWUgIiwgbV9udW1iZXJPZkZy
YW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5o
CmluZGV4IDA0ODRiMWNkMTMwMmFlYTFlZTNhYmEyMWI4MjNlMmI2ZWZkNDQ3ZjMuLjc3MTNlZDBj
MTU5YTE5YTIzNTQ5YThlNjNjZjE3OTEzNDg3Y2NkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5oCkBAIC00NCw4ICs0NCw4IEBAIHByaXZhdGU6
CiAKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiBjcmVh
dGVCbGFja0ZyYW1lKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCkgZmluYWw7CiAKLSAgICAv
LyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgQVBJCi0gICAgdm9pZCBzYW1wbGVC
dWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5h
bDsKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIEFQSQor
ICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKIAogICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjb252ZXJ0VG9ZVVYoQ1ZQaXhlbEJ1ZmZlclJl
Zik7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJvdGF0ZVBpeGVsQnVmZmVyKENW
UGl4ZWxCdWZmZXJSZWYsIHdlYnJ0Yzo6VmlkZW9Sb3RhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggM2NhYTgxMGJmNmNkNjhjMmVkYTQ5MzZmYzg2NDY5NDM5Njcx
YzcyOS4uOWZkNzg5NDQyYzU1N2NlYjgzNWJhODdiNTYxNTFiODdlYzI4ZGRhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDc2LDEwICs0NzYsNyBAQCBSZWY8SW50ZXJu
YWxzPiBJbnRlcm5hbHM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiBJbnRlcm5hbHM6On5J
bnRlcm5hbHMoKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgaWYgKG1fdHJhY2tT
b3VyY2UpIHsKLSAgICAgICAgbV90cmFja1NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwot
ICAgICAgICBtX3RyYWNrU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
LSAgICB9CisgICAgc3RvcE9ic2VydmluZ1JlYWx0aW1lTWVkaWFTb3VyY2UoKTsKICNlbmRpZgog
fQogCkBAIC01MDM5LDE5ICs1MDM2LDQ0IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRDYW1lcmFNZWRp
YVN0cmVhbVRyYWNrT3JpZW50YXRpb24oTWVkaWFTdHJlYW1UcmFjayYgdHJhY2ssIGluCiAgICAg
c291cmNlLm1vbml0b3JPcmllbnRhdGlvbihtX29yaWVudGF0aW9uTm90aWZpZXIpOwogfQogCi12
b2lkIEludGVybmFsczo6b2JzZXJ2ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1UcmFjayYg
dHJhY2spCit2b2lkIEludGVybmFsczo6c3RvcE9ic2VydmluZ1JlYWx0aW1lTWVkaWFTb3VyY2Uo
KQogewotICAgIGlmIChtX3RyYWNrU291cmNlKSB7Ci0gICAgICAgIG1fdHJhY2tTb3VyY2UtPnJl
bW92ZU9ic2VydmVyKCp0aGlzKTsKLSAgICAgICAgbV90cmFja1NvdXJjZS0+cmVtb3ZlQXVkaW9T
YW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgaWYgKCFtX3RyYWNrU291cmNlKQorICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgbV90cmFja0F1ZGlvU2FtcGxlQ291bnQgPSAwOwotICAgICAgICBt
X3RyYWNrVmlkZW9TYW1wbGVDb3VudCA9IDA7CisgICAgc3dpdGNoIChtX3RyYWNrU291cmNlLT50
eXBlKCkpIHsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAg
ICAgICBtX3RyYWNrU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoK
KyAgICAgICAgbV90cmFja1NvdXJjZS0+cmVtb3ZlVmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9u
ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQorICAgIG1fdHJhY2tTb3Vy
Y2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKworICAgIG1fdHJhY2tTb3VyY2UgPSBudWxscHRy
OworICAgIG1fdHJhY2tBdWRpb1NhbXBsZUNvdW50ID0gMDsKKyAgICBtX3RyYWNrVmlkZW9TYW1w
bGVDb3VudCA9IDA7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjpvYnNlcnZlTWVkaWFTdHJlYW1UcmFj
ayhNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaykKK3sKKyAgICBzdG9wT2JzZXJ2aW5nUmVhbHRpbWVN
ZWRpYVNvdXJjZSgpOwogCiAgICAgbV90cmFja1NvdXJjZSA9ICZ0cmFjay5zb3VyY2UoKTsKICAg
ICBtX3RyYWNrU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7Ci0gICAgbV90cmFja1NvdXJjZS0+
YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgc3dpdGNoIChtX3RyYWNrU291cmNl
LT50eXBlKCkpIHsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgor
ICAgICAgICBtX3RyYWNrU291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoK
KyAgICAgICAgbV90cmFja1NvdXJjZS0+YWRkVmlkZW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogfQogCiB2b2lkIEludGVybmFs
czo6Z3JhYk5leHRNZWRpYVN0cmVhbVRyYWNrRnJhbWUoVHJhY2tGcmFtZVByb21pc2UmJiBwcm9t
aXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggYTM2ZjA3YTcwYjU4YjMxYjIz
MWZjOGI4MDVmN2FjMzE3YTI0OTMyOS4uZTlmYjFiYjMxZWViZTIwOWQzZTI2ZjY0NjNlNzJkZDBk
YTJmMmZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMzAsNiArMTMwLDcg
QEAgY2xhc3MgSW50ZXJuYWxzIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8SW50ZXJuYWxzPiwg
cHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb24KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
ICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgogICAgICwgcHJpdmF0ZSBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgLCBwcml2YXRlIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIKICNlbmRpZgogICAgIHsKIHB1
YmxpYzoKQEAgLTc2Myw2ICs3NjQsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgdm9pZCBzdG9wT2JzZXJ2aW5nUmVhbHRpbWVNZWRpYVNvdXJjZSgp
OworCiAgICAgdm9pZCBzZXRNb2NrQXVkaW9UcmFja0NoYW5uZWxOdW1iZXIoTWVkaWFTdHJlYW1U
cmFjayYsIHVuc2lnbmVkIHNob3J0KTsKICAgICB2b2lkIHNldENhbWVyYU1lZGlhU3RyZWFtVHJh
Y2tPcmllbnRhdGlvbihNZWRpYVN0cmVhbVRyYWNrJiwgaW50IG9yaWVudGF0aW9uKTsKICAgICB1
bnNpZ25lZCBsb25nIHRyYWNrQXVkaW9TYW1wbGVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
Y2tBdWRpb1NhbXBsZUNvdW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGU4
OTNjZDJjMDkxZWZmY2E0NzA0N2E0OGY4NzRmYmQ0NmJjOTMzMTUuLmU2MGM4ZjhlNWM2MjNhY2Ji
NGRiZTVhZDkyNDM1ZTM5M2RkZjUxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBA
IC01MCw4ICs1MCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5Ci0g
ICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKLSAgICAsIHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgOiBwcml2YXRlIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlcgogICAgICwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlOjpDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpA
QCAtNjIsMTMgKzYzLDMyIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVu
aXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4odGhpcykpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2Vy
dmVyKCp0aGlzKTsKLSAgICAgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRo
aXMpOworICAgICAgICBzd2l0Y2ggKG1fc291cmNlLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgICAgIG1fc291cmNlLT5h
ZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAgICAgICAgbV9z
b3VyY2UtPmFkZFZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgflNvdXJj
ZVByb3h5KCkKICAgICB7CiAgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7Ci0gICAgICAg
IG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKworICAgICAgICBz
d2l0Y2ggKG1fc291cmNlLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBs
ZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAgICAgICAgbV9zb3VyY2UtPnJlbW92
ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CiAgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNl
cnZlcigqdGhpcyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKaW5kZXggMzRlZDRl
NjMwYWMxOThiMzEwODAzMGY3OWFhMjNjNTNhOTNmNjEwZi4uMzExYzE2MWU0OGMwYzg2ZGY2YWFk
NDcwM2EzODU2OTQ1ZmExMzMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtNjQsMjYg
KzY0LDI3IEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRp
YVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKICAgICAgICAgd2lkdGggPSBzZWxlY3RlZFRyYWNrcy52
aWRlb1RyYWNrLT5zZXR0aW5ncygpLndpZHRoKCk7CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9u
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
OjpDcmVhdGVSZWNvcmRlciB7IG1faWRlbnRpZmllciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1Ry
YWNrLCB3aWR0aCwgaGVpZ2h0IH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
LCBhdWRpb1RyYWNrID0gbWFrZVJlZlB0cihzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKV0oYXV0
byYmIGV4Y2VwdGlvbikgeworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lk
ZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCB9LCBb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgYXVkaW9UcmFjayA9IG1ha2VSZWZQ
dHIoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjayksIHZpZGVvVHJhY2sgPSBtYWtlUmVmUHRyKHNl
bGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChleGNlcHRpb24p
CiAgICAgICAgICAgICByZXR1cm4gbV9lcnJvckNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlv
bi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOwogICAgICAgICBpZiAoYXVk
aW9UcmFjaykKICAgICAgICAgICAgIHNldEF1ZGlvU291cmNlKCZhdWRpb1RyYWNrLT5zb3VyY2Uo
KSk7CisgICAgICAgIGlmICh2aWRlb1RyYWNrKQorICAgICAgICAgICAgc2V0VmlkZW9Tb3VyY2Uo
JnZpZGVvVHJhY2stPnNvdXJjZSgpKTsKICAgICB9LCAwKTsKIH0KIAogTWVkaWFSZWNvcmRlclBy
aXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCiB7CiAgICAgc2V0QXVkaW9Tb3VyY2UobnVs
bHB0cik7CisgICAgc2V0VmlkZW9Tb3VyY2UobnVsbHB0cik7CiAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6UmVsZWFzZVJlY29yZGVy
IHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpz
YW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JiB0cmFjaywgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7Ci0g
ICAgaWYgKHRyYWNrLmlkKCkgIT0gbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCkKLSAgICAgICAgcmV0
dXJuOwogICAgIGlmIChhdXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVh
dGUoc2FtcGxlKSkKICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlY29yZGVyOjpWaWRlb1NhbXBsZUF2YWlsYWJsZSB7IFdURk1vdmUoKnJlbW90ZVNhbXBs
ZSkgfSwgbV9pZGVudGlmaWVyKTsKIH0KQEAgLTEyOCw2ICsxMjksNyBAQCB2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2Vi
Q29yZTo6U2hhcgogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGluZygpCiB7
CiAgICAgc2V0QXVkaW9Tb3VyY2UobnVsbHB0cik7CisgICAgc2V0VmlkZW9Tb3VyY2UobnVsbHB0
cik7CiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVy
OjpTdG9wUmVjb3JkaW5nIHsgfSwgbV9pZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRl
LmgKaW5kZXggNjgwMDk0MmEzMGRjZGM0MWFjM2JhZmZkOWJhNzg4MTI4MDliNDZkNi4uNmZmMjk0
MDc5OTQ3YjZhYzk2NmJlOTBhZTZhODNjNDAxMTQ4MDU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5o
CkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZQotICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJikg
ZmluYWw7CisgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBs
ZSYpIGZpbmFsOwogICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVm
UHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYp
IGZpbmFsOwogICAgIHZvaWQgc3RvcFJlY29yZGluZygpIGZpbmFsOwogICAgIHZvaWQgYXVkaW9T
YW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
c2l6ZV90KSBmaW5hbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDYxMWViMzcx
MDlmM2UxYzUyNDIzNDg0MmNjYzNhYjVhMDFlNTAxOGEuLmM3NDM4ZGRlN2QxODg0YTRmYzA3NTU2
NjU3ODExNzhmYjhmMWZiZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIwLTA1LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBJbnRyb2R1Y2UgYSBSZWFsdGltZU1lZGlhU291cmNlIHZpZGVvIHNhbXBsZSBv
YnNlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExNzE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2st
TWVkaWFFbGVtZW50LWRpc2FibGVkLXZpZGVvLWlzLWJsYWNrLmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgRHJpdmUtYnkgZml4LCBzaW5jZSB3ZSBhcmUgbm93IHJlY2VpdmluZyBzYW1wbGVz
IGJ1dCBub3QgcmVuZGVyaW5nIHRoZW0gd2hlbiB0cmFjayBpcyBub3QgZW5hYmxlZCwgdGhlIGxv
YWRlZGRhdGEgZXZlbnQgaXMgZmlyZWQgYXBwcm9wcmlhdGVseS4KKyAgICAgICAgVXBkYXRlIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3VycmVudERpc3BsYXlNb2RlIHRv
IHJldHVybiBQYWludEl0QmxhY2sgaW4gdGhhdCBjYXNlLgorCiAyMDIwLTA1LTEwICBSb2IgQnVp
cyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGJhc2U2NC5hbnkuaHRtbCB0ZXN0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stTWVkaWFFbGVtZW50LWRpc2Fi
bGVkLXZpZGVvLWlzLWJsYWNrLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJl
YW1UcmFjay1NZWRpYUVsZW1lbnQtZGlzYWJsZWQtdmlkZW8taXMtYmxhY2suaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IDIxMTY0YzgzZmEyNmRiMWIwMjk5YzE5ZDhiOTc0YjA0NTcyZDRkMjYuLjNl
ZWMyNjllZDE1ZTU0MzkxMTY2ZWQyNzdkZjdmZjVhMmQwZjdhNjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVh
bXMvTWVkaWFTdHJlYW1UcmFjay1NZWRpYUVsZW1lbnQtZGlzYWJsZWQtdmlkZW8taXMtYmxhY2su
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1NZWRpYUVs
ZW1lbnQtZGlzYWJsZWQtdmlkZW8taXMtYmxhY2suaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC02LDcg
KzYsNSBAQCBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYSBkaXNhYmxlZCB2aWRlbyB0cmFjayBpbiBh
IE1lZGlhU3RyZWFtIGlzIHJlbmRlcmVkIGFzIGJsYQogCiAKIAotSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgVGVzdHMgdGhhdCBhIGRpc2FibGVkIHZp
ZGVvIHRyYWNrIGluIGEgTWVkaWFTdHJlYW0gaXMgcmVuZGVyZWQgYXMgYmxhY2tuZXNzIFRlc3Qg
dGltZWQgb3V0CitQQVNTIFRlc3RzIHRoYXQgYSBkaXNhYmxlZCB2aWRlbyB0cmFjayBpbiBhIE1l
ZGlhU3RyZWFtIGlzIHJlbmRlcmVkIGFzIGJsYWNrbmVzcyAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>