<?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>208651</bug_id>
          
          <creation_ts>2020-03-05 10:01:20 -0800</creation_ts>
          <short_desc>Implement setWirelessPlaybackTarget, performTaskAtMediaTime, and wouldTaintOrigin in GPUProcess</short_desc>
          <delta_ts>2020-03-07 15:20:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1626147</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-05 10:01:20 -0800</bug_when>
    <thetext>Implement setWirelessPlaybackTarget, performTaskAtMediaTime, and wouldTaintOrigin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626148</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-05 10:01:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/60088298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626167</commentid>
    <comment_count>2</comment_count>
      <attachid>392592</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-05 10:17:55 -0800</bug_when>
    <thetext>Created attachment 392592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626171</commentid>
    <comment_count>3</comment_count>
      <attachid>392593</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-05 10:25:15 -0800</bug_when>
    <thetext>Created attachment 392593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626242</commentid>
    <comment_count>4</comment_count>
      <attachid>392609</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-05 12:52:30 -0800</bug_when>
    <thetext>Created attachment 392609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626682</commentid>
    <comment_count>5</comment_count>
      <attachid>392609</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-06 08:46:15 -0800</bug_when>
    <thetext>Comment on attachment 392609
Patch

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

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:81
&gt; +    m_performTaskAtMediaTimeCompletionHandler = nullptr;

We should call this completion handler otherwise we will get some debug assert.
Maybe the completion handler should return an Optional&lt;Time&gt;, WTF::null opt meaning that it was not done.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:797
&gt; +void RemoteMediaPlayerProxy::performTaskAtMediaTime(MediaTime&amp;&amp; taskTime, WallTime&amp;&amp; messageTime, CompletionHandler&lt;void(const MediaTime&amp;)&gt;&amp;&amp; completionHandler)

I don&apos;t think we need a MediaTime&amp;&amp; since it only contains int values. Ditto for WallTime that we can simply pass by value.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:808
&gt; +    m_player-&gt;performTaskAtMediaTime([this, weakThis = makeWeakPtr(this)] {

It might be just simpler to have the lambda capture completionHandler so that we do not have to store it in m_performTaskAtMediaTimeCompletionHandler, which could be overridden by two successive RemoteMediaPlayerProxy::performTaskAtMediaTime calls.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:817
&gt; +void RemoteMediaPlayerProxy::wouldTaintOrigin(struct WebCore::SecurityOriginData originData, CompletionHandler&lt;void(Optional&lt;bool&gt;)&gt;&amp;&amp; completionHandler)

s/struct WebCore::SecurityOriginData/const SecurityOriginData&amp;/

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:848
&gt; +    if (!connection().sendSync(Messages::RemoteMediaPlayerProxy::WouldTaintOrigin(origin.data()), Messages::RemoteMediaPlayerProxy::WouldTaintOrigin::Reply(wouldTaint), m_id))

Could there be a way to use m_cachedState to remove the sync IPC as a follow-up?

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:1034
&gt; +    m_performTaskAtMediaTimeCompletionHandler = WTFMove(completionHandler);

There is the risk that performTaskAtMediaTime is called twice so that we would override a non null m_performTaskAtMediaTimeCompletionHandler.
It might be simpler to just capture completionHandler in the lambda passed to sendWithAsyncReply.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:353
&gt; +    bool performTaskAtMediaTime(WTF::Function&lt;void()&gt;&amp;&amp;, const MediaTime&amp;) final;

s/WTF:://

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:373
&gt; +    WTF::Function&lt;void()&gt; m_performTaskAtMediaTimeCompletionHandler;

s/WTF:://</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627292</commentid>
    <comment_count>6</comment_count>
      <attachid>392609</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-07 13:41:45 -0800</bug_when>
    <thetext>Comment on attachment 392609
Patch

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

Thanks for the review!

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:81
&gt;&gt; +    m_performTaskAtMediaTimeCompletionHandler = nullptr;
&gt; 
&gt; We should call this completion handler otherwise we will get some debug assert.
&gt; Maybe the completion handler should return an Optional&lt;Time&gt;, WTF::null opt meaning that it was not done.

Great suggestion, I have made this change.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:797
&gt;&gt; +void RemoteMediaPlayerProxy::performTaskAtMediaTime(MediaTime&amp;&amp; taskTime, WallTime&amp;&amp; messageTime, CompletionHandler&lt;void(const MediaTime&amp;)&gt;&amp;&amp; completionHandler)
&gt; 
&gt; I don&apos;t think we need a MediaTime&amp;&amp; since it only contains int values. Ditto for WallTime that we can simply pass by value.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:808
&gt;&gt; +    m_player-&gt;performTaskAtMediaTime([this, weakThis = makeWeakPtr(this)] {
&gt; 
&gt; It might be just simpler to have the lambda capture completionHandler so that we do not have to store it in m_performTaskAtMediaTimeCompletionHandler, which could be overridden by two successive RemoteMediaPlayerProxy::performTaskAtMediaTime calls.

MediaPlayerPrivateAVFoundationObjC is the only media player to implement this callback so far, and it only keeps one pending callback at a time. I have added a comment explaining this.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:817
&gt;&gt; +void RemoteMediaPlayerProxy::wouldTaintOrigin(struct WebCore::SecurityOriginData originData, CompletionHandler&lt;void(Optional&lt;bool&gt;)&gt;&amp;&amp; completionHandler)
&gt; 
&gt; s/struct WebCore::SecurityOriginData/const SecurityOriginData&amp;/

Oops, copy pasta FTW!

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:848
&gt;&gt; +    if (!connection().sendSync(Messages::RemoteMediaPlayerProxy::WouldTaintOrigin(origin.data()), Messages::RemoteMediaPlayerProxy::WouldTaintOrigin::Reply(wouldTaint), m_id))
&gt; 
&gt; Could there be a way to use m_cachedState to remove the sync IPC as a follow-up?

As we discussed offline, this is possible for some canvas elements so I&apos;ll do that in the patch for landing. I have also added a { SecurityOriginData, Optional&lt;bool&gt; } cache to MediaPlayerPrivateRemote, so we will only need to make the sync call once for a given origin in any case.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:1034
&gt;&gt; +    m_performTaskAtMediaTimeCompletionHandler = WTFMove(completionHandler);
&gt; 
&gt; There is the risk that performTaskAtMediaTime is called twice so that we would override a non null m_performTaskAtMediaTimeCompletionHandler.
&gt; It might be simpler to just capture completionHandler in the lambda passed to sendWithAsyncReply.

Fixed

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:353
&gt;&gt; +    bool performTaskAtMediaTime(WTF::Function&lt;void()&gt;&amp;&amp;, const MediaTime&amp;) final;
&gt; 
&gt; s/WTF:://

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:373
&gt;&gt; +    WTF::Function&lt;void()&gt; m_performTaskAtMediaTimeCompletionHandler;
&gt; 
&gt; s/WTF:://

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627305</commentid>
    <comment_count>7</comment_count>
      <attachid>392894</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-07 13:57:31 -0800</bug_when>
    <thetext>Created attachment 392894
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627327</commentid>
    <comment_count>8</comment_count>
      <attachid>392894</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-07 15:20:01 -0800</bug_when>
    <thetext>Comment on attachment 392894
Patch for landing

Clearing flags on attachment: 392894

Committed r258082: &lt;https://trac.webkit.org/changeset/258082&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392592</attachid>
            <date>2020-03-05 10:17:55 -0800</date>
            <delta_ts>2020-03-05 10:25:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208651-20200305101754.patch</filename>
            <type>text/plain</type>
            <size>27430</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U1MGNhNGM5MzQ3NWUy
MzVhZjA4NTdmZDBhYTllNjNkNGNjOGI0Zi4uM2Y3NDgyNDMyZWE2OTcwZDlhM2FlM2IyZjFkNGQx
YWZhODkyMjA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAzLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBz
ZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0LCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lLCBhbmQgd291
bGRUYWludE9yaWdpbiBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg2NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMDg4
Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMpOiBSZW1vdmUgdW51c2VkIGxhbWJkYSBw
YXJhbWV0ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6
IE1ha2UgTWVkaWFUaW1lIHBhcmFtZXRlciBjb25zdCByZWYgCisgICAgICAgIHNvIGl0IGlzbid0
IGNvcGllZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnBlcmZvcm1UYXNrQXRNZWRp
YVRpbWUpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6IERpdHRvLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJm
b3JtVGFza0F0TWVkaWFUaW1lKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKTog
RG9uJ3Qgc2V0IGlubGluZSBpbWFnZQorICAgICAgICBjb250ZW50cyBpZiBpbWFnZSBpcyBOVUxM
LgorCiAyMDIwLTAzLTAyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSByZW1vdGUgSW1hZ2VCdWZmZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZDgzM2ZjY2IxZTU2NDY3ZjM3MzMxM2VhNjQ4NWNjNDkzYTRhNWQ2NC4uODQ0MjU5YTRmYTE3
YjIxNDM0MzQ4MGU2MTdkOTE1OTMxNzVlZDUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAor
MjAyMC0wMy0wNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCwgcGVyZm9ybVRhc2tBdE1l
ZGlhVGltZSwgYW5kIHdvdWxkVGFpbnRPcmlnaW4gaW4gR1BVUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NjUxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MDA4ODI5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3lu
Y01lc3NhZ2UpOiBEaXNwYXRjaCBwbGF5ZXIgbWFuYWdlciBtZXNzYWdlcy4KKworICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5
bmNQbGF5ZXJNZXNzYWdlKTogRGlzcGF0Y2ggcGxheWVyIG1lc3NhZ2VzLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDoKKworICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5
KTogQ2xlYXIgdGhlIGNvbXBsZXRpb24gaGFuZGxlcgorICAgICAgICBkbyBpdHMgZGVzdHJ1Y3Rv
ciBkb2Vzbid0IGFzc2VydC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCk6IEltcGxlbWVudC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp3b3VsZFRhaW50T3Jp
Z2luKTogRGl0dG8uCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjp1cGRhdGVDYWNoZWRTdGF0ZSk6IFVwZGF0ZSB3aXJlbGVzcyBwbGF5YmFjayB0
YXJnZXQgbmFtZS4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjps
b2FkKTogRG9uJ3QgbG9nIGFzIHVuaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6d2lyZWxlc3NQbGF5YmFja1RhcmdldE5hbWUgY29uc3QpOiBS
ZXR1cm4gY2FjaGVkIG5hbWUuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCk6IEltcGxlbWVudC4KKyAgICAgICAgKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp3b3VsZFRhaW50T3JpZ2luIGNvbnN0KTog
RGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGVyZm9y
bVRhc2tBdE1lZGlhVGltZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSk6IERlbGV0ZWQsIG5vdCBuZWVk
ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2ltdWxhdGVB
dWRpb0ludGVycnVwdGlvbik6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbjo6ZGVjb2RlKTogRGVjb2RlIHN1cHBvcnRz
RnVsbHNjcmVlbiB0b28uCisKIDIwMjAtMDMtMDIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhlIHJlbW90ZSBJbWFnZUJ1
ZmZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggODMzMmJj
NTc2MDQyYjQ2YTczMDU5MWJlNWQ0YzAxYTMyNmRmYTVkMi4uZGU0MzhiNzZkNmI4YmI2Mjc4MDk1
MDkwY2UwNmQzYmJiZTJlOTU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC0xNzMwLDcgKzE3MzAsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0
ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY29uc3QgTWVkaWFUaW1lJiBtb3ZpZVRpbWUpCiAgICAgSU5G
T19MT0coTE9HSURFTlRJRklFUiwgIm5leHRJbnRlcmVzdGluZ1RpbWU6IiwgbmV4dEludGVyZXN0
aW5nVGltZSk7CiAKICAgICBpZiAobmV4dEludGVyZXN0aW5nVGltZS5pc1ZhbGlkKCkgJiYgbV9w
bGF5ZXIpIHsKLSAgICAgICAgbV9wbGF5ZXItPnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIG5leHRJbnRlcmVzdGluZ1RpbWVdIHsKKyAg
ICAgICAgbV9wbGF5ZXItPnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggNjE5ZDZlMTAxNmVjMDRlNDcxNDFmOTJiODhhOWZhZTlm
MzhjYzMxNi4uOWEyMzZhYzllYjE5NTgxZjZlMmZjNDM1Y2MxMWZiNDI4MzhlYTI5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAt
MTU4MCw3ICsxNTgwLDcgQEAgQVZQbGF5ZXIqIE1lZGlhUGxheWVyOjpvYmpDQVZGb3VuZGF0aW9u
QVZQbGF5ZXIoKSBjb25zdAogCiAjZW5kaWYKIAotYm9vbCBNZWRpYVBsYXllcjo6cGVyZm9ybVRh
c2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrLCBNZWRpYVRpbWUgdGlt
ZSkKK2Jvb2wgTWVkaWFQbGF5ZXI6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYgdGFzaywgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAgIHJldHVybiBt
X3ByaXZhdGUtPnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGTW92ZSh0YXNrKSwgdGltZSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRl
eCBkZjE1NzM0YzdiZDA5YTZmNGUzMTZkY2ZhMjBjNDdlYWE4OWJjYjU2Li4xNTI2NzQzMmFlNmM0
MDMyNDE5YmUyMTczMmUwMGZhZGJhOTYyNmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTYwMCw3ICs2MDAsNyBAQCBwdWJsaWM6CiAg
ICAgQVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRpb25BVlBsYXllcigpIGNvbnN0OwogI2VuZGlmCiAK
LSAgICBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYs
IE1lZGlhVGltZSk7CisgICAgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKTsKIAogICAgIGJvb2wgc2hvdWxkSWdub3Jl
SW50cmluc2ljU2l6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDE3MDc1OTNkMjI5MzQ2MmE5MTU2NzNi
YjkyZDBlMWQ2M2VmZjk4MzIuLmMwYWU0MzdlOTdiYzRhMzc2OTExZGY4ZmEyNjhkNDQyZGRlMzA3
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oCkBAIC0yODUsNyArMjg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
QVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRpb25BVlBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG51bGxw
dHI7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUo
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYsIE1lZGlhVGltZSkgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgeyByZXR1cm4gZmFsc2U7IH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMzk5OTAwZDY5OTBlMDQxOTBkY2VjZjZkOGViZmNkZTg4
Y2QzNTllNy4uNWZmMDMxOGY3ZTg4MWVkMDcxNjFmZTkwNzNlYzNlZDNiZmE4MTZjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtMzM0LDcgKzMzNCw3IEBAIHByaXZhdGU6CiAKICAgICBBVlBs
YXllciAqb2JqQ0FWRm91bmRhdGlvbkFWUGxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9h
dlBsYXllci5nZXQoKTsgfQogCi0gICAgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmLCBNZWRpYVRpbWUpIGZpbmFsOworICAgIGJvb2wgcGVyZm9ybVRh
c2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikg
ZmluYWw7CiAgICAgdm9pZCBzZXRTaG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXMoYm9vbCk7
CiAKICAgICBSZXRhaW5QdHI8QVZVUkxBc3NldD4gbV9hdkFzc2V0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KaW5kZXggOGQxOTUyYTk0NGNkYzdlZDdkNDc3OTNjNzNhODM5NzM3ZTAyYjVmYi4uMTNh
OGExMzk3NWUyYWYyYTZhZjEwYTNkOTM2ZDMyYmYyMzM3MTY4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCkBAIC0zMjQyLDcgKzMyNDIsNyBAQCBPcHRpb25hbDxWaWRlb1BsYXliYWNrUXVhbGl0
eU1ldHJpY3M+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvUAogI2Vu
ZGlmCiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9y
bVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrLCBNZWRpYVRpbWUg
dGltZSkKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRh
c2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrLCBjb25zdCBNZWRpYVRp
bWUmIHRpbWUpCiB7CiAgICAgaWYgKCFtX2F2UGxheWVyKQogICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IGQ4ZjljMjQ0YjZjMWUxZjM5OGM5OTU1ZTc2
ZTVkMzliZmFjNmNmNmEuLjEyYjkwZTc4ZDhkODk5MDQ0N2Y2MTViNGE4MTJmOTM1ZmY2YTFkNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yNTIsNyArMjUyLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCi0gICAgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFU
aW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmLCBNZWRpYVRpbWUpIGZpbmFsOworICAgIGJvb2wg
cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVk
aWFUaW1lJikgZmluYWw7CiAKICAgICB2b2lkIGVuc3VyZUxheWVyKCk7CiAgICAgdm9pZCBkZXN0
cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBmNTQ5MTBjMTkwMmNi
NzRkM2RkMzAwZDJjYjUxM2FkZTIxNmIwYmZiLi4xNDMzNzk0ZjE2NjAzMTk5YzM5OWNjZTU2YzBi
MDMwZjVjZGE4NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xMjE4LDcgKzEy
MTgsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNDdXJy
ZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpIGNvbgogfQogI2VuZGlmCiAKLWJvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2ssIE1lZGlhVGltZSB0aW1lKQorYm9vbCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RG
OjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAg
IF9fYmxvY2sgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IHRhc2tJbiA9IFdURk1vdmUodGFzayk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQppbmRl
eCBmN2U2N2IyMGQ0NGJlMzE4Mzc4MWUyNWE0MGU5NTQ1NzY2ZGUwZGU0Li40ODA1YWFmOTIwMzVl
ZmFhZjJkYWU5MWY1YzE5ZWI3OGFjNjA2NTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgVmlkZW9M
YXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICp2
aWRlb0Z1bGxzY3JlCiAgICAgaWYgKG1fdmlkZW9MYXllcikgewogICAgICAgICBDQUNvbnRleHQg
Km9sZENvbnRleHQgPSBbbV92aWRlb0xheWVyIGNvbnRleHRdOwogCi0gICAgICAgIGlmIChtX3Zp
ZGVvSW5saW5lTGF5ZXIpCisgICAgICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIgJiYgY3VycmVu
dEltYWdlKQogICAgICAgICAgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250ZW50czooX19i
cmlkZ2UgaWQpY3VycmVudEltYWdlLmdldCgpXTsKIAogICAgICAgICBpZiAobV92aWRlb0Z1bGxz
Y3JlZW5MYXllcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDZhMmM4NzBmN2FhYTFiMGRiMDAwZWY4ODgy
N2M5YTBmNjFkY2YyNWIuLmZlNzk4OTU0YTgwOGQxZTgyMjllZmVmOTk4YmQ2Mjg2ZGFlZjQxNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKQEAgLTI4Miw2ICsyODIsMTAgQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3lu
Y01lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHko
KS5kaWRSZWNlaXZlU3luY1BsYXllck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
ICAgICAgICAgdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVz
c2FnZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCA4MjY0ZjNjNzYwMmJiNTZmNGRlN2M4
MWFlZmEzYmIxNmRmODIyNmEwLi5iYzRkYmUzOWM0ZWFhM2MxODY1ODIxY2Q1ZGJlNTEzMWZkZGJm
NDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTE5OCw2ICsxOTgsMTIg
QEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVBsYXllck1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb24KICAgICAgICAgcGxheWVyLT5kaWRSZWNlaXZlTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNQbGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYgZW5jb2RlcikKK3sKKyAgICBpZiAoYXV0byogcGxheWVyID0gbV9wcm94aWVzLmdl
dChtYWtlT2JqZWN0SWRlbnRpZmllcjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
VHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKSkKKyAgICAgICAgcGxheWVyLT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7Cit9CisKICNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKIGNvbnN0IExvZ2dlciYgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6OmxvZ2dlcigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmlu
ZGV4IGFlMzI4Y2I3ZDA5MzYyNmFiMmIzMjdjZDVhNjMzNDYwZmQ3MDQxNDUuLmUwN2Q2ZTZhODM1
YWY0ZWNmY2FmZDg2NThkMDUyYzRjYzc1MjIzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIm
IGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KICAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYgZW5jb2RlcikgeyBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2RlciwgZW5jb2Rlcik7IH0KICAgICB2b2lkIGRpZFJlY2VpdmVQbGF5ZXJNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQ
bGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+Jik7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBj
b25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4
IGM5ZDJlZTQ0NWJkNWU2YTk0YWE0OGQ1OGI5ZTA0MjEzYmM1YWYyZTAuLmZhYTBlNjU2MTAxYzg5
MzgxNDI2NWMwZGE3NzY4ODVhOTlhZjVkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTQ3LDYg
KzQ3LDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKQorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvY29h
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oPgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTY4
LDYgKzczLDcgQEAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbWEKIAogUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6flJlbW90ZU1lZGlhUGxheWVyUHJveHkoKQogeworICAgIG1fcGVyZm9ybVRhc2tBdE1l
ZGlhVGltZUNvbXBsZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjppbnZhbGlkYXRlKCkKQEAgLTU1Myw2ICs1NTksMjEgQEAgdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sIHNo
b3VsZFBsYXkpCiB7CiAgICAgbV9wbGF5ZXItPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0
KHNob3VsZFBsYXkpOwogfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFdpcmVs
ZXNzUGxheWJhY2tUYXJnZXQoY29uc3QgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQmIHRhcmdldENvbnRleHQpCit7CisgICAgc3dpdGNoICh0YXJnZXRDb250ZXh0LnR5cGUoKSkg
eworICAgIGNhc2UgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OkFWT3V0cHV0Q29udGV4dFR5
cGU6CisgICAgICAgIG1fcGxheWVyLT5zZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKHRhcmdldENvbnRleHQuYXZPdXRwdXRD
b250ZXh0KCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVBsYXliYWNrVGFyZ2V0
Q29udGV4dDo6TW9ja1R5cGU6CisgICAgICAgIG1fcGxheWVyLT5zZXRXaXJlbGVzc1BsYXliYWNr
VGFyZ2V0KFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRNb2NrOjpjcmVhdGUodGFyZ2V0Q29u
dGV4dC5tb2NrRGV2aWNlTmFtZSgpLCB0YXJnZXRDb250ZXh0Lm1vY2tTdGF0ZSgpKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok5vbmU6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CiAj
ZW5kaWYKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckVudGVyRnVs
bHNjcmVlbigpCkBAIC03MzUsNiArNzU2LDMxIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6c3luY1RleHRUcmFja0JvdW5kcygpCiAgICAgbV9wbGF5ZXItPnN5bmNUZXh0VHJhY2tCb3Vu
ZHMoKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwZXJmb3JtVGFza0F0TWVk
aWFUaW1lKE1lZGlhVGltZSYmIHRhc2tUaW1lLCBXYWxsVGltZSYmIG1lc3NhZ2VUaW1lLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IE1lZGlhVGltZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGF1dG8gdHJhbnNtaXNzaW9uVGltZSA9IE1lZGlhVGltZTo6Y3JlYXRlV2l0aERv
dWJsZSgoV2FsbFRpbWU6Om5vdygpIC0gbWVzc2FnZVRpbWUpLnZhbHVlKCksIDEpOworICAgIGF1
dG8gYWRqdXN0ZWRUYXNrVGltZSA9IHRhc2tUaW1lIC0gdHJhbnNtaXNzaW9uVGltZTsKKyAgICBh
dXRvIGN1cnJlbnRUaW1lID0gbV9wbGF5ZXItPmN1cnJlbnRUaW1lKCk7CisgICAgaWYgKGFkanVz
dGVkVGFza1RpbWUgPD0gY3VycmVudFRpbWUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Y3VycmVudFRpbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wZXJmb3JtVGFz
a0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KTsKKyAgICBtX3BsYXllci0+cGVyZm9ybVRhc2tBdE1lZGlhVGltZShbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKV0geworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFtX3BlcmZv
cm1UYXNrQXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShtX3BlcmZvcm1UYXNr
QXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KG1fcGxheWVyLT5jdXJyZW50VGltZSgpKTsKKyAgICB9LCBhZGp1c3RlZFRhc2tUaW1lKTsKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp3b3VsZFRhaW50T3JpZ2luKHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxib29sPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxl
dGlvbkhhbmRsZXIobV9wbGF5ZXItPndvdWxkVGFpbnRPcmlnaW4ob3JpZ2luRGF0YS5zZWN1cml0
eU9yaWdpbigpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggZmFkYmUwOWE3ZDU0M2QxMWExODg2
NjJhZmM3OGFlYzRkMWU0ZjgwNy4uZmQzYTA1OTZkYzlhY2ExMTRiMzk1MWM5NTZjYTljMGRiMWZm
ODc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVv
UGxheWJhY2tEaXNhYmxlZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNr
VGFyZ2V0KGJvb2wpOworICAgIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChjb25zdCBX
ZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYpOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKQEAgLTE1Myw2ICsxNTQsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB0cmFja3NDaGFuZ2VkKCk7CiAgICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCk7
CiAKKyAgICB2b2lkIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoTWVkaWFUaW1lJiYsIFdhbGxUaW1l
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgTWVkaWFUaW1lJik+JiYpOworICAgIHZv
aWQgd291bGRUYWludE9yaWdpbihzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPGJvb2w+KT4mJik7CisKICAgICBSZWY8V2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9h
ZE9wdGlvbnMpOwogICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIpOwogCkBAIC0yNjQsMTEgKzI2OCwxNCBAQCBwcml2YXRlOgogICAgIFJ1bkxvb3A6
OlRpbWVyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+IG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdl
VGltZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBtX2NhY2hlZFN0YXRlOwogICAgIFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKLSAgICBi
b29sIG1fYnVmZmVyZWRDaGFuZ2VkIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9yZW5kZXJpbmdDYW5C
ZUFjY2VsZXJhdGVkIHsgdHJ1ZSB9OworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
TWVkaWFUaW1lJik+IG1fcGVyZm9ybVRhc2tBdE1lZGlhVGltZUNvbXBsZXRpb25IYW5kbGVyOwor
CiAgICAgV2ViQ29yZTo6TGF5b3V0UmVjdCBtX3ZpZGVvQ29udGVudEJveFJlY3Q7CiAgICAgZmxv
YXQgbV92aWRlb0NvbnRlbnRTY2FsZSB7IDEuMCB9OwogCisgICAgYm9vbCBtX2J1ZmZlcmVkQ2hh
bmdlZCB7IHRydWUgfTsKKyAgICBib29sIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCB7IHRy
dWUgfTsKKwogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKSAmJiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQogICAgIGJvb2wgbV9zaG91bGRDb250aW51ZUFmdGVyS2V5TmVlZGVkIHsg
ZmFsc2UgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1
MDMxODk2N2YyODA2ZGJjMDVmYmE3NWZiOGUwYzU5YjM0MWZkMmJjLi5jZWIzZmI1Y2U4YzhlY2Vi
OTI4N2YwNTBjNzQwODAyNDM1NjkwMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdl
cy5pbgpAQCAtOTksNiArOTksMTEgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eSBOb3RSZWZDb3VudGVkIHsKICAgICBUcmFja3NDaGFuZ2VkKCkKICAgICBTeW5jVGV4dFRyYWNr
Qm91bmRzKCkKIAorICAgIFNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoV2ViQ29yZTo6TWVkaWFQ
bGF5YmFja1RhcmdldENvbnRleHQgdGFyZ2V0KQorCisgICAgUGVyZm9ybVRhc2tBdE1lZGlhVGlt
ZShNZWRpYVRpbWUgbWVkaWFUaW1lLCBXYWxsVGltZSBtZXNzYWdlVGltZSkgLT4gKE1lZGlhVGlt
ZSBtZWRpYVRpbWUpIEFzeW5jCisgICAgV291bGRUYWludE9yaWdpbihzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbikgLT4gKE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnQp
IFN5bmNocm9ub3VzCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIEVycm9yTG9nKCkg
LT4gKFN0cmluZyBlcnJvckxvZykgU3luY2hyb25vdXMKICAgICBBY2Nlc3NMb2coKSAtPiAoU3Ry
aW5nIGFjY2Vzc0xvZykgU3luY2hyb25vdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApp
bmRleCBkODA5MDEwZDFiNWU0Mzc2OTFjNDI4MGQ2YTQ3MjM5MDg0ZjNmZTczLi4xMTE5ZjZmYjg4
YzE4ZWI1ZjBhYmZkNTYzZDg1ZWU0ZWQ4ZTAzOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCkBAIC0zNjIsNiArMzYyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnVwZGF0ZUNhY2hlZFN0YXRlKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKICAgICBt
X2NhY2hlZFN0YXRlLm5hdHVyYWxTaXplID0gc3RhdGUubmF0dXJhbFNpemU7CiAgICAgbV9jYWNo
ZWRTdGF0ZS5tb3ZpZUxvYWRUeXBlID0gc3RhdGUubW92aWVMb2FkVHlwZTsKICAgICBtX2NhY2hl
ZFN0YXRlLndpcmVsZXNzUGxheWJhY2tUYXJnZXRUeXBlID0gc3RhdGUud2lyZWxlc3NQbGF5YmFj
a1RhcmdldFR5cGU7CisgICAgbV9jYWNoZWRTdGF0ZS53aXJlbGVzc1BsYXliYWNrVGFyZ2V0TmFt
ZSA9IHN0YXRlLndpcmVsZXNzUGxheWJhY2tUYXJnZXROYW1lOwogCiAgICAgbV9jYWNoZWRTdGF0
ZS5zdGFydERhdGUgPSBzdGF0ZS5zdGFydERhdGU7CiAgICAgbV9jYWNoZWRTdGF0ZS5zdGFydFRp
bWUgPSBzdGF0ZS5zdGFydFRpbWU7CkBAIC01OTEsNyArNTkyLDYgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFj
a1ByaXZhdGUKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmxvYWQoY29uc3QgU3RyaW5nJiwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KikK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC03MTUsMTEgKzcxNSw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2Fj
aGVkU3RhdGUuaGFzQ2xvc2VkQ2FwdGlvbnM7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotfQotCiBkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptYXhGYXN0Rm9y
d2FyZFJhdGUoKSBjb25zdAogewogICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLm1heEZhc3RGb3J3
YXJkUmF0ZTsKQEAgLTc5Myw4ICs3ODgsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKIFN0cmluZyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OndpcmVsZXNz
UGxheWJhY2tUYXJnZXROYW1lKCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBlbXB0eVN0cmluZygpOworICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLndpcmVsZXNz
UGxheWJhY2tUYXJnZXROYW1lOwogfQogCiBNZWRpYVBsYXllcjo6V2lyZWxlc3NQbGF5YmFja1Rh
cmdldFR5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp3aXJlbGVzc1BsYXliYWNrVGFyZ2V0
VHlwZSgpIGNvbnN0CkBAIC04MjMsOSArODE3LDkgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb25zdAogICAgIHJldHVy
biBtX2lzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3M7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFJlZjxNZWRpYVBsYXli
YWNrVGFyZ2V0PiYmKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFdpcmVsZXNz
UGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYgdGFyZ2V0KQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OlNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQodGFyZ2V0LT50YXJn
ZXRDb250ZXh0KCkpLCBtX2lkKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2hvdWxkUGxheSkKQEAgLTg0NCwx
MCArODM4LDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpkaWRQYXNzQ09SU0Fj
Y2Vzc0NoZWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5kaWRQYXNzQ09SU0Fj
Y2Vzc0NoZWNrOwogfQogCi1PcHRpb25hbDxib29sPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OndvdWxkVGFpbnRPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mKSBjb25zdAorT3B0aW9uYWw8
Ym9vbD4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp3b3VsZFRhaW50T3JpZ2luKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBvcmlnaW4pIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnQ7Cisg
ICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OldvdWxkVGFpbnRPcmlnaW4ob3JpZ2luLmRhdGEoKSksIE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpXb3VsZFRhaW50T3JpZ2luOjpSZXBseSh3b3VsZFRhaW50KSwgbV9p
ZCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gd291bGRUYWlu
dDsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVkaWFUaW1lRm9y
VGltZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVlKSBjb25zdApAQCAtOTYyLDEzICs5
NTksNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dHJhY2tzQ2hhbmdlZCgpCiB9
CiAjZW5kaWYKIAotI2lmIFVTRShHU1RSRUFNRVIpCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KLSNlbmRpZgotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YmVnaW5TaW11
bGF0ZWRIRENQRXJyb3IoKQogewogICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpCZWdpblNpbXVsYXRlZEhEQ1BFcnJvcigpLCBtX2lkKTsKQEAg
LTEwMTksMTAgKzEwMDksMTkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFwcGxp
Y2F0aW9uRGlkQmVjb21lQWN0aXZlKCkKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6QXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKSwgbV9p
ZCk7CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwZXJmb3JtVGFza0F0TWVk
aWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmLCBNZWRpYVRpbWUpCitib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiB7
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgbV9wZXJmb3Jt
VGFza0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKTsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpQZXJmb3JtVGFza0F0TWVkaWFUaW1lKG1lZGlhVGltZSwgV2Fs
bFRpbWU6Om5vdygpKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShjb25z
dCBNZWRpYVRpbWUmIGN1cnJlbnRUaW1lKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhp
cyB8fCAhbV9wZXJmb3JtVGFza0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXIpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
bV9wZXJmb3JtVGFza0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXIpOworICAgICAgICBtX2Nh
Y2hlZFN0YXRlLmN1cnJlbnRUaW1lID0gY3VycmVudFRpbWU7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgfSwgbV9pZCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA1NTlmZDY1MDIw
ODhlYmIzN2Q3NmVhN2Q2OTM1NTcyNjM4ZjIxMDIzLi5kNDIzOTVlZDYwZmVjNWE3YTRkYTFkZWQz
MDQ1MjZhMmNhODI0MGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTIzMiw3ICsy
MzIsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkg
Y29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgZmlu
YWw7CiAKICAgICBkb3VibGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3QgZmluYWw7CiAgICAg
ZG91YmxlIG1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0IGZpbmFsOwpAQCAtMzIyLDEwICszMjEs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCiAK
LSNpZiBVU0UoR1NUUkVBTUVSKQotICAgIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigp
IGZpbmFsOwotI2VuZGlmCi0KICAgICB2b2lkIGJlZ2luU2ltdWxhdGVkSERDUEVycm9yKCkgZmlu
YWw7CiAgICAgdm9pZCBlbmRTaW11bGF0ZWRIRENQRXJyb3IoKSBmaW5hbDsKIApAQCAtMzUwLDcg
KzM0NSw3IEBAIHByaXZhdGU6CiAgICAgQVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRpb25BVlBsYXll
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCi0gICAgYm9vbCBw
ZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmLCBNZWRpYVRpbWUp
IGZpbmFsOworICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgZmluYWw7CiAKICAgICBXZWJDb3JlOjpNZWRpYVBs
YXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOwpAQCAtMzcwLDYgKzM2
NSw4IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+PiBtX3ZpZGVvVHJhY2tzOwogICAgIEhhc2hN
YXA8VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPFRleHRUcmFja1ByaXZhdGVSZW1v
dGU+PiBtX3RleHRUcmFja3M7CiAKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9wZXJmb3Jt
VGFza0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXI7CisKICAgICBkb3VibGUgbV92b2x1bWUg
eyAxIH07CiAgICAgZG91YmxlIG1fcmF0ZSB7IDEgfTsKICAgICBsb25nIG1fcGxhdGZvcm1FcnJv
ckNvZGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaAppbmRleCA5
ZmJmZjU5YWZjNTE5MWE5MzUxNjkyNGQ5ZWY5YWM3Mjc1N2IyYWQxLi5jMDZmODgzMjQ5ZDUxOGM3
OTkxM2M1YzJlNzQ4NWEzN2MxYWY4NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1
cmF0aW9uLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25m
aWd1cmF0aW9uIHsKICAgICAgICAgICAgIFdURk1vdmUoKmVuZ2luZURlc2NyaXB0aW9uKSwKICAg
ICAgICAgICAgICptYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFUaW1lLAogICAgICAgICAgICAg
KnN1cHBvcnRzU2Nhbm5pbmcsCisgICAgICAgICAgICAqc3VwcG9ydHNGdWxsc2NyZWVuLAogICAg
ICAgICAgICAgKnN1cHBvcnRzUGljdHVyZUluUGljdHVyZSwKICAgICAgICAgICAgICpzdXBwb3J0
c0FjY2VsZXJhdGVkUmVuZGVyaW5nLAogICAgICAgICAgICAgKmNhblBsYXlUb1dpcmVsZXNzUGxh
eWJhY2tUYXJnZXQsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392593</attachid>
            <date>2020-03-05 10:25:15 -0800</date>
            <delta_ts>2020-03-05 12:52:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208651-20200305102514.patch</filename>
            <type>text/plain</type>
            <size>27465</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI2MTg3Nzc5Y2JjZDg0
ODFkZTUxYTczZWY2Zjk5ZTc3YmIwZDNlYy4uYTI2YWJmMDQ4NDY1ZjUyYWNmN2MwNzZiZDMwNjU3
NmM4ZDUzMjljOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAzLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBz
ZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0LCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lLCBhbmQgd291
bGRUYWludE9yaWdpbiBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg2NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMDg4
Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMpOiBSZW1vdmUgdW51c2VkIGxhbWJkYSBw
YXJhbWV0ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6
IE1ha2UgTWVkaWFUaW1lIHBhcmFtZXRlciBjb25zdCByZWYKKyAgICAgICAgc28gaXQgaXNuJ3Qg
Y29waWVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6cGVyZm9ybVRhc2tBdE1lZGlh
VGltZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKTogRGl0dG8uCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBlcmZv
cm1UYXNrQXRNZWRpYVRpbWUpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOiBE
b24ndCBzZXQgaW5saW5lIGltYWdlCisgICAgICAgIGNvbnRlbnRzIGlmIGltYWdlIGlzIE5VTEwu
CisKIDIwMjAtMDMtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2hhbmdlIFNjcm9sbGluZ1RyZWVNYWMuY3BwIHRvIGEgLm1tIGZpbGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZjkwZDE2ZWM1ODNjN2I1ODA2NGFkOWE1YWY0MWUxOGNjYWZjZjkyZS4uMmI4N2JjOTNi
MjMxNDM3ZWU2ZGFmMjVlMWU3NjVmMDMzMDQ4OWE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBA
QAorMjAyMC0wMy0wNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCwgcGVyZm9ybVRhc2tB
dE1lZGlhVGltZSwgYW5kIHdvdWxkVGFpbnRPcmlnaW4gaW4gR1BVUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NjUxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82MDA4ODI5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNo
U3luY01lc3NhZ2UpOiBEaXNwYXRjaCBwbGF5ZXIgbWFuYWdlciBtZXNzYWdlcy4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2
ZVN5bmNQbGF5ZXJNZXNzYWdlKTogRGlzcGF0Y2ggcGxheWVyIG1lc3NhZ2VzLgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDoKKworICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclBy
b3h5KTogQ2xlYXIgdGhlIGNvbXBsZXRpb24gaGFuZGxlcgorICAgICAgICBkbyBpdHMgZGVzdHJ1
Y3RvciBkb2Vzbid0IGFzc2VydC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCk6IEltcGxlbWVudC4KKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp3b3VsZFRhaW50
T3JpZ2luKTogRGl0dG8uCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjp1cGRhdGVDYWNoZWRTdGF0ZSk6IFVwZGF0ZSB3aXJlbGVzcyBwbGF5YmFj
ayB0YXJnZXQgbmFtZS4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojpsb2FkKTogRG9uJ3QgbG9nIGFzIHVuaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d2lyZWxlc3NQbGF5YmFja1RhcmdldE5hbWUgY29uc3Qp
OiBSZXR1cm4gY2FjaGVkIG5hbWUuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCk6IEltcGxlbWVudC4KKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp3b3VsZFRhaW50T3JpZ2luIGNvbnN0
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSk6IERlbGV0ZWQsIG5vdCBu
ZWVkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2ltdWxh
dGVBdWRpb0ludGVycnVwdGlvbik6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbjo6ZGVjb2RlKTogRGVjb2RlIHN1cHBv
cnRzRnVsbHNjcmVlbiB0b28uCisKIDIwMjAtMDMtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CiAKICAgICAgICAgQXNzZXJ0aW9uIGZhaWxlZDogc2hvdWxkQmVBY3RpdmUoKSBp
biBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXI6OnJlc3BvbnNpdmVuZXNzQ2hl
Y2tUaW1lckZpcmVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmlu
ZGV4IDgzMzJiYzU3NjA0MmI0NmE3MzA1OTFiZTVkNGMwMWEzMjZkZmE1ZDIuLmRlNDM4Yjc2ZDZi
OGJiNjI3ODA5NTA5MGNlMDZkM2JiYmUyZTk1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcApAQCAtMTczMCw3ICsxNzMwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGNvbnN0IE1lZGlhVGltZSYgbW92aWVUaW1l
KQogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJuZXh0SW50ZXJlc3RpbmdUaW1lOiIsIG5l
eHRJbnRlcmVzdGluZ1RpbWUpOwogCiAgICAgaWYgKG5leHRJbnRlcmVzdGluZ1RpbWUuaXNWYWxp
ZCgpICYmIG1fcGxheWVyKSB7Ci0gICAgICAgIG1fcGxheWVyLT5wZXJmb3JtVGFza0F0TWVkaWFU
aW1lKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBuZXh0SW50ZXJlc3RpbmdU
aW1lXSB7CisgICAgICAgIG1fcGxheWVyLT5wZXJmb3JtVGFza0F0TWVkaWFUaW1lKFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlz
KQogICAgICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDYxOWQ2ZTEwMTZlYzA0ZTQ3MTQxZjky
Yjg4YTlmYWU5ZjM4Y2MzMTYuLjlhMjM2YWM5ZWIxOTU4MWY2ZTJmYzQzNWNjMTFmYjQyODM4ZWEy
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKQEAgLTE1ODAsNyArMTU4MCw3IEBAIEFWUGxheWVyKiBNZWRpYVBsYXllcjo6b2JqQ0FW
Rm91bmRhdGlvbkFWUGxheWVyKCkgY29uc3QKIAogI2VuZGlmCiAKLWJvb2wgTWVkaWFQbGF5ZXI6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywgTWVk
aWFUaW1lIHRpbWUpCitib29sIE1lZGlhUGxheWVyOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2ssIGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAg
ICByZXR1cm4gbV9wcml2YXRlLT5wZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURk1vdmUodGFzayks
IHRpbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggZGYxNTczNGM3YmQwOWE2ZjRlMzE2ZGNmYTIwYzQ3ZWFhODliY2I1Ni4uMTUy
Njc0MzJhZTZjNDAzMjQxOWJlMjE3MzJlMDBmYWRiYTk2MjZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC02MDAsNyArNjAwLDcgQEAg
cHVibGljOgogICAgIEFWUGxheWVyICpvYmpDQVZGb3VuZGF0aW9uQVZQbGF5ZXIoKSBjb25zdDsK
ICNlbmRpZgogCi0gICAgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmLCBNZWRpYVRpbWUpOworICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShX
VEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJik7CiAKICAgICBib29sIHNo
b3VsZElnbm9yZUludHJpbnNpY1NpemUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCAxNzA3NTkzZDIyOTM0
NjJhOTE1NjczYmI5MmQwZTFkNjNlZmY5ODMyLi5jMGFlNDM3ZTk3YmM0YTM3NjkxMWRmOGZhMjY4
ZDQ0MmRkZTMwN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMjg1LDcgKzI4NSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEFWUGxheWVyICpvYmpDQVZGb3VuZGF0aW9uQVZQbGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtVGFza0F0
TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmLCBNZWRpYVRpbWUpIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSgpIHsgcmV0dXJuIGZhbHNl
OyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDM5OTkwMGQ2OTkwZTA0MTkwZGNlY2Y2
ZDhlYmZjZGU4OGNkMzU5ZTcuLjVmZjAzMThmN2U4ODFlZDA3MTYxZmU5MDczZWMzZWQzYmZhODE2
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTMzNCw3ICszMzQsNyBAQCBwcml2YXRlOgog
CiAgICAgQVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRpb25BVlBsYXllcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fYXZQbGF5ZXIuZ2V0KCk7IH0KIAotICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlh
VGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiwgTWVkaWFUaW1lKSBmaW5hbDsKKyAgICBib29s
IHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1l
ZGlhVGltZSYpIGZpbmFsOwogICAgIHZvaWQgc2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3Rh
dHVzKGJvb2wpOwogCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IGQ5MTg2M2IzZjU1NGZmOTU0MGQ0M2Q1MTMwYWFjODllYWZj
NzVhNDMuLjM3NWZjMGY1ZmFiYWE1MzhjM2ZhYzdkNWQyZjJhN2JjODVmMTQ0ZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtMzIyMiw3ICszMjIyLDcgQEAgT3B0aW9uYWw8VmlkZW9QbGF5
YmFja1F1YWxpdHlNZXRyaWNzPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2
aWRlb1AKICNlbmRpZgogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywg
TWVkaWFUaW1lIHRpbWUpCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywgY29u
c3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAgIGlmICghbV9hdlBsYXllcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBkOGY5YzI0NGI2YzFlMWYz
OThjOTk1NWU3NmU1ZDM5YmZhYzZjZjZhLi4xMmI5MGU3OGQ4ZDg5OTA0NDdmNjE1YjRhODEyZjkz
NWZmNmExZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMjUyLDcgKzI1Miw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wgcGVyZm9ybVRh
c2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiwgTWVkaWFUaW1lKSBmaW5hbDsK
KyAgICBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYs
IGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOwogCiAgICAgdm9pZCBlbnN1cmVMYXllcigpOwogICAg
IHZvaWQgZGVzdHJveUxheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggZjU0
OTEwYzE5MDJjYjc0ZDNkZDMwMGQyY2I1MTNhZGUyMTZiMGJmYi4uMTQzMzc5NGYxNjYwMzE5OWMz
OTljY2U1NmMwYjAzMGY1Y2RhODQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAt
MTIxOCw3ICsxMjE4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb24KIH0KICNlbmRpZgogCi1i
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1l
ZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrLCBNZWRpYVRpbWUgdGltZSkKK2Jv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVk
aWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2ssIGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKIHsKICAgICBfX2Jsb2NrIFdURjo6RnVuY3Rpb248dm9pZCgpPiB0YXNrSW4gPSBXVEZNb3Zl
KHRhc2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9i
akMubW0KaW5kZXggZjdlNjdiMjBkNDRiZTMxODM3ODFlMjVhNDBlOTU0NTc2NmRlMGRlNC4uNDgw
NWFhZjkyMDM1ZWZhYWYyZGFlOTFmNWMxOWViNzhhYzYwNjUwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtOTgsNyArOTgsNyBAQCB2
b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZv
cm1MYXllciAqdmlkZW9GdWxsc2NyZQogICAgIGlmIChtX3ZpZGVvTGF5ZXIpIHsKICAgICAgICAg
Q0FDb250ZXh0ICpvbGRDb250ZXh0ID0gW21fdmlkZW9MYXllciBjb250ZXh0XTsKIAotICAgICAg
ICBpZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICBpZiAobV92aWRlb0lubGluZUxheWVy
ICYmIGN1cnJlbnRJbWFnZSkKICAgICAgICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29u
dGVudHM6KF9fYnJpZGdlIGlkKWN1cnJlbnRJbWFnZS5nZXQoKV07CiAKICAgICAgICAgaWYgKG1f
dmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAwOWI1ZTc5NThmMjIxYTll
NzRlZjI2MDcyMTNhMmZhZDJjZjUyM2U4Li45M2FjZjkwZmQwMDNlOTMxNzg5MWM0NDEzMWViYzBl
ZmMyYjMzOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zNDksNiArMzQ5LDEwIEBAIGJvb2wgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sCiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5KCkuZGlkUmVjZWl2ZVN5bmNQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CiAgICAgICAgIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKS5kaWRSZWNl
aXZlU3luY01lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggODI2NGYzYzc2MDJi
YjU2ZjRkZTdjODFhZWZhM2JiMTZkZjgyMjZhMC4uYmM0ZGJlMzljNGVhYTNjMTg2NTgyMWNkNWRi
ZTUxMzFmZGRiZjQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC0xOTgs
NiArMTk4LDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVQbGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29uCiAgICAgICAgIHBsYXllci0+ZGlk
UmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jUGxheWVyTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mIGVuY29kZXIpCit7CisgICAgaWYgKGF1dG8qIHBsYXllciA9IG1f
cHJveGllcy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSkpCisgICAgICAgIHBsYXll
ci0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIGVuY29kZXIpOwor
fQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5Ojpsb2dnZXIoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuaAppbmRleCBhZTMyOGNiN2QwOTM2MjZhYjJiMzI3Y2Q1YTYzMzQ2MGZkNzA0MTQ1Li5l
MDdkNmU2YTgzNWFmNGVjZmNhZmQ4NjU4ZDA1MmM0Y2M3NTIyM2JlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mIGVuY29kZXIpIHsgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIsIGVuY29kZXIpOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlUGxheWVy
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jUGxheWVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAppbmRleCBlMjkwMzRiNGYzMTVjMWRlNjNhMTcyYTRkM2FkNGFmYzM1MDI1MjY2Li45NGYx
OGM3ZWJkZjM1ZmMwZDRmMDY0N2RhZjhiZDE2MzQ2MWQzNWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CkBAIC01Miw2ICs1MiwxMSBAQAogI2luY2x1ZGUgIlJlbW90ZUNETUZhY3RvcnlQcm94eS5oIgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQorI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTczLDYgKzc4LDcgQEAgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eSYgbWEKIAogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVy
UHJveHkoKQogeworICAgIG1fcGVyZm9ybVRhc2tBdE1lZGlhVGltZUNvbXBsZXRpb25IYW5kbGVy
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlkYXRl
KCkKQEAgLTU1OCw2ICs1NjQsMjEgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRT
aG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sIHNob3VsZFBsYXkpCiB7CiAgICAgbV9wbGF5
ZXItPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHNob3VsZFBsYXkpOwogfQorCit2b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoY29uc3Qg
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldENvbnRleHQpCit7Cisg
ICAgc3dpdGNoICh0YXJnZXRDb250ZXh0LnR5cGUoKSkgeworICAgIGNhc2UgTWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ6OkFWT3V0cHV0Q29udGV4dFR5cGU6CisgICAgICAgIG1fcGxheWVyLT5z
ZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2Nv
YTo6Y3JlYXRlKHRhcmdldENvbnRleHQuYXZPdXRwdXRDb250ZXh0KCkpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1R5cGU6CisgICAg
ICAgIG1fcGxheWVyLT5zZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6Ok1lZGlhUGxh
eWJhY2tUYXJnZXRNb2NrOjpjcmVhdGUodGFyZ2V0Q29udGV4dC5tb2NrRGV2aWNlTmFtZSgpLCB0
YXJnZXRDb250ZXh0Lm1vY2tTdGF0ZSgpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVk
aWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CiAjZW5kaWYKIAogdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjptZWRpYVBsYXllckVudGVyRnVsbHNjcmVlbigpCkBAIC03NjksNiArNzkw
LDMxIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c3luY1RleHRUcmFja0JvdW5kcygp
CiAgICAgbV9wbGF5ZXItPnN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKIH0KIAordm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKE1lZGlhVGltZSYmIHRhc2tU
aW1lLCBXYWxsVGltZSYmIG1lc3NhZ2VUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IE1lZGlhVGltZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gdHJhbnNtaXNz
aW9uVGltZSA9IE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZSgoV2FsbFRpbWU6Om5vdygpIC0g
bWVzc2FnZVRpbWUpLnZhbHVlKCksIDEpOworICAgIGF1dG8gYWRqdXN0ZWRUYXNrVGltZSA9IHRh
c2tUaW1lIC0gdHJhbnNtaXNzaW9uVGltZTsKKyAgICBhdXRvIGN1cnJlbnRUaW1lID0gbV9wbGF5
ZXItPmN1cnJlbnRUaW1lKCk7CisgICAgaWYgKGFkanVzdGVkVGFza1RpbWUgPD0gY3VycmVudFRp
bWUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFRpbWUpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbV9wZXJmb3JtVGFza0F0TWVkaWFUaW1lQ29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBtX3BsYXllci0+cGVyZm9y
bVRhc2tBdE1lZGlhVGltZShbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewor
ICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFtX3BlcmZvcm1UYXNrQXRNZWRpYVRpbWVDb21wbGV0
aW9uSGFuZGxlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShtX3BlcmZvcm1UYXNrQXRNZWRpYVRpbWVDb21wbGV0aW9uSGFu
ZGxlcik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcGxheWVyLT5jdXJyZW50VGltZSgp
KTsKKyAgICB9LCBhZGp1c3RlZFRhc2tUaW1lKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5Ojp3b3VsZFRhaW50T3JpZ2luKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgb3JpZ2luRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxib29sPik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIobV9wbGF5ZXItPndv
dWxkVGFpbnRPcmlnaW4ob3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKaW5kZXggOGIzN2MwNDIwZGFhZjNhMjliMDc2MzA5NmZhMDA0MGFkZWRjY2IyMy4uMWZl
NGQxNWY4NGExZTQwZTBkNGU2ZDA2MmMwYjU1N2Y5ODQ4Mzk0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBA
IC0xNDAsNiArMTQwLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsK
ICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpOworICAgIHZvaWQg
c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChjb25zdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dCYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJ
QSkKQEAgLTE2OCw2ICsxNjksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cmFja3NDaGFuZ2VkKCk7
CiAgICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CiAKKyAgICB2b2lkIHBlcmZvcm1UYXNr
QXRNZWRpYVRpbWUoTWVkaWFUaW1lJiYsIFdhbGxUaW1lJiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgTWVkaWFUaW1lJik+JiYpOworICAgIHZvaWQgd291bGRUYWludE9yaWdpbihzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPGJvb2w+KT4mJik7CisKICAgICBSZWY8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlPiByZXF1ZXN0UmVzb3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMpOwogICAgIHZvaWQgcmVt
b3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOwogCkBAIC0yNzksMTEg
KzI4MywxNCBAQCBwcml2YXRlOgogICAgIFJ1bkxvb3A6OlRpbWVyPFJlbW90ZU1lZGlhUGxheWVy
UHJveHk+IG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXI7CiAgICAgUmVtb3RlTWVkaWFQ
bGF5ZXJTdGF0ZSBtX2NhY2hlZFN0YXRlOwogICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25m
aWd1cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKLSAgICBib29sIG1fYnVmZmVyZWRDaGFuZ2VkIHsg
dHJ1ZSB9OwotICAgIGJvb2wgbV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkIHsgdHJ1ZSB9Owor
ICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgTWVkaWFUaW1lJik+IG1fcGVyZm9ybVRh
c2tBdE1lZGlhVGltZUNvbXBsZXRpb25IYW5kbGVyOworCiAgICAgV2ViQ29yZTo6TGF5b3V0UmVj
dCBtX3ZpZGVvQ29udGVudEJveFJlY3Q7CiAgICAgZmxvYXQgbV92aWRlb0NvbnRlbnRTY2FsZSB7
IDEuMCB9OwogCisgICAgYm9vbCBtX2J1ZmZlcmVkQ2hhbmdlZCB7IHRydWUgfTsKKyAgICBib29s
IG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCB7IHRydWUgfTsKKwogI2lmIEVOQUJMRShMRUdB
Q1lfRU5DUllQVEVEX01FRElBKSAmJiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIGJvb2wg
bV9zaG91bGRDb250aW51ZUFmdGVyS2V5TmVlZGVkIHsgZmFsc2UgfTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzNGQyNDE4Y2NmOGFiYmZjY2Y1ZGM0MTgy
MTQwOGE2ODBlYmE3YzU1Li4wYzhhNThmY2NlNWUwNmI3NWExNjlkMTZlZDRjOTBmYjUzODJkMmRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTA2LDYgKzEwNiwxMSBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAg
IFRyYWNrc0NoYW5nZWQoKQogICAgIFN5bmNUZXh0VHJhY2tCb3VuZHMoKQogCisgICAgU2V0V2ly
ZWxlc3NQbGF5YmFja1RhcmdldChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCB0
YXJnZXQpCisKKyAgICBQZXJmb3JtVGFza0F0TWVkaWFUaW1lKE1lZGlhVGltZSBtZWRpYVRpbWUs
IFdhbGxUaW1lIG1lc3NhZ2VUaW1lKSAtPiAoTWVkaWFUaW1lIG1lZGlhVGltZSkgQXN5bmMKKyAg
ICBXb3VsZFRhaW50T3JpZ2luKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3Jp
Z2luKSAtPiAoT3B0aW9uYWw8Ym9vbD4gd291bGRUYWludCkgU3luY2hyb25vdXMKKwogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgRXJyb3JMb2coKSAtPiAoU3RyaW5nIGVycm9yTG9nKSBT
eW5jaHJvbm91cwogICAgIEFjY2Vzc0xvZygpIC0+IChTdHJpbmcgYWNjZXNzTG9nKSBTeW5jaHJv
bm91cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDk1ZTczYTY1MDlhMmEzMjkz
MGVjOTRmOTVhYzEzNmM2ZjA4MGY0YjUuLjdjMzhlOGJhMDFlMGMwYTY2Y2RiMzNiOTY5ZGFhYWQx
MThlYzdjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTM2Niw2ICszNjYs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ2FjaGVkU3RhdGUoUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogICAgIG1fY2FjaGVkU3RhdGUubmF0dXJhbFNp
emUgPSBzdGF0ZS5uYXR1cmFsU2l6ZTsKICAgICBtX2NhY2hlZFN0YXRlLm1vdmllTG9hZFR5cGUg
PSBzdGF0ZS5tb3ZpZUxvYWRUeXBlOwogICAgIG1fY2FjaGVkU3RhdGUud2lyZWxlc3NQbGF5YmFj
a1RhcmdldFR5cGUgPSBzdGF0ZS53aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZTsKKyAgICBtX2Nh
Y2hlZFN0YXRlLndpcmVsZXNzUGxheWJhY2tUYXJnZXROYW1lID0gc3RhdGUud2lyZWxlc3NQbGF5
YmFja1RhcmdldE5hbWU7CiAKICAgICBtX2NhY2hlZFN0YXRlLnN0YXJ0RGF0ZSA9IHN0YXRlLnN0
YXJ0RGF0ZTsKICAgICBtX2NhY2hlZFN0YXRlLnN0YXJ0VGltZSA9IHN0YXRlLnN0YXJ0VGltZTsK
QEAgLTU5NSw3ICs1OTYsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3Rl
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZQogI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChjb25zdCBT
dHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IHRoaXNdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTcxOSwxMSArNzE5LDYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Omhhc0Nsb3Nl
ZENhcHRpb25zKCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5oYXNDbG9zZWRDYXB0
aW9uczsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldENsb3NlZENhcHRp
b25zVmlzaWJsZShib29sKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIGRvdWJsZSBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY2FjaGVkU3RhdGUubWF4RmFzdEZvcndhcmRSYXRlOwpAQCAtNzk3LDggKzc5
Miw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpoYXNBdmFpbGFibGVWaWRlb0Zy
YW1lKCkgY29uc3QKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogU3RyaW5n
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d2lyZWxlc3NQbGF5YmFja1RhcmdldE5hbWUoKSBj
b25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CisgICAgcmV0dXJuIG1fY2FjaGVkU3RhdGUud2lyZWxlc3NQbGF5YmFja1RhcmdldE5hbWU7CiB9
CiAKIE1lZGlhUGxheWVyOjpXaXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OndpcmVsZXNzUGxheWJhY2tUYXJnZXRUeXBlKCkgY29uc3QKQEAgLTgyNyw5
ICs4MjEsOSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6aXNDdXJyZW50UGxheWJh
Y2tUYXJnZXRXaXJlbGVzcygpIGNvbnN0CiAgICAgcmV0dXJuIG1faXNDdXJyZW50UGxheWJhY2tU
YXJnZXRXaXJlbGVzczsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFdp
cmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChSZWY8TWVk
aWFQbGF5YmFja1RhcmdldD4mJiB0YXJnZXQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6U2V0
V2lyZWxlc3NQbGF5YmFja1RhcmdldCh0YXJnZXQtPnRhcmdldENvbnRleHQoKSksIG1faWQpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0U2hvdWxkUGxheVRvUGxheWJh
Y2tUYXJnZXQoYm9vbCBzaG91bGRQbGF5KQpAQCAtODQ4LDEwICs4NDIsMTMgQEAgYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKSBjb25zdAogICAg
IHJldHVybiBtX2NhY2hlZFN0YXRlLmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2s7CiB9CiAKLU9wdGlv
bmFsPGJvb2w+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d291bGRUYWludE9yaWdpbihjb25z
dCBTZWN1cml0eU9yaWdpbiYpIGNvbnN0CitPcHRpb25hbDxib29sPiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OndvdWxkVGFpbnRPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikg
Y29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgT3B0aW9uYWw8Ym9vbD4gd291bGRUYWludDsKKyAgICBpZiAoIWNvbm5lY3Rpb24oKS5z
ZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6V291bGRUYWludE9yaWdp
bihvcmlnaW4uZGF0YSgpKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OldvdWxk
VGFpbnRPcmlnaW46OlJlcGx5KHdvdWxkVGFpbnQpLCBtX2lkKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiB3b3VsZFRhaW50OwogfQogCiBNZWRpYVRpbWUgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoY29uc3QgTWVkaWFU
aW1lJiB0aW1lVmFsdWUpIGNvbnN0CkBAIC05ODIsMTMgKzk3OSw2IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp0cmFja3NDaGFuZ2VkKCkKIH0KICNlbmRpZgogCi0jaWYgVVNFKEdT
VFJFQU1FUikKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzaW11bGF0ZUF1ZGlvSW50
ZXJydXB0aW9uKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotI2VuZGlmCi0KIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpiZWdpblNpbXVsYXRlZEhEQ1BFcnJvcigpCiB7CiAg
ICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkJl
Z2luU2ltdWxhdGVkSERDUEVycm9yKCksIG1faWQpOwpAQCAtMTAzOSwxMCArMTAyOSwxOSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUo
KQogICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpLCBtX2lkKTsKIH0KIAotYm9vbCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYsIE1lZGlhVGltZSkKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwZXJm
b3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyLCBjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBmYWxzZTsKKyAgICBtX3BlcmZvcm1UYXNrQXRNZWRpYVRpbWVDb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOworICAgIGNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUobWVkaWFUaW1lLCBXYWxsVGltZTo6bm93KCkpLCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRp
bWUpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFtX3BlcmZvcm1UYXNrQXRN
ZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShtX3BlcmZvcm1UYXNrQXRNZWRpYVRp
bWVDb21wbGV0aW9uSGFuZGxlcik7CisgICAgICAgIG1fY2FjaGVkU3RhdGUuY3VycmVudFRpbWUg
PSBjdXJyZW50VGltZTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9LCBtX2lk
KTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cmVxdWVzdFJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlv
bnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDdhYjY2NTI5YTUxOTczNTgzMWNmYmNjODk5MThiYmE3
NzdhYzVjZmUuLmJjN2VkMGJhOTVlMjJiZDY5ZGM0MjRjZjQzODUzMGY2Y2IxNjlmNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMjMzLDcgKzIzMyw2IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lk
IHNldENsb3NlZENhcHRpb25zVmlzaWJsZShib29sKSBmaW5hbDsKIAogICAgIGRvdWJsZSBtYXhG
YXN0Rm9yd2FyZFJhdGUoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgbWluRmFzdFJldmVyc2VS
YXRlKCkgY29uc3QgZmluYWw7CkBAIC0zMjcsMTAgKzMyNiw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCB0cmFja3NDaGFuZ2VkKCkgZmluYWw7CiAjZW5kaWYKIAotI2lmIFVTRShHU1RSRUFNRVIpCi0g
ICAgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCkgZmluYWw7Ci0jZW5kaWYKLQogICAg
IHZvaWQgYmVnaW5TaW11bGF0ZWRIRENQRXJyb3IoKSBmaW5hbDsKICAgICB2b2lkIGVuZFNpbXVs
YXRlZEhEQ1BFcnJvcigpIGZpbmFsOwogCkBAIC0zNTUsNyArMzUwLDcgQEAgcHJpdmF0ZToKICAg
ICBBVlBsYXllciAqb2JqQ0FWRm91bmRhdGlvbkFWUGxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKLSAgICBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUo
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYsIE1lZGlhVGltZSkgZmluYWw7CisgICAgYm9vbCBwZXJm
b3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRp
bWUmKSBmaW5hbDsKIAogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3BsYXllciB7IG51bGxw
dHIgfTsKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBt
X21lZGlhUmVzb3VyY2VMb2FkZXI7CkBAIC0zNzUsNiArMzcwLDggQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZT4+IG1fdmlkZW9UcmFja3M7CiAgICAgSGFzaE1hcDxUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBSZWY8VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZT4+IG1fdGV4dFRyYWNrczsKIAor
ICAgIFdURjo6RnVuY3Rpb248dm9pZCgpPiBtX3BlcmZvcm1UYXNrQXRNZWRpYVRpbWVDb21wbGV0
aW9uSGFuZGxlcjsKKwogICAgIGRvdWJsZSBtX3ZvbHVtZSB7IDEgfTsKICAgICBkb3VibGUgbV9y
YXRlIHsgMSB9OwogICAgIGxvbmcgbV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oCmluZGV4IDlmYmZmNTlhZmM1MTkxYTkzNTE2OTI0
ZDllZjlhYzcyNzU3YjJhZDEuLmMwNmY4ODMyNDlkNTE4Yzc5OTEzYzVjMmU3NDg1YTM3YzFhZjg0
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaApAQCAtMTAzLDYgKzEw
Myw3IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gewogICAgICAgICAg
ICAgV1RGTW92ZSgqZW5naW5lRGVzY3JpcHRpb24pLAogICAgICAgICAgICAgKm1heGltdW1EdXJh
dGlvblRvQ2FjaGVNZWRpYVRpbWUsCiAgICAgICAgICAgICAqc3VwcG9ydHNTY2FubmluZywKKyAg
ICAgICAgICAgICpzdXBwb3J0c0Z1bGxzY3JlZW4sCiAgICAgICAgICAgICAqc3VwcG9ydHNQaWN0
dXJlSW5QaWN0dXJlLAogICAgICAgICAgICAgKnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcs
CiAgICAgICAgICAgICAqY2FuUGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldCwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392609</attachid>
            <date>2020-03-05 12:52:30 -0800</date>
            <delta_ts>2020-03-06 08:46:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208651-20200305125229.patch</filename>
            <type>text/plain</type>
            <size>27541</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI2MTg3Nzc5Y2JjZDg0
ODFkZTUxYTczZWY2Zjk5ZTc3YmIwZDNlYy4uYTI2YWJmMDQ4NDY1ZjUyYWNmN2MwNzZiZDMwNjU3
NmM4ZDUzMjljOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAzLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBz
ZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0LCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lLCBhbmQgd291
bGRUYWludE9yaWdpbiBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg2NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMDg4
Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMpOiBSZW1vdmUgdW51c2VkIGxhbWJkYSBw
YXJhbWV0ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6
IE1ha2UgTWVkaWFUaW1lIHBhcmFtZXRlciBjb25zdCByZWYKKyAgICAgICAgc28gaXQgaXNuJ3Qg
Y29waWVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6cGVyZm9ybVRhc2tBdE1lZGlh
VGltZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKTogRGl0dG8uCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBlcmZv
cm1UYXNrQXRNZWRpYVRpbWUpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOiBE
b24ndCBzZXQgaW5saW5lIGltYWdlCisgICAgICAgIGNvbnRlbnRzIGlmIGltYWdlIGlzIE5VTEwu
CisKIDIwMjAtMDMtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2hhbmdlIFNjcm9sbGluZ1RyZWVNYWMuY3BwIHRvIGEgLm1tIGZpbGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZjkwZDE2ZWM1ODNjN2I1ODA2NGFkOWE1YWY0MWUxOGNjYWZjZjkyZS4uMmI4N2JjOTNi
MjMxNDM3ZWU2ZGFmMjVlMWU3NjVmMDMzMDQ4OWE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBA
QAorMjAyMC0wMy0wNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCwgcGVyZm9ybVRhc2tB
dE1lZGlhVGltZSwgYW5kIHdvdWxkVGFpbnRPcmlnaW4gaW4gR1BVUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NjUxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82MDA4ODI5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNo
U3luY01lc3NhZ2UpOiBEaXNwYXRjaCBwbGF5ZXIgbWFuYWdlciBtZXNzYWdlcy4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2
ZVN5bmNQbGF5ZXJNZXNzYWdlKTogRGlzcGF0Y2ggcGxheWVyIG1lc3NhZ2VzLgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDoKKworICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclBy
b3h5KTogQ2xlYXIgdGhlIGNvbXBsZXRpb24gaGFuZGxlcgorICAgICAgICBkbyBpdHMgZGVzdHJ1
Y3RvciBkb2Vzbid0IGFzc2VydC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCk6IEltcGxlbWVudC4KKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp3b3VsZFRhaW50
T3JpZ2luKTogRGl0dG8uCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjp1cGRhdGVDYWNoZWRTdGF0ZSk6IFVwZGF0ZSB3aXJlbGVzcyBwbGF5YmFj
ayB0YXJnZXQgbmFtZS4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojpsb2FkKTogRG9uJ3QgbG9nIGFzIHVuaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d2lyZWxlc3NQbGF5YmFja1RhcmdldE5hbWUgY29uc3Qp
OiBSZXR1cm4gY2FjaGVkIG5hbWUuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCk6IEltcGxlbWVudC4KKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp3b3VsZFRhaW50T3JpZ2luIGNvbnN0
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSk6IERlbGV0ZWQsIG5vdCBu
ZWVkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2ltdWxh
dGVBdWRpb0ludGVycnVwdGlvbik6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbjo6ZGVjb2RlKTogRGVjb2RlIHN1cHBv
cnRzRnVsbHNjcmVlbiB0b28uCisKIDIwMjAtMDMtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CiAKICAgICAgICAgQXNzZXJ0aW9uIGZhaWxlZDogc2hvdWxkQmVBY3RpdmUoKSBp
biBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXI6OnJlc3BvbnNpdmVuZXNzQ2hl
Y2tUaW1lckZpcmVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmlu
ZGV4IDgzMzJiYzU3NjA0MmI0NmE3MzA1OTFiZTVkNGMwMWEzMjZkZmE1ZDIuLmRlNDM4Yjc2ZDZi
OGJiNjI3ODA5NTA5MGNlMDZkM2JiYmUyZTk1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcApAQCAtMTczMCw3ICsxNzMwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGNvbnN0IE1lZGlhVGltZSYgbW92aWVUaW1l
KQogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJuZXh0SW50ZXJlc3RpbmdUaW1lOiIsIG5l
eHRJbnRlcmVzdGluZ1RpbWUpOwogCiAgICAgaWYgKG5leHRJbnRlcmVzdGluZ1RpbWUuaXNWYWxp
ZCgpICYmIG1fcGxheWVyKSB7Ci0gICAgICAgIG1fcGxheWVyLT5wZXJmb3JtVGFza0F0TWVkaWFU
aW1lKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBuZXh0SW50ZXJlc3RpbmdU
aW1lXSB7CisgICAgICAgIG1fcGxheWVyLT5wZXJmb3JtVGFza0F0TWVkaWFUaW1lKFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlz
KQogICAgICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDYxOWQ2ZTEwMTZlYzA0ZTQ3MTQxZjky
Yjg4YTlmYWU5ZjM4Y2MzMTYuLjlhMjM2YWM5ZWIxOTU4MWY2ZTJmYzQzNWNjMTFmYjQyODM4ZWEy
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKQEAgLTE1ODAsNyArMTU4MCw3IEBAIEFWUGxheWVyKiBNZWRpYVBsYXllcjo6b2JqQ0FW
Rm91bmRhdGlvbkFWUGxheWVyKCkgY29uc3QKIAogI2VuZGlmCiAKLWJvb2wgTWVkaWFQbGF5ZXI6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywgTWVk
aWFUaW1lIHRpbWUpCitib29sIE1lZGlhUGxheWVyOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2ssIGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAg
ICByZXR1cm4gbV9wcml2YXRlLT5wZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURk1vdmUodGFzayks
IHRpbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggZGYxNTczNGM3YmQwOWE2ZjRlMzE2ZGNmYTIwYzQ3ZWFhODliY2I1Ni4uMTUy
Njc0MzJhZTZjNDAzMjQxOWJlMjE3MzJlMDBmYWRiYTk2MjZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC02MDAsNyArNjAwLDcgQEAg
cHVibGljOgogICAgIEFWUGxheWVyICpvYmpDQVZGb3VuZGF0aW9uQVZQbGF5ZXIoKSBjb25zdDsK
ICNlbmRpZgogCi0gICAgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmLCBNZWRpYVRpbWUpOworICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShX
VEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJik7CiAKICAgICBib29sIHNo
b3VsZElnbm9yZUludHJpbnNpY1NpemUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCAxNzA3NTkzZDIyOTM0
NjJhOTE1NjczYmI5MmQwZTFkNjNlZmY5ODMyLi5jMGFlNDM3ZTk3YmM0YTM3NjkxMWRmOGZhMjY4
ZDQ0MmRkZTMwN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMjg1LDcgKzI4NSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEFWUGxheWVyICpvYmpDQVZGb3VuZGF0aW9uQVZQbGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtVGFza0F0
TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmLCBNZWRpYVRpbWUpIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSgpIHsgcmV0dXJuIGZhbHNl
OyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDM5OTkwMGQ2OTkwZTA0MTkwZGNlY2Y2
ZDhlYmZjZGU4OGNkMzU5ZTcuLjVmZjAzMThmN2U4ODFlZDA3MTYxZmU5MDczZWMzZWQzYmZhODE2
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTMzNCw3ICszMzQsNyBAQCBwcml2YXRlOgog
CiAgICAgQVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRpb25BVlBsYXllcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fYXZQbGF5ZXIuZ2V0KCk7IH0KIAotICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlh
VGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiwgTWVkaWFUaW1lKSBmaW5hbDsKKyAgICBib29s
IHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1l
ZGlhVGltZSYpIGZpbmFsOwogICAgIHZvaWQgc2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3Rh
dHVzKGJvb2wpOwogCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IGQ5MTg2M2IzZjU1NGZmOTU0MGQ0M2Q1MTMwYWFjODllYWZj
NzVhNDMuLjM3NWZjMGY1ZmFiYWE1MzhjM2ZhYzdkNWQyZjJhN2JjODVmMTQ0ZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtMzIyMiw3ICszMjIyLDcgQEAgT3B0aW9uYWw8VmlkZW9QbGF5
YmFja1F1YWxpdHlNZXRyaWNzPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2
aWRlb1AKICNlbmRpZgogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywg
TWVkaWFUaW1lIHRpbWUpCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywgY29u
c3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAgIGlmICghbV9hdlBsYXllcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBkOGY5YzI0NGI2YzFlMWYz
OThjOTk1NWU3NmU1ZDM5YmZhYzZjZjZhLi4xMmI5MGU3OGQ4ZDg5OTA0NDdmNjE1YjRhODEyZjkz
NWZmNmExZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMjUyLDcgKzI1Miw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wgcGVyZm9ybVRh
c2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiwgTWVkaWFUaW1lKSBmaW5hbDsK
KyAgICBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYs
IGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOwogCiAgICAgdm9pZCBlbnN1cmVMYXllcigpOwogICAg
IHZvaWQgZGVzdHJveUxheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggZjU0
OTEwYzE5MDJjYjc0ZDNkZDMwMGQyY2I1MTNhZGUyMTZiMGJmYi4uMTQzMzc5NGYxNjYwMzE5OWMz
OTljY2U1NmMwYjAzMGY1Y2RhODQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAt
MTIxOCw3ICsxMjE4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb24KIH0KICNlbmRpZgogCi1i
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1l
ZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrLCBNZWRpYVRpbWUgdGltZSkKK2Jv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVk
aWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2ssIGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKIHsKICAgICBfX2Jsb2NrIFdURjo6RnVuY3Rpb248dm9pZCgpPiB0YXNrSW4gPSBXVEZNb3Zl
KHRhc2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9i
akMubW0KaW5kZXggZjdlNjdiMjBkNDRiZTMxODM3ODFlMjVhNDBlOTU0NTc2NmRlMGRlNC4uNDgw
NWFhZjkyMDM1ZWZhYWYyZGFlOTFmNWMxOWViNzhhYzYwNjUwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtOTgsNyArOTgsNyBAQCB2
b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZv
cm1MYXllciAqdmlkZW9GdWxsc2NyZQogICAgIGlmIChtX3ZpZGVvTGF5ZXIpIHsKICAgICAgICAg
Q0FDb250ZXh0ICpvbGRDb250ZXh0ID0gW21fdmlkZW9MYXllciBjb250ZXh0XTsKIAotICAgICAg
ICBpZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICBpZiAobV92aWRlb0lubGluZUxheWVy
ICYmIGN1cnJlbnRJbWFnZSkKICAgICAgICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29u
dGVudHM6KF9fYnJpZGdlIGlkKWN1cnJlbnRJbWFnZS5nZXQoKV07CiAKICAgICAgICAgaWYgKG1f
dmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAwOWI1ZTc5NThmMjIxYTll
NzRlZjI2MDcyMTNhMmZhZDJjZjUyM2U4Li45M2FjZjkwZmQwMDNlOTMxNzg5MWM0NDEzMWViYzBl
ZmMyYjMzOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zNDksNiArMzQ5LDEwIEBAIGJvb2wgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sCiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5KCkuZGlkUmVjZWl2ZVN5bmNQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CiAgICAgICAgIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKS5kaWRSZWNl
aXZlU3luY01lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggODI2NGYzYzc2MDJi
YjU2ZjRkZTdjODFhZWZhM2JiMTZkZjgyMjZhMC4uYmM0ZGJlMzljNGVhYTNjMTg2NTgyMWNkNWRi
ZTUxMzFmZGRiZjQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC0xOTgs
NiArMTk4LDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVQbGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29uCiAgICAgICAgIHBsYXllci0+ZGlk
UmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jUGxheWVyTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mIGVuY29kZXIpCit7CisgICAgaWYgKGF1dG8qIHBsYXllciA9IG1f
cHJveGllcy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSkpCisgICAgICAgIHBsYXll
ci0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIGVuY29kZXIpOwor
fQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5Ojpsb2dnZXIoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuaAppbmRleCBhZTMyOGNiN2QwOTM2MjZhYjJiMzI3Y2Q1YTYzMzQ2MGZkNzA0MTQ1Li5l
MDdkNmU2YTgzNWFmNGVjZmNhZmQ4NjU4ZDA1MmM0Y2M3NTIyM2JlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mIGVuY29kZXIpIHsgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIsIGVuY29kZXIpOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlUGxheWVy
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jUGxheWVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAppbmRleCBlMjkwMzRiNGYzMTVjMWRlNjNhMTcyYTRkM2FkNGFmYzM1MDI1MjY2Li4wOThi
ODkzYTNlZjU3YWFiN2EzM2E5ZWIwMzU3NzlmZDg3ZmI4ZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CkBAIC01Miw2ICs1MiwxMSBAQAogI2luY2x1ZGUgIlJlbW90ZUNETUZhY3RvcnlQcm94eS5oIgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQorI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTczLDYgKzc4LDcgQEAgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eSYgbWEKIAogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVy
UHJveHkoKQogeworICAgIG1fcGVyZm9ybVRhc2tBdE1lZGlhVGltZUNvbXBsZXRpb25IYW5kbGVy
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlkYXRl
KCkKQEAgLTU1OCw2ICs1NjQsMjUgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRT
aG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sIHNob3VsZFBsYXkpCiB7CiAgICAgbV9wbGF5
ZXItPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHNob3VsZFBsYXkpOwogfQorCit2b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoY29uc3Qg
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldENvbnRleHQpCit7Cisj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3dpdGNoICh0YXJnZXRDb250ZXh0LnR5cGUo
KSkgeworICAgIGNhc2UgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OkFWT3V0cHV0Q29udGV4
dFR5cGU6CisgICAgICAgIG1fcGxheWVyLT5zZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFdlYkNv
cmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKHRhcmdldENvbnRleHQuYXZPdXRw
dXRDb250ZXh0KCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dDo6TW9ja1R5cGU6CisgICAgICAgIG1fcGxheWVyLT5zZXRXaXJlbGVzc1BsYXli
YWNrVGFyZ2V0KFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRNb2NrOjpjcmVhdGUodGFyZ2V0
Q29udGV4dC5tb2NrRGV2aWNlTmFtZSgpLCB0YXJnZXRDb250ZXh0Lm1vY2tTdGF0ZSgpKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok5vbmU6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0YXJnZXRDb250ZXh0KTsKKyNlbmRpZgorfQogI2VuZGlm
CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJFbnRlckZ1bGxzY3Jl
ZW4oKQpAQCAtNzY5LDYgKzc5NCwzMSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnN5
bmNUZXh0VHJhY2tCb3VuZHMoKQogICAgIG1fcGxheWVyLT5zeW5jVGV4dFRyYWNrQm91bmRzKCk7
CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGVyZm9ybVRhc2tBdE1lZGlhVGlt
ZShNZWRpYVRpbWUmJiB0YXNrVGltZSwgV2FsbFRpbWUmJiBtZXNzYWdlVGltZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBNZWRpYVRpbWUmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBhdXRvIHRyYW5zbWlzc2lvblRpbWUgPSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUo
KFdhbGxUaW1lOjpub3coKSAtIG1lc3NhZ2VUaW1lKS52YWx1ZSgpLCAxKTsKKyAgICBhdXRvIGFk
anVzdGVkVGFza1RpbWUgPSB0YXNrVGltZSAtIHRyYW5zbWlzc2lvblRpbWU7CisgICAgYXV0byBj
dXJyZW50VGltZSA9IG1fcGxheWVyLT5jdXJyZW50VGltZSgpOworICAgIGlmIChhZGp1c3RlZFRh
c2tUaW1lIDw9IGN1cnJlbnRUaW1lKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGN1cnJl
bnRUaW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGVyZm9ybVRhc2tBdE1l
ZGlhVGltZUNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcik7Cisg
ICAgbV9wbGF5ZXItPnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhbV9wZXJmb3JtVGFz
a0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9wZXJmb3JtVGFza0F0TWVk
aWFUaW1lQ29tcGxldGlvbkhhbmRsZXIpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtX3Bs
YXllci0+Y3VycmVudFRpbWUoKSk7CisgICAgfSwgYWRqdXN0ZWRUYXNrVGltZSk7Cit9CisKK3Zv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6d291bGRUYWludE9yaWdpbihzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8Ym9vbD4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25I
YW5kbGVyKG1fcGxheWVyLT53b3VsZFRhaW50T3JpZ2luKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmln
aW4oKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDhiMzdjMDQyMGRhYWYzYTI5YjA3NjMwOTZm
YTAwNDBhZGVkY2NiMjMuLjFmZTRkMTVmODRhMWU0MGUwZDRlNmQwNjJjMGI1NTdmOTg0ODM5NDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaApAQCAtMTQwLDYgKzE0MCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXli
YWNrRGlzYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rhcmdl
dChib29sKTsKKyAgICB2b2lkIHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoY29uc3QgV2ViQ29y
ZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKExF
R0FDWV9FTkNSWVBURURfTUVESUEpCkBAIC0xNjgsNiArMTY5LDkgQEAgcHVibGljOgogICAgIHZv
aWQgdHJhY2tzQ2hhbmdlZCgpOwogICAgIHZvaWQgc3luY1RleHRUcmFja0JvdW5kcygpOwogCisg
ICAgdm9pZCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKE1lZGlhVGltZSYmLCBXYWxsVGltZSYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IE1lZGlhVGltZSYpPiYmKTsKKyAgICB2b2lkIHdv
dWxkVGFpbnRPcmlnaW4oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxib29sPik+JiYpOworCiAgICAgUmVmPFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRp
b25zKTsKICAgICB2b2lkIHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyKTsKIApAQCAtMjc5LDExICsyODMsMTQgQEAgcHJpdmF0ZToKICAgICBSdW5Mb29wOjpUaW1l
cjxSZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3VwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVy
OwogICAgIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUgbV9jYWNoZWRTdGF0ZTsKICAgICBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247Ci0gICAgYm9vbCBt
X2J1ZmZlcmVkQ2hhbmdlZCB7IHRydWUgfTsKLSAgICBib29sIG1fcmVuZGVyaW5nQ2FuQmVBY2Nl
bGVyYXRlZCB7IHRydWUgfTsKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IE1lZGlh
VGltZSYpPiBtX3BlcmZvcm1UYXNrQXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcjsKKwogICAg
IFdlYkNvcmU6OkxheW91dFJlY3QgbV92aWRlb0NvbnRlbnRCb3hSZWN0OwogICAgIGZsb2F0IG1f
dmlkZW9Db250ZW50U2NhbGUgeyAxLjAgfTsKIAorICAgIGJvb2wgbV9idWZmZXJlZENoYW5nZWQg
eyB0cnVlIH07CisgICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyB0cnVlIH07
CisKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJiYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKICAgICBib29sIG1fc2hvdWxkQ29udGludWVBZnRlcktleU5lZWRlZCB7IGZhbHNl
IH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzRkMjQx
OGNjZjhhYmJmY2NmNWRjNDE4MjE0MDhhNjgwZWJhN2M1NS4uMGM4YTU4ZmNjZTVlMDZiNzVhMTY5
ZDE2ZWQ0YzkwZmI1MzgyZDJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTEwNiw2ICsxMDYsMTEgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBO
b3RSZWZDb3VudGVkIHsKICAgICBUcmFja3NDaGFuZ2VkKCkKICAgICBTeW5jVGV4dFRyYWNrQm91
bmRzKCkKIAorICAgIFNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoV2ViQ29yZTo6TWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQgdGFyZ2V0KQorCisgICAgUGVyZm9ybVRhc2tBdE1lZGlhVGltZShN
ZWRpYVRpbWUgbWVkaWFUaW1lLCBXYWxsVGltZSBtZXNzYWdlVGltZSkgLT4gKE1lZGlhVGltZSBt
ZWRpYVRpbWUpIEFzeW5jCisgICAgV291bGRUYWludE9yaWdpbihzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbikgLT4gKE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnQpIFN5
bmNocm9ub3VzCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIEVycm9yTG9nKCkgLT4g
KFN0cmluZyBlcnJvckxvZykgU3luY2hyb25vdXMKICAgICBBY2Nlc3NMb2coKSAtPiAoU3RyaW5n
IGFjY2Vzc0xvZykgU3luY2hyb25vdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRl
eCA5NWU3M2E2NTA5YTJhMzI5MzBlYzk0Zjk1YWMxMzZjNmYwODBmNGI1Li43YzM4ZThiYTAxZTBj
MGE2NmNkYjMzYjk2OWRhYWFkMTE4ZWM3YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwCkBAIC0zNjYsNiArMzY2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnVw
ZGF0ZUNhY2hlZFN0YXRlKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKICAgICBtX2Nh
Y2hlZFN0YXRlLm5hdHVyYWxTaXplID0gc3RhdGUubmF0dXJhbFNpemU7CiAgICAgbV9jYWNoZWRT
dGF0ZS5tb3ZpZUxvYWRUeXBlID0gc3RhdGUubW92aWVMb2FkVHlwZTsKICAgICBtX2NhY2hlZFN0
YXRlLndpcmVsZXNzUGxheWJhY2tUYXJnZXRUeXBlID0gc3RhdGUud2lyZWxlc3NQbGF5YmFja1Rh
cmdldFR5cGU7CisgICAgbV9jYWNoZWRTdGF0ZS53aXJlbGVzc1BsYXliYWNrVGFyZ2V0TmFtZSA9
IHN0YXRlLndpcmVsZXNzUGxheWJhY2tUYXJnZXROYW1lOwogCiAgICAgbV9jYWNoZWRTdGF0ZS5z
dGFydERhdGUgPSBzdGF0ZS5zdGFydERhdGU7CiAgICAgbV9jYWNoZWRTdGF0ZS5zdGFydFRpbWUg
PSBzdGF0ZS5zdGFydFRpbWU7CkBAIC01OTUsNyArNTk2LDYgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1By
aXZhdGUKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmxvYWQoY29uc3QgU3RyaW5nJiwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KikKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICByZXR1cm47CkBAIC03MTksMTEgKzcxOSw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2FjaGVk
U3RhdGUuaGFzQ2xvc2VkQ2FwdGlvbnM7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCiBkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptYXhGYXN0Rm9yd2Fy
ZFJhdGUoKSBjb25zdAogewogICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLm1heEZhc3RGb3J3YXJk
UmF0ZTsKQEAgLTc5Nyw4ICs3OTIsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkKIFN0cmluZyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OndpcmVsZXNzUGxh
eWJhY2tUYXJnZXROYW1lKCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOworICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLndpcmVsZXNzUGxh
eWJhY2tUYXJnZXROYW1lOwogfQogCiBNZWRpYVBsYXllcjo6V2lyZWxlc3NQbGF5YmFja1Rhcmdl
dFR5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp3aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlw
ZSgpIGNvbnN0CkBAIC04MjcsOSArODIxLDkgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb25zdAogICAgIHJldHVybiBt
X2lzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3M7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFJlZjxNZWRpYVBsYXliYWNr
VGFyZ2V0PiYmKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFdpcmVsZXNzUGxh
eWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYgdGFyZ2V0KQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQodGFyZ2V0LT50YXJnZXRD
b250ZXh0KCkpLCBtX2lkKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
dFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2hvdWxkUGxheSkKQEAgLTg0OCwxMCAr
ODQyLDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpkaWRQYXNzQ09SU0FjY2Vz
c0NoZWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5kaWRQYXNzQ09SU0FjY2Vz
c0NoZWNrOwogfQogCi1PcHRpb25hbDxib29sPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ondv
dWxkVGFpbnRPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mKSBjb25zdAorT3B0aW9uYWw8Ym9v
bD4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp3b3VsZFRhaW50T3JpZ2luKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiBvcmlnaW4pIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnQ7CisgICAg
aWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OldvdWxkVGFpbnRPcmlnaW4ob3JpZ2luLmRhdGEoKSksIE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpXb3VsZFRhaW50T3JpZ2luOjpSZXBseSh3b3VsZFRhaW50KSwgbV9pZCkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gd291bGRUYWludDsK
IH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVkaWFUaW1lRm9yVGlt
ZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVlKSBjb25zdApAQCAtOTgyLDEzICs5Nzks
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dHJhY2tzQ2hhbmdlZCgpCiB9CiAj
ZW5kaWYKIAotI2lmIFVTRShHU1RSRUFNRVIpCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LX0KLSNlbmRpZgotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YmVnaW5TaW11bGF0
ZWRIRENQRXJyb3IoKQogewogICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpCZWdpblNpbXVsYXRlZEhEQ1BFcnJvcigpLCBtX2lkKTsKQEAgLTEw
MzksMTAgKzEwMjksMTkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFwcGxpY2F0
aW9uRGlkQmVjb21lQWN0aXZlKCkKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6QXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKSwgbV9pZCk7
CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwZXJmb3JtVGFza0F0TWVkaWFU
aW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmLCBNZWRpYVRpbWUpCitib29sIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlciwgY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgbV9wZXJmb3JtVGFz
a0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KTsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpQZXJmb3JtVGFza0F0TWVkaWFUaW1lKG1lZGlhVGltZSwgV2FsbFRp
bWU6Om5vdygpKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShjb25zdCBN
ZWRpYVRpbWUmIGN1cnJlbnRUaW1lKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCAhbV9wZXJmb3JtVGFza0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9w
ZXJmb3JtVGFza0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXIpOworICAgICAgICBtX2NhY2hl
ZFN0YXRlLmN1cnJlbnRUaW1lID0gY3VycmVudFRpbWU7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CisgICAgfSwgbV9pZCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
OjpMb2FkT3B0aW9ucyBvcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3YWI2NjUyOWE1MTk3
MzU4MzFjZmJjYzg5OTE4YmJhNzc3YWM1Y2ZlLi5iYzdlZDBiYTk1ZTIyYmQ2OWRjNDI0Y2Y0Mzg1
MzBmNmNiMTY5ZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTIzMyw3ICsyMzMs
NiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkgY29u
c3QgZmluYWw7Ci0gICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgZmluYWw7
CiAKICAgICBkb3VibGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgZG91
YmxlIG1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0IGZpbmFsOwpAQCAtMzI3LDEwICszMjYsNiBA
QCBwcml2YXRlOgogICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCiAKLSNp
ZiBVU0UoR1NUUkVBTUVSKQotICAgIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpIGZp
bmFsOwotI2VuZGlmCi0KICAgICB2b2lkIGJlZ2luU2ltdWxhdGVkSERDUEVycm9yKCkgZmluYWw7
CiAgICAgdm9pZCBlbmRTaW11bGF0ZWRIRENQRXJyb3IoKSBmaW5hbDsKIApAQCAtMzU1LDcgKzM1
MCw3IEBAIHByaXZhdGU6CiAgICAgQVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRpb25BVlBsYXllcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCi0gICAgYm9vbCBwZXJm
b3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmLCBNZWRpYVRpbWUpIGZp
bmFsOworICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiwgY29uc3QgTWVkaWFUaW1lJikgZmluYWw7CiAKICAgICBXZWJDb3JlOjpNZWRpYVBsYXll
ciogbV9wbGF5ZXIgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOwpAQCAtMzc1LDYgKzM3MCw4
IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBS
ZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+PiBtX3ZpZGVvVHJhY2tzOwogICAgIEhhc2hNYXA8
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPFRleHRUcmFja1ByaXZhdGVSZW1vdGU+
PiBtX3RleHRUcmFja3M7CiAKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9wZXJmb3JtVGFz
a0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXI7CisKICAgICBkb3VibGUgbV92b2x1bWUgeyAx
IH07CiAgICAgZG91YmxlIG1fcmF0ZSB7IDEgfTsKICAgICBsb25nIG1fcGxhdGZvcm1FcnJvckNv
ZGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaAppbmRleCA5ZmJm
ZjU5YWZjNTE5MWE5MzUxNjkyNGQ5ZWY5YWM3Mjc1N2IyYWQxLi5jMDZmODgzMjQ5ZDUxOGM3OTkx
M2M1YzJlNzQ4NWEzN2MxYWY4NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0
aW9uLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1
cmF0aW9uIHsKICAgICAgICAgICAgIFdURk1vdmUoKmVuZ2luZURlc2NyaXB0aW9uKSwKICAgICAg
ICAgICAgICptYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFUaW1lLAogICAgICAgICAgICAgKnN1
cHBvcnRzU2Nhbm5pbmcsCisgICAgICAgICAgICAqc3VwcG9ydHNGdWxsc2NyZWVuLAogICAgICAg
ICAgICAgKnN1cHBvcnRzUGljdHVyZUluUGljdHVyZSwKICAgICAgICAgICAgICpzdXBwb3J0c0Fj
Y2VsZXJhdGVkUmVuZGVyaW5nLAogICAgICAgICAgICAgKmNhblBsYXlUb1dpcmVsZXNzUGxheWJh
Y2tUYXJnZXQsCg==
</data>
<flag name="review"
          id="408012"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392894</attachid>
            <date>2020-03-07 13:57:31 -0800</date>
            <delta_ts>2020-03-07 15:20:01 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208651-20200307135730.patch</filename>
            <type>text/plain</type>
            <size>39414</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxZWUxM2JjZWJjODE5
ZmU5MTMyMWIwNmIxOGZiY2ZlODdjMDI5OS4uMDAxMGYzODM4M2EyZGU3ZDBmY2FiMWY3YzAzZTY3
NGE4ZDA2YjJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAzLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBz
ZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0LCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lLCBhbmQgd291
bGRUYWludE9yaWdpbiBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg2NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMDg4
Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBo
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyk6IFJlbW92ZSB1bnVzZWQgbGFtYmRhIHBh
cmFtZXRlci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKTog
TWFrZSBNZWRpYVRpbWUgcGFyYW1ldGVyIGNvbnN0IHJlZgorICAgICAgICBzbyBpdCBpc24ndCBj
b3BpZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpwZXJmb3JtVGFza0F0TWVkaWFU
aW1lKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUpOiBEaXR0by4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9y
bVRhc2tBdE1lZGlhVGltZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6IERv
bid0IHNldCBpbmxpbmUgaW1hZ2UKKyAgICAgICAgY29udGVudHMgaWYgaW1hZ2UgaXMgTlVMTC4K
KwogMjAyMC0wMy0wNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
TWFrZSBFZGl0b3I6OmFwcGx5RWRpdGluZ1N0eWxlVG9Cb2R5RWxlbWVudCBkbyB0aGluZ3MgaW4g
YSBzdHJhaWdodGZvcndhcmQgbWFubmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQwN2M0MGE0MDc4ZjI5NTY2YzJk
ZTBkNWY0NzExMDRkODZmNWU2NmEuLjkzOGJhNWM2YzIwNTZiZjVmZDg5ZWIwNDkzN2VkZDAxNGIy
NmUzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDMtMDUgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHNldFdpcmVs
ZXNzUGxheWJhY2tUYXJnZXQsIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUsIGFuZCB3b3VsZFRhaW50
T3JpZ2luIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwODY1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAwODgyOTg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIEdQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2UpOiBEaXNwYXRjaCBwbGF5
ZXIgbWFuYWdlciBtZXNzYWdlcy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNQbGF5ZXJNZXNzYWdlKTogRGlzcGF0
Y2ggcGxheWVyIG1lc3NhZ2VzLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDoKKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5KTogQ2xlYXIgdGhlIGNvbXBsZXRpb24g
aGFuZGxlcgorICAgICAgICBkbyBpdHMgZGVzdHJ1Y3RvciBkb2Vzbid0IGFzc2VydC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0V2lyZWxlc3NQbGF5YmFja1Rh
cmdldCk6IEltcGxlbWVudC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojp3b3VsZFRhaW50T3JpZ2luKTogRGl0dG8uCisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVDYWNoZWRT
dGF0ZSk6IFVwZGF0ZSB3aXJlbGVzcyBwbGF5YmFjayB0YXJnZXQgbmFtZS4KKyAgICAgICAgKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKTogRG9uJ3QgbG9nIGFzIHVuaW1w
bGVtZW50ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d2ly
ZWxlc3NQbGF5YmFja1RhcmdldE5hbWUgY29uc3QpOiBSZXR1cm4gY2FjaGVkIG5hbWUuCisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0V2lyZWxlc3NQbGF5YmFj
a1RhcmdldCk6IEltcGxlbWVudC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjp3b3VsZFRhaW50T3JpZ2luIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldENsb3NlZENh
cHRpb25zVmlzaWJsZSk6IERlbGV0ZWQsIG5vdCBuZWVkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbik6IERpdHRv
LgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJD
b25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmln
dXJhdGlvbjo6ZGVjb2RlKTogRGVjb2RlIHN1cHBvcnRzRnVsbHNjcmVlbiB0b28uCisKIDIwMjAt
MDMtMDUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgSmF2
YVNjcmlwdENvcmUgcmVsYXRlZCBmZWF0dXJlIGRlZmluZXMgZnJvbSBGZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZyB0byBQbGF0Zm9ybUVuYWJsZUNvY29hLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQ2ZTY3YjgyMzYyYWVjNmE2ZjAxYWM3MDI2YmY3MjhlOWYw
NDQwMjQuLjFlNGNmYmU2YzAyNzc4MzM2ZDI4MGM2M2RkYWZkMDU0MGE0ZGQ4NmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTczMiw3ICsxNzMyLDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGNvbnN0IE1l
ZGlhVGltZSYgbW92aWVUaW1lKQogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJuZXh0SW50
ZXJlc3RpbmdUaW1lOiIsIG5leHRJbnRlcmVzdGluZ1RpbWUpOwogCiAgICAgaWYgKG5leHRJbnRl
cmVzdGluZ1RpbWUuaXNWYWxpZCgpICYmIG1fcGxheWVyKSB7Ci0gICAgICAgIG1fcGxheWVyLT5w
ZXJmb3JtVGFza0F0TWVkaWFUaW1lKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
LCBuZXh0SW50ZXJlc3RpbmdUaW1lXSB7CisgICAgICAgIG1fcGxheWVyLT5wZXJmb3JtVGFza0F0
TWVkaWFUaW1lKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CiAgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtODE4Myw2
ICs4MTgzLDExIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5xdWV1ZVRhc2tGb3JEaXNwYXRj
aGVyKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFdU
Rk1vdmUoZnVuY3Rpb24pKTsKIH0KIAorU2VjdXJpdHlPcmlnaW5EYXRhIEhUTUxNZWRpYUVsZW1l
bnQ6OmRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVu
dCgpLnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAzYmEyODc1OWU0MTVkZTU5NzEzNjM0NTFh
ZDI4M2Y0ZGYyZjZmNDJjLi43NjE3YjRlN2E3NjQyYWI1YzNmM2UzOTJlZmFjMzIwMjhjNzVhZjFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNjIwLDYgKzYyMCw4
IEBAIHByb3RlY3RlZDoKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3Zl
cnJpZGU7CiAKKyAgICBTZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
IGNvbnN0IGZpbmFsOworCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkKICAgICBi
b29sIG1lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJu
IG1fbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yOyB9CiAgICAgdm9pZCBzZXRN
ZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoYm9vbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNjE5ZDZlMTAx
NmVjMDRlNDcxNDFmOTJiODhhOWZhZTlmMzhjYzMxNi4uZTA1MjhmMDJjZjEzMjcxNTcwOTFmMGFm
MzFlNmIxYjU5ZDk0MGE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTU4MCw3ICsxNTgwLDcgQEAgQVZQbGF5ZXIqIE1lZGlh
UGxheWVyOjpvYmpDQVZGb3VuZGF0aW9uQVZQbGF5ZXIoKSBjb25zdAogCiAjZW5kaWYKIAotYm9v
bCBNZWRpYVBsYXllcjo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiB0YXNrLCBNZWRpYVRpbWUgdGltZSkKK2Jvb2wgTWVkaWFQbGF5ZXI6OnBlcmZvcm1UYXNr
QXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywgY29uc3QgTWVkaWFUaW1l
JiB0aW1lKQogewogICAgIHJldHVybiBtX3ByaXZhdGUtPnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUo
V1RGTW92ZSh0YXNrKSwgdGltZSk7CiB9CkBAIC0xNTk1LDYgKzE1OTUsMTIgQEAgdm9pZCBNZWRp
YVBsYXllcjo6cmVtb3RlRW5naW5lRmFpbGVkVG9Mb2FkKCkKICAgICBjbGllbnQoKS5tZWRpYVBs
YXllckVuZ2luZUZhaWxlZFRvTG9hZCgpOwogfQogCitTZWN1cml0eU9yaWdpbkRhdGEgTWVkaWFQ
bGF5ZXI6OmRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdAoreworICAgIHJldHVybiBjbGll
bnQoKS5kb2N1bWVudFNlY3VyaXR5T3JpZ2luKCk7Cit9CisKKwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogY29uc3QgTG9nZ2VyJiBNZWRpYVBsYXllcjo6bWVkaWFQbGF5ZXJMb2dnZXIoKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5k
ZXggZGYxNTczNGM3YmQwOWE2ZjRlMzE2ZGNmYTIwYzQ3ZWFhODliY2I1Ni4uM2Q5NTE0ZGZjYWQ0
MGE5MWFjYThmMGY5NTFmYWQzMzAxZjZmODQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC03Nyw2ICs3Nyw3IEBAIGNsYXNzIFRleHRU
cmFja1JlcHJlc2VudGF0aW9uOwogCiBzdHJ1Y3QgQ29va2llOwogc3RydWN0IEdyYXBoaWNzRGV2
aWNlQWRhcHRlcjsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIHN0cnVjdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzIHsKICAgICBDb250ZW50VHlwZSB0eXBlOwpAQCAtMjcwLDYg
KzI3MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJCdWZmZXJlZFRp
bWVSYW5nZXNDaGFuZ2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyU2Vla2Fi
bGVUaW1lUmFuZ2VzQ2hhbmdlZCgpIHsgfQogCisgICAgdmlydHVhbCBTZWN1cml0eU9yaWdpbkRh
dGEgZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQorCiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdmlydHVhbCBjb25zdCB2b2lkKiBtZWRpYVBsYXll
ckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBjb25zdCBM
b2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgPSAwOwpAQCAtNjAwLDcgKzYwMyw3IEBAIHB1Ymxp
YzoKICAgICBBVlBsYXllciAqb2JqQ0FWRm91bmRhdGlvbkFWUGxheWVyKCkgY29uc3Q7CiAjZW5k
aWYKIAotICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiwgTWVkaWFUaW1lKTsKKyAgICBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoRnVuY3Rp
b248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKTsKIAogICAgIGJvb2wgc2hvdWxkSWdub3Jl
SW50cmluc2ljU2l6ZSgpOwogCkBAIC02MTgsNiArNjIxLDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNMb29waW5nKCkgY29uc3QgeyByZXR1cm4gY2xpZW50KCkubWVkaWFQbGF5ZXJJc0xvb3Bpbmco
KTsgfQogCiAgICAgdm9pZCByZW1vdGVFbmdpbmVGYWlsZWRUb0xvYWQoKTsKKyAgICBTZWN1cml0
eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCiAjaWYgVVNFKEdT
VFJFQU1FUikKICAgICB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnMoY29uc3QgU3Ry
aW5nJiBkZXRhaWxzLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBNZWRpYVBsYXllclJlcXVl
c3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYgY2FsbGJhY2spIHsgY2xpZW50KCkucmVx
dWVzdEluc3RhbGxNaXNzaW5nUGx1Z2lucyhkZXRhaWxzLCBkZXNjcmlwdGlvbiwgY2FsbGJhY2sp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oCmluZGV4IDE3MDc1OTNkMjI5MzQ2MmE5MTU2NzNiYjkyZDBlMWQ2M2VmZjk4
MzIuLjRkNTdjZGIzMWQ2NWRjYTkxN2M0NTUyMGQyNzM3NzRlZTI0YWQxZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CkBAIC0yODUsNyArMjg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQVZQbGF5ZXIgKm9iakNB
VkZvdW5kYXRpb25BVlBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgog
Ci0gICAgdmlydHVhbCBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYsIE1lZGlhVGltZSkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
cGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGlt
ZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSW50
cmluc2ljU2l6ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmlu
ZGV4IDQxZjUwY2Q2MzgyYjlhYTY2Yjk1OGM2Y2I1OTk0NTA1MGRjYTJiZWMuLjU5MDY4YmVmMDg3
ZWIyYzAzMDE2NjE4MGZhZjlmZDFlZmQ2YTMxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAg
LTMzMyw3ICszMzMsNyBAQCBwcml2YXRlOgogCiAgICAgQVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRp
b25BVlBsYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXZQbGF5ZXIuZ2V0KCk7IH0KIAot
ICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiwg
TWVkaWFUaW1lKSBmaW5hbDsKKyAgICBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoRnVuY3Rp
b248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKSBmaW5hbDsKICAgICB2b2lkIHNldFNob3Vs
ZE9ic2VydmVUaW1lQ29udHJvbFN0YXR1cyhib29sKTsKIAogICAgIFJldGFpblB0cjxBVlVSTEFz
c2V0PiBtX2F2QXNzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAwNWYxNDkxMzFkOTM4
MTYxOWM2YTA0NzVkOTY1OThkNmVhNmU4ZGM2Li42MjQ5Y2FhNzFmOTZhYmRjNWJmZjU2MzJhYWUz
NjBiNWQyODA1NjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTMyMzcsNyArMzIzNyw3
IEBAIE9wdGlvbmFsPFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcz4gTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9QCiAjZW5kaWYKIH0KIAotYm9vbCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVu
Y3Rpb248dm9pZCgpPiYmIHRhc2ssIE1lZGlhVGltZSB0aW1lKQorYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIHRhc2ssIGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBpZiAoIW1f
YXZQbGF5ZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
aW5kZXggZDhmOWMyNDRiNmMxZTFmMzk4Yzk5NTVlNzZlNWQzOWJmYWM2Y2Y2YS4uY2RhMTdkYjQx
MDZlNTUwMTE0ZmRjNGU0MTk4MGQ0ZjBlNjViMTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTI1Miw3ICsyNTIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1Bs
YXliYWNrRGlzYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlm
CiAKLSAgICBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+
JiYsIE1lZGlhVGltZSkgZmluYWw7CisgICAgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKEZ1
bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgZmluYWw7CiAKICAgICB2b2lkIGVu
c3VyZUxheWVyKCk7CiAgICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbQppbmRleCBmNTQ5MTBjMTkwMmNiNzRkM2RkMzAwZDJjYjUxM2FkZTIxNmIwYmZiLi4x
NDMzNzk0ZjE2NjAzMTk5YzM5OWNjZTU2YzBiMDMwZjVjZGE4NDM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCkBAIC0xMjE4LDcgKzEyMTgsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpIGNv
bgogfQogI2VuZGlmCiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2ssIE1l
ZGlhVGltZSB0aW1lKQorYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywgY29u
c3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAgIF9fYmxvY2sgV1RGOjpGdW5jdGlvbjx2b2lkKCk+
IHRhc2tJbiA9IFdURk1vdmUodGFzayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Zp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQppbmRleCBmN2U2N2IyMGQ0NGJlMzE4Mzc4MWUyNWE0MGU5
NTQ1NzY2ZGUwZGU0Li40ODA1YWFmOTIwMzVlZmFhZjJkYWU5MWY1YzE5ZWI3OGFjNjA2NTA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCkBA
IC05OCw3ICs5OCw3IEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxz
Y3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlCiAgICAgaWYgKG1fdmlkZW9M
YXllcikgewogICAgICAgICBDQUNvbnRleHQgKm9sZENvbnRleHQgPSBbbV92aWRlb0xheWVyIGNv
bnRleHRdOwogCi0gICAgICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCisgICAgICAgIGlmICht
X3ZpZGVvSW5saW5lTGF5ZXIgJiYgY3VycmVudEltYWdlKQogICAgICAgICAgICAgW21fdmlkZW9J
bmxpbmVMYXllciBzZXRDb250ZW50czooX19icmlkZ2UgaWQpY3VycmVudEltYWdlLmdldCgpXTsK
IAogICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5MYXllcikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4
IDcxZDIwNzMxZWU1YjczMjI5YzUxZWIzNDgyNzBlYWJlNjhjNWNjNzMuLjczYzk3MDg0YmFkYjcy
ZWEwODAzYWUyMmJiZWRhNDIwMTYzN2UxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM4Niw2ICszODYs
MTAgQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0
aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgcmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3luY1BsYXllck1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgdXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rpb24s
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApp
bmRleCA4MjY0ZjNjNzYwMmJiNTZmNGRlN2M4MWFlZmEzYmIxNmRmODIyNmEwLi5iYzRkYmUzOWM0
ZWFhM2MxODY1ODIxY2Q1ZGJlNTEzMWZkZGJmNDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5jcHAKQEAgLTE5OCw2ICsxOTgsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZVBsYXllck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb24KICAg
ICAgICAgcGxheWVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0K
IAordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNQbGF5
ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgZW5jb2RlcikKK3sKKyAgICBpZiAo
YXV0byogcGxheWVyID0gbV9wcm94aWVzLmdldChtYWtlT2JqZWN0SWRlbnRpZmllcjxNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkp
KSkKKyAgICAgICAgcGxheWVyLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVj
b2RlciwgZW5jb2Rlcik7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIGNvbnN0IExv
Z2dlciYgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmxvZ2dlcigpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IGFlMzI4Y2I3ZDA5MzYyNmFiMmIzMjdjZDVh
NjMzNDYwZmQ3MDQxNDUuLmUwN2Q2ZTZhODM1YWY0ZWNmY2FmZDg2NThkMDUyYzRjYzc1MjIzYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZUZy
b21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgZW5jb2RlcikgeyBkaWRSZWNl
aXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7IH0KICAgICB2b2lk
IGRpZFJlY2VpdmVQbGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
OworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQbGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CiAKICNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDkzMTkxMTRmMmZmZTc2OWE1NmU1MmVjOTNmZDky
M2JkNzY1ZDg2ZjkuLmMxYjQzOTZiMDFiY2I5ZDQwY2Q5ZWZkMDgyOGQ2N2Y2NzRlMjgzOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHAKQEAgLTUyLDYgKzUyLDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RN
RmFjdG9yeVByb3h5LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmg+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNzMsNiArNzgs
OCBAQCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1vdGVNZWRpYVBsYXllclByb3h5KFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYQogCiBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgpCiB7CisgICAgaWYgKG1fcGVyZm9ybVRhc2tBdE1lZGlh
VGltZUNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBtX3BlcmZvcm1UYXNrQXRNZWRpYVRpbWVD
b21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6OmludmFsaWRhdGUoKQpAQCAtMTQwLDEyICsxNDcsMTIgQEAgdm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpwYXVzZSgpCiAgICAgc2VuZENhY2hlZFN0YXRlKCk7CiB9CiAKLXZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2VlayhNZWRpYVRpbWUmJiB0aW1lKQordm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAg
ICBtX3BsYXllci0+c2Vlayh0aW1lKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpzZWVrV2l0aFRvbGVyYW5jZShNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVRpbWUmJiBuZWdhdGl2
ZVRvbGVyYW5jZSwgTWVkaWFUaW1lJiYgcG9zaXRpdmVUb2xlcmFuY2UpCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwg
Y29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFUaW1lJiBwb3Np
dGl2ZVRvbGVyYW5jZSkKIHsKICAgICBtX3BsYXllci0+c2Vla1dpdGhUb2xlcmFuY2UodGltZSwg
bmVnYXRpdmVUb2xlcmFuY2UsIHBvc2l0aXZlVG9sZXJhbmNlKTsKIH0KQEAgLTI4Miw2ICsyODks
NyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUmVhZHlTdGF0ZUNo
YW5nZWQoKQogICAgIG1fY2FjaGVkU3RhdGUud2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQg
PSBtX3BsYXllci0+d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKTsKICAgICBtX2NhY2hl
ZFN0YXRlLmhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luID0gbV9wbGF5ZXItPmhhc1NpbmdsZVNlY3Vy
aXR5T3JpZ2luKCk7CiAgICAgbV9jYWNoZWRTdGF0ZS5kaWRQYXNzQ09SU0FjY2Vzc0NoZWNrID0g
bV9wbGF5ZXItPmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKTsKKyAgICBtX2NhY2hlZFN0YXRlLndv
dWxkVGFpbnREb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gbV9wbGF5ZXItPndvdWxkVGFpbnRPcmln
aW4obV9jb25maWd1cmF0aW9uLmRvY3VtZW50U2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmlnaW4o
KSk7CiAKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OlJlYWR5U3RhdGVDaGFuZ2VkKG1fY2FjaGVkU3RhdGUpLCBtX2lk
KTsKIH0KQEAgLTU1OCw2ICs1NjYsMjUgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sIHNob3VsZFBsYXkpCiB7CiAgICAgbV9w
bGF5ZXItPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHNob3VsZFBsYXkpOwogfQorCit2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoY29u
c3QgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldENvbnRleHQpCit7
CisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3dpdGNoICh0YXJnZXRDb250ZXh0LnR5
cGUoKSkgeworICAgIGNhc2UgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OkFWT3V0cHV0Q29u
dGV4dFR5cGU6CisgICAgICAgIG1fcGxheWVyLT5zZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFdl
YkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKHRhcmdldENvbnRleHQuYXZP
dXRwdXRDb250ZXh0KCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVBsYXliYWNr
VGFyZ2V0Q29udGV4dDo6TW9ja1R5cGU6CisgICAgICAgIG1fcGxheWVyLT5zZXRXaXJlbGVzc1Bs
YXliYWNrVGFyZ2V0KFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRNb2NrOjpjcmVhdGUodGFy
Z2V0Q29udGV4dC5tb2NrRGV2aWNlTmFtZSgpLCB0YXJnZXRDb250ZXh0Lm1vY2tTdGF0ZSgpKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok5v
bmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0YXJnZXRDb250ZXh0KTsKKyNlbmRpZgorfQogI2Vu
ZGlmCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJFbnRlckZ1bGxz
Y3JlZW4oKQpAQCAtNzcwLDYgKzc5NywzOSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQogICAgIG1fcGxheWVyLT5zeW5jVGV4dFRyYWNrQm91bmRz
KCk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGVyZm9ybVRhc2tBdE1lZGlh
VGltZShjb25zdCBNZWRpYVRpbWUmIHRhc2tUaW1lLCBXYWxsVGltZSBtZXNzYWdlVGltZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxNZWRpYVRpbWU+KT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAobV9wZXJmb3JtVGFza0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRs
ZXIpIHsKKyAgICAgICAgLy8gQSBtZWRpYSBwbGF5ZXIgaXMgb25seSBleHBlY3RlZCB0byB0cmFj
ayBvbmUgcGVuZGluZyB0YXNrLWF0LXRpbWUgYXQgb25jZSAoZS5nLiBzZWUKKyAgICAgICAgLy8g
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGlt
ZSksIHNvIGNhbmNlbCB0aGUgZXhpc3RpbmcKKyAgICAgICAgLy8gQ29tcGxldGlvbkhhbmRsZXIu
CisgICAgICAgIGF1dG8gaGFuZGxlciA9IFdURk1vdmUobV9wZXJmb3JtVGFza0F0TWVkaWFUaW1l
Q29tcGxldGlvbkhhbmRsZXIpOworICAgICAgICBoYW5kbGVyKFdURjo6bnVsbG9wdCk7CisgICAg
fQorCisgICAgYXV0byB0cmFuc21pc3Npb25UaW1lID0gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91
YmxlKChXYWxsVGltZTo6bm93KCkgLSBtZXNzYWdlVGltZSkudmFsdWUoKSwgMSk7CisgICAgYXV0
byBhZGp1c3RlZFRhc2tUaW1lID0gdGFza1RpbWUgLSB0cmFuc21pc3Npb25UaW1lOworICAgIGF1
dG8gY3VycmVudFRpbWUgPSBtX3BsYXllci0+Y3VycmVudFRpbWUoKTsKKyAgICBpZiAoYWRqdXN0
ZWRUYXNrVGltZSA8PSBjdXJyZW50VGltZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihj
dXJyZW50VGltZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BlcmZvcm1UYXNr
QXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
OworICAgIG1fcGxheWVyLT5wZXJmb3JtVGFza0F0TWVkaWFUaW1lKFt0aGlzLCB3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpXSgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8
ICFtX3BlcmZvcm1UYXNrQXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShtX3Bl
cmZvcm1UYXNrQXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcik7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKG1fcGxheWVyLT5jdXJyZW50VGltZSgpKTsKKyAgICB9LCBhZGp1c3RlZFRhc2tU
aW1lKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp3b3VsZFRhaW50T3JpZ2lu
KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxib29sPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIobV9wbGF5ZXItPndvdWxkVGFpbnRPcmlnaW4ob3JpZ2luRGF0
YS5zZWN1cml0eU9yaWdpbigpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggOGIzN2MwNDIwZGFh
ZjNhMjliMDc2MzA5NmZhMDA0MGFkZWRjY2IyMy4uMTQzYmM1NTllZDk1MWMzZDcxNDY1NTk4YTA1
ODM3OTkxYmZkYjczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0xMDksOCArMTA5LDggQEAgcHVibGlj
OgogICAgIHZvaWQgcGxheSgpOwogICAgIHZvaWQgcGF1c2UoKTsKIAotICAgIHZvaWQgc2VlayhN
ZWRpYVRpbWUmJik7Ci0gICAgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShNZWRpYVRpbWUmJiwgTWVk
aWFUaW1lJiYgbmVnYXRpdmVUb2xlcmFuY2UsIE1lZGlhVGltZSYmIHBvc2l0aXZlVG9sZXJhbmNl
KTsKKyAgICB2b2lkIHNlZWsoY29uc3QgTWVkaWFUaW1lJik7CisgICAgdm9pZCBzZWVrV2l0aFRv
bGVyYW5jZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVG9sZXJh
bmNlLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVG9sZXJhbmNlKTsKIAogICAgIHZvaWQgc2V0
Vm9sdW1lKGRvdWJsZSk7CiAgICAgdm9pZCBzZXRNdXRlZChib29sKTsKQEAgLTE0MCw2ICsxNDAs
NyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2
b2lkIHNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0
U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCk7CisgICAgdm9pZCBzZXRXaXJlbGVzc1Bs
YXliYWNrVGFyZ2V0KGNvbnN0IFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Jik7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQpAQCAtMTY4LDYg
KzE2OSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHRyYWNrc0NoYW5nZWQoKTsKICAgICB2b2lkIHN5
bmNUZXh0VHJhY2tCb3VuZHMoKTsKIAorICAgIHZvaWQgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShj
b25zdCBNZWRpYVRpbWUmLCBXYWxsVGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxNZWRpYVRpbWU+KT4mJik7CisgICAgdm9pZCB3b3VsZFRhaW50T3JpZ2luKHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
Ym9vbD4pPiYmKTsKKwogICAgIFJlZjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+IHJl
cXVlc3RSZXNvdXJjZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyk7CiAgICAgdm9pZCByZW1vdmVSZXNv
dXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiAKQEAgLTI3OSwxMSArMjgzLDE0
IEBAIHByaXZhdGU6CiAgICAgUnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4g
bV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcjsKICAgICBSZW1vdGVNZWRpYVBsYXllclN0
YXRlIG1fY2FjaGVkU3RhdGU7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRp
b24gbV9jb25maWd1cmF0aW9uOwotICAgIGJvb2wgbV9idWZmZXJlZENoYW5nZWQgeyB0cnVlIH07
Ci0gICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyB0cnVlIH07CisgICAgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxNZWRpYVRpbWU+KT4gbV9wZXJmb3JtVGFza0F0
TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXI7CisKICAgICBXZWJDb3JlOjpMYXlvdXRSZWN0IG1f
dmlkZW9Db250ZW50Qm94UmVjdDsKICAgICBmbG9hdCBtX3ZpZGVvQ29udGVudFNjYWxlIHsgMS4w
IH07CiAKKyAgICBib29sIG1fYnVmZmVyZWRDaGFuZ2VkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9y
ZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkIHsgdHJ1ZSB9OworCiAjaWYgRU5BQkxFKExFR0FDWV9F
TkNSWVBURURfTUVESUEpICYmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgYm9vbCBtX3No
b3VsZENvbnRpbnVlQWZ0ZXJLZXlOZWVkZWQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDM0ZDI0MThjY2Y4YWJiZmNjZjVkYzQxODIxNDA4
YTY4MGViYTdjNTUuLjI3OTUxMjZkMjliYmUxYjg4OWIyN2YwOGQ1NzBjNjJmNGUwNGUwNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDYsNiArMTA2LDExIEBAIG1l
c3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgVHJh
Y2tzQ2hhbmdlZCgpCiAgICAgU3luY1RleHRUcmFja0JvdW5kcygpCiAKKyAgICBTZXRXaXJlbGVz
c1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0IHRhcmdl
dCkKKworICAgIFBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoTWVkaWFUaW1lIG1lZGlhVGltZSwgV2Fs
bFRpbWUgbWVzc2FnZVRpbWUpIC0+IChPcHRpb25hbDxNZWRpYVRpbWU+IG1lZGlhVGltZSkgQXN5
bmMKKyAgICBXb3VsZFRhaW50T3JpZ2luKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgb3JpZ2luKSAtPiAoT3B0aW9uYWw8Ym9vbD4gd291bGRUYWludCkgU3luY2hyb25vdXMKKwog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRXJyb3JMb2coKSAtPiAoU3RyaW5nIGVycm9y
TG9nKSBTeW5jaHJvbm91cwogICAgIEFjY2Vzc0xvZygpIC0+IChTdHJpbmcgYWNjZXNzTG9nKSBT
eW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaAppbmRleCBl
OGM3NWFjZjFkODY4ZjA1MTUwMTdmZDcyYWNhZWQwOTNmYjdhMjM5Li4wMDlmNGM5YzRlNGRmM2Vl
MmEwN2IzOGRhZTZmMWEzNDY0ZjgyYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZp
Z3VyYXRpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAog
I2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFR5cGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3Vy
aXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTM5LDYgKzQwLDcgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uIHsKICAgICBTdHJpbmcgbmV0d29ya0ludGVyZmFjZU5hbWU7CiAg
ICAgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydDsKICAgICBWZWN0b3I8U3RyaW5nPiBwcmVmZXJyZWRBdWRpb0NoYXJh
Y3RlcmlzdGljczsKKyAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1
cml0eU9yaWdpbjsKICAgICB1aW50NjRfdCBsb2dJZGVudGlmaWVyIHsgMCB9OwogICAgIGJvb2wg
c2hvdWxkVXNlUGVyc2lzdGVudENhY2hlIHsgZmFsc2UgfTsKICAgICBib29sIGlzVmlkZW8geyAw
IH07CkBAIC01Miw2ICs1NCw3IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmln
dXJhdGlvbiB7CiAgICAgICAgIGVuY29kZXIgPDwgbmV0d29ya0ludGVyZmFjZU5hbWU7CiAgICAg
ICAgIGVuY29kZXIgPDwgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7
CiAgICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7CisgICAg
ICAgIGVuY29kZXIgPDwgZG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKICAgICAgICAgZW5jb2RlciA8
PCBsb2dJZGVudGlmaWVyOwogICAgICAgICBlbmNvZGVyIDw8IHNob3VsZFVzZVBlcnNpc3RlbnRD
YWNoZTsKICAgICAgICAgZW5jb2RlciA8PCBpc1ZpZGVvOwpAQCAtOTAsNiArOTMsMTEgQEAgc3Ry
dWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHsKICAgICAgICAgaWYgKCFw
cmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcykKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBk
b2N1bWVudFNlY3VyaXR5T3JpZ2luOworICAgICAgICBkZWNvZGVyID4+IGRvY3VtZW50U2VjdXJp
dHlPcmlnaW47CisgICAgICAgIGlmICghZG9jdW1lbnRTZWN1cml0eU9yaWdpbikKKyAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IGxv
Z0lkZW50aWZpZXI7CiAgICAgICAgIGRlY29kZXIgPj4gbG9nSWRlbnRpZmllcjsKICAgICAgICAg
aWYgKCFsb2dJZGVudGlmaWVyKQpAQCAtMTEyLDYgKzEyMCw3IEBAIHN0cnVjdCBSZW1vdGVNZWRp
YVBsYXllclByb3h5Q29uZmlndXJhdGlvbiB7CiAgICAgICAgICAgICBXVEZNb3ZlKCpuZXR3b3Jr
SW50ZXJmYWNlTmFtZSksCiAgICAgICAgICAgICBXVEZNb3ZlKCptZWRpYUNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCksCiAgICAgICAgICAgICBXVEZNb3ZlKCpwcmVmZXJyZWRB
dWRpb0NoYXJhY3RlcmlzdGljcyksCisgICAgICAgICAgICBXVEZNb3ZlKCpkb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKSwKICAgICAgICAgICAgICpsb2dJZGVudGlmaWVyLAogICAgICAgICAgICAgKnNo
b3VsZFVzZVBlcnNpc3RlbnRDYWNoZSwKICAgICAgICAgICAgICppc1ZpZGVvLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDk1ZTczYTY1MDlhMmEzMjkzMGVjOTRmOTVhYzEzNmM2
ZjA4MGY0YjUuLjJmMTQwMTAzZjhhYzk0NzM3ZDk3YjYxZjI5Y2UyMGM2YmRjMDdhNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTg3LDkgKzg3LDEwIEBAIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5
ZXIsIE1lZGlhUGxhCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAKLXZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVy
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBkb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKQogewogICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlv
bik7CisgICAgbV9kb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gV1RGTW92ZShkb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKTsKICAgICBtX3BsYXllci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7CiB9CiAKQEAg
LTM2Niw2ICszNjcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ2Fj
aGVkU3RhdGUoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogICAgIG1fY2FjaGVkU3Rh
dGUubmF0dXJhbFNpemUgPSBzdGF0ZS5uYXR1cmFsU2l6ZTsKICAgICBtX2NhY2hlZFN0YXRlLm1v
dmllTG9hZFR5cGUgPSBzdGF0ZS5tb3ZpZUxvYWRUeXBlOwogICAgIG1fY2FjaGVkU3RhdGUud2ly
ZWxlc3NQbGF5YmFja1RhcmdldFR5cGUgPSBzdGF0ZS53aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlw
ZTsKKyAgICBtX2NhY2hlZFN0YXRlLndpcmVsZXNzUGxheWJhY2tUYXJnZXROYW1lID0gc3RhdGUu
d2lyZWxlc3NQbGF5YmFja1RhcmdldE5hbWU7CiAKICAgICBtX2NhY2hlZFN0YXRlLnN0YXJ0RGF0
ZSA9IHN0YXRlLnN0YXJ0RGF0ZTsKICAgICBtX2NhY2hlZFN0YXRlLnN0YXJ0VGltZSA9IHN0YXRl
LnN0YXJ0VGltZTsKQEAgLTU5NSw3ICs1OTcsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZQog
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
bG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyksIHRoaXNdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTcxOSwxMSArNzIwLDYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Omhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5o
YXNDbG9zZWRDYXB0aW9uczsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
dENsb3NlZENhcHRpb25zVmlzaWJsZShib29sKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19
Ci0KIGRvdWJsZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1heEZhc3RGb3J3YXJkUmF0ZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2FjaGVkU3RhdGUubWF4RmFzdEZvcndhcmRSYXRlOwpA
QCAtNzk3LDggKzc5Myw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpoYXNBdmFp
bGFibGVWaWRlb0ZyYW1lKCkgY29uc3QKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKQogU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d2lyZWxlc3NQbGF5YmFja1Rh
cmdldE5hbWUoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CisgICAgcmV0dXJuIG1fY2FjaGVkU3RhdGUud2lyZWxlc3NQbGF5YmFja1Rh
cmdldE5hbWU7CiB9CiAKIE1lZGlhUGxheWVyOjpXaXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OndpcmVsZXNzUGxheWJhY2tUYXJnZXRUeXBlKCkgY29u
c3QKQEAgLTgyNyw5ICs4MjIsOSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6aXND
dXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpIGNvbnN0CiAgICAgcmV0dXJuIG1faXNDdXJy
ZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzczsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+
JiYpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0V2lyZWxlc3NQbGF5YmFja1Rh
cmdldChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJiB0YXJnZXQpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6U2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCh0YXJnZXQtPnRhcmdldENvbnRleHQo
KSksIG1faWQpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0U2hvdWxk
UGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCBzaG91bGRQbGF5KQpAQCAtODQ4LDEwICs4NDMsMjEg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2so
KSBjb25zdAogICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2s7
CiB9CiAKLU9wdGlvbmFsPGJvb2w+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d291bGRUYWlu
dE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNvbnN0CitPcHRpb25hbDxib29sPiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OndvdWxkVGFpbnRPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmln
aW4mIG9yaWdpbikgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgaWYgKG9yaWdpbi5kYXRhKCkgPT0gbV9kb2N1bWVudFNlY3VyaXR5
T3JpZ2luKQorICAgICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS53b3VsZFRhaW50RG9jdW1lbnRT
ZWN1cml0eU9yaWdpbjsKKworICAgIGlmIChhdXRvIHJlc3VsdCA9IG1fd291bGRUYWludE9yaWdp
bkNhY2hlLmdldChvcmlnaW4uZGF0YSgpKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAg
IE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnQ7CisgICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5
bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OldvdWxkVGFpbnRPcmlnaW4ob3Jp
Z2luLmRhdGEoKSksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpXb3VsZFRhaW50
T3JpZ2luOjpSZXBseSh3b3VsZFRhaW50KSwgbV9pZCkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBtX3dvdWxkVGFpbnRPcmlnaW5DYWNoZS5hZGQob3JpZ2luLmRhdGEoKSwg
d291bGRUYWludCk7CisKKyAgICByZXR1cm4gd291bGRUYWludDsKIH0KIAogTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVkaWFUaW1lRm9yVGltZVZhbHVlKGNvbnN0IE1lZGlh
VGltZSYgdGltZVZhbHVlKSBjb25zdApAQCAtOTgyLDEzICs5ODgsNiBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dHJhY2tzQ2hhbmdlZCgpCiB9CiAjZW5kaWYKIAotI2lmIFVTRShH
U1RSRUFNRVIpCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2ltdWxhdGVBdWRpb0lu
dGVycnVwdGlvbigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLSNlbmRpZgotCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YmVnaW5TaW11bGF0ZWRIRENQRXJyb3IoKQogewog
ICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpC
ZWdpblNpbXVsYXRlZEhEQ1BFcnJvcigpLCBtX2lkKTsKQEAgLTEwMzksMTAgKzEwMzgsMTkgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZl
KCkKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6QXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKSwgbV9pZCk7CiB9CiAKLWJvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmLCBNZWRpYVRpbWUpCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlciwgY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byBhc3luY1JlcGx5SGFuZGxlciA9IFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oT3B0aW9uYWw8TWVkaWFUaW1lPiBjdXJyZW50VGltZSkg
bXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIWN1cnJlbnRUaW1lKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIG1fY2FjaGVkU3RhdGUuY3VycmVudFRpbWUgPSAqY3Vy
cmVudFRpbWU7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfTsKKworICAgIGNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OlBlcmZvcm1UYXNrQXRNZWRpYVRpbWUobWVkaWFUaW1lLCBXYWxsVGltZTo6bm93KCkp
LCBXVEZNb3ZlKGFzeW5jUmVwbHlIYW5kbGVyKSwgbV9pZCk7CisKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlcXVlc3RSZXNvdXJjZShSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRl
eCA3YWI2NjUyOWE1MTk3MzU4MzFjZmJjYzg5OTE4YmJhNzc3YWM1Y2ZlLi41MGI1OTdkOWI3OTM0
NGFmZDQxZWQ2ZTMyYzVhNzg5ZDM5MDMzZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCIK
ICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYv
TWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTc1LDcgKzc2LDcgQEAg
cHVibGljOgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShXZWJDb3JlOjpNZWRpYVBsYXll
ciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
Jik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpOwogCi0gICAgdm9pZCBzZXRDb25m
aWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHNl
dENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKQEAgLTIzMyw3ICsyMzQsNiBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3Qg
ZmluYWw7Ci0gICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgZmluYWw7CiAK
ICAgICBkb3VibGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgZG91Ymxl
IG1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0IGZpbmFsOwpAQCAtMzI3LDEwICszMjcsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCiAKLSNpZiBV
U0UoR1NUUkVBTUVSKQotICAgIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpIGZpbmFs
OwotI2VuZGlmCi0KICAgICB2b2lkIGJlZ2luU2ltdWxhdGVkSERDUEVycm9yKCkgZmluYWw7CiAg
ICAgdm9pZCBlbmRTaW11bGF0ZWRIRENQRXJyb3IoKSBmaW5hbDsKIApAQCAtMzU1LDcgKzM1MSw3
IEBAIHByaXZhdGU6CiAgICAgQVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRpb25BVlBsYXllcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCi0gICAgYm9vbCBwZXJmb3Jt
VGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmLCBNZWRpYVRpbWUpIGZpbmFs
OworICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNv
bnN0IE1lZGlhVGltZSYpIGZpbmFsOwogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxh
eWVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKQEAgLTM3NSw2ICszNzEsOSBAQCBwcml2
YXRlOgogICAgIEhhc2hNYXA8VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlPj4gbV92aWRlb1RyYWNrczsKICAgICBIYXNoTWFwPFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxUZXh0VHJhY2tQcml2YXRlUmVtb3RlPj4gbV90ZXh0
VHJhY2tzOwogCisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG1fZG9jdW1lbnRTZWN1
cml0eU9yaWdpbjsKKyAgICBtdXRhYmxlIEhhc2hNYXA8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhLCBPcHRpb25hbDxib29sPj4gbV93b3VsZFRhaW50T3JpZ2luQ2FjaGU7CisKICAgICBkb3Vi
bGUgbV92b2x1bWUgeyAxIH07CiAgICAgZG91YmxlIG1fcmF0ZSB7IDEgfTsKICAgICBsb25nIG1f
cGxhdGZvcm1FcnJvckNvZGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRp
b24uaAppbmRleCA5ZmJmZjU5YWZjNTE5MWE5MzUxNjkyNGQ5ZWY5YWM3Mjc1N2IyYWQxLi5jMDZm
ODgzMjQ5ZDUxOGM3OTkxM2M1YzJlNzQ4NWEzN2MxYWY4NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJDb25maWd1cmF0aW9uLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBzdHJ1Y3QgUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uIHsKICAgICAgICAgICAgIFdURk1vdmUoKmVuZ2luZURlc2Ny
aXB0aW9uKSwKICAgICAgICAgICAgICptYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFUaW1lLAog
ICAgICAgICAgICAgKnN1cHBvcnRzU2Nhbm5pbmcsCisgICAgICAgICAgICAqc3VwcG9ydHNGdWxs
c2NyZWVuLAogICAgICAgICAgICAgKnN1cHBvcnRzUGljdHVyZUluUGljdHVyZSwKICAgICAgICAg
ICAgICpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nLAogICAgICAgICAgICAgKmNhblBsYXlU
b1dpcmVsZXNzUGxheWJhY2tUYXJnZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKaW5k
ZXggZGRkZDUzNDc0M2IxNTY4Y2YwNTkyNmY1YmMyNjc2ZWFkY2ViNGVlZC4uZTlmZjI0ZDE2NzYx
MGExYmY3ZjEzNjg1NmZmZmM3MTRhZTE2NDFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmNwcApAQCAtMTU2LDE1ICsxNTYsMjAgQEAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW0KICAgICBw
cm94eUNvbmZpZ3VyYXRpb24uc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlID0gcGxheWVyLT5zaG91
bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKTsKICAgICBwcm94eUNvbmZpZ3VyYXRpb24uaXNWaWRlbyA9
IHBsYXllci0+aXNWaWRlb1BsYXllcigpOwogCisgICAgYXV0byBkb2N1bWVudFNlY3VyaXR5T3Jp
Z2luID0gcGxheWVyLT5kb2N1bWVudFNlY3VyaXR5T3JpZ2luKCk7CisgICAgcHJveHlDb25maWd1
cmF0aW9uLmRvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVudFNlY3VyaXR5T3JpZ2luOwor
CiAgICAgYXV0byBpZGVudGlmaWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKICAgICBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVy
Q29uZmlndXJhdGlvbjsKLSAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpDcmVhdGVNZWRpYVBsYXllcihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBw
cm94eUNvbmZpZ3VyYXRpb24pLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwg
aWRlbnRpZmllcl0oYXV0byYmIHBsYXllckNvbmZpZ3VyYXRpb24pIHsKKyAgICBhdXRvIGNvbXBs
ZXRpb25IYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50
aWZpZXIsIGRvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBXVEZNb3ZlKGRvY3VtZW50U2VjdXJpdHlP
cmlnaW4pXShhdXRvJiYgcGxheWVyQ29uZmlndXJhdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKGNvbnN0IGF1
dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWRlbnRpZmllcikpCi0gICAgICAgICAgICBwbGF5
ZXItPnNldENvbmZpZ3VyYXRpb24oV1RGTW92ZShwbGF5ZXJDb25maWd1cmF0aW9uKSk7Ci0gICAg
fSwgMCk7CisgICAgICAgICAgICBwbGF5ZXItPnNldENvbmZpZ3VyYXRpb24oV1RGTW92ZShwbGF5
ZXJDb25maWd1cmF0aW9uKSwgV1RGTW92ZShkb2N1bWVudFNlY3VyaXR5T3JpZ2luKSk7CisgICAg
fTsKKworICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1l
ZGlhUGxheWVyKGlkZW50aWZpZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmln
dXJhdGlvbiksIGNvbXBsZXRpb25IYW5kbGVyLCAwKTsKIAogICAgIGF1dG8gcmVtb3RlUGxheWVy
ID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUocGxheWVyLCByZW1vdGVFbmdpbmVJ
ZGVudGlmaWVyLCBpZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgbV9wbGF5ZXJzLmFkZChpZGVudGlm
aWVyLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxheWVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oCmlu
ZGV4IDRiZDQ4YmIzN2Q2NTdhN2I1OGZkMTA5Njg5Njg2NTJmODAyMzhjZTMuLjczMDc1YWYwMmZi
ZjI4ZGVmZThiOGU2M2I1ZmY0NzYyODJmNjhkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oCkBA
IC01NCw2ICs1NCw3IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllclN0YXRlIHsKICAgICBkb3Vi
bGUgc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGltZSB7IDAgfTsKICAgICBkb3VibGUg
bGl2ZVVwZGF0ZUludGVydmFsIHsgMCB9OwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5
dGVzIHsgMCB9OworICAgIE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnREb2N1bWVudFNlY3VyaXR5
T3JpZ2luIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGF1c2VkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbG9h
ZGluZ1Byb2dyZXNzZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgY2FuU2F2ZU1lZGlhRGF0YSB7IGZh
bHNlIH07CkBAIC04OCw2ICs4OSw3IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllclN0YXRlIHsK
ICAgICAgICAgZW5jb2RlciA8PCBzZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRUaW1lOwog
ICAgICAgICBlbmNvZGVyIDw8IGxpdmVVcGRhdGVJbnRlcnZhbDsKICAgICAgICAgZW5jb2RlciA8
PCB0b3RhbEJ5dGVzOworICAgICAgICBlbmNvZGVyIDw8IHdvdWxkVGFpbnREb2N1bWVudFNlY3Vy
aXR5T3JpZ2luOwogICAgICAgICBlbmNvZGVyIDw8IHBhdXNlZDsKICAgICAgICAgZW5jb2RlciA8
PCBsb2FkaW5nUHJvZ3Jlc3NlZDsKICAgICAgICAgZW5jb2RlciA8PCBjYW5TYXZlTWVkaWFEYXRh
OwpAQCAtMTk1LDYgKzE5NywxMSBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSB7CiAg
ICAgICAgIGlmICghdG90YWxCeXRlcykKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAKKyAgICAgICAgT3B0aW9uYWw8T3B0aW9uYWw8Ym9vbD4+IHdvdWxkVGFpbnREb2N1bWVudFNl
Y3VyaXR5T3JpZ2luOworICAgICAgICBkZWNvZGVyID4+IHdvdWxkVGFpbnREb2N1bWVudFNlY3Vy
aXR5T3JpZ2luOworICAgICAgICBpZiAoIXdvdWxkVGFpbnREb2N1bWVudFNlY3VyaXR5T3JpZ2lu
KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgICAgICBPcHRpb25hbDxi
b29sPiBwYXVzZWQ7CiAgICAgICAgIGRlY29kZXIgPj4gcGF1c2VkOwogICAgICAgICBpZiAoIXBh
dXNlZCkKQEAgLTI3MCw2ICsyNzcsNyBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSB7
CiAgICAgICAgICAgICAqc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGltZSwKICAgICAg
ICAgICAgICpsaXZlVXBkYXRlSW50ZXJ2YWwsCiAgICAgICAgICAgICAqdG90YWxCeXRlcywKKyAg
ICAgICAgICAgIFdURk1vdmUoKndvdWxkVGFpbnREb2N1bWVudFNlY3VyaXR5T3JpZ2luKSwKICAg
ICAgICAgICAgICpwYXVzZWQsCiAgICAgICAgICAgICAqbG9hZGluZ1Byb2dyZXNzZWQsCiAgICAg
ICAgICAgICAqY2FuU2F2ZU1lZGlhRGF0YSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>