<?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>226692</bug_id>
          
          <creation_ts>2021-06-05 19:39:04 -0700</creation_ts>
          <short_desc>Reduce use of legacy EventLoopEventQueue and EventLoopTaskQueue</short_desc>
          <delta_ts>2021-06-06 14:01:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226699</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>calvaris</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1767179</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-05 19:39:04 -0700</bug_when>
    <thetext>Reduce use of legacy EventLoopEventQueue and EventLoopTaskQueue, and use the HTML event loop directly instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767180</commentid>
    <comment_count>1</comment_count>
      <attachid>430669</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-05 19:45:04 -0700</bug_when>
    <thetext>Created attachment 430669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767181</commentid>
    <comment_count>2</comment_count>
      <attachid>430670</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-05 19:49:36 -0700</bug_when>
    <thetext>Created attachment 430670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767186</commentid>
    <comment_count>3</comment_count>
      <attachid>430672</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-05 20:59:00 -0700</bug_when>
    <thetext>Created attachment 430672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767189</commentid>
    <comment_count>4</comment_count>
      <attachid>430674</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-05 21:19:09 -0700</bug_when>
    <thetext>Created attachment 430674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767196</commentid>
    <comment_count>5</comment_count>
      <attachid>430674</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-06-05 22:30:29 -0700</bug_when>
    <thetext>Comment on attachment 430674
Patch

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

&gt; Source/WebCore/Modules/remoteplayback/RemotePlayback.cpp:293
&gt; +    queueTaskToDispatchEvent(*this, TaskSource::MediaElement, event.releaseNonNull());

The old code would silently do nothing if m_state had a bad value. I think this one will crash. Not that a bad value is really possible, but it is a change in behavior.

Also, if we are going to refactor to share more code like this, why not have the switch statement just put the event name into an AtomString or const AtomString*, and share the call to Event::create too?

&gt; Source/WebCore/dom/FullscreenManager.cpp:68
&gt; +                weakThis-&gt;dispatchFullscreenChangeEvents();

I’d think that generally we’d want to do something more like:

    makeRef(*weakThis)-&gt;dispatchFullscreenChangeEvents();

I will guess that there is no practical real issue in this case, but our object lifetime strategy is normally to say the caller should be holding a reference to objects before calling functions on them. I’d like these rules to be easier to understand and less situational, but this is what I’ve gleaned from talking to others about our lifetime strategy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767197</commentid>
    <comment_count>6</comment_count>
      <attachid>430674</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-05 22:43:56 -0700</bug_when>
    <thetext>Comment on attachment 430674
Patch

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

&gt;&gt; Source/WebCore/Modules/remoteplayback/RemotePlayback.cpp:293
&gt;&gt; +    queueTaskToDispatchEvent(*this, TaskSource::MediaElement, event.releaseNonNull());
&gt; 
&gt; The old code would silently do nothing if m_state had a bad value. I think this one will crash. Not that a bad value is really possible, but it is a change in behavior.
&gt; 
&gt; Also, if we are going to refactor to share more code like this, why not have the switch statement just put the event name into an AtomString or const AtomString*, and share the call to Event::create too?

I did not really see the harm since the switch case was handling all enum values. That said, I like your suggestion of extracting the event from the switch better. I’ll do that before landing.

&gt;&gt; Source/WebCore/dom/FullscreenManager.cpp:68
&gt;&gt; +                weakThis-&gt;dispatchFullscreenChangeEvents();
&gt; 
&gt; I’d think that generally we’d want to do something more like:
&gt; 
&gt;     makeRef(*weakThis)-&gt;dispatchFullscreenChangeEvents();
&gt; 
&gt; I will guess that there is no practical real issue in this case, but our object lifetime strategy is normally to say the caller should be holding a reference to objects before calling functions on them. I’d like these rules to be easier to understand and less situational, but this is what I’ve gleaned from talking to others about our lifetime strategy.

Not a new issue as the previous code was not protecting this either, but I will make the change since it is safer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767226</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-06 11:04:58 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; Comment on attachment 430674 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430674&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/remoteplayback/RemotePlayback.cpp:293
&gt; &gt;&gt; +    queueTaskToDispatchEvent(*this, TaskSource::MediaElement, event.releaseNonNull());
&gt; &gt; 
&gt; &gt; The old code would silently do nothing if m_state had a bad value. I think this one will crash. Not that a bad value is really possible, but it is a change in behavior.
&gt; &gt; 
&gt; &gt; Also, if we are going to refactor to share more code like this, why not have the switch statement just put the event name into an AtomString or const AtomString*, and share the call to Event::create too?
&gt; 
&gt; I did not really see the harm since the switch case was handling all enum
&gt; values. That said, I like your suggestion of extracting the event from the
&gt; switch better. I’ll do that before landing.
&gt; 
&gt; &gt;&gt; Source/WebCore/dom/FullscreenManager.cpp:68
&gt; &gt;&gt; +                weakThis-&gt;dispatchFullscreenChangeEvents();
&gt; &gt; 
&gt; &gt; I’d think that generally we’d want to do something more like:
&gt; &gt; 
&gt; &gt;     makeRef(*weakThis)-&gt;dispatchFullscreenChangeEvents();
&gt; &gt; 
&gt; &gt; I will guess that there is no practical real issue in this case, but our object lifetime strategy is normally to say the caller should be holding a reference to objects before calling functions on them. I’d like these rules to be easier to understand and less situational, but this is what I’ve gleaned from talking to others about our lifetime strategy.
&gt; 
&gt; Not a new issue as the previous code was not protecting this either, but I
&gt; will make the change since it is safer.

Same issue as with the last patch you suggested this. FullscreenManager is not RefCounted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767227</commentid>
    <comment_count>8</comment_count>
      <attachid>430687</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-06 11:12:29 -0700</bug_when>
    <thetext>Created attachment 430687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767235</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-06-06 12:02:45 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to Chris Dumez from comment #6)
&gt; &gt; Comment on attachment 430674 [details]
&gt; &gt; Patch
&gt; &gt; &gt;&gt; Source/WebCore/dom/FullscreenManager.cpp:68
&gt; &gt; &gt;&gt; +                weakThis-&gt;dispatchFullscreenChangeEvents();
&gt; &gt; &gt; 
&gt; &gt; &gt; I’d think that generally we’d want to do something more like:
&gt; &gt; &gt; 
&gt; &gt; &gt;     makeRef(*weakThis)-&gt;dispatchFullscreenChangeEvents();
&gt; &gt; &gt; 
&gt; &gt; &gt; I will guess that there is no practical real issue in this case, but our object lifetime strategy is normally to say the caller should be holding a reference to objects before calling functions on them. I’d like these rules to be easier to understand and less situational, but this is what I’ve gleaned from talking to others about our lifetime strategy.
&gt; &gt; 
&gt; &gt; Not a new issue as the previous code was not protecting this either, but I
&gt; &gt; will make the change since it is safer.
&gt; 
&gt; Same issue as with the last patch you suggested this. FullscreenManager is
&gt; not RefCounted.

We should CheckedPtr in these instances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767237</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-06 12:13:15 -0700</bug_when>
    <thetext>Committed r278538 (238536@main): &lt;https://commits.webkit.org/238536@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430687.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767238</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-06 12:14:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/78926233&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430669</attachid>
            <date>2021-06-05 19:45:04 -0700</date>
            <delta_ts>2021-06-05 20:35:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226692-20210605194503.patch</filename>
            <type>text/plain</type>
            <size>46450</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODk5YTAxY2IwMjlmMjJi
YjczMzc4YzUyN2RlZGM3YjJmNjcxNDBlZC4uNTVkZTZkYzgzM2E4ZjVlZWM1NDk3MDIyNzMxYjFm
NThjOGU4YTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIxLTA2LTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBsZWdh
Y3kgRXZlbnRMb29wRXZlbnRRdWV1ZSBhbmQgRXZlbnRMb29wVGFza1F1ZXVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY2OTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgdXNlIG9mIGxlZ2Fj
eSBFdmVudExvb3BFdmVudFF1ZXVlIGFuZCBFdmVudExvb3BUYXNrUXVldWUsIGFuZCB1c2UgdGhl
IEhUTUwgZXZlbnQKKyAgICAgICAgbG9vcCBkaXJlY3RseSBpbnN0ZWFkLiBUaG9zZSBhcmUgdmVy
eSBzaW1wbGUgY2FzZXMsIHRoZXkgcmVhbGx5IGRvbid0IG5lZWQgYW55IG9mIHRoZQorICAgICAg
ICBmZWF0dXJlcyB0aGUgcXVldWUgd2FzIHByb3ZpZGluZyAoc3VjaCBhcyBjYW5jZWxsaW5nIGV2
ZW50cykuCisKKyAgICAgICAgVG8gZ2V0IHJpZCBvZiB0aGUgcmVtYWluaW5nIHVzYWdlIG9mIEV2
ZW50TG9vcEV2ZW50UXVldWUgLyBFdmVudExvb3BUYXNrUXVldWUsIEkgYmVsaWV2ZQorICAgICAg
ICB3ZSdsbCBuZWVkIGEgd2F5IHRvIGNhbmNlbCB0YXNrcyBzY2hlZHVsZWQgaW4gdGhlIEhUTUwg
ZXZlbnQgbG9vcC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTb3VyY2U6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzY2hlZHVsZUV2ZW50KToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlckxpc3Q6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oOgorICAgICAgICAqIE1vZHVsZXMvcmVtb3Rl
cGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxh
eWJhY2s6OlJlbW90ZVBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVBsYXliYWNr
Ojp3YXRjaEF2YWlsYWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6
Y2FuY2VsV2F0Y2hBdmFpbGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJh
Y2s6OnByb21wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6c2V0U3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmRpc2Nvbm5lY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmF2YWlsYWJpbGl0eUNoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OnN0b3ApOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaDoKKyAgICAgICAgKiBhbmltYXRp
b24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJv
bURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxl
cjo6Y2FjaGVDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXI6Om1heWJlQ2xlYXJDYWNoZWRDdXJyZW50VGltZSk6CisgICAgICAgICogYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9GdWxs
c2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6
OnJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2Ny
ZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlh
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlh
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVkRnJv
bUFuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxl
UmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c2NoZWR1bGVSZWplY3RQZW5kaW5nUGxheVByb21pc2VzKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTm90aWZ5QWJvdXRQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhS2V5cyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjbG9zZVRhc2tRdWV1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRJc1BsYXlpbmdUb1dp
cmVsZXNzVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVy
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc1Zpc2li
bGVJblZpZXdwb3J0Q2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0
ZVNpemVzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OlRyYWNrTGlzdEJhc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6VHJhY2tMaXN0QmFzZTo6c2NoZWR1bGVDaGFuZ2VFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpUcmFja0xpc3RCYXNlOjppc0NoYW5nZUV2ZW50U2NoZWR1bGVkIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZp
dHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6OnByb2Nlc3NDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6Om1hdGNoZWRMZW5ndGgp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmg6
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKwogMjAy
MS0wNi0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBg
Y29uc3QgdWludDhfdCpgIHR5cGUgbW9yZSBjb25zaXN0ZW50bHkgdG8gc3RvcmUgYnl0ZXMgaW4g
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKaW5kZXggOGQzNmI5OTllOWUzYzhj
MjJiNzVkMmU2MDA1MGUxMjg2ZTQ5Y2VmZS4uMzhlYTdjNGI4YWZmM2RkZjE4ZThkNDkwNWE5YTBm
MDFmYTBmNDdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtNTksNyArNTks
NiBAQCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dAogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRl
eHQpCiAgICAgLCBtX2xvZ2dlcihtYWtlUmVmKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCiAg
ICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpKQotICAg
ICwgbV9hc3luY0V2ZW50UXVldWUoRXZlbnRMb29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkK
IHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogfQpAQCAtNDE5LDcgKzQxOCw3IEBA
IHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhCiAgICAgbV9zdGF0ZSA9IHN0YXRlOwogICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUiwgbV9zdGF0ZSk7CiAgICAgaWYgKHNob3VsZEZpcmVFdmVudHMo
KSkKLSAgICAgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5jb29yZGluYXRvcnN0YXRlY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgICAgICBxdWV1ZVRhc2tUb0Rp
c3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY29vcmRpbmF0b3JzdGF0ZWNoYW5nZUV2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6Y3VycmVudFBvc2l0aW9uQXBwcm94aW1hdGVseUVxdWFsVG8oZG91Ymxl
IHRpbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAppbmRleCBlM2RkODA2MGY5ZDQw
OTYyM2MwOWZhZWE5Y2RlNTVlNTQ5ZGRhNDMyLi4zMWM0ZDliNDMzMjg3M2NjYWIzMzI0YTg0Mjkw
NzBjZGZhZGQ2Y2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTI4LDcgKzI4LDYg
QEAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKIAogI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNs
dWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5oIgogI2luY2x1ZGUg
Ik1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIgpAQCAtMTEwLDcgKzEwOSw2IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4gbV9wcml2
YXRlQ29vcmRpbmF0b3I7CiAgICAgY29uc3QgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAg
ICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwotICAgIFVuaXF1ZVJlZjxFdmVudExvb3BF
dmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKICAgICBNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlIG1fc3RhdGUgeyBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpDbG9zZWQgfTsK
ICAgICBib29sIG1faGFzQ29vcmRpbmF0b3JzU3RhdGVDaGFuZ2VFdmVudExpc3RlbmVyIHsgZmFs
c2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwCmluZGV4IDU2YzVkYTg3ZDc2MTAzODFiYTFmMjg1M2YyZGYzYWJhYTdmMmJm
NTIuLmMzOGYwYTg4ZTNjM2VhYzE2Njk3MzIxMzQ1ZmYyYjU4ZTVhYWE2OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0x
MDQsNyArMTA0LDYgQEAgTWVkaWFTb3VyY2U6Ok1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBt
X2R1cmF0aW9uKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAgICAsIG1fcGVuZGluZ1NlZWtU
aW1lKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKLSAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2
ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgLCBtX2xvZ2dlcihkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkubG9nZ2VyKCkp
CiAjZW5kaWYKQEAgLTk5OCw3ICs5OTcsNyBAQCB2b2lkIE1lZGlhU291cmNlOjpvcGVuSWZJbkVu
ZGVkU3RhdGUoKQogCiBib29sIE1lZGlhU291cmNlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlIHx8IG1fYXN5bmNFdmVudFF1ZXVlLT5o
YXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBtX2Fzc29jaWF0ZWRSZWdpc3RyeUNvdW50OworICAgIHJl
dHVybiBtX3ByaXZhdGUgfHwgbV9hc3NvY2lhdGVkUmVnaXN0cnlDb3VudDsKIH0KIAogdm9pZCBN
ZWRpYVNvdXJjZTo6c3RvcCgpCkBAIC0xMDc4LDEwICsxMDc3LDcgQEAgdm9pZCBNZWRpYVNvdXJj
ZTo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAgREVC
VUdfTE9HKExPR0lERU5USUZJRVIsICJzY2hlZHVsaW5nICciLCBldmVudE5hbWUsICInIik7CiAK
LSAgICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7Ci0gICAgZXZlbnQtPnNldFRhcmdldCh0
aGlzKTsKLQotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVu
dCkpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVk
aWFFbGVtZW50LCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IE1lZGlhU291cmNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaAppbmRleCBhM2E4NGMz
ZjIxNTY2OGU4OTdjN2YyMDc3YzUxYWRmOWFlY2EyNTk2Li5hMjZlNTUzZTdhMWNkMzUwYTNiNDY0
ZjAzZTE0MzllYjZhZTFmMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL01lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5oCkBAIC0zMyw3ICszMyw2IEBACiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50
TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMTc0LDcgKzE3
Myw2IEBAIHByaXZhdGU6CiAgICAgTWVkaWFUaW1lIG1fZHVyYXRpb247CiAgICAgTWVkaWFUaW1l
IG1fcGVuZGluZ1NlZWtUaW1lOwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgUmVhZHlT
dGF0ZTo6Q2xvc2VkIH07Ci0gICAgVW5pcXVlUmVmPEV2ZW50TG9vcEV2ZW50UXVldWU+IG1fYXN5
bmNFdmVudFF1ZXVlOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFJlZjxjb25zdCBM
b2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxw
dHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmNwcAppbmRleCAzZmZhMjhjOWY4ZDczZDNiNzZhZDM2NmI1MDFjNWMwMDk1YTk4YjJk
Li5lMTY4ZDc0NWVmMjQxNWZkNWQzNmEzN2YwODQ4ZmUzMzMyNmQ3ZmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC03
NCw3ICs3NCw2IEBAIFNvdXJjZUJ1ZmZlcjo6U291cmNlQnVmZmVyKFJlZjxTb3VyY2VCdWZmZXJQ
cml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZhdGUsIE1lZGlhCiAgICAgOiBBY3RpdmVET01PYmpl
Y3Qoc291cmNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgLCBtX3ByaXZhdGUoV1RG
TW92ZShzb3VyY2VCdWZmZXJQcml2YXRlKSkKICAgICAsIG1fc291cmNlKHNvdXJjZSkKLSAgICAs
IG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCiAg
ICAgLCBtX2FwcGVuZEJ1ZmZlclRpbWVyKCp0aGlzLCAmU291cmNlQnVmZmVyOjphcHBlbmRCdWZm
ZXJUaW1lckZpcmVkKQogICAgICwgbV9hcHBlbmRXaW5kb3dTdGFydChNZWRpYVRpbWU6Onplcm9U
aW1lKCkpCiAgICAgLCBtX2FwcGVuZFdpbmRvd0VuZChNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5p
dGVUaW1lKCkpCkBAIC00MzksNyArNDM4LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNlZWtUb1Rp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogCiBib29sIFNvdXJjZUJ1ZmZlcjo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fc291cmNlIHx8IG1fYXN5
bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICByZXR1cm4gbV9zb3VyY2U7
CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjpzdG9wKCkKQEAgLTQ2MCwxMCArNDU5LDcgQEAgYm9v
bCBTb3VyY2VCdWZmZXI6OmlzUmVtb3ZlZCgpIGNvbnN0CiAKIHZvaWQgU291cmNlQnVmZmVyOjpz
Y2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSkKIHsKLSAgICBhdXRvIGV2
ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObyk7Ci0gICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLQotICAg
IG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIHF1
ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNvdXJjZUJ1ZmZlcjo6YXBw
ZW5kQnVmZmVySW50ZXJuYWwoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oCmluZGV4IDJjZmY2NzhmNjAxNmNlZDdlZmI0Njk3ODFiMWRmMmFhNjI5ZmI3OGQuLmVlY2Qz
MWJmYzVmNGJhMmYzZjY2MDgwN2RlYTYyNTE3Nzc1YmE3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMzUsNyArMzUsNiBA
QAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFjay5o
IgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdl
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJp
dmF0ZS5oIgpAQCAtMjA4LDcgKzIwNyw2IEBAIHByaXZhdGU6CiAKICAgICBSZWY8U291cmNlQnVm
ZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIE1lZGlhU291cmNlKiBtX3NvdXJjZTsKLSAgICBV
bmlxdWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiAgICAgQXBw
ZW5kTW9kZSBtX21vZGUgeyBBcHBlbmRNb2RlOjpTZWdtZW50cyB9OwogCiAgICAgVmVjdG9yPHVu
c2lnbmVkIGNoYXI+IG1fcGVuZGluZ0FwcGVuZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcAppbmRleCA4MzZk
NGMwOGI2NGVmNzg3Zjk3Mjc1OGNiZGE3M2U1ZTk3YzgzMzdiLi43NjUwYjViM2FjZjhjNjllZmU2
ZTI3ZGJkYTVlNDJhNTUzYWE5OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNvdXJjZUJ1ZmZlckxpc3QpOwogCiBTb3VyY2VC
dWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKLSAgICAsIG1fYXN5bmNFdmVudFF1
ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCiB7CiAgICAgc3VzcGVuZElm
TmVlZGVkKCk7CiB9CkBAIC05NSwxMCArOTQsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OnN3
YXAoVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXI+PiYgb3RoZXIpCiAKIHZvaWQgU291cmNlQnVm
ZmVyTGlzdDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUpCiB7Ci0g
ICAgYXV0byBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pOwotICAgIGV2ZW50LT5zZXRUYXJnZXQodGhp
cyk7Ci0KLSAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQp
KTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlh
RWxlbWVudCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogfQogCiBjb25zdCBjaGFyKiBTb3VyY2VCdWZmZXJM
aXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKaW5kZXggZDM5ZjcyOWM5
MjhmODAzNTFhZDY3NTU1NmVhMWI5MjFmNGVjZjFjMC4uYjdlYWJjNjRmNTAyMjcxMGM2Y2VhM2Q2
ZTBlNGRlODQ0YTNkZmMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVk
ZSAiRXZlbnRMb29wRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04MCw4
ICs3OSw2IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QgZmluYWw7CiAKLSAgICBVbmlxdWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1ZT4gbV9h
c3luY0V2ZW50UXVldWU7Ci0KICAgICBWZWN0b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlcj4+IG1fbGlz
dDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJh
Y2svUmVtb3RlUGxheWJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5
YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKaW5kZXggNjQ3ZTVkY2ZhYmMyYTViN2NiNGRjODUwM2Ri
NWY5YzMwNzFjNWUyNi4uNzQ1MGJlNDk4MTZmZDExNDQ3NjYzNTk3ZjhmYmQ5NTdjZjRkNWVjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQ
bGF5YmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9S
ZW1vdGVQbGF5YmFjay5jcHAKQEAgLTUwLDggKzUwLDYgQEAgUmVmPFJlbW90ZVBsYXliYWNrPiBS
ZW1vdGVQbGF5YmFjazo6Y3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiBSZW1vdGVQ
bGF5YmFjazo6UmVtb3RlUGxheWJhY2soSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICA6
IFdlYkNvcmU6OkFjdGl2ZURPTU9iamVjdChlbGVtZW50LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKICAgICAsIG1fbWVkaWFFbGVtZW50KG1ha2VXZWFrUHRyKGVsZW1lbnQpKQotICAgICwgbV9l
dmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCi0gICAgLCBtX3Rh
c2tRdWV1ZShlbGVtZW50LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKIHsKICAgICBzdXNwZW5k
SWZOZWVkZWQoKTsKIH0KQEAgLTY5LDcgKzY3LDEwIEBAIHZvaWQgUmVtb3RlUGxheWJhY2s6Ondh
dGNoQXZhaWxhYmlsaXR5KFJlZjxSZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrPiYm
CiAgICAgLy8gMS4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS0+CiAgICAgLy8gMi4gUmV0
dXJuIHByb21pc2UsIGFuZCBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBiZWxvdzoKICAgICAKLSAg
ICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIHF1ZXVl
VGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBb
dGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldICgpIG11dGFibGUgeworICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIC8vIDMuIElmIHRoZSBkaXNhYmxlUmVtb3RlUGxh
eWJhY2sgYXR0cmlidXRlIGlzIHByZXNlbnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50LCByZWplY3Qg
dGhlIHByb21pc2Ugd2l0aAogICAgICAgICAvLyAgICBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJv
cnQgYWxsIHRoZSByZW1haW5pbmcgc3RlcHMuCiAgICAgICAgIGlmICghbV9tZWRpYUVsZW1lbnQK
QEAgLTk3LDcgKzk4LDkgQEAgdm9pZCBSZW1vdGVQbGF5YmFjazo6d2F0Y2hBdmFpbGFiaWxpdHko
UmVmPFJlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2s+JiYKICAgICAgICAgLy8gOC4g
RnVsZmlsbCBwcm9taXNlIHdpdGggdGhlIGNhbGxiYWNrSWQgYW5kIHJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzIGluIHBhcmFsbGVsOgogICAgICAgICBwcm9taXNlLT53aGVuU2V0dGxlZChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIGNhbGxiYWNrSWRdIHsKICAgICAgICAg
ICAgIC8vIDguMSBRdWV1ZSBhIHRhc2sgdG8gaW52b2tlIHRoZSBjYWxsYmFjayB3aXRoIHRoZSBj
dXJyZW50IGF2YWlsYWJpbGl0eSBmb3IgdGhlIG1lZGlhIGVsZW1lbnQuCi0gICAgICAgICAgICBt
X3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgY2FsbGJhY2tJZCwgYXZhaWxhYmxlID0gbV9h
dmFpbGFibGVdIHsKKyAgICAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhp
cywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgY2FsbGJhY2tJZCwgYXZhaWxhYmxl
ID0gbV9hdmFpbGFibGVdIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgYXV0byBmb3Vu
ZENhbGxiYWNrID0gbV9jYWxsYmFja01hcC5maW5kKGNhbGxiYWNrSWQpOwogICAgICAgICAgICAg
ICAgIGlmIChmb3VuZENhbGxiYWNrID09IG1fY2FsbGJhY2tNYXAuZW5kKCkpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTEyNCw3ICsxMjcsOSBAQCB2b2lkIFJlbW90ZVBsYXliYWNr
OjpjYW5jZWxXYXRjaEF2YWlsYWJpbGl0eShzdGQ6Om9wdGlvbmFsPGludDMyX3Q+IGlkLCBSZWY8
RGVmZQogICAgIC8vIDEuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UtPgogICAgIC8vIDIu
IFJldHVybiBwcm9taXNlLCBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgYmVsb3c6CiAKLSAg
ICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgaWQgPSBXVEZNb3ZlKGlkKSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldIHsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUo
KnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIGlkID0gV1RGTW92ZShpZCks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9w
cGVkKCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIDMuIElmIHRoZSBkaXNhYmxl
UmVtb3RlUGxheWJhY2sgYXR0cmlidXRlIGlzIHByZXNlbnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50
LCByZWplY3QgcHJvbWlzZSB3aXRoCiAgICAgICAgIC8vICAgIEludmFsaWRTdGF0ZUVycm9yIGFu
ZCBhYm9ydCBhbGwgdGhlIHJlbWFpbmluZyBzdGVwcy4KICAgICAgICAgaWYgKCFtX21lZGlhRWxl
bWVudApAQCAtMTY3LDcgKzE3MiwxMCBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpwcm9tcHQoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIC8vIDEuIExldCBwcm9taXNlIGJlIGEg
bmV3IHByb21pc2UtPgogICAgIC8vIDIuIFJldHVybiBwcm9taXNlLCBhbmQgcnVuIHRoZSBmb2xs
b3dpbmcgc3RlcHMgYmVsb3c6CiAKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IFVzZXJH
ZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKV0gKCkgbXV0YWJsZSB7Cisg
ICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVs
ZW1lbnQsIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpXSAo
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKwogICAgICAgICAvLyAzLiBJZiB0aGUgZGlzYWJsZVJlbW90ZVBsYXliYWNrIGF0
dHJpYnV0ZSBpcyBwcmVzZW50IGZvciB0aGUgbWVkaWEgZWxlbWVudCwgcmVqZWN0IHRoZSBwcm9t
aXNlIHdpdGgKICAgICAgICAgLy8gICAgSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IGFsbCB0
aGUgcmVtYWluaW5nIHN0ZXBzLgogICAgICAgICBpZiAoIW1fbWVkaWFFbGVtZW50CkBAIC0yNzAs
MTcgKzI3OCwxOSBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkK
IAogICAgIG1fc3RhdGUgPSBzdGF0ZTsKIAorICAgIFJlZlB0cjxFdmVudD4gZXZlbnQ7CiAgICAg
c3dpdGNoIChtX3N0YXRlKSB7CiAgICAgY2FzZSBTdGF0ZTo6Q29ubmVjdGVkOgotICAgICAgICBt
X2V2ZW50UXVldWUtPmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25u
ZWN0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykp
OworICAgICAgICBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNvbm5lY3RFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTdGF0ZTo6Q29ubmVjdGluZzoKLSAgICAgICAgbV9ldmVudFF1
ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY29ubmVjdGluZ0V2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAg
ICAgICAgZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25uZWN0aW5nRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgU3RhdGU6OkRpc2Nvbm5lY3RlZDoKLSAgICAgICAgbV9ldmVudFF1
ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGlzY29ubmVjdEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAg
ICAgICAgZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kaXNjb25uZWN0RXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tT
b3VyY2U6Ok1lZGlhRWxlbWVudCwgZXZlbnQucmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIHZvaWQg
UmVtb3RlUGxheWJhY2s6OmVzdGFibGlzaENvbm5lY3Rpb24oKQpAQCAtMzEwLDcgKzMyMCwxMCBA
QCB2b2lkIFJlbW90ZVBsYXliYWNrOjpkaXNjb25uZWN0KCkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gMi4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIG1f
dGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzXSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVj
dEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAg
IGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAg
Ly8gMi4xIFJlcXVlc3QgZGlzY29ubmVjdGlvbiBvZiByZW1vdGUgZnJvbSB0aGUgZGV2aWNlLiBJ
bXBsZW1lbnRhdGlvbiBpcyB1c2VyIGFnZW50IHNwZWNpZmljLgogICAgICAgICAvLyBOT1RFOiBJ
bXBsZW1lbnRlZCBieSBNZWRpYVBsYXllcjo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCgpCiAg
ICAgICAgIC8vIDIuMiBDaGFuZ2UgdGhlIHJlbW90ZSdzIHN0YXRlIHRvIGRpc2Nvbm5lY3RlZC4K
QEAgLTM3OCw3ICszOTEsMTAgQEAgdm9pZCBSZW1vdGVQbGF5YmFjazo6YXZhaWxhYmlsaXR5Q2hh
bmdlZChib29sIGF2YWlsYWJsZSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fYXZhaWxhYmxlID0g
YXZhaWxhYmxlOwogCi0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGF2YWlsYWJs
ZV0geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6
TWVkaWFFbGVtZW50LCBbdGhpcywgYXZhaWxhYmxlXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRT
dG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgLy8gUHJvdGVjdCBtX2Nh
bGxiYWNrTWFwIGFnYWluc3QgbXV0YXRpb24gd2hpbGUgaXQncyBiZWluZyBpdGVyYXRlZCBvdmVy
LgogICAgICAgICBWZWN0b3I8UmVmPFJlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2s+
PiBjYWxsYmFja3M7CiAgICAgICAgIGNhbGxiYWNrcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1f
Y2FsbGJhY2tNYXAuc2l6ZSgpKTsKQEAgLTQwMSwxMiArNDE3LDYgQEAgY29uc3QgY2hhciogUmVt
b3RlUGxheWJhY2s6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiUmVt
b3RlUGxheWJhY2siOwogfQogCi12b2lkIFJlbW90ZVBsYXliYWNrOjpzdG9wKCkKLXsKLSAgICBt
X3Rhc2tRdWV1ZS5jbG9zZSgpOwotICAgIG1fZXZlbnRRdWV1ZS0+Y2xvc2UoKTsKLX0KLQogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaApp
bmRleCBhNTU3ZDFlNzk2YzQxZmFmYTY0MGUzOWEzNTU4NmNlNDFlNjQyN2M5Li4wNDU3MzhlMzg3
MDZmMzliMjI3ZDFkOTY4OGExNmQyMmJhZDYxOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5oCkBAIC0yOCw3ICsy
OCw2IEBACiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIAogI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNp
bmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgpAQCAtODEsNyArODAsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gQWN0aXZl
RE9NT2JqZWN0LgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBm
aW5hbDsKLSAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAogICAgIC8vIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEuCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBSZW1vdGVQbGF5YmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQpAQCAtOTksOSArOTcsNiBAQCBwcml2YXRlOgogICAgIFByb21pc2VWZWN0b3IgbV9w
cm9tcHRQcm9taXNlczsKICAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OkRpc2Nvbm5lY3RlZCB9
OwogICAgIGJvb2wgbV9hdmFpbGFibGUgeyBmYWxzZSB9OwotCi0gICAgVW5pcXVlUmVmPEV2ZW50
TG9vcEV2ZW50UXVldWU+IG1fZXZlbnRRdWV1ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV90
YXNrUXVldWU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwCmluZGV4IDk5NDA5MWFmYzU1NTg5NzE2
N2Q1MWFiMDEyNGE2Yjk3ODgwYjY3ZTAuLmI1NWQ2MGIzYmM1ZjBkMzc1NzAzMGNmYzJjNDE5ODli
NjJiZjMxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lc0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1
bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1fY3VycmVudFRpbWVDbGVh
cmluZ1Rhc2tRdWV1ZSgmZG9jdW1lbnQpCisgICAgOiBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNr
KCZkb2N1bWVudCkKICAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiAgICAgaWYgKGF1dG8q
IHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpIHsKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBEb2N1bWVu
dFRpbWVsaW5lc0NvbnRyb2xsZXI6OnJlbW92ZVRpbWVsaW5lKERvY3VtZW50VGltZWxpbmUmIHRp
bWVsaW5lKQogCiB2b2lkIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJvbURv
Y3VtZW50KCkKIHsKLSAgICBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUuY2xvc2UoKTsK
KyAgICBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrLmNsb3NlKCk7CiAKICAgICB3aGlsZSAoIW1f
dGltZWxpbmVzLmNvbXB1dGVzRW1wdHkoKSkKICAgICAgICAgbV90aW1lbGluZXMuYmVnaW4oKS0+
ZGV0YWNoRnJvbURvY3VtZW50KCk7CkBAIC0yMzMsOCArMjMzLDggQEAgdm9pZCBEb2N1bWVudFRp
bWVsaW5lc0NvbnRyb2xsZXI6OmNhY2hlQ3VycmVudFRpbWUoUmVkdWNlZFJlc29sdXRpb25TZWNv
bmRzIG5ld0MKICAgICAvLyBhbmltYXRpb25zLCBzbyB3ZSBzY2hlZHVsZSB0aGUgaW52YWxpZGF0
aW9uIHRhc2sgYW5kIHJlZ2lzdGVyIGEgd2hlbklkbGUgY2FsbGJhY2sgb24gdGhlIFZNLCB3aGlj
aCB3aWxsCiAgICAgLy8gZmlyZSBzeW5jcm9ub3VzbHkgaWYgbm8gSlMgaXMgcnVubmluZy4KICAg
ICBtX3dhaXRpbmdPblZNSWRsZSA9IHRydWU7Ci0gICAgaWYgKCFtX2N1cnJlbnRUaW1lQ2xlYXJp
bmdUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCi0gICAgICAgIG1fY3VycmVudFRpbWVDbGVh
cmluZ1Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVzQ29u
dHJvbGxlcjo6bWF5YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lLCB0aGlzKSk7CisgICAgaWYgKCFt
X2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrLmlzUGVuZGluZygpKQorICAgICAgICBtX2N1cnJlbnRU
aW1lQ2xlYXJpbmdUYXNrLnNjaGVkdWxlVGFzayhzdGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVz
Q29udHJvbGxlcjo6bWF5YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lLCB0aGlzKSk7CiAgICAgLy8g
V2UgZXh0ZW50IHRoZSBhc3NvY2lhdGVkIERvY3VtZW50J3MgbGlmZWN5Y2xlIHVudGlsIHRoZSBW
TSBiZWNhbWUgaWRsZSBzaW5jZSB0aGUgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyCiAgICAg
Ly8gaXMgb3duZWQgYnkgdGhlIERvY3VtZW50LgogICAgIG1fZG9jdW1lbnQudm0oKS53aGVuSWRs
ZShbdGhpcywgcHJvdGVjdGVkRG9jdW1lbnQgPSBtYWtlUmVmUHRyKG1fZG9jdW1lbnQpXSgpIHsK
QEAgLTI0OSw3ICsyNDksNyBAQCB2b2lkIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5
YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lKCkKICAgICAvLyBKUyBvciB3YWl0aW5nIG9uIGFsbCBj
dXJyZW50IGFuaW1hdGlvbiB1cGRhdGluZyBjb2RlIHRvIGhhdmUgY29tcGxldGVkLiBUaGlzIGlz
IHNvIHRoYXQKICAgICAvLyB3ZSdyZSBndWFyYW50ZWVkIHRvIGhhdmUgYSBjb25zaXN0ZW50IGN1
cnJlbnQgdGltZSByZXBvcnRlZCBmb3IgYWxsIHdvcmsgaGFwcGVuaW5nIGluIGEgZ2l2ZW4KICAg
ICAvLyBKUyBmcmFtZSBvciB0aHJvdWdob3V0IHVwZGF0aW5nIGFuaW1hdGlvbnMgaW4gV2ViQ29y
ZS4KLSAgICBpZiAoIW1faXNTdXNwZW5kZWQgJiYgIW1fd2FpdGluZ09uVk1JZGxlICYmICFtX2N1
cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCisgICAgaWYgKCFt
X2lzU3VzcGVuZGVkICYmICFtX3dhaXRpbmdPblZNSWRsZSAmJiAhbV9jdXJyZW50VGltZUNsZWFy
aW5nVGFzay5pc1BlbmRpbmcoKSkKICAgICAgICAgbV9jYWNoZWRDdXJyZW50VGltZSA9IHN0ZDo6
bnVsbG9wdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmVzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmVzQ29udHJvbGxlci5oCmluZGV4IDQyMTI3OGUzMjNhY2FiOGZmMTJlMWY2YjM1
NTc3ZjQ4Zjc2Y2E2NzkuLjJhMTEwNGY3OTdkNTAzZmM0MmE3NDNlZWRkYWNjZWU2NjgyZWFlZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0Nv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCisjaW5jbHVkZSAiRGVmZXJyYWJsZVRhc2suaCIKICNp
bmNsdWRlICJSZWR1Y2VkUmVzb2x1dGlvblNlY29uZHMuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgbWF5YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lKCk7CiAKICAgICBXZWFrSGFzaFNldDxE
b2N1bWVudFRpbWVsaW5lPiBtX3RpbWVsaW5lczsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9j
dXJyZW50VGltZUNsZWFyaW5nVGFza1F1ZXVlOworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNr
IG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2s7CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAg
ICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25kczo6TWFya2FibGVUcmFpdHM+IG1fY2FjaGVkQ3Vy
cmVudFRpbWU7CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IDk3NDZjNjVhMTgzNjBkZWVjZDJjNzk0
MGRhOTJmMzYwYjljNDhiYTIuLjY2MDZmNmZhNGJmYzk5M2E4MjlmODFkZWJiOTA2OWI1Nzg5ZDk2
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDgsNyAr
NDgsNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBGdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudCB7
IGRvY3VtZW50IH0KLSAgICAsIG1fZnVsbHNjcmVlblRhc2tRdWV1ZSB7ICZkb2N1bWVudCB9CiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoTG9nZ2VySGVs
cGVyOjp1bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKQEAgLTY0LDggKzYzLDkgQEAgdm9p
ZCBGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
IGVsZW1lbnQsIEZ1bGxzY3JlZW4KIAogICAgIGF1dG8gZmFpbGVkUHJlZmxpZ2h0cyA9IFt0aGlz
XShhdXRvIGVsZW1lbnQpIG11dGFibGUgewogICAgICAgICBtX2Z1bGxzY3JlZW5FcnJvckV2ZW50
VGFyZ2V0UXVldWUuYXBwZW5kKFdURk1vdmUoZWxlbWVudCkpOwotICAgICAgICBtX2Z1bGxzY3Jl
ZW5UYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdIHsKLSAgICAgICAgICAgIGRpc3BhdGNoRnVs
bHNjcmVlbkNoYW5nZUV2ZW50cygpOworICAgICAgICBtX2RvY3VtZW50LmV2ZW50TG9vcCgpLnF1
ZXVlVGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0geworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHdl
YWtUaGlzLT5kaXNwYXRjaEZ1bGxzY3JlZW5DaGFuZ2VFdmVudHMoKTsKICAgICAgICAgfSk7CiAg
ICAgfTsKIApAQCAtMTE0LDcgKzExNCwxMCBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1
ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbHNjcmVlbgogCiAg
ICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBlbGVtZW50OwogCi0gICAgbV9mdWxsc2Ny
ZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBlbGVtZW50ID0gbWFrZVJlZlB0cihlbGVt
ZW50KSwgY2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2VzcywgZmFpbGVkUHJlZmxpZ2h0cywgaWRl
bnRpZmllciA9IExPR0lERU5USUZJRVJdICgpIG11dGFibGUgeworICAgIG1fZG9jdW1lbnQuZXZl
bnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBlbGVtZW50ID0gbWFrZVJlZlB0cihlbGVtZW50KSwg
Y2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2VzcywgZmFpbGVkUHJlZmxpZ2h0cywgaWRlbnRpZmll
ciA9IExPR0lERU5USUZJRVJdICgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIC8vIERvbid0IGFsbG93IGZ1bGxzY3JlZW4g
aWYgaXQgaGFzIGJlZW4gY2FuY2VsbGVkIG9yIGEgZGlmZmVyZW50IGZ1bGxzY3JlZW4gZWxlbWVu
dAogICAgICAgICAvLyBoYXMgcmVxdWVzdGVkIGZ1bGxzY3JlZW4uCiAgICAgICAgIGlmIChtX3Bl
bmRpbmdGdWxsc2NyZWVuRWxlbWVudCAhPSBlbGVtZW50KSB7CkBAIC0yMjMsNyArMjI2LDEwIEBA
IHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudChFbGVt
ZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuCiAgICAgICAgIC8vIDUuIFJldHVybiwgYW5kIHJ1biB0
aGUgcmVtYWluaW5nIHN0ZXBzIGFzeW5jaHJvbm91c2x5LgogICAgICAgICAvLyA2LiBPcHRpb25h
bGx5LCBwZXJmb3JtIHNvbWUgYW5pbWF0aW9uLgogICAgICAgICBtX2FyZUtleXNFbmFibGVkSW5G
dWxsc2NyZWVuID0gaGFzS2V5Ym9hcmRBY2Nlc3M7Ci0gICAgICAgIG1fZnVsbHNjcmVlblRhc2tR
dWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgZWxlbWVudCA9IFdURk1vdmUoZWxlbWVudCksIGZhaWxl
ZFByZWZsaWdodHMgPSBXVEZNb3ZlKGZhaWxlZFByZWZsaWdodHMpLCBpZGVudGlmaWVyXSAoKSBt
dXRhYmxlIHsKKyAgICAgICAgbV9kb2N1bWVudC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1Nv
dXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IGVsZW1lbnQgPSBXVEZNb3ZlKGVsZW1lbnQpLCBmYWlsZWRQcmVmbGlnaHRzID0gV1RGTW92ZShm
YWlsZWRQcmVmbGlnaHRzKSwgaWRlbnRpZmllcl0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICAgICAgYXV0
byBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgICAgICAgICAgaWYgKCFwYWdlIHx8IGRvY3VtZW50
KCkuaGlkZGVuKCkgfHwgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgIT0gZWxlbWVudCB8fCAh
ZWxlbWVudC0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICAgICAgICAgIEVSUk9SX0xPRyhpZGVu
dGlmaWVyLCAidGFzayAtIHBhZ2UsIGRvY3VtZW50LCBvciBlbGVtZW50IG1pc21hdGNoOyBmYWls
aW5nLiIpOwpAQCAtMzI3LDcgKzMzMywxMCBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpleGl0
RnVsbHNjcmVlbigpCiAKICAgICAvLyA2LiBSZXR1cm4sIGFuZCBydW4gdGhlIHJlbWFpbmluZyBz
dGVwcyBhc3luY2hyb25vdXNseS4KICAgICAvLyA3LiBPcHRpb25hbGx5LCBwZXJmb3JtIHNvbWUg
YW5pbWF0aW9uLgotICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywg
bmV3VG9wID0gbWFrZVJlZlB0cihuZXdUb3ApLCBmdWxsc2NyZWVuRWxlbWVudCA9IG1fZnVsbHNj
cmVlbkVsZW1lbnQsIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSXSB7CisgICAgbV9kb2N1bWVu
dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIG5ld1RvcCA9IG1ha2VSZWZQdHIobmV3VG9w
KSwgZnVsbHNjcmVlbkVsZW1lbnQgPSBtX2Z1bGxzY3JlZW5FbGVtZW50LCBpZGVudGlmaWVyID0g
TE9HSURFTlRJRklFUl0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuOworCiAgICAgICAgIGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgICAgIGlmICgh
cGFnZSkgewogICAgICAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJ0YXNrIC0gRG9jdW1l
bnQgbm90IGluIHBhZ2U7IGJhaWxpbmcuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFu
YWdlci5oCmluZGV4IDRiZDFhM2U4YmVmYjhlOWYyMDE2NzVkZGMyNDcwODkyYjc1YjBiYjMuLjVi
ZmUzOGRhNjRlNGVkYWVmZWRjYzNkYWQ4MzFmYmYzOGMxZDMxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0yOCw5ICsyOCw5IEBACiAjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJHZW5lcmljVGFz
a1F1ZXVlLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzgsNyArMzgsNyBAQCBjbGFzcyBSZW5kZXJGdWxsU2NyZWVuOwogY2xhc3MgUmVuZGVyVHJlZUJ1
aWxkZXI7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIAotY2xhc3MgRnVsbHNjcmVlbk1hbmFnZXIgZmlu
YWwgeworY2xhc3MgRnVsbHNjcmVlbk1hbmFnZXIgZmluYWwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8RnVsbHNjcmVlbk1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBGdWxsc2NyZWVuTWFuYWdlcihEb2N1bWVudCYpOwpAQCAtMTE5LDcgKzExOSw2
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZnVsbHNjcmVlbkVsZW1lbnQ7CiAg
ICAgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4gbV9mdWxsc2NyZWVuRWxlbWVudFN0YWNrOwogICAg
IFdlYWtQdHI8UmVuZGVyRnVsbFNjcmVlbj4gbV9mdWxsc2NyZWVuUmVuZGVyZXIgeyBudWxscHRy
IH07Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKICAgICBE
ZXF1ZTxSZWZQdHI8Tm9kZT4+IG1fZnVsbHNjcmVlbkNoYW5nZUV2ZW50VGFyZ2V0UXVldWU7CiAg
ICAgRGVxdWU8UmVmUHRyPE5vZGU+PiBtX2Z1bGxzY3JlZW5FcnJvckV2ZW50VGFyZ2V0UXVldWU7
CiAgICAgTGF5b3V0UmVjdCBtX3NhdmVkUGxhY2Vob2xkZXJGcmFtZVJlY3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0ODcyMjAwZDkxOTIwYWRhMjk2ZWVl
N2Q3YTJjZmJhZTk2ODkwNTg4Li4zZjQ4ZWRiMmU2ODg4OWMxMDM2ODNkZTYzNGM1ZTBjYTA1NDU1
NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQwMywx
MiArNDAzLDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fc2Vla1Rhc2soJmRv
Y3VtZW50KQogICAgICwgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rp
b25zVGFzaygmZG9jdW1lbnQpCiAgICAgLCBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWRUYXNr
KCZkb2N1bWVudCkKLSAgICAsIG1fcHJvbWlzZVRhc2tRdWV1ZSgmZG9jdW1lbnQpCi0gICAgLCBt
X3BhdXNlQWZ0ZXJEZXRhY2hlZFRhc2tRdWV1ZSgmZG9jdW1lbnQpCiAgICAgLCBtX3Jlc291cmNl
U2VsZWN0aW9uVGFza1F1ZXVlKCZkb2N1bWVudCkKLSAgICAsIG1fdmlzaWJpbGl0eUNoYW5nZVRh
c2tRdWV1ZSgmZG9jdW1lbnQpCi0gICAgLCBtX2Z1bGxzY3JlZW5UYXNrUXVldWUoJmRvY3VtZW50
KQotICAgICwgbV9wbGF5YmFja1RhcmdldElzV2lyZWxlc3NRdWV1ZSgmZG9jdW1lbnQpCiAgICAg
LCBtX2FzeW5jRXZlbnRRdWV1ZShFdmVudExvb3BFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLCBtX3ZvbHVtZVJldmVydFRhc2soJmRvY3Vt
ZW50KQpAQCAtNDUxLDkgKzQ0Niw2IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBt
X3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlKGZhbHNlKQogICAgICwgbV9zaG91bGRBdWRpb1Bs
YXliYWNrUmVxdWlyZVVzZXJHZXN0dXJlKGRvY3VtZW50LnRvcERvY3VtZW50KCkuYXVkaW9QbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkKICAgICAsIG1fc2hvdWxkVmlkZW9QbGF5YmFja1JlcXVpcmVVc2VyR2VzdHVyZShkb2N1
bWVudC50b3BEb2N1bWVudCgpLnZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkgJiYg
IXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKLSAgICAsIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZSgmZG9jdW1lbnQpCi0jZW5kaWYKICNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgICwgbV9yZW1vdGUoUmVtb3Rl
UGxheWJhY2s6OmNyZWF0ZSgqdGhpcykpCiAjZW5kaWYKQEAgLTU4OSwxNCArNTgxLDggQEAgSFRN
TE1lZGlhRWxlbWVudDo6fkhUTUxNZWRpYUVsZW1lbnQoKQogCiAgICAgbV9zZWVrVGFzay5jbG9z
ZSgpOwogICAgIG1fcmVzdW1lVGFzay5jbG9zZSgpOwotICAgIG1fcHJvbWlzZVRhc2tRdWV1ZS5j
bG9zZSgpOwotICAgIG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlLmNsb3NlKCk7CiAgICAg
bV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGFzay5jbG9zZSgp
OwogICAgIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVldWUuY2xvc2UoKTsKLSAgICBtX3Zpc2li
aWxpdHlDaGFuZ2VUYXNrUXVldWUuY2xvc2UoKTsKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQotICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5jbG9zZSgpOwotI2VuZGlmCiAKICAgICBtX2Nv
bXBsZXRlbHlMb2FkZWQgPSB0cnVlOwogCkBAIC04NjQsNyArODUwLDEwIEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwg
Q29udGFpbmVyTm9kCiAgICAgc2V0SW5BY3RpdmVEb2N1bWVudChmYWxzZSk7CiAgICAgaWYgKHJl
bW92YWxUeXBlLmRpc2Nvbm5lY3RlZEZyb21Eb2N1bWVudCkgewogICAgICAgICAvLyBQYXVzZSBh
c3luY2hyb25vdXNseSB0byBsZXQgdGhlIG9wZXJhdGlvbiB0aGF0IHJlbW92ZWQgdXMgZmluaXNo
LCBpbiBjYXNlIHdlIGdldCBpbnNlcnRlZCBiYWNrIGludG8gYSBkb2N1bWVudC4KLSAgICAgICAg
bV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVldWUuZW5xdWV1ZVRhc2soc3RkOjpiaW5kKCZIVE1M
TWVkaWFFbGVtZW50OjpwYXVzZUFmdGVyRGV0YWNoZWRUYXNrLCB0aGlzKSk7CisgICAgICAgIHF1
ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50
LCBbdGhpc10geworICAgICAgICAgICAgaWYgKCFpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAg
ICAgICAgICAgcGF1c2VBZnRlckRldGFjaGVkVGFzaygpOworICAgICAgICB9KTsKICAgICB9CiAK
ICAgICBpZiAobV9tZWRpYVNlc3Npb24pCkBAIC05NDgsOCArOTM3LDkgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzY2hlZHVsZVJlc29sdmVQZW5kaW5nUGxheVByb21pc2VzKCkKICAgICBpZiAo
bV9wZW5kaW5nUGxheVByb21pc2VzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9wcm9taXNlVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwZW5kaW5nUGxheVByb21pc2Vz
ID0gV1RGTW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAg
cmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMoV1RGTW92ZShwZW5kaW5nUGxheVByb21pc2VzKSk7
CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRp
YUVsZW1lbnQsIFt0aGlzLCBwZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQ
bGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFpc0NvbnRleHRTdG9wcGVk
KCkpCisgICAgICAgICAgICByZXNvbHZlUGVuZGluZ1BsYXlQcm9taXNlcyhXVEZNb3ZlKHBlbmRp
bmdQbGF5UHJvbWlzZXMpKTsKICAgICB9KTsKIH0KIApAQCAtOTU4LDggKzk0OCw5IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVSZWplY3RQZW5kaW5nUGxheVByb21pc2VzKFJlZjxE
T01FeGNlcHRpb24+JiYgZXJyCiAgICAgaWYgKG1fcGVuZGluZ1BsYXlQcm9taXNlcy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJvbWlzZVRhc2tRdWV1ZS5lbnF1ZXVlVGFz
ayhbdGhpcywgZXJyb3IgPSBXVEZNb3ZlKGVycm9yKSwgcGVuZGluZ1BsYXlQcm9taXNlcyA9IFdU
Rk1vdmUobV9wZW5kaW5nUGxheVByb21pc2VzKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIHJlamVj
dFBlbmRpbmdQbGF5UHJvbWlzZXMoV1RGTW92ZShwZW5kaW5nUGxheVByb21pc2VzKSwgV1RGTW92
ZShlcnJvcikpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1Nv
dXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgZXJyb3IgPSBXVEZNb3ZlKGVycm9yKSwgcGVuZGlu
Z1BsYXlQcm9taXNlcyA9IFdURk1vdmUobV9wZW5kaW5nUGxheVByb21pc2VzKV0gKCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmVqZWN0
UGVuZGluZ1BsYXlQcm9taXNlcyhXVEZNb3ZlKHBlbmRpbmdQbGF5UHJvbWlzZXMpLCBXVEZNb3Zl
KGVycm9yKSk7CiAgICAgfSk7CiB9CiAKQEAgLTk3Nyw4ICs5NjgsOSBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnJlc29sdmVQZW5kaW5nUGxheVByb21pc2VzKFBsYXlQcm9taXNlVmVjdG9yJiYg
cGVuZGluZ1BsYQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTm90aWZ5QWJvdXRQ
bGF5aW5nKCkKIHsKLSAgICBtX3Byb21pc2VUYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHBl
bmRpbmdQbGF5UHJvbWlzZXMgPSBXVEZNb3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyldICgpIG11
dGFibGUgewotICAgICAgICBub3RpZnlBYm91dFBsYXlpbmcoV1RGTW92ZShwZW5kaW5nUGxheVBy
b21pc2VzKSk7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291
cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBwZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZSht
X3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFpc0NvbnRl
eHRTdG9wcGVkKCkpCisgICAgICAgICAgICBub3RpZnlBYm91dFBsYXlpbmcoV1RGTW92ZShwZW5k
aW5nUGxheVByb21pc2VzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTI2MDYsNyArMjU5OCwxMCBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhS2V5cyhNZWRpYUtleXMqIG1lZGlhS2V5cywg
UmVmPERlZmVycmVkUHJvbWlzZT4mJgogCiAgICAgLy8gNC4gTGV0IHByb21pc2UgYmUgYSBuZXcg
cHJvbWlzZS4KICAgICAvLyA1LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoK
LSAgICBtX2VuY3J5cHRlZE1lZGlhUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIG1lZGlhS2V5cyA9
IFJlZlB0cjxNZWRpYUtleXM+KG1lZGlhS2V5cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XSgpIG11dGFibGUgeworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFz
a1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgbWVkaWFLZXlzID0gUmVmUHRyPE1lZGlhS2V5
cz4obWVkaWFLZXlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKICAg
ICAgICAgLy8gNS4xLiBJZiBhbGwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGhvbGQ6CiAgICAg
ICAgIC8vICAgICAgLSBtZWRpYUtleXMgaXMgbm90IG51bGwsCiAgICAgICAgIC8vICAgICAgLSB0
aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IG1lZGlhS2V5cyBpcyBhbHJlYWR5IGluIHVz
ZSBieSBhbm90aGVyIG1lZGlhIGVsZW1lbnQKQEAgLTI2NDEsOCArMjYzNiw5IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c2V0TWVkaWFLZXlzKE1lZGlhS2V5cyogbWVkaWFLZXlzLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmCiAgICAgICAgICAgICAvLyBGSVhNRTogXgogCiAgICAgICAgICAgICAv
LyA1LjMuMy4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgQXR0ZW1wdCB0byBSZXN1bWUgUGxheWJh
Y2sgSWYgTmVjZXNzYXJ5IGFsZ29yaXRobSBvbiB0aGUgbWVkaWEgZWxlbWVudC4KLSAgICAgICAg
ICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpc10gewotICAgICAgICAg
ICAgICAgIGF0dGVtcHRUb1Jlc3VtZVBsYXliYWNrSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgICAg
IHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVt
ZW50LCBbdGhpc10geworICAgICAgICAgICAgICAgIGlmICghaXNDb250ZXh0U3RvcHBlZCgpKQor
ICAgICAgICAgICAgICAgICAgICBhdHRlbXB0VG9SZXN1bWVQbGF5YmFja0lmTmVjZXNzYXJ5KCk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC01NjUxLDEzICs1NjQ3LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpjbG9zZVRhc2tRdWV1ZXMoKQogICAgIG1fcGxheWJhY2tDb250
cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1Rhc2suY2xvc2UoKTsKICAgICBtX3NlZWtU
YXNrLmNsb3NlKCk7CiAgICAgbV9yZXN1bWVUYXNrLmNsb3NlKCk7Ci0gICAgbV9wcm9taXNlVGFz
a1F1ZXVlLmNsb3NlKCk7Ci0gICAgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVldWUuY2xvc2Uo
KTsKICAgICBtX3Jlc291cmNlU2VsZWN0aW9uVGFza1F1ZXVlLmNsb3NlKCk7Ci0gICAgbV92aXNp
YmlsaXR5Q2hhbmdlVGFza1F1ZXVlLmNsb3NlKCk7Ci0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKLSAgICBtX2VuY3J5cHRlZE1lZGlhUXVldWUuY2xvc2UoKTsKLSNlbmRpZgogICAgIG1fYXN5
bmNFdmVudFF1ZXVlLT5jbG9zZSgpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgbV92
b2x1bWVSZXZlcnRUYXNrLmNsb3NlKCk7CkBAIC01NzUwLDcgKzU3NDAsNiBAQCBib29sIEhUTUxN
ZWRpYUVsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2NyZWF0aW5nQ29udHJvbHMKICAgICAgICAgfHwgbV9hc3luY0V2ZW50UXVldWUtPmhh
c1BlbmRpbmdBY3Rpdml0eSgpCi0gICAgICAgIHx8IG1fcGxheWJhY2tUYXJnZXRJc1dpcmVsZXNz
UXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkKICAgICAgICAgfHwgbV9yZXNvdXJjZVNlbGVjdGlvblRh
c2tRdWV1ZS5oYXNQZW5kaW5nVGFza3MoKQogICAgICAgICB8fCAoaGFzQXVkaW8oKSAmJiBpc1Bs
YXlpbmcoKSkKICAgICAgICAgfHwgKGhhc0xpdmVTb3VyY2UoKSAmJiBoYXNFdmVudExpc3RlbmVy
cygpKTsKQEAgLTU4MzgsNyArNTgyNywxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyQ3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoYm9vbCBpcwogdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRJc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KGJvb2wgaXNQ
bGF5aW5nVG9XaXJlbGVzc1RhcmdldCkKIHsKICAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0g
TE9HSURFTlRJRklFUjsKLSAgICBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlLmVucXVl
dWVUYXNrKFt0aGlzLCBpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0LCBsb2dTaXRlSWRlbnRpZmll
cl0geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6
TWVkaWFFbGVtZW50LCBbdGhpcywgaXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCwgbG9nU2l0ZUlk
ZW50aWZpZXJdIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKwogICAgICAgICBVTlVTRURfUEFSQU0obG9nU2l0ZUlkZW50aWZpZXIpOwogCiAg
ICAgICAgIGlmIChpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0ID09IG1faXNQbGF5aW5nVG9XaXJl
bGVzc1RhcmdldCkKQEAgLTYwNTUsNyArNjA0NywxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgfQogI2VuZGlm
CiAKLSAgICBtX2Z1bGxzY3JlZW5UYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIG1vZGVdIHsK
KyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlh
RWxlbWVudCwgW3RoaXMsIG1vZGVdIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAoZG9jdW1lbnQoKS5oaWRkZW4oKSkg
ewogICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiIHJldHVybmluZyBiZWNh
dXNlIGRvY3VtZW50IGlzIGhpZGRlbiIpOwogICAgICAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVs
bHNjcmVlbk1vZGUgPSBmYWxzZTsKQEAgLTgwMDIsNyArNzk5Nyw5IEBAIGJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6aXNWaWRlb1Rvb1NtYWxsRm9ySW5saW5lUGxheWJhY2soKQogCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmlzVmlzaWJsZUluVmlld3BvcnRDaGFuZ2VkKCkKIHsKLSAgICBtX3Zpc2li
aWxpdHlDaGFuZ2VUYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdIHsKKyAgICBxdWV1ZVRhc2tL
ZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXNd
IHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgbWVkaWFTZXNzaW9uKCkuaXNWaXNpYmxlSW5WaWV3cG9ydENoYW5nZWQoKTsKICAg
ICAgICAgdXBkYXRlU2hvdWxkQXV0b3BsYXkoKTsKICAgICAgICAgc2NoZWR1bGVQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlclVwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCA5ZmM4MTZiMGM5YTdkMTgyNjQwOGRlZGYxMmU4NmY3MzJiNjdiOTZlLi4wOTJiOGFm
OWM4YTMyZGFlMTdiMmY2YWYyMWJjMmFkNGEzYjZjNGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtOTUwLDEyICs5NTAsNyBAQCBwcml2YXRlOgogICAgIEV2ZW50
TG9vcERlZmVycmFibGVUYXNrIG1fc2Vla1Rhc2s7CiAgICAgRXZlbnRMb29wRGVmZXJyYWJsZVRh
c2sgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGFzazsKICAg
ICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWRUYXNr
OwotICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Byb21pc2VUYXNrUXVldWU7Ci0gICAgRXZlbnRM
b29wVGFza1F1ZXVlIG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlOwogICAgIEV2ZW50TG9v
cFRhc2tRdWV1ZSBtX3Jlc291cmNlU2VsZWN0aW9uVGFza1F1ZXVlOwotICAgIEV2ZW50TG9vcFRh
c2tRdWV1ZSBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNrUXVldWU7Ci0gICAgRXZlbnRMb29wVGFza1F1
ZXVlIG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9wbGF5
YmFja1RhcmdldElzV2lyZWxlc3NRdWV1ZTsKICAgICBSZWZQdHI8VGltZVJhbmdlcz4gbV9wbGF5
ZWRUaW1lUmFuZ2VzOwogICAgIFVuaXF1ZVJlZjxFdmVudExvb3BFdmVudFF1ZXVlPiBtX2FzeW5j
RXZlbnRRdWV1ZTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTE1OSw3ICsxMTU0LDYg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWVkaWFLZXlzPiBtX21lZGlhS2V5czsKICAgICBib29s
IG1fYXR0YWNoaW5nTWVkaWFLZXlzIHsgZmFsc2UgfTsKICAgICBib29sIG1fcGxheWJhY2tCbG9j
a2VkV2FpdGluZ0ZvcktleSB7IGZhbHNlIH07Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fZW5j
cnlwdGVkTWVkaWFRdWV1ZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKaW5kZXggMWQw
MzQ2MWM3NGI1ZDBhNTI1NTI3YTQ1OGQxNmNmOWNlYjFkM2U0MS4uZTNkMTRjYTc5YmY0ZDQyZjRj
NDc2YzkzZDNkZTUwOTkyZmM3YThkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHAKQEAgLTc1LDcgKzc1LDYgQEAgUmVmPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQKIAogTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQmIGVs
ZW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQotICAgICwgbV90
YXNrUXVldWUoJmRvY3VtZW50KQogICAgICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIoJmVs
ZW1lbnQpKQogewogfQpAQCAtMzg3LDggKzM4Niw5IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6ZXMoRm9yY2VVcGRhdGUgZm9yY2UpCiAgICAg
Zm9yIChhdXRvJiBhY3RpdmVDdWUgOiBtX21lZGlhRWxlbWVudC0+Y3VycmVudGx5QWN0aXZlQ3Vl
cygpKQogICAgICAgICBhY3RpdmVDdWUuZGF0YSgpLT5yZWNhbGN1bGF0ZVN0eWxlcygpOwogCi0g
ICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdICgpIHsKLSAgICAgICAgdXBkYXRlRGlz
cGxheSgpOworICAgIGRvY3VtZW50KCkuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6
Ok1lZGlhRWxlbWVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoKSB7CisgICAg
ICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT51cGRhdGVEaXNwbGF5KCk7
CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaAppbmRleCA3
ZTQyYTRkMzViOWNlZGRiNjUxMGIzMmQ5YzU5ZTliYTk2Y2RiNzAyLi43OTA5Y2MyNDBhMWQ2MzUy
MjUzMmZiOTdhMjViNDYyNjAyZTIxOWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5oCkBAIC0zMSw3ICszMSw2IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRl
ICJHZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNs
dWRlICJNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbi5oIgpAQCAtOTcsNyArOTYsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFRleHRUcmFja1JlcHJlc2VudGF0aW9uPiBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9u
OwogCi0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fdGFza1F1ZXVlOwogICAgIFdlYWtQdHI8SFRN
TE1lZGlhRWxlbWVudD4gbV9tZWRpYUVsZW1lbnQ7CiAgICAgSW50UmVjdCBtX3ZpZGVvRGlzcGxh
eVNpemU7CiAgICAgaW50IG1fZm9udFNpemUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UcmFja0xpc3RCYXNlLmNwcAppbmRleCBiNmYxN2JkNTI2YzEwNjY4NGI1MDk5YzliMDFk
NDE4OWQ1YjNjMGRkLi5lNzkxNDMzYzU5ZThmODM5MDEwZWJhNWEwZjE2MmQ3MDUwYTQxYWI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAKQEAgLTQyLDcg
KzQyLDYgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFRyYWNrTGlzdEJhc2UpOwogVHJh
Y2tMaXN0QmFzZTo6VHJhY2tMaXN0QmFzZShXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGVsZW1l
bnQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01PYmpl
Y3QoY29udGV4dCkKICAgICAsIG1fZWxlbWVudChlbGVtZW50KQotICAgICwgbV9hc3luY0V2ZW50
UXVldWUoRXZlbnRMb29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKIHsKICAgICBBU1NFUlQo
IWNvbnRleHQgfHwgaXM8RG9jdW1lbnQ+KGNvbnRleHQpKTsKIH0KQEAgLTk3LDcgKzk2LDcgQEAg
Ym9vbCBUcmFja0xpc3RCYXNlOjpjb250YWlucyhUcmFja0Jhc2UmIHRyYWNrKSBjb25zdAogCiB2
b2lkIFRyYWNrTGlzdEJhc2U6OnNjaGVkdWxlVHJhY2tFdmVudChjb25zdCBBdG9tU3RyaW5nJiBl
dmVudE5hbWUsIFJlZjxUcmFja0Jhc2U+JiYgdHJhY2spCiB7Ci0gICAgbV9hc3luY0V2ZW50UXVl
dWUtPmVucXVldWVFdmVudChUcmFja0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIFdURk1vdmUodHJhY2spKSk7Cisg
ICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1l
bnQsIFRyYWNrRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObywgV1RGTW92ZSh0cmFjaykpKTsKIH0KIAogdm9pZCBUcmFj
a0xpc3RCYXNlOjpzY2hlZHVsZUFkZFRyYWNrRXZlbnQoUmVmPFRyYWNrQmFzZT4mJiB0cmFjaykK
QEAgLTE2MCwxMiArMTU5LDE2IEBAIHZvaWQgVHJhY2tMaXN0QmFzZTo6c2NoZWR1bGVDaGFuZ2VF
dmVudCgpCiAgICAgLy8gV2hlbmV2ZXIgYSB0cmFjayBpbiBhIFZpZGVvVHJhY2tMaXN0IHRoYXQg
d2FzIHByZXZpb3VzbHkgbm90IHNlbGVjdGVkIGlzCiAgICAgLy8gc2VsZWN0ZWQsIHRoZSB1c2Vy
IGFnZW50IG11c3QgcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQKICAg
ICAvLyBjaGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdC4KLSAgICBtX2FzeW5jRXZl
bnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAg
ICBtX2lzQ2hhbmdlRXZlbnRTY2hlZHVsZWQgPSB0cnVlOworICAgIHF1ZXVlVGFza0tlZXBpbmdP
YmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpc10geworICAg
ICAgICBtX2lzQ2hhbmdlRXZlbnRTY2hlZHVsZWQgPSBmYWxzZTsKKyAgICAgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisgICAgfSk7CiB9CiAKIGJvb2wg
VHJhY2tMaXN0QmFzZTo6aXNDaGFuZ2VFdmVudFNjaGVkdWxlZCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nRXZlbnRzT2ZUeXBlKGV2ZW50TmFtZXMo
KS5jaGFuZ2VFdmVudCk7CisgICAgcmV0dXJuIG1faXNDaGFuZ2VFdmVudFNjaGVkdWxlZDsKIH0K
IAogYm9vbCBUcmFja0xpc3RCYXNlOjppc0FueVRyYWNrRW5hYmxlZCgpIGNvbnN0CkBAIC0xNzcs
MTEgKzE4MCw2IEBAIGJvb2wgVHJhY2tMaXN0QmFzZTo6aXNBbnlUcmFja0VuYWJsZWQoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBUcmFja0xpc3RCYXNlOjp2aXJ0dWFsSGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9hc3luY0V2ZW50UXVldWUt
Pmhhc1BlbmRpbmdBY3Rpdml0eSgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaAppbmRleCA2YTcy
NTlmOTI2ODJjYjJkNWNlY2YzNzQzOTM3MGEwNTA5YmI3NDlkLi5hZWQ2OWMzNWVkZWU5MGIyZmNi
YTlhMzQyN2M5ZjdmMTczYmY0ZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RyYWNrTGlzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNr
TGlzdEJhc2UuaApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNzYsMTYgKzc1LDEyIEBAIHByb3RlY3RlZDoKIHBy
aXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVRyYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZl
bnROYW1lLCBSZWY8VHJhY2tCYXNlPiYmKTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdC4KLSAg
ICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKLQogICAg
IC8vIEV2ZW50VGFyZ2V0CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7
IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAg
IFdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4gbV9lbGVtZW50OwotCi0gICAgVW5pcXVlUmVmPEV2
ZW50TG9vcEV2ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOworICAgIGJvb2wgbV9pc0NoYW5n
ZUV2ZW50U2NoZWR1bGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVs
dGlwYXJ0SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsTXVsdGlwYXJ0SGFuZGxlLmNwcAppbmRleCAwZDEzMjEzNDNlZWRkODhkMzcwNDFmZGY5NzAx
MzljNTYzMWRjMzYxLi5iYmRhM2ZiZGE3NTgzZDk5MTkzMWRmZTE2OWY3YjNhOTEzM2U2ZGEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybE11bHRp
cGFydEhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxNdWx0aXBhcnRIYW5kbGUuY3BwCkBAIC0xOTAsNyArMTkwLDcgQEAgYm9vbCBDdXJsTXVs
dGlwYXJ0SGFuZGxlOjpwcm9jZXNzQ29udGVudCgpCiAgICAgICAgIGlmIChtX2J1ZmZlci5zaXpl
KCkgPCAyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGNvbnN0IGNoYXIq
IGNvbnRlbnQgPSBtX2J1ZmZlci5kYXRhKCk7CisgICAgICAgIGF1dG8qIGNvbnRlbnQgPSBtX2J1
ZmZlci5kYXRhKCk7CiAgICAgICAgIC8vIEJ5IGRlZmF1bHQgd2UnbGwgcmVtb3ZlIDIgY2hhcmFj
dGVycyBhdCB0aGUgZW5kLgogICAgICAgICAvLyBUaGUgXHIgYW5kIFxuIGFzIHN0YXRlZCBpbiB0
aGUgbXVsdGlwYXJ0IFJGQy4KICAgICAgICAgc2l6ZV90IHJlbW92ZUNvdW50ID0gMjsKQEAgLTI1
MCw3ICsyNTAsNyBAQCBib29sIEN1cmxNdWx0aXBhcnRIYW5kbGU6OnByb2Nlc3NDb250ZW50KCkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gTm90IGVub3VnaCBkYXRhIHRvIGNoZWNrLiBS
ZXR1cm4gbGF0ZXIgd2hlbiB0aGVyZSBpcyBtb3JlIGRhdGEuCiAKICAgICAgICAgLy8gV2UnbGwg
ZGVjaWRlIGlmIHRoaXMgaXMgYSBjbG9zaW5nIGJvdW5kYXJ5IG9yIGFuIG9wZW5pbmcgb25lLgot
ICAgICAgICBjb25zdCBjaGFyKiBjb250ZW50ID0gbV9idWZmZXIuZGF0YSgpOworICAgICAgICBh
dXRvKiBjb250ZW50ID0gbV9idWZmZXIuZGF0YSgpOwogCiAgICAgICAgIGlmIChjb250ZW50WzBd
ID09ICctJyAmJiBjb250ZW50WzFdID09ICctJykgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBh
IGNsb3NpbmcgYm91bmRhcnkuIENsb3NlIGRvd24gdGhlIGhhbmRsZXIuCkBAIC0zMDAsNyArMzAw
LDcgQEAgYm9vbCBDdXJsTXVsdGlwYXJ0SGFuZGxlOjpjaGVja0ZvckJvdW5kYXJ5KHNpemVfdCYg
Ym91bmRhcnlTdGFydFBvc2l0aW9uLCBzaXplX3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXNp
emVfdCBDdXJsTXVsdGlwYXJ0SGFuZGxlOjptYXRjaGVkTGVuZ3RoKGNvbnN0IGNoYXIqIGRhdGEp
CitzaXplX3QgQ3VybE11bHRpcGFydEhhbmRsZTo6bWF0Y2hlZExlbmd0aChjb25zdCB1aW50OF90
KiBkYXRhKQogewogICAgIGF1dG8gbGVuZ3RoID0gbV9ib3VuZGFyeS5sZW5ndGgoKTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybE11bHRpcGFydEhhbmRsZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxNdWx0aXBhcnRIYW5kbGUuaApp
bmRleCBiZWM3YTUyOTZmZGExNjE4OGExYWQ0MTlhOGEzMmFjYjE2NTlmODZjLi41YzA4YmNjNWVi
M2U0YmJjYzAyOWI0NzY3ODY4ZjQzZTJmOTVjMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybE11bHRpcGFydEhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmgKQEAg
LTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcHJvY2Vzc0NvbnRlbnQoKTsKICAg
ICBib29sIGNoZWNrRm9yQm91bmRhcnkoc2l6ZV90JiBib3VuZGFyeVN0YXJ0UG9zaXRpb24sIHNp
emVfdCYgbGFzdFBhcnRpYWxNYXRjaFBvc2l0aW9uKTsKLSAgICBzaXplX3QgbWF0Y2hlZExlbmd0
aChjb25zdCBjaGFyKiBkYXRhKTsKKyAgICBzaXplX3QgbWF0Y2hlZExlbmd0aChjb25zdCB1aW50
OF90KiBkYXRhKTsKICAgICBib29sIHBhcnNlSGVhZGVyc0lmUG9zc2libGUoKTsKIAogICAgIEN1
cmxNdWx0aXBhcnRIYW5kbGVDbGllbnQmIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKaW5kZXggYmVlNWNmOTJi
MDQ0ODVmNGI1MmQzMzk4YWExZjA3YTdiMTBjNzA4My4uOWUwZmU1Mzg3Y2U3ODQyYTZjMWRmMWU2
ZmM2YWNkMTE4MDI2YWExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKIAotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50
UXVldWUuaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCIKICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+Cg==
</data>
<flag name="commit-queue"
          id="452210"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430670</attachid>
            <date>2021-06-05 19:49:36 -0700</date>
            <delta_ts>2021-06-05 20:58:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226692-20210605194935.patch</filename>
            <type>text/plain</type>
            <size>44482</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODk5YTAxY2IwMjlmMjJi
YjczMzc4YzUyN2RlZGM3YjJmNjcxNDBlZC4uNTVkZTZkYzgzM2E4ZjVlZWM1NDk3MDIyNzMxYjFm
NThjOGU4YTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIxLTA2LTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBsZWdh
Y3kgRXZlbnRMb29wRXZlbnRRdWV1ZSBhbmQgRXZlbnRMb29wVGFza1F1ZXVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY2OTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgdXNlIG9mIGxlZ2Fj
eSBFdmVudExvb3BFdmVudFF1ZXVlIGFuZCBFdmVudExvb3BUYXNrUXVldWUsIGFuZCB1c2UgdGhl
IEhUTUwgZXZlbnQKKyAgICAgICAgbG9vcCBkaXJlY3RseSBpbnN0ZWFkLiBUaG9zZSBhcmUgdmVy
eSBzaW1wbGUgY2FzZXMsIHRoZXkgcmVhbGx5IGRvbid0IG5lZWQgYW55IG9mIHRoZQorICAgICAg
ICBmZWF0dXJlcyB0aGUgcXVldWUgd2FzIHByb3ZpZGluZyAoc3VjaCBhcyBjYW5jZWxsaW5nIGV2
ZW50cykuCisKKyAgICAgICAgVG8gZ2V0IHJpZCBvZiB0aGUgcmVtYWluaW5nIHVzYWdlIG9mIEV2
ZW50TG9vcEV2ZW50UXVldWUgLyBFdmVudExvb3BUYXNrUXVldWUsIEkgYmVsaWV2ZQorICAgICAg
ICB3ZSdsbCBuZWVkIGEgd2F5IHRvIGNhbmNlbCB0YXNrcyBzY2hlZHVsZWQgaW4gdGhlIEhUTUwg
ZXZlbnQgbG9vcC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTb3VyY2U6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzY2hlZHVsZUV2ZW50KToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlckxpc3Q6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oOgorICAgICAgICAqIE1vZHVsZXMvcmVtb3Rl
cGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxh
eWJhY2s6OlJlbW90ZVBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVBsYXliYWNr
Ojp3YXRjaEF2YWlsYWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6
Y2FuY2VsV2F0Y2hBdmFpbGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJh
Y2s6OnByb21wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6c2V0U3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmRpc2Nvbm5lY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmF2YWlsYWJpbGl0eUNoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OnN0b3ApOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaDoKKyAgICAgICAgKiBhbmltYXRp
b24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJv
bURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxl
cjo6Y2FjaGVDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXI6Om1heWJlQ2xlYXJDYWNoZWRDdXJyZW50VGltZSk6CisgICAgICAgICogYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9GdWxs
c2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6
OnJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2Ny
ZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlh
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlh
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVkRnJv
bUFuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxl
UmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c2NoZWR1bGVSZWplY3RQZW5kaW5nUGxheVByb21pc2VzKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTm90aWZ5QWJvdXRQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhS2V5cyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjbG9zZVRhc2tRdWV1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRJc1BsYXlpbmdUb1dp
cmVsZXNzVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVy
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc1Zpc2li
bGVJblZpZXdwb3J0Q2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0
ZVNpemVzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OlRyYWNrTGlzdEJhc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6VHJhY2tMaXN0QmFzZTo6c2NoZWR1bGVDaGFuZ2VFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpUcmFja0xpc3RCYXNlOjppc0NoYW5nZUV2ZW50U2NoZWR1bGVkIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZp
dHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6OnByb2Nlc3NDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6Om1hdGNoZWRMZW5ndGgp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmg6
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKwogMjAy
MS0wNi0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBg
Y29uc3QgdWludDhfdCpgIHR5cGUgbW9yZSBjb25zaXN0ZW50bHkgdG8gc3RvcmUgYnl0ZXMgaW4g
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKaW5kZXggOGQzNmI5OTllOWUzYzhj
MjJiNzVkMmU2MDA1MGUxMjg2ZTQ5Y2VmZS4uMzhlYTdjNGI4YWZmM2RkZjE4ZThkNDkwNWE5YTBm
MDFmYTBmNDdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtNTksNyArNTks
NiBAQCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dAogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRl
eHQpCiAgICAgLCBtX2xvZ2dlcihtYWtlUmVmKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCiAg
ICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpKQotICAg
ICwgbV9hc3luY0V2ZW50UXVldWUoRXZlbnRMb29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkK
IHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogfQpAQCAtNDE5LDcgKzQxOCw3IEBA
IHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhCiAgICAgbV9zdGF0ZSA9IHN0YXRlOwogICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUiwgbV9zdGF0ZSk7CiAgICAgaWYgKHNob3VsZEZpcmVFdmVudHMo
KSkKLSAgICAgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5jb29yZGluYXRvcnN0YXRlY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgICAgICBxdWV1ZVRhc2tUb0Rp
c3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY29vcmRpbmF0b3JzdGF0ZWNoYW5nZUV2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6Y3VycmVudFBvc2l0aW9uQXBwcm94aW1hdGVseUVxdWFsVG8oZG91Ymxl
IHRpbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAppbmRleCBlM2RkODA2MGY5ZDQw
OTYyM2MwOWZhZWE5Y2RlNTVlNTQ5ZGRhNDMyLi4zMWM0ZDliNDMzMjg3M2NjYWIzMzI0YTg0Mjkw
NzBjZGZhZGQ2Y2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTI4LDcgKzI4LDYg
QEAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKIAogI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNs
dWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5oIgogI2luY2x1ZGUg
Ik1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIgpAQCAtMTEwLDcgKzEwOSw2IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4gbV9wcml2
YXRlQ29vcmRpbmF0b3I7CiAgICAgY29uc3QgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAg
ICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwotICAgIFVuaXF1ZVJlZjxFdmVudExvb3BF
dmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKICAgICBNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlIG1fc3RhdGUgeyBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpDbG9zZWQgfTsK
ICAgICBib29sIG1faGFzQ29vcmRpbmF0b3JzU3RhdGVDaGFuZ2VFdmVudExpc3RlbmVyIHsgZmFs
c2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwCmluZGV4IDU2YzVkYTg3ZDc2MTAzODFiYTFmMjg1M2YyZGYzYWJhYTdmMmJm
NTIuLmMzOGYwYTg4ZTNjM2VhYzE2Njk3MzIxMzQ1ZmYyYjU4ZTVhYWE2OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0x
MDQsNyArMTA0LDYgQEAgTWVkaWFTb3VyY2U6Ok1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBt
X2R1cmF0aW9uKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAgICAsIG1fcGVuZGluZ1NlZWtU
aW1lKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKLSAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2
ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgLCBtX2xvZ2dlcihkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkubG9nZ2VyKCkp
CiAjZW5kaWYKQEAgLTk5OCw3ICs5OTcsNyBAQCB2b2lkIE1lZGlhU291cmNlOjpvcGVuSWZJbkVu
ZGVkU3RhdGUoKQogCiBib29sIE1lZGlhU291cmNlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlIHx8IG1fYXN5bmNFdmVudFF1ZXVlLT5o
YXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBtX2Fzc29jaWF0ZWRSZWdpc3RyeUNvdW50OworICAgIHJl
dHVybiBtX3ByaXZhdGUgfHwgbV9hc3NvY2lhdGVkUmVnaXN0cnlDb3VudDsKIH0KIAogdm9pZCBN
ZWRpYVNvdXJjZTo6c3RvcCgpCkBAIC0xMDc4LDEwICsxMDc3LDcgQEAgdm9pZCBNZWRpYVNvdXJj
ZTo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAgREVC
VUdfTE9HKExPR0lERU5USUZJRVIsICJzY2hlZHVsaW5nICciLCBldmVudE5hbWUsICInIik7CiAK
LSAgICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7Ci0gICAgZXZlbnQtPnNldFRhcmdldCh0
aGlzKTsKLQotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVu
dCkpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVk
aWFFbGVtZW50LCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IE1lZGlhU291cmNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaAppbmRleCBhM2E4NGMz
ZjIxNTY2OGU4OTdjN2YyMDc3YzUxYWRmOWFlY2EyNTk2Li5hMjZlNTUzZTdhMWNkMzUwYTNiNDY0
ZjAzZTE0MzllYjZhZTFmMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL01lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5oCkBAIC0zMyw3ICszMyw2IEBACiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50
TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMTc0LDcgKzE3
Myw2IEBAIHByaXZhdGU6CiAgICAgTWVkaWFUaW1lIG1fZHVyYXRpb247CiAgICAgTWVkaWFUaW1l
IG1fcGVuZGluZ1NlZWtUaW1lOwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgUmVhZHlT
dGF0ZTo6Q2xvc2VkIH07Ci0gICAgVW5pcXVlUmVmPEV2ZW50TG9vcEV2ZW50UXVldWU+IG1fYXN5
bmNFdmVudFF1ZXVlOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFJlZjxjb25zdCBM
b2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxw
dHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmNwcAppbmRleCAzZmZhMjhjOWY4ZDczZDNiNzZhZDM2NmI1MDFjNWMwMDk1YTk4YjJk
Li5lMTY4ZDc0NWVmMjQxNWZkNWQzNmEzN2YwODQ4ZmUzMzMyNmQ3ZmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC03
NCw3ICs3NCw2IEBAIFNvdXJjZUJ1ZmZlcjo6U291cmNlQnVmZmVyKFJlZjxTb3VyY2VCdWZmZXJQ
cml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZhdGUsIE1lZGlhCiAgICAgOiBBY3RpdmVET01PYmpl
Y3Qoc291cmNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgLCBtX3ByaXZhdGUoV1RG
TW92ZShzb3VyY2VCdWZmZXJQcml2YXRlKSkKICAgICAsIG1fc291cmNlKHNvdXJjZSkKLSAgICAs
IG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCiAg
ICAgLCBtX2FwcGVuZEJ1ZmZlclRpbWVyKCp0aGlzLCAmU291cmNlQnVmZmVyOjphcHBlbmRCdWZm
ZXJUaW1lckZpcmVkKQogICAgICwgbV9hcHBlbmRXaW5kb3dTdGFydChNZWRpYVRpbWU6Onplcm9U
aW1lKCkpCiAgICAgLCBtX2FwcGVuZFdpbmRvd0VuZChNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5p
dGVUaW1lKCkpCkBAIC00MzksNyArNDM4LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNlZWtUb1Rp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogCiBib29sIFNvdXJjZUJ1ZmZlcjo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fc291cmNlIHx8IG1fYXN5
bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICByZXR1cm4gbV9zb3VyY2U7
CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjpzdG9wKCkKQEAgLTQ2MCwxMCArNDU5LDcgQEAgYm9v
bCBTb3VyY2VCdWZmZXI6OmlzUmVtb3ZlZCgpIGNvbnN0CiAKIHZvaWQgU291cmNlQnVmZmVyOjpz
Y2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSkKIHsKLSAgICBhdXRvIGV2
ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObyk7Ci0gICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLQotICAg
IG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIHF1
ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNvdXJjZUJ1ZmZlcjo6YXBw
ZW5kQnVmZmVySW50ZXJuYWwoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oCmluZGV4IDJjZmY2NzhmNjAxNmNlZDdlZmI0Njk3ODFiMWRmMmFhNjI5ZmI3OGQuLmVlY2Qz
MWJmYzVmNGJhMmYzZjY2MDgwN2RlYTYyNTE3Nzc1YmE3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMzUsNyArMzUsNiBA
QAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFjay5o
IgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdl
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJp
dmF0ZS5oIgpAQCAtMjA4LDcgKzIwNyw2IEBAIHByaXZhdGU6CiAKICAgICBSZWY8U291cmNlQnVm
ZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIE1lZGlhU291cmNlKiBtX3NvdXJjZTsKLSAgICBV
bmlxdWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiAgICAgQXBw
ZW5kTW9kZSBtX21vZGUgeyBBcHBlbmRNb2RlOjpTZWdtZW50cyB9OwogCiAgICAgVmVjdG9yPHVu
c2lnbmVkIGNoYXI+IG1fcGVuZGluZ0FwcGVuZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcAppbmRleCA4MzZk
NGMwOGI2NGVmNzg3Zjk3Mjc1OGNiZGE3M2U1ZTk3YzgzMzdiLi43NjUwYjViM2FjZjhjNjllZmU2
ZTI3ZGJkYTVlNDJhNTUzYWE5OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNvdXJjZUJ1ZmZlckxpc3QpOwogCiBTb3VyY2VC
dWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKLSAgICAsIG1fYXN5bmNFdmVudFF1
ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCiB7CiAgICAgc3VzcGVuZElm
TmVlZGVkKCk7CiB9CkBAIC05NSwxMCArOTQsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OnN3
YXAoVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXI+PiYgb3RoZXIpCiAKIHZvaWQgU291cmNlQnVm
ZmVyTGlzdDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUpCiB7Ci0g
ICAgYXV0byBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pOwotICAgIGV2ZW50LT5zZXRUYXJnZXQodGhp
cyk7Ci0KLSAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQp
KTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlh
RWxlbWVudCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogfQogCiBjb25zdCBjaGFyKiBTb3VyY2VCdWZmZXJM
aXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKaW5kZXggZDM5ZjcyOWM5
MjhmODAzNTFhZDY3NTU1NmVhMWI5MjFmNGVjZjFjMC4uYjdlYWJjNjRmNTAyMjcxMGM2Y2VhM2Q2
ZTBlNGRlODQ0YTNkZmMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVk
ZSAiRXZlbnRMb29wRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04MCw4
ICs3OSw2IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QgZmluYWw7CiAKLSAgICBVbmlxdWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1ZT4gbV9h
c3luY0V2ZW50UXVldWU7Ci0KICAgICBWZWN0b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlcj4+IG1fbGlz
dDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJh
Y2svUmVtb3RlUGxheWJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5
YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKaW5kZXggNjQ3ZTVkY2ZhYmMyYTViN2NiNGRjODUwM2Ri
NWY5YzMwNzFjNWUyNi4uNzQ1MGJlNDk4MTZmZDExNDQ3NjYzNTk3ZjhmYmQ5NTdjZjRkNWVjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQ
bGF5YmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9S
ZW1vdGVQbGF5YmFjay5jcHAKQEAgLTUwLDggKzUwLDYgQEAgUmVmPFJlbW90ZVBsYXliYWNrPiBS
ZW1vdGVQbGF5YmFjazo6Y3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiBSZW1vdGVQ
bGF5YmFjazo6UmVtb3RlUGxheWJhY2soSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICA6
IFdlYkNvcmU6OkFjdGl2ZURPTU9iamVjdChlbGVtZW50LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKICAgICAsIG1fbWVkaWFFbGVtZW50KG1ha2VXZWFrUHRyKGVsZW1lbnQpKQotICAgICwgbV9l
dmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCi0gICAgLCBtX3Rh
c2tRdWV1ZShlbGVtZW50LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKIHsKICAgICBzdXNwZW5k
SWZOZWVkZWQoKTsKIH0KQEAgLTY5LDcgKzY3LDEwIEBAIHZvaWQgUmVtb3RlUGxheWJhY2s6Ondh
dGNoQXZhaWxhYmlsaXR5KFJlZjxSZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrPiYm
CiAgICAgLy8gMS4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS0+CiAgICAgLy8gMi4gUmV0
dXJuIHByb21pc2UsIGFuZCBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBiZWxvdzoKICAgICAKLSAg
ICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIHF1ZXVl
VGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBb
dGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldICgpIG11dGFibGUgeworICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIC8vIDMuIElmIHRoZSBkaXNhYmxlUmVtb3RlUGxh
eWJhY2sgYXR0cmlidXRlIGlzIHByZXNlbnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50LCByZWplY3Qg
dGhlIHByb21pc2Ugd2l0aAogICAgICAgICAvLyAgICBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJv
cnQgYWxsIHRoZSByZW1haW5pbmcgc3RlcHMuCiAgICAgICAgIGlmICghbV9tZWRpYUVsZW1lbnQK
QEAgLTk3LDcgKzk4LDkgQEAgdm9pZCBSZW1vdGVQbGF5YmFjazo6d2F0Y2hBdmFpbGFiaWxpdHko
UmVmPFJlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2s+JiYKICAgICAgICAgLy8gOC4g
RnVsZmlsbCBwcm9taXNlIHdpdGggdGhlIGNhbGxiYWNrSWQgYW5kIHJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzIGluIHBhcmFsbGVsOgogICAgICAgICBwcm9taXNlLT53aGVuU2V0dGxlZChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIGNhbGxiYWNrSWRdIHsKICAgICAgICAg
ICAgIC8vIDguMSBRdWV1ZSBhIHRhc2sgdG8gaW52b2tlIHRoZSBjYWxsYmFjayB3aXRoIHRoZSBj
dXJyZW50IGF2YWlsYWJpbGl0eSBmb3IgdGhlIG1lZGlhIGVsZW1lbnQuCi0gICAgICAgICAgICBt
X3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgY2FsbGJhY2tJZCwgYXZhaWxhYmxlID0gbV9h
dmFpbGFibGVdIHsKKyAgICAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhp
cywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgY2FsbGJhY2tJZCwgYXZhaWxhYmxl
ID0gbV9hdmFpbGFibGVdIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgYXV0byBmb3Vu
ZENhbGxiYWNrID0gbV9jYWxsYmFja01hcC5maW5kKGNhbGxiYWNrSWQpOwogICAgICAgICAgICAg
ICAgIGlmIChmb3VuZENhbGxiYWNrID09IG1fY2FsbGJhY2tNYXAuZW5kKCkpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTEyNCw3ICsxMjcsOSBAQCB2b2lkIFJlbW90ZVBsYXliYWNr
OjpjYW5jZWxXYXRjaEF2YWlsYWJpbGl0eShzdGQ6Om9wdGlvbmFsPGludDMyX3Q+IGlkLCBSZWY8
RGVmZQogICAgIC8vIDEuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UtPgogICAgIC8vIDIu
IFJldHVybiBwcm9taXNlLCBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgYmVsb3c6CiAKLSAg
ICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgaWQgPSBXVEZNb3ZlKGlkKSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldIHsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUo
KnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIGlkID0gV1RGTW92ZShpZCks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9w
cGVkKCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIDMuIElmIHRoZSBkaXNhYmxl
UmVtb3RlUGxheWJhY2sgYXR0cmlidXRlIGlzIHByZXNlbnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50
LCByZWplY3QgcHJvbWlzZSB3aXRoCiAgICAgICAgIC8vICAgIEludmFsaWRTdGF0ZUVycm9yIGFu
ZCBhYm9ydCBhbGwgdGhlIHJlbWFpbmluZyBzdGVwcy4KICAgICAgICAgaWYgKCFtX21lZGlhRWxl
bWVudApAQCAtMTY3LDcgKzE3MiwxMCBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpwcm9tcHQoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIC8vIDEuIExldCBwcm9taXNlIGJlIGEg
bmV3IHByb21pc2UtPgogICAgIC8vIDIuIFJldHVybiBwcm9taXNlLCBhbmQgcnVuIHRoZSBmb2xs
b3dpbmcgc3RlcHMgYmVsb3c6CiAKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IFVzZXJH
ZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKV0gKCkgbXV0YWJsZSB7Cisg
ICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVs
ZW1lbnQsIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpXSAo
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKwogICAgICAgICAvLyAzLiBJZiB0aGUgZGlzYWJsZVJlbW90ZVBsYXliYWNrIGF0
dHJpYnV0ZSBpcyBwcmVzZW50IGZvciB0aGUgbWVkaWEgZWxlbWVudCwgcmVqZWN0IHRoZSBwcm9t
aXNlIHdpdGgKICAgICAgICAgLy8gICAgSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IGFsbCB0
aGUgcmVtYWluaW5nIHN0ZXBzLgogICAgICAgICBpZiAoIW1fbWVkaWFFbGVtZW50CkBAIC0yNzAs
MTcgKzI3OCwxOSBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkK
IAogICAgIG1fc3RhdGUgPSBzdGF0ZTsKIAorICAgIFJlZlB0cjxFdmVudD4gZXZlbnQ7CiAgICAg
c3dpdGNoIChtX3N0YXRlKSB7CiAgICAgY2FzZSBTdGF0ZTo6Q29ubmVjdGVkOgotICAgICAgICBt
X2V2ZW50UXVldWUtPmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25u
ZWN0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykp
OworICAgICAgICBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNvbm5lY3RFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTdGF0ZTo6Q29ubmVjdGluZzoKLSAgICAgICAgbV9ldmVudFF1
ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY29ubmVjdGluZ0V2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAg
ICAgICAgZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25uZWN0aW5nRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgU3RhdGU6OkRpc2Nvbm5lY3RlZDoKLSAgICAgICAgbV9ldmVudFF1
ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGlzY29ubmVjdEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAg
ICAgICAgZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kaXNjb25uZWN0RXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tT
b3VyY2U6Ok1lZGlhRWxlbWVudCwgZXZlbnQucmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIHZvaWQg
UmVtb3RlUGxheWJhY2s6OmVzdGFibGlzaENvbm5lY3Rpb24oKQpAQCAtMzEwLDcgKzMyMCwxMCBA
QCB2b2lkIFJlbW90ZVBsYXliYWNrOjpkaXNjb25uZWN0KCkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gMi4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIG1f
dGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzXSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVj
dEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAg
IGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAg
Ly8gMi4xIFJlcXVlc3QgZGlzY29ubmVjdGlvbiBvZiByZW1vdGUgZnJvbSB0aGUgZGV2aWNlLiBJ
bXBsZW1lbnRhdGlvbiBpcyB1c2VyIGFnZW50IHNwZWNpZmljLgogICAgICAgICAvLyBOT1RFOiBJ
bXBsZW1lbnRlZCBieSBNZWRpYVBsYXllcjo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCgpCiAg
ICAgICAgIC8vIDIuMiBDaGFuZ2UgdGhlIHJlbW90ZSdzIHN0YXRlIHRvIGRpc2Nvbm5lY3RlZC4K
QEAgLTM3OCw3ICszOTEsMTAgQEAgdm9pZCBSZW1vdGVQbGF5YmFjazo6YXZhaWxhYmlsaXR5Q2hh
bmdlZChib29sIGF2YWlsYWJsZSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fYXZhaWxhYmxlID0g
YXZhaWxhYmxlOwogCi0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGF2YWlsYWJs
ZV0geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6
TWVkaWFFbGVtZW50LCBbdGhpcywgYXZhaWxhYmxlXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRT
dG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgLy8gUHJvdGVjdCBtX2Nh
bGxiYWNrTWFwIGFnYWluc3QgbXV0YXRpb24gd2hpbGUgaXQncyBiZWluZyBpdGVyYXRlZCBvdmVy
LgogICAgICAgICBWZWN0b3I8UmVmPFJlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2s+
PiBjYWxsYmFja3M7CiAgICAgICAgIGNhbGxiYWNrcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1f
Y2FsbGJhY2tNYXAuc2l6ZSgpKTsKQEAgLTQwMSwxMiArNDE3LDYgQEAgY29uc3QgY2hhciogUmVt
b3RlUGxheWJhY2s6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiUmVt
b3RlUGxheWJhY2siOwogfQogCi12b2lkIFJlbW90ZVBsYXliYWNrOjpzdG9wKCkKLXsKLSAgICBt
X3Rhc2tRdWV1ZS5jbG9zZSgpOwotICAgIG1fZXZlbnRRdWV1ZS0+Y2xvc2UoKTsKLX0KLQogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaApp
bmRleCBhNTU3ZDFlNzk2YzQxZmFmYTY0MGUzOWEzNTU4NmNlNDFlNjQyN2M5Li4wNDU3MzhlMzg3
MDZmMzliMjI3ZDFkOTY4OGExNmQyMmJhZDYxOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5oCkBAIC0yOCw3ICsy
OCw2IEBACiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIAogI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNp
bmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgpAQCAtODEsNyArODAsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gQWN0aXZl
RE9NT2JqZWN0LgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBm
aW5hbDsKLSAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAogICAgIC8vIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEuCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBSZW1vdGVQbGF5YmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQpAQCAtOTksOSArOTcsNiBAQCBwcml2YXRlOgogICAgIFByb21pc2VWZWN0b3IgbV9w
cm9tcHRQcm9taXNlczsKICAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OkRpc2Nvbm5lY3RlZCB9
OwogICAgIGJvb2wgbV9hdmFpbGFibGUgeyBmYWxzZSB9OwotCi0gICAgVW5pcXVlUmVmPEV2ZW50
TG9vcEV2ZW50UXVldWU+IG1fZXZlbnRRdWV1ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV90
YXNrUXVldWU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwCmluZGV4IDk5NDA5MWFmYzU1NTg5NzE2
N2Q1MWFiMDEyNGE2Yjk3ODgwYjY3ZTAuLmI1NWQ2MGIzYmM1ZjBkMzc1NzAzMGNmYzJjNDE5ODli
NjJiZjMxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lc0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1
bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1fY3VycmVudFRpbWVDbGVh
cmluZ1Rhc2tRdWV1ZSgmZG9jdW1lbnQpCisgICAgOiBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNr
KCZkb2N1bWVudCkKICAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiAgICAgaWYgKGF1dG8q
IHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpIHsKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBEb2N1bWVu
dFRpbWVsaW5lc0NvbnRyb2xsZXI6OnJlbW92ZVRpbWVsaW5lKERvY3VtZW50VGltZWxpbmUmIHRp
bWVsaW5lKQogCiB2b2lkIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJvbURv
Y3VtZW50KCkKIHsKLSAgICBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUuY2xvc2UoKTsK
KyAgICBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrLmNsb3NlKCk7CiAKICAgICB3aGlsZSAoIW1f
dGltZWxpbmVzLmNvbXB1dGVzRW1wdHkoKSkKICAgICAgICAgbV90aW1lbGluZXMuYmVnaW4oKS0+
ZGV0YWNoRnJvbURvY3VtZW50KCk7CkBAIC0yMzMsOCArMjMzLDggQEAgdm9pZCBEb2N1bWVudFRp
bWVsaW5lc0NvbnRyb2xsZXI6OmNhY2hlQ3VycmVudFRpbWUoUmVkdWNlZFJlc29sdXRpb25TZWNv
bmRzIG5ld0MKICAgICAvLyBhbmltYXRpb25zLCBzbyB3ZSBzY2hlZHVsZSB0aGUgaW52YWxpZGF0
aW9uIHRhc2sgYW5kIHJlZ2lzdGVyIGEgd2hlbklkbGUgY2FsbGJhY2sgb24gdGhlIFZNLCB3aGlj
aCB3aWxsCiAgICAgLy8gZmlyZSBzeW5jcm9ub3VzbHkgaWYgbm8gSlMgaXMgcnVubmluZy4KICAg
ICBtX3dhaXRpbmdPblZNSWRsZSA9IHRydWU7Ci0gICAgaWYgKCFtX2N1cnJlbnRUaW1lQ2xlYXJp
bmdUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCi0gICAgICAgIG1fY3VycmVudFRpbWVDbGVh
cmluZ1Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVzQ29u
dHJvbGxlcjo6bWF5YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lLCB0aGlzKSk7CisgICAgaWYgKCFt
X2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrLmlzUGVuZGluZygpKQorICAgICAgICBtX2N1cnJlbnRU
aW1lQ2xlYXJpbmdUYXNrLnNjaGVkdWxlVGFzayhzdGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVz
Q29udHJvbGxlcjo6bWF5YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lLCB0aGlzKSk7CiAgICAgLy8g
V2UgZXh0ZW50IHRoZSBhc3NvY2lhdGVkIERvY3VtZW50J3MgbGlmZWN5Y2xlIHVudGlsIHRoZSBW
TSBiZWNhbWUgaWRsZSBzaW5jZSB0aGUgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyCiAgICAg
Ly8gaXMgb3duZWQgYnkgdGhlIERvY3VtZW50LgogICAgIG1fZG9jdW1lbnQudm0oKS53aGVuSWRs
ZShbdGhpcywgcHJvdGVjdGVkRG9jdW1lbnQgPSBtYWtlUmVmUHRyKG1fZG9jdW1lbnQpXSgpIHsK
QEAgLTI0OSw3ICsyNDksNyBAQCB2b2lkIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5
YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lKCkKICAgICAvLyBKUyBvciB3YWl0aW5nIG9uIGFsbCBj
dXJyZW50IGFuaW1hdGlvbiB1cGRhdGluZyBjb2RlIHRvIGhhdmUgY29tcGxldGVkLiBUaGlzIGlz
IHNvIHRoYXQKICAgICAvLyB3ZSdyZSBndWFyYW50ZWVkIHRvIGhhdmUgYSBjb25zaXN0ZW50IGN1
cnJlbnQgdGltZSByZXBvcnRlZCBmb3IgYWxsIHdvcmsgaGFwcGVuaW5nIGluIGEgZ2l2ZW4KICAg
ICAvLyBKUyBmcmFtZSBvciB0aHJvdWdob3V0IHVwZGF0aW5nIGFuaW1hdGlvbnMgaW4gV2ViQ29y
ZS4KLSAgICBpZiAoIW1faXNTdXNwZW5kZWQgJiYgIW1fd2FpdGluZ09uVk1JZGxlICYmICFtX2N1
cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCisgICAgaWYgKCFt
X2lzU3VzcGVuZGVkICYmICFtX3dhaXRpbmdPblZNSWRsZSAmJiAhbV9jdXJyZW50VGltZUNsZWFy
aW5nVGFzay5pc1BlbmRpbmcoKSkKICAgICAgICAgbV9jYWNoZWRDdXJyZW50VGltZSA9IHN0ZDo6
bnVsbG9wdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmVzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmVzQ29udHJvbGxlci5oCmluZGV4IDQyMTI3OGUzMjNhY2FiOGZmMTJlMWY2YjM1
NTc3ZjQ4Zjc2Y2E2NzkuLjJhMTEwNGY3OTdkNTAzZmM0MmE3NDNlZWRkYWNjZWU2NjgyZWFlZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0Nv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCisjaW5jbHVkZSAiRGVmZXJyYWJsZVRhc2suaCIKICNp
bmNsdWRlICJSZWR1Y2VkUmVzb2x1dGlvblNlY29uZHMuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgbWF5YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lKCk7CiAKICAgICBXZWFrSGFzaFNldDxE
b2N1bWVudFRpbWVsaW5lPiBtX3RpbWVsaW5lczsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9j
dXJyZW50VGltZUNsZWFyaW5nVGFza1F1ZXVlOworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNr
IG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2s7CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAg
ICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25kczo6TWFya2FibGVUcmFpdHM+IG1fY2FjaGVkQ3Vy
cmVudFRpbWU7CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IDk3NDZjNjVhMTgzNjBkZWVjZDJjNzk0
MGRhOTJmMzYwYjljNDhiYTIuLjY2MDZmNmZhNGJmYzk5M2E4MjlmODFkZWJiOTA2OWI1Nzg5ZDk2
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDgsNyAr
NDgsNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBGdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudCB7
IGRvY3VtZW50IH0KLSAgICAsIG1fZnVsbHNjcmVlblRhc2tRdWV1ZSB7ICZkb2N1bWVudCB9CiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoTG9nZ2VySGVs
cGVyOjp1bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKQEAgLTY0LDggKzYzLDkgQEAgdm9p
ZCBGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
IGVsZW1lbnQsIEZ1bGxzY3JlZW4KIAogICAgIGF1dG8gZmFpbGVkUHJlZmxpZ2h0cyA9IFt0aGlz
XShhdXRvIGVsZW1lbnQpIG11dGFibGUgewogICAgICAgICBtX2Z1bGxzY3JlZW5FcnJvckV2ZW50
VGFyZ2V0UXVldWUuYXBwZW5kKFdURk1vdmUoZWxlbWVudCkpOwotICAgICAgICBtX2Z1bGxzY3Jl
ZW5UYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdIHsKLSAgICAgICAgICAgIGRpc3BhdGNoRnVs
bHNjcmVlbkNoYW5nZUV2ZW50cygpOworICAgICAgICBtX2RvY3VtZW50LmV2ZW50TG9vcCgpLnF1
ZXVlVGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0geworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHdl
YWtUaGlzLT5kaXNwYXRjaEZ1bGxzY3JlZW5DaGFuZ2VFdmVudHMoKTsKICAgICAgICAgfSk7CiAg
ICAgfTsKIApAQCAtMTE0LDcgKzExNCwxMCBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1
ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbHNjcmVlbgogCiAg
ICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBlbGVtZW50OwogCi0gICAgbV9mdWxsc2Ny
ZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBlbGVtZW50ID0gbWFrZVJlZlB0cihlbGVt
ZW50KSwgY2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2VzcywgZmFpbGVkUHJlZmxpZ2h0cywgaWRl
bnRpZmllciA9IExPR0lERU5USUZJRVJdICgpIG11dGFibGUgeworICAgIG1fZG9jdW1lbnQuZXZl
bnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBlbGVtZW50ID0gbWFrZVJlZlB0cihlbGVtZW50KSwg
Y2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2VzcywgZmFpbGVkUHJlZmxpZ2h0cywgaWRlbnRpZmll
ciA9IExPR0lERU5USUZJRVJdICgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIC8vIERvbid0IGFsbG93IGZ1bGxzY3JlZW4g
aWYgaXQgaGFzIGJlZW4gY2FuY2VsbGVkIG9yIGEgZGlmZmVyZW50IGZ1bGxzY3JlZW4gZWxlbWVu
dAogICAgICAgICAvLyBoYXMgcmVxdWVzdGVkIGZ1bGxzY3JlZW4uCiAgICAgICAgIGlmIChtX3Bl
bmRpbmdGdWxsc2NyZWVuRWxlbWVudCAhPSBlbGVtZW50KSB7CkBAIC0yMjMsNyArMjI2LDEwIEBA
IHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudChFbGVt
ZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuCiAgICAgICAgIC8vIDUuIFJldHVybiwgYW5kIHJ1biB0
aGUgcmVtYWluaW5nIHN0ZXBzIGFzeW5jaHJvbm91c2x5LgogICAgICAgICAvLyA2LiBPcHRpb25h
bGx5LCBwZXJmb3JtIHNvbWUgYW5pbWF0aW9uLgogICAgICAgICBtX2FyZUtleXNFbmFibGVkSW5G
dWxsc2NyZWVuID0gaGFzS2V5Ym9hcmRBY2Nlc3M7Ci0gICAgICAgIG1fZnVsbHNjcmVlblRhc2tR
dWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgZWxlbWVudCA9IFdURk1vdmUoZWxlbWVudCksIGZhaWxl
ZFByZWZsaWdodHMgPSBXVEZNb3ZlKGZhaWxlZFByZWZsaWdodHMpLCBpZGVudGlmaWVyXSAoKSBt
dXRhYmxlIHsKKyAgICAgICAgbV9kb2N1bWVudC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1Nv
dXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IGVsZW1lbnQgPSBXVEZNb3ZlKGVsZW1lbnQpLCBmYWlsZWRQcmVmbGlnaHRzID0gV1RGTW92ZShm
YWlsZWRQcmVmbGlnaHRzKSwgaWRlbnRpZmllcl0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICAgICAgYXV0
byBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgICAgICAgICAgaWYgKCFwYWdlIHx8IGRvY3VtZW50
KCkuaGlkZGVuKCkgfHwgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgIT0gZWxlbWVudCB8fCAh
ZWxlbWVudC0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICAgICAgICAgIEVSUk9SX0xPRyhpZGVu
dGlmaWVyLCAidGFzayAtIHBhZ2UsIGRvY3VtZW50LCBvciBlbGVtZW50IG1pc21hdGNoOyBmYWls
aW5nLiIpOwpAQCAtMzI3LDcgKzMzMywxMCBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpleGl0
RnVsbHNjcmVlbigpCiAKICAgICAvLyA2LiBSZXR1cm4sIGFuZCBydW4gdGhlIHJlbWFpbmluZyBz
dGVwcyBhc3luY2hyb25vdXNseS4KICAgICAvLyA3LiBPcHRpb25hbGx5LCBwZXJmb3JtIHNvbWUg
YW5pbWF0aW9uLgotICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywg
bmV3VG9wID0gbWFrZVJlZlB0cihuZXdUb3ApLCBmdWxsc2NyZWVuRWxlbWVudCA9IG1fZnVsbHNj
cmVlbkVsZW1lbnQsIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSXSB7CisgICAgbV9kb2N1bWVu
dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIG5ld1RvcCA9IG1ha2VSZWZQdHIobmV3VG9w
KSwgZnVsbHNjcmVlbkVsZW1lbnQgPSBtX2Z1bGxzY3JlZW5FbGVtZW50LCBpZGVudGlmaWVyID0g
TE9HSURFTlRJRklFUl0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuOworCiAgICAgICAgIGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgICAgIGlmICgh
cGFnZSkgewogICAgICAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJ0YXNrIC0gRG9jdW1l
bnQgbm90IGluIHBhZ2U7IGJhaWxpbmcuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFu
YWdlci5oCmluZGV4IDRiZDFhM2U4YmVmYjhlOWYyMDE2NzVkZGMyNDcwODkyYjc1YjBiYjMuLjVi
ZmUzOGRhNjRlNGVkYWVmZWRjYzNkYWQ4MzFmYmYzOGMxZDMxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0yOCw5ICsyOCw5IEBACiAjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJHZW5lcmljVGFz
a1F1ZXVlLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzgsNyArMzgsNyBAQCBjbGFzcyBSZW5kZXJGdWxsU2NyZWVuOwogY2xhc3MgUmVuZGVyVHJlZUJ1
aWxkZXI7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIAotY2xhc3MgRnVsbHNjcmVlbk1hbmFnZXIgZmlu
YWwgeworY2xhc3MgRnVsbHNjcmVlbk1hbmFnZXIgZmluYWwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8RnVsbHNjcmVlbk1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBGdWxsc2NyZWVuTWFuYWdlcihEb2N1bWVudCYpOwpAQCAtMTE5LDcgKzExOSw2
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZnVsbHNjcmVlbkVsZW1lbnQ7CiAg
ICAgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4gbV9mdWxsc2NyZWVuRWxlbWVudFN0YWNrOwogICAg
IFdlYWtQdHI8UmVuZGVyRnVsbFNjcmVlbj4gbV9mdWxsc2NyZWVuUmVuZGVyZXIgeyBudWxscHRy
IH07Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKICAgICBE
ZXF1ZTxSZWZQdHI8Tm9kZT4+IG1fZnVsbHNjcmVlbkNoYW5nZUV2ZW50VGFyZ2V0UXVldWU7CiAg
ICAgRGVxdWU8UmVmUHRyPE5vZGU+PiBtX2Z1bGxzY3JlZW5FcnJvckV2ZW50VGFyZ2V0UXVldWU7
CiAgICAgTGF5b3V0UmVjdCBtX3NhdmVkUGxhY2Vob2xkZXJGcmFtZVJlY3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0ODcyMjAwZDkxOTIwYWRhMjk2ZWVl
N2Q3YTJjZmJhZTk2ODkwNTg4Li4zZjQ4ZWRiMmU2ODg4OWMxMDM2ODNkZTYzNGM1ZTBjYTA1NDU1
NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQwMywx
MiArNDAzLDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fc2Vla1Rhc2soJmRv
Y3VtZW50KQogICAgICwgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rp
b25zVGFzaygmZG9jdW1lbnQpCiAgICAgLCBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWRUYXNr
KCZkb2N1bWVudCkKLSAgICAsIG1fcHJvbWlzZVRhc2tRdWV1ZSgmZG9jdW1lbnQpCi0gICAgLCBt
X3BhdXNlQWZ0ZXJEZXRhY2hlZFRhc2tRdWV1ZSgmZG9jdW1lbnQpCiAgICAgLCBtX3Jlc291cmNl
U2VsZWN0aW9uVGFza1F1ZXVlKCZkb2N1bWVudCkKLSAgICAsIG1fdmlzaWJpbGl0eUNoYW5nZVRh
c2tRdWV1ZSgmZG9jdW1lbnQpCi0gICAgLCBtX2Z1bGxzY3JlZW5UYXNrUXVldWUoJmRvY3VtZW50
KQotICAgICwgbV9wbGF5YmFja1RhcmdldElzV2lyZWxlc3NRdWV1ZSgmZG9jdW1lbnQpCiAgICAg
LCBtX2FzeW5jRXZlbnRRdWV1ZShFdmVudExvb3BFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLCBtX3ZvbHVtZVJldmVydFRhc2soJmRvY3Vt
ZW50KQpAQCAtNDUxLDkgKzQ0Niw2IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBt
X3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlKGZhbHNlKQogICAgICwgbV9zaG91bGRBdWRpb1Bs
YXliYWNrUmVxdWlyZVVzZXJHZXN0dXJlKGRvY3VtZW50LnRvcERvY3VtZW50KCkuYXVkaW9QbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkKICAgICAsIG1fc2hvdWxkVmlkZW9QbGF5YmFja1JlcXVpcmVVc2VyR2VzdHVyZShkb2N1
bWVudC50b3BEb2N1bWVudCgpLnZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkgJiYg
IXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKLSAgICAsIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZSgmZG9jdW1lbnQpCi0jZW5kaWYKICNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgICwgbV9yZW1vdGUoUmVtb3Rl
UGxheWJhY2s6OmNyZWF0ZSgqdGhpcykpCiAjZW5kaWYKQEAgLTU4OSwxNCArNTgxLDggQEAgSFRN
TE1lZGlhRWxlbWVudDo6fkhUTUxNZWRpYUVsZW1lbnQoKQogCiAgICAgbV9zZWVrVGFzay5jbG9z
ZSgpOwogICAgIG1fcmVzdW1lVGFzay5jbG9zZSgpOwotICAgIG1fcHJvbWlzZVRhc2tRdWV1ZS5j
bG9zZSgpOwotICAgIG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlLmNsb3NlKCk7CiAgICAg
bV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGFzay5jbG9zZSgp
OwogICAgIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVldWUuY2xvc2UoKTsKLSAgICBtX3Zpc2li
aWxpdHlDaGFuZ2VUYXNrUXVldWUuY2xvc2UoKTsKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQotICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5jbG9zZSgpOwotI2VuZGlmCiAKICAgICBtX2Nv
bXBsZXRlbHlMb2FkZWQgPSB0cnVlOwogCkBAIC04NjQsNyArODUwLDEwIEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwg
Q29udGFpbmVyTm9kCiAgICAgc2V0SW5BY3RpdmVEb2N1bWVudChmYWxzZSk7CiAgICAgaWYgKHJl
bW92YWxUeXBlLmRpc2Nvbm5lY3RlZEZyb21Eb2N1bWVudCkgewogICAgICAgICAvLyBQYXVzZSBh
c3luY2hyb25vdXNseSB0byBsZXQgdGhlIG9wZXJhdGlvbiB0aGF0IHJlbW92ZWQgdXMgZmluaXNo
LCBpbiBjYXNlIHdlIGdldCBpbnNlcnRlZCBiYWNrIGludG8gYSBkb2N1bWVudC4KLSAgICAgICAg
bV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVldWUuZW5xdWV1ZVRhc2soc3RkOjpiaW5kKCZIVE1M
TWVkaWFFbGVtZW50OjpwYXVzZUFmdGVyRGV0YWNoZWRUYXNrLCB0aGlzKSk7CisgICAgICAgIHF1
ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50
LCBbdGhpc10geworICAgICAgICAgICAgaWYgKCFpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAg
ICAgICAgICAgcGF1c2VBZnRlckRldGFjaGVkVGFzaygpOworICAgICAgICB9KTsKICAgICB9CiAK
ICAgICBpZiAobV9tZWRpYVNlc3Npb24pCkBAIC05NDgsOCArOTM3LDkgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzY2hlZHVsZVJlc29sdmVQZW5kaW5nUGxheVByb21pc2VzKCkKICAgICBpZiAo
bV9wZW5kaW5nUGxheVByb21pc2VzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9wcm9taXNlVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwZW5kaW5nUGxheVByb21pc2Vz
ID0gV1RGTW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAg
cmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMoV1RGTW92ZShwZW5kaW5nUGxheVByb21pc2VzKSk7
CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRp
YUVsZW1lbnQsIFt0aGlzLCBwZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQ
bGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFpc0NvbnRleHRTdG9wcGVk
KCkpCisgICAgICAgICAgICByZXNvbHZlUGVuZGluZ1BsYXlQcm9taXNlcyhXVEZNb3ZlKHBlbmRp
bmdQbGF5UHJvbWlzZXMpKTsKICAgICB9KTsKIH0KIApAQCAtOTU4LDggKzk0OCw5IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVSZWplY3RQZW5kaW5nUGxheVByb21pc2VzKFJlZjxE
T01FeGNlcHRpb24+JiYgZXJyCiAgICAgaWYgKG1fcGVuZGluZ1BsYXlQcm9taXNlcy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJvbWlzZVRhc2tRdWV1ZS5lbnF1ZXVlVGFz
ayhbdGhpcywgZXJyb3IgPSBXVEZNb3ZlKGVycm9yKSwgcGVuZGluZ1BsYXlQcm9taXNlcyA9IFdU
Rk1vdmUobV9wZW5kaW5nUGxheVByb21pc2VzKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIHJlamVj
dFBlbmRpbmdQbGF5UHJvbWlzZXMoV1RGTW92ZShwZW5kaW5nUGxheVByb21pc2VzKSwgV1RGTW92
ZShlcnJvcikpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1Nv
dXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgZXJyb3IgPSBXVEZNb3ZlKGVycm9yKSwgcGVuZGlu
Z1BsYXlQcm9taXNlcyA9IFdURk1vdmUobV9wZW5kaW5nUGxheVByb21pc2VzKV0gKCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmVqZWN0
UGVuZGluZ1BsYXlQcm9taXNlcyhXVEZNb3ZlKHBlbmRpbmdQbGF5UHJvbWlzZXMpLCBXVEZNb3Zl
KGVycm9yKSk7CiAgICAgfSk7CiB9CiAKQEAgLTk3Nyw4ICs5NjgsOSBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnJlc29sdmVQZW5kaW5nUGxheVByb21pc2VzKFBsYXlQcm9taXNlVmVjdG9yJiYg
cGVuZGluZ1BsYQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTm90aWZ5QWJvdXRQ
bGF5aW5nKCkKIHsKLSAgICBtX3Byb21pc2VUYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHBl
bmRpbmdQbGF5UHJvbWlzZXMgPSBXVEZNb3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyldICgpIG11
dGFibGUgewotICAgICAgICBub3RpZnlBYm91dFBsYXlpbmcoV1RGTW92ZShwZW5kaW5nUGxheVBy
b21pc2VzKSk7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291
cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBwZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZSht
X3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFpc0NvbnRl
eHRTdG9wcGVkKCkpCisgICAgICAgICAgICBub3RpZnlBYm91dFBsYXlpbmcoV1RGTW92ZShwZW5k
aW5nUGxheVByb21pc2VzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTI2MDYsNyArMjU5OCwxMCBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhS2V5cyhNZWRpYUtleXMqIG1lZGlhS2V5cywg
UmVmPERlZmVycmVkUHJvbWlzZT4mJgogCiAgICAgLy8gNC4gTGV0IHByb21pc2UgYmUgYSBuZXcg
cHJvbWlzZS4KICAgICAvLyA1LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoK
LSAgICBtX2VuY3J5cHRlZE1lZGlhUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIG1lZGlhS2V5cyA9
IFJlZlB0cjxNZWRpYUtleXM+KG1lZGlhS2V5cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XSgpIG11dGFibGUgeworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFz
a1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgbWVkaWFLZXlzID0gUmVmUHRyPE1lZGlhS2V5
cz4obWVkaWFLZXlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKICAg
ICAgICAgLy8gNS4xLiBJZiBhbGwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGhvbGQ6CiAgICAg
ICAgIC8vICAgICAgLSBtZWRpYUtleXMgaXMgbm90IG51bGwsCiAgICAgICAgIC8vICAgICAgLSB0
aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IG1lZGlhS2V5cyBpcyBhbHJlYWR5IGluIHVz
ZSBieSBhbm90aGVyIG1lZGlhIGVsZW1lbnQKQEAgLTI2NDEsOCArMjYzNiw5IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c2V0TWVkaWFLZXlzKE1lZGlhS2V5cyogbWVkaWFLZXlzLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmCiAgICAgICAgICAgICAvLyBGSVhNRTogXgogCiAgICAgICAgICAgICAv
LyA1LjMuMy4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgQXR0ZW1wdCB0byBSZXN1bWUgUGxheWJh
Y2sgSWYgTmVjZXNzYXJ5IGFsZ29yaXRobSBvbiB0aGUgbWVkaWEgZWxlbWVudC4KLSAgICAgICAg
ICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpc10gewotICAgICAgICAg
ICAgICAgIGF0dGVtcHRUb1Jlc3VtZVBsYXliYWNrSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgICAg
IHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVt
ZW50LCBbdGhpc10geworICAgICAgICAgICAgICAgIGlmICghaXNDb250ZXh0U3RvcHBlZCgpKQor
ICAgICAgICAgICAgICAgICAgICBhdHRlbXB0VG9SZXN1bWVQbGF5YmFja0lmTmVjZXNzYXJ5KCk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC01NjUxLDEzICs1NjQ3LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpjbG9zZVRhc2tRdWV1ZXMoKQogICAgIG1fcGxheWJhY2tDb250
cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1Rhc2suY2xvc2UoKTsKICAgICBtX3NlZWtU
YXNrLmNsb3NlKCk7CiAgICAgbV9yZXN1bWVUYXNrLmNsb3NlKCk7Ci0gICAgbV9wcm9taXNlVGFz
a1F1ZXVlLmNsb3NlKCk7Ci0gICAgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVldWUuY2xvc2Uo
KTsKICAgICBtX3Jlc291cmNlU2VsZWN0aW9uVGFza1F1ZXVlLmNsb3NlKCk7Ci0gICAgbV92aXNp
YmlsaXR5Q2hhbmdlVGFza1F1ZXVlLmNsb3NlKCk7Ci0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKLSAgICBtX2VuY3J5cHRlZE1lZGlhUXVldWUuY2xvc2UoKTsKLSNlbmRpZgogICAgIG1fYXN5
bmNFdmVudFF1ZXVlLT5jbG9zZSgpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgbV92
b2x1bWVSZXZlcnRUYXNrLmNsb3NlKCk7CkBAIC01NzUwLDcgKzU3NDAsNiBAQCBib29sIEhUTUxN
ZWRpYUVsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2NyZWF0aW5nQ29udHJvbHMKICAgICAgICAgfHwgbV9hc3luY0V2ZW50UXVldWUtPmhh
c1BlbmRpbmdBY3Rpdml0eSgpCi0gICAgICAgIHx8IG1fcGxheWJhY2tUYXJnZXRJc1dpcmVsZXNz
UXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkKICAgICAgICAgfHwgbV9yZXNvdXJjZVNlbGVjdGlvblRh
c2tRdWV1ZS5oYXNQZW5kaW5nVGFza3MoKQogICAgICAgICB8fCAoaGFzQXVkaW8oKSAmJiBpc1Bs
YXlpbmcoKSkKICAgICAgICAgfHwgKGhhc0xpdmVTb3VyY2UoKSAmJiBoYXNFdmVudExpc3RlbmVy
cygpKTsKQEAgLTU4MzgsNyArNTgyNywxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyQ3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoYm9vbCBpcwogdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRJc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KGJvb2wgaXNQ
bGF5aW5nVG9XaXJlbGVzc1RhcmdldCkKIHsKICAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0g
TE9HSURFTlRJRklFUjsKLSAgICBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlLmVucXVl
dWVUYXNrKFt0aGlzLCBpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0LCBsb2dTaXRlSWRlbnRpZmll
cl0geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6
TWVkaWFFbGVtZW50LCBbdGhpcywgaXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCwgbG9nU2l0ZUlk
ZW50aWZpZXJdIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKwogICAgICAgICBVTlVTRURfUEFSQU0obG9nU2l0ZUlkZW50aWZpZXIpOwogCiAg
ICAgICAgIGlmIChpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0ID09IG1faXNQbGF5aW5nVG9XaXJl
bGVzc1RhcmdldCkKQEAgLTYwNTUsNyArNjA0NywxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgfQogI2VuZGlm
CiAKLSAgICBtX2Z1bGxzY3JlZW5UYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIG1vZGVdIHsK
KyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlh
RWxlbWVudCwgW3RoaXMsIG1vZGVdIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAoZG9jdW1lbnQoKS5oaWRkZW4oKSkg
ewogICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiIHJldHVybmluZyBiZWNh
dXNlIGRvY3VtZW50IGlzIGhpZGRlbiIpOwogICAgICAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVs
bHNjcmVlbk1vZGUgPSBmYWxzZTsKQEAgLTgwMDIsNyArNzk5Nyw5IEBAIGJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6aXNWaWRlb1Rvb1NtYWxsRm9ySW5saW5lUGxheWJhY2soKQogCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmlzVmlzaWJsZUluVmlld3BvcnRDaGFuZ2VkKCkKIHsKLSAgICBtX3Zpc2li
aWxpdHlDaGFuZ2VUYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdIHsKKyAgICBxdWV1ZVRhc2tL
ZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXNd
IHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgbWVkaWFTZXNzaW9uKCkuaXNWaXNpYmxlSW5WaWV3cG9ydENoYW5nZWQoKTsKICAg
ICAgICAgdXBkYXRlU2hvdWxkQXV0b3BsYXkoKTsKICAgICAgICAgc2NoZWR1bGVQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlclVwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCA5ZmM4MTZiMGM5YTdkMTgyNjQwOGRlZGYxMmU4NmY3MzJiNjdiOTZlLi4wOTJiOGFm
OWM4YTMyZGFlMTdiMmY2YWYyMWJjMmFkNGEzYjZjNGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtOTUwLDEyICs5NTAsNyBAQCBwcml2YXRlOgogICAgIEV2ZW50
TG9vcERlZmVycmFibGVUYXNrIG1fc2Vla1Rhc2s7CiAgICAgRXZlbnRMb29wRGVmZXJyYWJsZVRh
c2sgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGFzazsKICAg
ICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWRUYXNr
OwotICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Byb21pc2VUYXNrUXVldWU7Ci0gICAgRXZlbnRM
b29wVGFza1F1ZXVlIG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlOwogICAgIEV2ZW50TG9v
cFRhc2tRdWV1ZSBtX3Jlc291cmNlU2VsZWN0aW9uVGFza1F1ZXVlOwotICAgIEV2ZW50TG9vcFRh
c2tRdWV1ZSBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNrUXVldWU7Ci0gICAgRXZlbnRMb29wVGFza1F1
ZXVlIG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9wbGF5
YmFja1RhcmdldElzV2lyZWxlc3NRdWV1ZTsKICAgICBSZWZQdHI8VGltZVJhbmdlcz4gbV9wbGF5
ZWRUaW1lUmFuZ2VzOwogICAgIFVuaXF1ZVJlZjxFdmVudExvb3BFdmVudFF1ZXVlPiBtX2FzeW5j
RXZlbnRRdWV1ZTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTE1OSw3ICsxMTU0LDYg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWVkaWFLZXlzPiBtX21lZGlhS2V5czsKICAgICBib29s
IG1fYXR0YWNoaW5nTWVkaWFLZXlzIHsgZmFsc2UgfTsKICAgICBib29sIG1fcGxheWJhY2tCbG9j
a2VkV2FpdGluZ0ZvcktleSB7IGZhbHNlIH07Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fZW5j
cnlwdGVkTWVkaWFRdWV1ZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKaW5kZXggMWQw
MzQ2MWM3NGI1ZDBhNTI1NTI3YTQ1OGQxNmNmOWNlYjFkM2U0MS4uZTNkMTRjYTc5YmY0ZDQyZjRj
NDc2YzkzZDNkZTUwOTkyZmM3YThkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHAKQEAgLTc1LDcgKzc1LDYgQEAgUmVmPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQKIAogTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQmIGVs
ZW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQotICAgICwgbV90
YXNrUXVldWUoJmRvY3VtZW50KQogICAgICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIoJmVs
ZW1lbnQpKQogewogfQpAQCAtMzg3LDggKzM4Niw5IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6ZXMoRm9yY2VVcGRhdGUgZm9yY2UpCiAgICAg
Zm9yIChhdXRvJiBhY3RpdmVDdWUgOiBtX21lZGlhRWxlbWVudC0+Y3VycmVudGx5QWN0aXZlQ3Vl
cygpKQogICAgICAgICBhY3RpdmVDdWUuZGF0YSgpLT5yZWNhbGN1bGF0ZVN0eWxlcygpOwogCi0g
ICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdICgpIHsKLSAgICAgICAgdXBkYXRlRGlz
cGxheSgpOworICAgIGRvY3VtZW50KCkuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6
Ok1lZGlhRWxlbWVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoKSB7CisgICAg
ICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT51cGRhdGVEaXNwbGF5KCk7
CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaAppbmRleCA3
ZTQyYTRkMzViOWNlZGRiNjUxMGIzMmQ5YzU5ZTliYTk2Y2RiNzAyLi43OTA5Y2MyNDBhMWQ2MzUy
MjUzMmZiOTdhMjViNDYyNjAyZTIxOWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5oCkBAIC0zMSw3ICszMSw2IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRl
ICJHZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNs
dWRlICJNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbi5oIgpAQCAtOTcsNyArOTYsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFRleHRUcmFja1JlcHJlc2VudGF0aW9uPiBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9u
OwogCi0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fdGFza1F1ZXVlOwogICAgIFdlYWtQdHI8SFRN
TE1lZGlhRWxlbWVudD4gbV9tZWRpYUVsZW1lbnQ7CiAgICAgSW50UmVjdCBtX3ZpZGVvRGlzcGxh
eVNpemU7CiAgICAgaW50IG1fZm9udFNpemUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UcmFja0xpc3RCYXNlLmNwcAppbmRleCBiNmYxN2JkNTI2YzEwNjY4NGI1MDk5YzliMDFk
NDE4OWQ1YjNjMGRkLi5kNDQ5ZWVmMDMzZDg2NmM0ZjJlZGY5YTg4OTEzODFmNWIyZTFjMTM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAKQEAgLTQyLDcg
KzQyLDYgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFRyYWNrTGlzdEJhc2UpOwogVHJh
Y2tMaXN0QmFzZTo6VHJhY2tMaXN0QmFzZShXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGVsZW1l
bnQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01PYmpl
Y3QoY29udGV4dCkKICAgICAsIG1fZWxlbWVudChlbGVtZW50KQotICAgICwgbV9hc3luY0V2ZW50
UXVldWUoRXZlbnRMb29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKIHsKICAgICBBU1NFUlQo
IWNvbnRleHQgfHwgaXM8RG9jdW1lbnQ+KGNvbnRleHQpKTsKIH0KQEAgLTk3LDcgKzk2LDcgQEAg
Ym9vbCBUcmFja0xpc3RCYXNlOjpjb250YWlucyhUcmFja0Jhc2UmIHRyYWNrKSBjb25zdAogCiB2
b2lkIFRyYWNrTGlzdEJhc2U6OnNjaGVkdWxlVHJhY2tFdmVudChjb25zdCBBdG9tU3RyaW5nJiBl
dmVudE5hbWUsIFJlZjxUcmFja0Jhc2U+JiYgdHJhY2spCiB7Ci0gICAgbV9hc3luY0V2ZW50UXVl
dWUtPmVucXVldWVFdmVudChUcmFja0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIFdURk1vdmUodHJhY2spKSk7Cisg
ICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1l
bnQsIFRyYWNrRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObywgV1RGTW92ZSh0cmFjaykpKTsKIH0KIAogdm9pZCBUcmFj
a0xpc3RCYXNlOjpzY2hlZHVsZUFkZFRyYWNrRXZlbnQoUmVmPFRyYWNrQmFzZT4mJiB0cmFjaykK
QEAgLTE2MCwxMiArMTU5LDExIEBAIHZvaWQgVHJhY2tMaXN0QmFzZTo6c2NoZWR1bGVDaGFuZ2VF
dmVudCgpCiAgICAgLy8gV2hlbmV2ZXIgYSB0cmFjayBpbiBhIFZpZGVvVHJhY2tMaXN0IHRoYXQg
d2FzIHByZXZpb3VzbHkgbm90IHNlbGVjdGVkIGlzCiAgICAgLy8gc2VsZWN0ZWQsIHRoZSB1c2Vy
IGFnZW50IG11c3QgcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQKICAg
ICAvLyBjaGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdC4KLSAgICBtX2FzeW5jRXZl
bnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKLX0K
LQotYm9vbCBUcmFja0xpc3RCYXNlOjppc0NoYW5nZUV2ZW50U2NoZWR1bGVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9hc3luY0V2ZW50UXVldWUtPmhhc1BlbmRpbmdFdmVudHNPZlR5cGUoZXZl
bnROYW1lcygpLmNoYW5nZUV2ZW50KTsKKyAgICBtX2lzQ2hhbmdlRXZlbnRTY2hlZHVsZWQgPSB0
cnVlOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6
TWVkaWFFbGVtZW50LCBbdGhpc10geworICAgICAgICBtX2lzQ2hhbmdlRXZlbnRTY2hlZHVsZWQg
PSBmYWxzZTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5jaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7CisgICAgfSk7CiB9CiAKIGJvb2wgVHJhY2tMaXN0QmFzZTo6aXNBbnlUcmFja0VuYWJs
ZWQoKSBjb25zdApAQCAtMTc3LDExICsxNzUsNiBAQCBib29sIFRyYWNrTGlzdEJhc2U6OmlzQW55
VHJhY2tFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgVHJhY2tM
aXN0QmFzZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0aXZpdHkoKTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVHJhY2tMaXN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xp
c3RCYXNlLmgKaW5kZXggNmE3MjU5ZjkyNjgyY2IyZDVjZWNmMzc0MzkzNzBhMDUwOWJiNzQ5ZC4u
ZGQ2OTkzZmY4MGIyZWQ4MTc3MGM4OTRiZjFmOWUzYTg5ODU0MDU0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpZiBFTkFC
TEUoVklERU8pCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJFdmVu
dExvb3BFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTYxLDcgKzYwLDcg
QEAgcHVibGljOgogCiAgICAgLy8gTmVlZHMgdG8gYmUgcHVibGljIHNvIHRyYWNrcyBjYW4gY2Fs
bCBpdAogICAgIHZvaWQgc2NoZWR1bGVDaGFuZ2VFdmVudCgpOwotICAgIGJvb2wgaXNDaGFuZ2VF
dmVudFNjaGVkdWxlZCgpIGNvbnN0OworICAgIGJvb2wgaXNDaGFuZ2VFdmVudFNjaGVkdWxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNDaGFuZ2VFdmVudFNjaGVkdWxlZDsgfQogCiAgICAgYm9vbCBp
c0FueVRyYWNrRW5hYmxlZCgpIGNvbnN0OwogCkBAIC03NiwxNiArNzUsMTIgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlVHJhY2tFdmVudChjb25zdCBBdG9tU3RyaW5n
JiBldmVudE5hbWUsIFJlZjxUcmFja0Jhc2U+JiYpOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0
LgotICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwot
CiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBy
ZWYoKTsgfQogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQog
CiAgICAgV2Vha1B0cjxIVE1MTWVkaWFFbGVtZW50PiBtX2VsZW1lbnQ7Ci0KLSAgICBVbmlxdWVS
ZWY8RXZlbnRMb29wRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CisgICAgYm9vbCBtX2lz
Q2hhbmdlRXZlbnRTY2hlZHVsZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgKaW5kZXggYmVlNWNmOTJiMDQ0ODVmNGI1MmQzMzk4YWExZjA3YTdiMTBjNzA4
My4uOWUwZmU1Mzg3Y2U3ODQyYTZjMWRmMWU2ZmM2YWNkMTE4MDI2YWExOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBA
IC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
IAotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJNZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430672</attachid>
            <date>2021-06-05 20:59:00 -0700</date>
            <delta_ts>2021-06-05 22:02:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226692-20210605205859.patch</filename>
            <type>text/plain</type>
            <size>44671</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZkOWY1ZDhmM2EzMjQx
MWM5YTUzODM1NTU4YjFjMTRkMzBmOTE3ZS4uODE4MDc0NmMwYmY0ZGIwYzc2M2UyNjE5MzkxZGMy
MGQwOGIyNDE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIxLTA2LTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBsZWdh
Y3kgRXZlbnRMb29wRXZlbnRRdWV1ZSBhbmQgRXZlbnRMb29wVGFza1F1ZXVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY2OTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgdXNlIG9mIGxlZ2Fj
eSBFdmVudExvb3BFdmVudFF1ZXVlIGFuZCBFdmVudExvb3BUYXNrUXVldWUsIGFuZCB1c2UgdGhl
IEhUTUwgZXZlbnQKKyAgICAgICAgbG9vcCBkaXJlY3RseSBpbnN0ZWFkLiBUaG9zZSBhcmUgdmVy
eSBzaW1wbGUgY2FzZXMsIHRoZXkgcmVhbGx5IGRvbid0IG5lZWQgYW55IG9mIHRoZQorICAgICAg
ICBmZWF0dXJlcyB0aGUgcXVldWUgd2FzIHByb3ZpZGluZyAoc3VjaCBhcyBjYW5jZWxsaW5nIGV2
ZW50cykuCisKKyAgICAgICAgVG8gZ2V0IHJpZCBvZiB0aGUgcmVtYWluaW5nIHVzYWdlIG9mIEV2
ZW50TG9vcEV2ZW50UXVldWUgLyBFdmVudExvb3BUYXNrUXVldWUsIEkgYmVsaWV2ZQorICAgICAg
ICB3ZSdsbCBuZWVkIGEgd2F5IHRvIGNhbmNlbCB0YXNrcyBzY2hlZHVsZWQgaW4gdGhlIEhUTUwg
ZXZlbnQgbG9vcC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTb3VyY2U6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzY2hlZHVsZUV2ZW50KToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlckxpc3Q6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oOgorICAgICAgICAqIE1vZHVsZXMvcmVtb3Rl
cGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxh
eWJhY2s6OlJlbW90ZVBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVBsYXliYWNr
Ojp3YXRjaEF2YWlsYWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6
Y2FuY2VsV2F0Y2hBdmFpbGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJh
Y2s6OnByb21wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6c2V0U3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmRpc2Nvbm5lY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmF2YWlsYWJpbGl0eUNoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OnN0b3ApOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaDoKKyAgICAgICAgKiBhbmltYXRp
b24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJv
bURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxl
cjo6Y2FjaGVDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXI6Om1heWJlQ2xlYXJDYWNoZWRDdXJyZW50VGltZSk6CisgICAgICAgICogYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9GdWxs
c2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6
OnJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2Ny
ZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlh
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlh
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVkRnJv
bUFuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxl
UmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c2NoZWR1bGVSZWplY3RQZW5kaW5nUGxheVByb21pc2VzKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTm90aWZ5QWJvdXRQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhS2V5cyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjbG9zZVRhc2tRdWV1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRJc1BsYXlpbmdUb1dp
cmVsZXNzVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVy
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc1Zpc2li
bGVJblZpZXdwb3J0Q2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0
ZVNpemVzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OlRyYWNrTGlzdEJhc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6VHJhY2tMaXN0QmFzZTo6c2NoZWR1bGVDaGFuZ2VFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpUcmFja0xpc3RCYXNlOjppc0NoYW5nZUV2ZW50U2NoZWR1bGVkIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZp
dHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6OnByb2Nlc3NDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6Om1hdGNoZWRMZW5ndGgp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmg6
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKwogMjAy
MS0wNi0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbbWFjT1NdIE1vdmUgRGF0YURldGVjdG9ycyBzb2Z0bGlua2luZyBpbiBEYXRhRGV0ZWN0b3Jz
U1BJLmggb3V0IGludG8gYSBzZXBhcmF0ZSBQQUwgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAKaW5kZXggOGQzNmI5OTllOWUzYzhjMjJiNzVkMmU2MDA1MGUxMjg2ZTQ5Y2VmZS4u
MzhlYTdjNGI4YWZmM2RkZjE4ZThkNDkwNWE5YTBmMDFmYTBmNDdhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcApAQCAtNTksNyArNTksNiBAQCBNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dAogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2xvZ2dlcihtYWtlUmVm
KERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENv
b3JkaW5hdG9yTG9nSWRlbnRpZmllcigpKQotICAgICwgbV9hc3luY0V2ZW50UXVldWUoRXZlbnRM
b29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOwogfQpAQCAtNDE5LDcgKzQxOCw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhCiAg
ICAgbV9zdGF0ZSA9IHN0YXRlOwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbV9zdGF0
ZSk7CiAgICAgaWYgKHNob3VsZEZpcmVFdmVudHMoKSkKLSAgICAgICAgbV9hc3luY0V2ZW50UXVl
dWUtPmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb29yZGluYXRvcnN0
YXRlY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworICAgICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3Vy
Y2U6Ok1lZGlhRWxlbWVudCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY29vcmRpbmF0b3Jz
dGF0ZWNoYW5nZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3VycmVudFBvc2l0
aW9uQXBwcm94aW1hdGVseUVxdWFsVG8oZG91YmxlIHRpbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaAppbmRleCBlM2RkODA2MGY5ZDQwOTYyM2MwOWZhZWE5Y2RlNTVlNTQ5ZGRhNDMy
Li4zMWM0ZDliNDMzMjg3M2NjYWIzMzI0YTg0MjkwNzBjZGZhZGQ2Y2Y4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUg
IkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1
ZGUgIk1lZGlhU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZS5oIgpAQCAtMTEwLDcgKzEwOSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4gbV9wcml2YXRlQ29vcmRpbmF0b3I7CiAgICAgY29uc3Qg
UmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlm
aWVyOwotICAgIFVuaXF1ZVJlZjxFdmVudExvb3BFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1
ZTsKICAgICBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIG1fc3RhdGUgeyBNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlOjpDbG9zZWQgfTsKICAgICBib29sIG1faGFzQ29vcmRpbmF0b3Jz
U3RhdGVDaGFuZ2VFdmVudExpc3RlbmVyIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDU2YzVkYTg3
ZDc2MTAzODFiYTFmMjg1M2YyZGYzYWJhYTdmMmJmNTIuLmMzOGYwYTg4ZTNjM2VhYzE2Njk3MzIx
MzQ1ZmYyYjU4ZTVhYWE2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0xMDQsNyArMTA0LDYgQEAgTWVkaWFTb3VyY2U6
Ok1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgOiBBY3Rp
dmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2R1cmF0aW9uKE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKSkKICAgICAsIG1fcGVuZGluZ1NlZWtUaW1lKE1lZGlhVGltZTo6aW52YWxpZFRpbWUo
KSkKLSAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgq
dGhpcykpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCkubG9nZ2VyKCkpCiAjZW5kaWYKQEAgLTk5OCw3ICs5OTcsNyBA
QCB2b2lkIE1lZGlhU291cmNlOjpvcGVuSWZJbkVuZGVkU3RhdGUoKQogCiBib29sIE1lZGlhU291
cmNlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9w
cml2YXRlIHx8IG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBtX2Fz
c29jaWF0ZWRSZWdpc3RyeUNvdW50OworICAgIHJldHVybiBtX3ByaXZhdGUgfHwgbV9hc3NvY2lh
dGVkUmVnaXN0cnlDb3VudDsKIH0KIAogdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCkBAIC0xMDc4
LDEwICsxMDc3LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9t
U3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJzY2hl
ZHVsaW5nICciLCBldmVudE5hbWUsICInIik7CiAKLSAgICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObyk7Ci0gICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLQotICAgIG1fYXN5bmNFdmVudFF1
ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0
Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7
CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE1lZGlhU291cmNlOjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuaAppbmRleCBhM2E4NGMzZjIxNTY2OGU4OTdjN2YyMDc3YzUxYWRmOWFl
Y2EyNTk2Li5hMjZlNTUzZTdhMWNkMzUwYTNiNDY0ZjAzZTE0MzllYjZhZTFmMmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCkBAIC0z
Myw3ICszMyw2IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRl
ICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSFRN
TE1lZGlhRWxlbWVudC5oIgpAQCAtMTc0LDcgKzE3Myw2IEBAIHByaXZhdGU6CiAgICAgTWVkaWFU
aW1lIG1fZHVyYXRpb247CiAgICAgTWVkaWFUaW1lIG1fcGVuZGluZ1NlZWtUaW1lOwogICAgIFJl
YWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgUmVhZHlTdGF0ZTo6Q2xvc2VkIH07Ci0gICAgVW5pcXVl
UmVmPEV2ZW50TG9vcEV2ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOwogI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0
IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCAzZmZhMjhjOWY4
ZDczZDNiNzZhZDM2NmI1MDFjNWMwMDk1YTk4YjJkLi5lMTY4ZDc0NWVmMjQxNWZkNWQzNmEzN2Yw
ODQ4ZmUzMzMyNmQ3ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC03NCw3ICs3NCw2IEBAIFNvdXJjZUJ1ZmZlcjo6
U291cmNlQnVmZmVyKFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZh
dGUsIE1lZGlhCiAgICAgOiBBY3RpdmVET01PYmplY3Qoc291cmNlLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCiAgICAgLCBtX3ByaXZhdGUoV1RGTW92ZShzb3VyY2VCdWZmZXJQcml2YXRlKSkK
ICAgICAsIG1fc291cmNlKHNvdXJjZSkKLSAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9v
cEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX2FwcGVuZEJ1ZmZlclRpbWVyKCp0
aGlzLCAmU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVkKQogICAgICwgbV9hcHBl
bmRXaW5kb3dTdGFydChNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgLCBtX2FwcGVuZFdpbmRv
d0VuZChNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpCkBAIC00MzksNyArNDM4LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQog
CiBib29sIFNvdXJjZUJ1ZmZlcjo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fc291cmNlIHx8IG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0
aXZpdHkoKTsKKyAgICByZXR1cm4gbV9zb3VyY2U7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjpz
dG9wKCkKQEAgLTQ2MCwxMCArNDU5LDcgQEAgYm9vbCBTb3VyY2VCdWZmZXI6OmlzUmVtb3ZlZCgp
IGNvbnN0CiAKIHZvaWQgU291cmNlQnVmZmVyOjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJp
bmcmIGV2ZW50TmFtZSkKIHsKLSAgICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7Ci0gICAg
ZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLQotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVl
RXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhp
cywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZl
bnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVySW50ZXJuYWwoY29uc3QgdW5z
aWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IDJjZmY2NzhmNjAxNmNlZDdl
ZmI0Njk3ODFiMWRmMmFhNjI5ZmI3OGQuLmVlY2QzMWJmYzVmNGJhMmYzZjY2MDgwN2RlYTYyNTE3
Nzc1YmE3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaApAQCAtMzUsNyArMzUsNiBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFjay5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50
UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9y
LmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgpAQCAtMjA4LDcgKzIwNyw2IEBA
IHByaXZhdGU6CiAKICAgICBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAg
IE1lZGlhU291cmNlKiBtX3NvdXJjZTsKLSAgICBVbmlxdWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1
ZT4gbV9hc3luY0V2ZW50UXVldWU7CiAgICAgQXBwZW5kTW9kZSBtX21vZGUgeyBBcHBlbmRNb2Rl
OjpTZWdtZW50cyB9OwogCiAgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IG1fcGVuZGluZ0FwcGVu
ZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXJMaXN0LmNwcAppbmRleCA4MzZkNGMwOGI2NGVmNzg3Zjk3Mjc1OGNiZGE3M2U1
ZTk3YzgzMzdiLi43NjUwYjViM2FjZjhjNjllZmU2ZTI3ZGJkYTVlNDJhNTUzYWE5OTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyTGlzdC5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFNvdXJjZUJ1ZmZlckxpc3QpOwogCiBTb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01PYmplY3Qo
Y29udGV4dCkKLSAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNy
ZWF0ZSgqdGhpcykpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CkBAIC05NSwxMCArOTQs
NyBAQCB2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OnN3YXAoVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZm
ZXI+PiYgb3RoZXIpCiAKIHZvaWQgU291cmNlQnVmZmVyTGlzdDo6c2NoZWR1bGVFdmVudChjb25z
dCBBdG9tU3RyaW5nJiBldmVudE5hbWUpCiB7Ci0gICAgYXV0byBldmVudCA9IEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lLCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pOwotICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7Ci0KLSAgICBtX2FzeW5jRXZlbnRRdWV1
ZS0+ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNo
RXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwog
fQogCiBjb25zdCBjaGFyKiBTb3VyY2VCdWZmZXJMaXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXJMaXN0LmgKaW5kZXggZDM5ZjcyOWM5MjhmODAzNTFhZDY3NTU1NmVhMWI5MjFmNGVj
ZjFjMC4uYjdlYWJjNjRmNTAyMjcxMGM2Y2VhM2Q2ZTBlNGRlODQ0YTNkZmMxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0
LmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiRXZlbnRMb29wRXZlbnRRdWV1ZS5oIgog
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04MCw4ICs3OSw2IEBAIHByaXZhdGU6CiAKICAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAKLSAgICBVbmlx
dWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7Ci0KICAgICBWZWN0
b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlcj4+IG1fbGlzdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKaW5k
ZXggNjQ3ZTVkY2ZhYmMyYTViN2NiNGRjODUwM2RiNWY5YzMwNzFjNWUyNi4uNzQ1MGJlNDk4MTZm
ZDExNDQ3NjYzNTk3ZjhmYmQ5NTdjZjRkNWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKQEAgLTUwLDgg
KzUwLDYgQEAgUmVmPFJlbW90ZVBsYXliYWNrPiBSZW1vdGVQbGF5YmFjazo6Y3JlYXRlKEhUTUxN
ZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiBSZW1vdGVQbGF5YmFjazo6UmVtb3RlUGxheWJhY2soSFRN
TE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICA6IFdlYkNvcmU6OkFjdGl2ZURPTU9iamVjdChl
bGVtZW50LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1fbWVkaWFFbGVtZW50KG1h
a2VXZWFrUHRyKGVsZW1lbnQpKQotICAgICwgbV9ldmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVl
dWU6OmNyZWF0ZSgqdGhpcykpCi0gICAgLCBtX3Rhc2tRdWV1ZShlbGVtZW50LnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KQEAgLTY5LDcgKzY3
LDEwIEBAIHZvaWQgUmVtb3RlUGxheWJhY2s6OndhdGNoQXZhaWxhYmlsaXR5KFJlZjxSZW1vdGVQ
bGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrPiYmCiAgICAgLy8gMS4gTGV0IHByb21pc2UgYmUg
YSBuZXcgcHJvbWlzZS0+CiAgICAgLy8gMi4gUmV0dXJuIHByb21pc2UsIGFuZCBydW4gdGhlIGZv
bGxvd2luZyBzdGVwcyBiZWxvdzoKICAgICAKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhb
dGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldICgpIG11dGFibGUgeworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhp
cywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAg
ICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAg
IC8vIDMuIElmIHRoZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgYXR0cmlidXRlIGlzIHByZXNlbnQg
Zm9yIHRoZSBtZWRpYSBlbGVtZW50LCByZWplY3QgdGhlIHByb21pc2Ugd2l0aAogICAgICAgICAv
LyAgICBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgYWxsIHRoZSByZW1haW5pbmcgc3RlcHMu
CiAgICAgICAgIGlmICghbV9tZWRpYUVsZW1lbnQKQEAgLTk3LDcgKzk4LDkgQEAgdm9pZCBSZW1v
dGVQbGF5YmFjazo6d2F0Y2hBdmFpbGFiaWxpdHkoUmVmPFJlbW90ZVBsYXliYWNrQXZhaWxhYmls
aXR5Q2FsbGJhY2s+JiYKICAgICAgICAgLy8gOC4gRnVsZmlsbCBwcm9taXNlIHdpdGggdGhlIGNh
bGxiYWNrSWQgYW5kIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgogICAgICAg
ICBwcm9taXNlLT53aGVuU2V0dGxlZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
dGhpcyksIGNhbGxiYWNrSWRdIHsKICAgICAgICAgICAgIC8vIDguMSBRdWV1ZSBhIHRhc2sgdG8g
aW52b2tlIHRoZSBjYWxsYmFjayB3aXRoIHRoZSBjdXJyZW50IGF2YWlsYWJpbGl0eSBmb3IgdGhl
IG1lZGlhIGVsZW1lbnQuCi0gICAgICAgICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhp
cywgY2FsbGJhY2tJZCwgYXZhaWxhYmxlID0gbV9hdmFpbGFibGVdIHsKKyAgICAgICAgICAgIHF1
ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50
LCBbdGhpcywgY2FsbGJhY2tJZCwgYXZhaWxhYmxlID0gbV9hdmFpbGFibGVdIHsKKyAgICAgICAg
ICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICAgICAgYXV0byBmb3VuZENhbGxiYWNrID0gbV9jYWxsYmFja01hcC5m
aW5kKGNhbGxiYWNrSWQpOwogICAgICAgICAgICAgICAgIGlmIChmb3VuZENhbGxiYWNrID09IG1f
Y2FsbGJhY2tNYXAuZW5kKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyNCw3
ICsxMjcsOSBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpjYW5jZWxXYXRjaEF2YWlsYWJpbGl0eShz
dGQ6Om9wdGlvbmFsPGludDMyX3Q+IGlkLCBSZWY8RGVmZQogICAgIC8vIDEuIExldCBwcm9taXNl
IGJlIGEgbmV3IHByb21pc2UtPgogICAgIC8vIDIuIFJldHVybiBwcm9taXNlLCBhbmQgcnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHMgYmVsb3c6CiAKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhb
dGhpcywgaWQgPSBXVEZNb3ZlKGlkKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIHsKKyAg
ICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxl
bWVudCwgW3RoaXMsIGlkID0gV1RGTW92ZShpZCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIC8vIDMuIElmIHRoZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgYXR0cmlidXRlIGlz
IHByZXNlbnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50LCByZWplY3QgcHJvbWlzZSB3aXRoCiAgICAg
ICAgIC8vICAgIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCBhbGwgdGhlIHJlbWFpbmluZyBz
dGVwcy4KICAgICAgICAgaWYgKCFtX21lZGlhRWxlbWVudApAQCAtMTY3LDcgKzE3MiwxMCBAQCB2
b2lkIFJlbW90ZVBsYXliYWNrOjpwcm9tcHQoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNl
KQogICAgIC8vIDEuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UtPgogICAgIC8vIDIuIFJl
dHVybiBwcm9taXNlLCBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgYmVsb3c6CiAKLSAgICBt
X3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSks
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKV0gKCkgbXV0YWJsZSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFs
aXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0gVXNlckdlc3R1cmVJbmRpY2F0
b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGlz
Q29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICAvLyAzLiBJ
ZiB0aGUgZGlzYWJsZVJlbW90ZVBsYXliYWNrIGF0dHJpYnV0ZSBpcyBwcmVzZW50IGZvciB0aGUg
bWVkaWEgZWxlbWVudCwgcmVqZWN0IHRoZSBwcm9taXNlIHdpdGgKICAgICAgICAgLy8gICAgSW52
YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IGFsbCB0aGUgcmVtYWluaW5nIHN0ZXBzLgogICAgICAg
ICBpZiAoIW1fbWVkaWFFbGVtZW50CkBAIC0yNzAsMTcgKzI3OCwxOSBAQCB2b2lkIFJlbW90ZVBs
YXliYWNrOjpzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkKIAogICAgIG1fc3RhdGUgPSBzdGF0ZTsKIAor
ICAgIFJlZlB0cjxFdmVudD4gZXZlbnQ7CiAgICAgc3dpdGNoIChtX3N0YXRlKSB7CiAgICAgY2Fz
ZSBTdGF0ZTo6Q29ubmVjdGVkOgotICAgICAgICBtX2V2ZW50UXVldWUtPmVucXVldWVFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25uZWN0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgICAgICBldmVudCA9IEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmNvbm5lY3RFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdGF0ZTo6
Q29ubmVjdGluZzoKLSAgICAgICAgbV9ldmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuY29ubmVjdGluZ0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAgICAgICAgZXZlbnQgPSBFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5jb25uZWN0aW5nRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3RhdGU6OkRp
c2Nvbm5lY3RlZDoKLSAgICAgICAgbV9ldmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuZGlzY29ubmVjdEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAgICAgICAgZXZlbnQgPSBFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5kaXNjb25uZWN0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBxdWV1ZVRh
c2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgZXZlbnQu
cmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIHZvaWQgUmVtb3RlUGxheWJhY2s6OmVzdGFibGlzaENv
bm5lY3Rpb24oKQpAQCAtMzEwLDcgKzMyMCwxMCBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpkaXNj
b25uZWN0KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gMi4gUXVldWUgYSB0YXNrIHRvIHJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlz
XSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpN
ZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisg
ICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgLy8gMi4xIFJlcXVlc3QgZGlzY29ubmVjdGlv
biBvZiByZW1vdGUgZnJvbSB0aGUgZGV2aWNlLiBJbXBsZW1lbnRhdGlvbiBpcyB1c2VyIGFnZW50
IHNwZWNpZmljLgogICAgICAgICAvLyBOT1RFOiBJbXBsZW1lbnRlZCBieSBNZWRpYVBsYXllcjo6
c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCgpCiAgICAgICAgIC8vIDIuMiBDaGFuZ2UgdGhlIHJl
bW90ZSdzIHN0YXRlIHRvIGRpc2Nvbm5lY3RlZC4KQEAgLTM3OCw3ICszOTEsMTAgQEAgdm9pZCBS
ZW1vdGVQbGF5YmFjazo6YXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2YWlsYWJsZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIG1fYXZhaWxhYmxlID0gYXZhaWxhYmxlOwogCi0gICAgbV90YXNrUXVl
dWUuZW5xdWV1ZVRhc2soW3RoaXMsIGF2YWlsYWJsZV0geworICAgIHF1ZXVlVGFza0tlZXBpbmdP
YmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgYXZhaWxh
YmxlXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1
cm47CisKICAgICAgICAgLy8gUHJvdGVjdCBtX2NhbGxiYWNrTWFwIGFnYWluc3QgbXV0YXRpb24g
d2hpbGUgaXQncyBiZWluZyBpdGVyYXRlZCBvdmVyLgogICAgICAgICBWZWN0b3I8UmVmPFJlbW90
ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2s+PiBjYWxsYmFja3M7CiAgICAgICAgIGNhbGxi
YWNrcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fY2FsbGJhY2tNYXAuc2l6ZSgpKTsKQEAgLTQw
MSwxMiArNDE3LDYgQEAgY29uc3QgY2hhciogUmVtb3RlUGxheWJhY2s6OmFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiUmVtb3RlUGxheWJhY2siOwogfQogCi12b2lkIFJl
bW90ZVBsYXliYWNrOjpzdG9wKCkKLXsKLSAgICBtX3Rhc2tRdWV1ZS5jbG9zZSgpOwotICAgIG1f
ZXZlbnRRdWV1ZS0+Y2xvc2UoKTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVt
b3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVt
b3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaAppbmRleCBhNTU3ZDFlNzk2YzQxZmFmYTY0MGUz
OWEzNTU4NmNlNDFlNjQyN2M5Li4wNDU3MzhlMzg3MDZmMzliMjI3ZDFkOTY4OGExNmQyMmJhZDYx
OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1Jl
bW90ZVBsYXliYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFj
ay9SZW1vdGVQbGF5YmFjay5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1
ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtODEsNyArODAs
NiBAQCBwcml2YXRlOgogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgogICAgIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHN0b3AoKSBmaW5h
bDsKIAogICAgIC8vIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEuCiAgICAgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBSZW1v
dGVQbGF5YmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpAQCAtOTksOSArOTcsNiBAQCBw
cml2YXRlOgogICAgIFByb21pc2VWZWN0b3IgbV9wcm9tcHRQcm9taXNlczsKICAgICBTdGF0ZSBt
X3N0YXRlIHsgU3RhdGU6OkRpc2Nvbm5lY3RlZCB9OwogICAgIGJvb2wgbV9hdmFpbGFibGUgeyBm
YWxzZSB9OwotCi0gICAgVW5pcXVlUmVmPEV2ZW50TG9vcEV2ZW50UXVldWU+IG1fZXZlbnRRdWV1
ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV90YXNrUXVldWU7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuY3BwCmluZGV4IDk5NDA5MWFmYzU1NTg5NzE2N2Q1MWFiMDEyNGE2Yjk3ODgwYjY3ZTAuLmI1
NWQ2MGIzYmM1ZjBkMzc1NzAzMGNmYzJjNDE5ODliNjJiZjMxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3Bw
CkBAIC00Myw3ICs0Myw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERvY3VtZW50VGltZWxp
bmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKERvY3VtZW50JiBkb2N1
bWVudCkKLSAgICA6IG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZSgmZG9jdW1lbnQpCisg
ICAgOiBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrKCZkb2N1bWVudCkKICAgICAsIG1fZG9jdW1l
bnQoZG9jdW1lbnQpCiB7CiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpIHsK
QEAgLTczLDcgKzczLDcgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OnJlbW92
ZVRpbWVsaW5lKERvY3VtZW50VGltZWxpbmUmIHRpbWVsaW5lKQogCiB2b2lkIERvY3VtZW50VGlt
ZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJvbURvY3VtZW50KCkKIHsKLSAgICBtX2N1cnJlbnRU
aW1lQ2xlYXJpbmdUYXNrUXVldWUuY2xvc2UoKTsKKyAgICBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdU
YXNrLmNsb3NlKCk7CiAKICAgICB3aGlsZSAoIW1fdGltZWxpbmVzLmNvbXB1dGVzRW1wdHkoKSkK
ICAgICAgICAgbV90aW1lbGluZXMuYmVnaW4oKS0+ZGV0YWNoRnJvbURvY3VtZW50KCk7CkBAIC0y
MzMsOCArMjMzLDggQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OmNhY2hlQ3Vy
cmVudFRpbWUoUmVkdWNlZFJlc29sdXRpb25TZWNvbmRzIG5ld0MKICAgICAvLyBhbmltYXRpb25z
LCBzbyB3ZSBzY2hlZHVsZSB0aGUgaW52YWxpZGF0aW9uIHRhc2sgYW5kIHJlZ2lzdGVyIGEgd2hl
bklkbGUgY2FsbGJhY2sgb24gdGhlIFZNLCB3aGljaCB3aWxsCiAgICAgLy8gZmlyZSBzeW5jcm9u
b3VzbHkgaWYgbm8gSlMgaXMgcnVubmluZy4KICAgICBtX3dhaXRpbmdPblZNSWRsZSA9IHRydWU7
Ci0gICAgaWYgKCFtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tz
KCkpCi0gICAgICAgIG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhz
dGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5YmVDbGVhckNhY2hlZEN1
cnJlbnRUaW1lLCB0aGlzKSk7CisgICAgaWYgKCFtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrLmlz
UGVuZGluZygpKQorICAgICAgICBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrLnNjaGVkdWxlVGFz
ayhzdGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5YmVDbGVhckNhY2hl
ZEN1cnJlbnRUaW1lLCB0aGlzKSk7CiAgICAgLy8gV2UgZXh0ZW50IHRoZSBhc3NvY2lhdGVkIERv
Y3VtZW50J3MgbGlmZWN5Y2xlIHVudGlsIHRoZSBWTSBiZWNhbWUgaWRsZSBzaW5jZSB0aGUgRG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyCiAgICAgLy8gaXMgb3duZWQgYnkgdGhlIERvY3VtZW50
LgogICAgIG1fZG9jdW1lbnQudm0oKS53aGVuSWRsZShbdGhpcywgcHJvdGVjdGVkRG9jdW1lbnQg
PSBtYWtlUmVmUHRyKG1fZG9jdW1lbnQpXSgpIHsKQEAgLTI0OSw3ICsyNDksNyBAQCB2b2lkIERv
Y3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lKCkK
ICAgICAvLyBKUyBvciB3YWl0aW5nIG9uIGFsbCBjdXJyZW50IGFuaW1hdGlvbiB1cGRhdGluZyBj
b2RlIHRvIGhhdmUgY29tcGxldGVkLiBUaGlzIGlzIHNvIHRoYXQKICAgICAvLyB3ZSdyZSBndWFy
YW50ZWVkIHRvIGhhdmUgYSBjb25zaXN0ZW50IGN1cnJlbnQgdGltZSByZXBvcnRlZCBmb3IgYWxs
IHdvcmsgaGFwcGVuaW5nIGluIGEgZ2l2ZW4KICAgICAvLyBKUyBmcmFtZSBvciB0aHJvdWdob3V0
IHVwZGF0aW5nIGFuaW1hdGlvbnMgaW4gV2ViQ29yZS4KLSAgICBpZiAoIW1faXNTdXNwZW5kZWQg
JiYgIW1fd2FpdGluZ09uVk1JZGxlICYmICFtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUu
aGFzUGVuZGluZ1Rhc2tzKCkpCisgICAgaWYgKCFtX2lzU3VzcGVuZGVkICYmICFtX3dhaXRpbmdP
blZNSWRsZSAmJiAhbV9jdXJyZW50VGltZUNsZWFyaW5nVGFzay5pc1BlbmRpbmcoKSkKICAgICAg
ICAgbV9jYWNoZWRDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oCmlu
ZGV4IDQyMTI3OGUzMjNhY2FiOGZmMTJlMWY2YjM1NTc3ZjQ4Zjc2Y2E2NzkuLjJhMTEwNGY3OTdk
NTAzZmM0MmE3NDNlZWRkYWNjZWU2NjgyZWFlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCisj
aW5jbHVkZSAiRGVmZXJyYWJsZVRhc2suaCIKICNpbmNsdWRlICJSZWR1Y2VkUmVzb2x1dGlvblNl
Y29uZHMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgpA
QCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF5YmVDbGVhckNhY2hlZEN1cnJl
bnRUaW1lKCk7CiAKICAgICBXZWFrSGFzaFNldDxEb2N1bWVudFRpbWVsaW5lPiBtX3RpbWVsaW5l
czsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9jdXJyZW50VGltZUNsZWFyaW5nVGFza1F1ZXVl
OworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2s7
CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25k
czo6TWFya2FibGVUcmFpdHM+IG1fY2FjaGVkQ3VycmVudFRpbWU7CiAgICAgYm9vbCBtX2lzU3Vz
cGVuZGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2Ny
ZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3Bw
CmluZGV4IDk3NDZjNjVhMTgzNjBkZWVjZDJjNzk0MGRhOTJmMzYwYjljNDhiYTIuLjc1ZDhkZjZk
NDljMWQ1ZmU1MzgyZjQzOGQ2YWI2ZGM0ZGQzNTIxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1
bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDgsNyArNDgsNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCiBGdWxsc2NyZWVuTWFuYWdlcjo6RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudCB7IGRvY3VtZW50IH0KLSAgICAsIG1fZnVsbHNj
cmVlblRhc2tRdWV1ZSB7ICZkb2N1bWVudCB9CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgLCBtX2xvZ0lkZW50aWZpZXIoTG9nZ2VySGVscGVyOjp1bmlxdWVMb2dJZGVudGlmaWVyKCkp
CiAjZW5kaWYKQEAgLTYyLDEwICs2MSwxMSBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1
ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbHNjcmVlbgogICAg
IGlmICghZWxlbWVudCkKICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50RWxlbWVudCgpOwogCi0g
ICAgYXV0byBmYWlsZWRQcmVmbGlnaHRzID0gW3RoaXNdKGF1dG8gZWxlbWVudCkgbXV0YWJsZSB7
CisgICAgYXV0byBmYWlsZWRQcmVmbGlnaHRzID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpXShhdXRvIGVsZW1lbnQpIG11dGFibGUgewogICAgICAgICBtX2Z1bGxzY3JlZW5F
cnJvckV2ZW50VGFyZ2V0UXVldWUuYXBwZW5kKFdURk1vdmUoZWxlbWVudCkpOwotICAgICAgICBt
X2Z1bGxzY3JlZW5UYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdIHsKLSAgICAgICAgICAgIGRp
c3BhdGNoRnVsbHNjcmVlbkNoYW5nZUV2ZW50cygpOworICAgICAgICBtX2RvY3VtZW50LmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpXSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5kaXNwYXRjaEZ1bGxzY3JlZW5DaGFuZ2VFdmVudHMo
KTsKICAgICAgICAgfSk7CiAgICAgfTsKIApAQCAtMTE0LDcgKzExNCwxMCBAQCB2b2lkIEZ1bGxz
Y3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCwgRnVsbHNjcmVlbgogCiAgICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBlbGVtZW50
OwogCi0gICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBlbGVtZW50
ID0gbWFrZVJlZlB0cihlbGVtZW50KSwgY2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2VzcywgZmFp
bGVkUHJlZmxpZ2h0cywgaWRlbnRpZmllciA9IExPR0lERU5USUZJRVJdICgpIG11dGFibGUgewor
ICAgIG1fZG9jdW1lbnQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1lZGlhRWxl
bWVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBlbGVtZW50ID0gbWFr
ZVJlZlB0cihlbGVtZW50KSwgY2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2VzcywgZmFpbGVkUHJl
ZmxpZ2h0cywgaWRlbnRpZmllciA9IExPR0lERU5USUZJRVJdICgpIG11dGFibGUgeworICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIC8vIERvbid0
IGFsbG93IGZ1bGxzY3JlZW4gaWYgaXQgaGFzIGJlZW4gY2FuY2VsbGVkIG9yIGEgZGlmZmVyZW50
IGZ1bGxzY3JlZW4gZWxlbWVudAogICAgICAgICAvLyBoYXMgcmVxdWVzdGVkIGZ1bGxzY3JlZW4u
CiAgICAgICAgIGlmIChtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVudCAhPSBlbGVtZW50KSB7CkBA
IC0yMjMsNyArMjI2LDEwIEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RGdWxsc2Ny
ZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuCiAgICAgICAgIC8vIDUu
IFJldHVybiwgYW5kIHJ1biB0aGUgcmVtYWluaW5nIHN0ZXBzIGFzeW5jaHJvbm91c2x5LgogICAg
ICAgICAvLyA2LiBPcHRpb25hbGx5LCBwZXJmb3JtIHNvbWUgYW5pbWF0aW9uLgogICAgICAgICBt
X2FyZUtleXNFbmFibGVkSW5GdWxsc2NyZWVuID0gaGFzS2V5Ym9hcmRBY2Nlc3M7Ci0gICAgICAg
IG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgZWxlbWVudCA9IFdURk1v
dmUoZWxlbWVudCksIGZhaWxlZFByZWZsaWdodHMgPSBXVEZNb3ZlKGZhaWxlZFByZWZsaWdodHMp
LCBpZGVudGlmaWVyXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgbV9kb2N1bWVudC5ldmVudExvb3Ao
KS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIGVsZW1lbnQgPSBXVEZNb3ZlKGVsZW1lbnQpLCBmYWlsZWRQcmVm
bGlnaHRzID0gV1RGTW92ZShmYWlsZWRQcmVmbGlnaHRzKSwgaWRlbnRpZmllcl0gKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsK
KwogICAgICAgICAgICAgYXV0byBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgICAgICAgICAgaWYg
KCFwYWdlIHx8IGRvY3VtZW50KCkuaGlkZGVuKCkgfHwgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1l
bnQgIT0gZWxlbWVudCB8fCAhZWxlbWVudC0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICAgICAg
ICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAidGFzayAtIHBhZ2UsIGRvY3VtZW50LCBvciBlbGVt
ZW50IG1pc21hdGNoOyBmYWlsaW5nLiIpOwpAQCAtMzI3LDcgKzMzMywxMCBAQCB2b2lkIEZ1bGxz
Y3JlZW5NYW5hZ2VyOjpleGl0RnVsbHNjcmVlbigpCiAKICAgICAvLyA2LiBSZXR1cm4sIGFuZCBy
dW4gdGhlIHJlbWFpbmluZyBzdGVwcyBhc3luY2hyb25vdXNseS4KICAgICAvLyA3LiBPcHRpb25h
bGx5LCBwZXJmb3JtIHNvbWUgYW5pbWF0aW9uLgotICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5l
bnF1ZXVlVGFzayhbdGhpcywgbmV3VG9wID0gbWFrZVJlZlB0cihuZXdUb3ApLCBmdWxsc2NyZWVu
RWxlbWVudCA9IG1fZnVsbHNjcmVlbkVsZW1lbnQsIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVS
XSB7CisgICAgbV9kb2N1bWVudC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVk
aWFFbGVtZW50LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIG5ld1RvcCA9
IG1ha2VSZWZQdHIobmV3VG9wKSwgZnVsbHNjcmVlbkVsZW1lbnQgPSBtX2Z1bGxzY3JlZW5FbGVt
ZW50LCBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUl0geworICAgICAgICBpZiAoIXdlYWtUaGlz
KQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdl
KCk7CiAgICAgICAgIGlmICghcGFnZSkgewogICAgICAgICAgICAgRVJST1JfTE9HKGlkZW50aWZp
ZXIsICJ0YXNrIC0gRG9jdW1lbnQgbm90IGluIHBhZ2U7IGJhaWxpbmcuIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDRiZDFhM2U4YmVmYjhlOWYyMDE2NzVkZGMy
NDcwODkyYjc1YjBiYjMuLjViZmUzOGRhNjRlNGVkYWVmZWRjYzNkYWQ4MzFmYmYzOGMxZDMxYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0yOCw5ICsyOCw5IEBA
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBSZW5kZXJGdWxsU2NyZWVuOwog
Y2xhc3MgUmVuZGVyVHJlZUJ1aWxkZXI7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIAotY2xhc3MgRnVs
bHNjcmVlbk1hbmFnZXIgZmluYWwgeworY2xhc3MgRnVsbHNjcmVlbk1hbmFnZXIgZmluYWwgOiBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8RnVsbHNjcmVlbk1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBGdWxsc2NyZWVuTWFuYWdlcihEb2N1bWVudCYp
OwpAQCAtMTE5LDcgKzExOSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZnVs
bHNjcmVlbkVsZW1lbnQ7CiAgICAgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4gbV9mdWxsc2NyZWVu
RWxlbWVudFN0YWNrOwogICAgIFdlYWtQdHI8UmVuZGVyRnVsbFNjcmVlbj4gbV9mdWxsc2NyZWVu
UmVuZGVyZXIgeyBudWxscHRyIH07Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fZnVsbHNjcmVl
blRhc2tRdWV1ZTsKICAgICBEZXF1ZTxSZWZQdHI8Tm9kZT4+IG1fZnVsbHNjcmVlbkNoYW5nZUV2
ZW50VGFyZ2V0UXVldWU7CiAgICAgRGVxdWU8UmVmUHRyPE5vZGU+PiBtX2Z1bGxzY3JlZW5FcnJv
ckV2ZW50VGFyZ2V0UXVldWU7CiAgICAgTGF5b3V0UmVjdCBtX3NhdmVkUGxhY2Vob2xkZXJGcmFt
ZVJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0ODcy
MjAwZDkxOTIwYWRhMjk2ZWVlN2Q3YTJjZmJhZTk2ODkwNTg4Li4zZjQ4ZWRiMmU2ODg4OWMxMDM2
ODNkZTYzNGM1ZTBjYTA1NDU1NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTQwMywxMiArNDAzLDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlh
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAg
ICAsIG1fc2Vla1Rhc2soJmRvY3VtZW50KQogICAgICwgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdl
ckJlaGF2aW9yUmVzdHJpY3Rpb25zVGFzaygmZG9jdW1lbnQpCiAgICAgLCBtX2J1ZmZlcmVkVGlt
ZVJhbmdlc0NoYW5nZWRUYXNrKCZkb2N1bWVudCkKLSAgICAsIG1fcHJvbWlzZVRhc2tRdWV1ZSgm
ZG9jdW1lbnQpCi0gICAgLCBtX3BhdXNlQWZ0ZXJEZXRhY2hlZFRhc2tRdWV1ZSgmZG9jdW1lbnQp
CiAgICAgLCBtX3Jlc291cmNlU2VsZWN0aW9uVGFza1F1ZXVlKCZkb2N1bWVudCkKLSAgICAsIG1f
dmlzaWJpbGl0eUNoYW5nZVRhc2tRdWV1ZSgmZG9jdW1lbnQpCi0gICAgLCBtX2Z1bGxzY3JlZW5U
YXNrUXVldWUoJmRvY3VtZW50KQotICAgICwgbV9wbGF5YmFja1RhcmdldElzV2lyZWxlc3NRdWV1
ZSgmZG9jdW1lbnQpCiAgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShFdmVudExvb3BFdmVudFF1ZXVl
OjpjcmVhdGUoKnRoaXMpKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLCBtX3ZvbHVt
ZVJldmVydFRhc2soJmRvY3VtZW50KQpAQCAtNDUxLDkgKzQ0Niw2IEBAIEhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtCiAgICAgLCBtX3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlKGZhbHNlKQogICAg
ICwgbV9zaG91bGRBdWRpb1BsYXliYWNrUmVxdWlyZVVzZXJHZXN0dXJlKGRvY3VtZW50LnRvcERv
Y3VtZW50KCkuYXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSAmJiAhcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAsIG1fc2hvdWxkVmlkZW9QbGF5YmFja1JlcXVp
cmVVc2VyR2VzdHVyZShkb2N1bWVudC50b3BEb2N1bWVudCgpLnZpZGVvUGxheWJhY2tSZXF1aXJl
c1VzZXJHZXN0dXJlKCkgJiYgIXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCi0jaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICAsIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZSgmZG9j
dW1lbnQpCi0jZW5kaWYKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAg
ICwgbV9yZW1vdGUoUmVtb3RlUGxheWJhY2s6OmNyZWF0ZSgqdGhpcykpCiAjZW5kaWYKQEAgLTU4
OSwxNCArNTgxLDggQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRpYUVsZW1lbnQoKQogCiAg
ICAgbV9zZWVrVGFzay5jbG9zZSgpOwogICAgIG1fcmVzdW1lVGFzay5jbG9zZSgpOwotICAgIG1f
cHJvbWlzZVRhc2tRdWV1ZS5jbG9zZSgpOwotICAgIG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1
ZXVlLmNsb3NlKCk7CiAgICAgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJp
Y3Rpb25zVGFzay5jbG9zZSgpOwogICAgIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVldWUuY2xv
c2UoKTsKLSAgICBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNrUXVldWUuY2xvc2UoKTsKLSNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQotICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5jbG9zZSgpOwot
I2VuZGlmCiAKICAgICBtX2NvbXBsZXRlbHlMb2FkZWQgPSB0cnVlOwogCkBAIC04NjQsNyArODUw
LDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFs
VHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kCiAgICAgc2V0SW5BY3RpdmVEb2N1bWVudChm
YWxzZSk7CiAgICAgaWYgKHJlbW92YWxUeXBlLmRpc2Nvbm5lY3RlZEZyb21Eb2N1bWVudCkgewog
ICAgICAgICAvLyBQYXVzZSBhc3luY2hyb25vdXNseSB0byBsZXQgdGhlIG9wZXJhdGlvbiB0aGF0
IHJlbW92ZWQgdXMgZmluaXNoLCBpbiBjYXNlIHdlIGdldCBpbnNlcnRlZCBiYWNrIGludG8gYSBk
b2N1bWVudC4KLSAgICAgICAgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVldWUuZW5xdWV1ZVRh
c2soc3RkOjpiaW5kKCZIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUFmdGVyRGV0YWNoZWRUYXNrLCB0
aGlzKSk7CisgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1Nv
dXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpc10geworICAgICAgICAgICAgaWYgKCFpc0NvbnRleHRT
dG9wcGVkKCkpCisgICAgICAgICAgICAgICAgcGF1c2VBZnRlckRldGFjaGVkVGFzaygpOworICAg
ICAgICB9KTsKICAgICB9CiAKICAgICBpZiAobV9tZWRpYVNlc3Npb24pCkBAIC05NDgsOCArOTM3
LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZVJlc29sdmVQZW5kaW5nUGxheVBy
b21pc2VzKCkKICAgICBpZiAobV9wZW5kaW5nUGxheVByb21pc2VzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9wcm9taXNlVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBw
ZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBt
dXRhYmxlIHsKLSAgICAgICAgcmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMoV1RGTW92ZShwZW5k
aW5nUGxheVByb21pc2VzKSk7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlz
LCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBwZW5kaW5nUGxheVByb21pc2VzID0g
V1RGTW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KCFpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXNvbHZlUGVuZGluZ1BsYXlQcm9t
aXNlcyhXVEZNb3ZlKHBlbmRpbmdQbGF5UHJvbWlzZXMpKTsKICAgICB9KTsKIH0KIApAQCAtOTU4
LDggKzk0OCw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVSZWplY3RQZW5kaW5n
UGxheVByb21pc2VzKFJlZjxET01FeGNlcHRpb24+JiYgZXJyCiAgICAgaWYgKG1fcGVuZGluZ1Bs
YXlQcm9taXNlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJvbWlzZVRh
c2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgZXJyb3IgPSBXVEZNb3ZlKGVycm9yKSwgcGVuZGlu
Z1BsYXlQcm9taXNlcyA9IFdURk1vdmUobV9wZW5kaW5nUGxheVByb21pc2VzKV0gKCkgbXV0YWJs
ZSB7Ci0gICAgICAgIHJlamVjdFBlbmRpbmdQbGF5UHJvbWlzZXMoV1RGTW92ZShwZW5kaW5nUGxh
eVByb21pc2VzKSwgV1RGTW92ZShlcnJvcikpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RB
bGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgZXJyb3IgPSBXVEZN
b3ZlKGVycm9yKSwgcGVuZGluZ1BsYXlQcm9taXNlcyA9IFdURk1vdmUobV9wZW5kaW5nUGxheVBy
b21pc2VzKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghaXNDb250ZXh0U3RvcHBlZCgpKQor
ICAgICAgICAgICAgcmVqZWN0UGVuZGluZ1BsYXlQcm9taXNlcyhXVEZNb3ZlKHBlbmRpbmdQbGF5
UHJvbWlzZXMpLCBXVEZNb3ZlKGVycm9yKSk7CiAgICAgfSk7CiB9CiAKQEAgLTk3Nyw4ICs5Njgs
OSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlc29sdmVQZW5kaW5nUGxheVByb21pc2VzKFBs
YXlQcm9taXNlVmVjdG9yJiYgcGVuZGluZ1BsYQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNj
aGVkdWxlTm90aWZ5QWJvdXRQbGF5aW5nKCkKIHsKLSAgICBtX3Byb21pc2VUYXNrUXVldWUuZW5x
dWV1ZVRhc2soW3RoaXMsIHBlbmRpbmdQbGF5UHJvbWlzZXMgPSBXVEZNb3ZlKG1fcGVuZGluZ1Bs
YXlQcm9taXNlcyldICgpIG11dGFibGUgewotICAgICAgICBub3RpZnlBYm91dFBsYXlpbmcoV1RG
TW92ZShwZW5kaW5nUGxheVByb21pc2VzKSk7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFs
aXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBwZW5kaW5nUGxheVBy
b21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKCFpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICBub3RpZnlBYm91dFBs
YXlpbmcoV1RGTW92ZShwZW5kaW5nUGxheVByb21pc2VzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTI2
MDYsNyArMjU5OCwxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhS2V5cyhNZWRp
YUtleXMqIG1lZGlhS2V5cywgUmVmPERlZmVycmVkUHJvbWlzZT4mJgogCiAgICAgLy8gNC4gTGV0
IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA1LiBSdW4gdGhlIGZvbGxvd2luZyBz
dGVwcyBpbiBwYXJhbGxlbDoKLSAgICBtX2VuY3J5cHRlZE1lZGlhUXVldWUuZW5xdWV1ZVRhc2so
W3RoaXMsIG1lZGlhS2V5cyA9IFJlZlB0cjxNZWRpYUtleXM+KG1lZGlhS2V5cyksIHByb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgeworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmpl
Y3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgbWVkaWFLZXlz
ID0gUmVmUHRyPE1lZGlhS2V5cz4obWVkaWFLZXlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAg
ICAgICByZXR1cm47CisKICAgICAgICAgLy8gNS4xLiBJZiBhbGwgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGhvbGQ6CiAgICAgICAgIC8vICAgICAgLSBtZWRpYUtleXMgaXMgbm90IG51bGwsCiAg
ICAgICAgIC8vICAgICAgLSB0aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IG1lZGlhS2V5
cyBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIG1lZGlhIGVsZW1lbnQKQEAgLTI2NDEsOCAr
MjYzNiw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFLZXlzKE1lZGlhS2V5cyog
bWVkaWFLZXlzLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmCiAgICAgICAgICAgICAvLyBGSVhNRTog
XgogCiAgICAgICAgICAgICAvLyA1LjMuMy4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgQXR0ZW1w
dCB0byBSZXN1bWUgUGxheWJhY2sgSWYgTmVjZXNzYXJ5IGFsZ29yaXRobSBvbiB0aGUgbWVkaWEg
ZWxlbWVudC4KLSAgICAgICAgICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5lbnF1ZXVlVGFzayhb
dGhpc10gewotICAgICAgICAgICAgICAgIGF0dGVtcHRUb1Jlc3VtZVBsYXliYWNrSWZOZWNlc3Nh
cnkoKTsKKyAgICAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFz
a1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpc10geworICAgICAgICAgICAgICAgIGlmICghaXND
b250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgICAgICAgICBhdHRlbXB0VG9SZXN1bWVQbGF5
YmFja0lmTmVjZXNzYXJ5KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC01NjUx
LDEzICs1NjQ3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbG9zZVRhc2tRdWV1ZXMoKQog
ICAgIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1Rhc2suY2xv
c2UoKTsKICAgICBtX3NlZWtUYXNrLmNsb3NlKCk7CiAgICAgbV9yZXN1bWVUYXNrLmNsb3NlKCk7
Ci0gICAgbV9wcm9taXNlVGFza1F1ZXVlLmNsb3NlKCk7Ci0gICAgbV9wYXVzZUFmdGVyRGV0YWNo
ZWRUYXNrUXVldWUuY2xvc2UoKTsKICAgICBtX3Jlc291cmNlU2VsZWN0aW9uVGFza1F1ZXVlLmNs
b3NlKCk7Ci0gICAgbV92aXNpYmlsaXR5Q2hhbmdlVGFza1F1ZXVlLmNsb3NlKCk7Ci0jaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICBtX2VuY3J5cHRlZE1lZGlhUXVldWUuY2xvc2UoKTsK
LSNlbmRpZgogICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5jbG9zZSgpOwogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgbV92b2x1bWVSZXZlcnRUYXNrLmNsb3NlKCk7CkBAIC01NzUwLDcgKzU3
NDAsNiBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHko
KSBjb25zdAogewogICAgIHJldHVybiBtX2NyZWF0aW5nQ29udHJvbHMKICAgICAgICAgfHwgbV9h
c3luY0V2ZW50UXVldWUtPmhhc1BlbmRpbmdBY3Rpdml0eSgpCi0gICAgICAgIHx8IG1fcGxheWJh
Y2tUYXJnZXRJc1dpcmVsZXNzUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkKICAgICAgICAgfHwgbV9y
ZXNvdXJjZVNlbGVjdGlvblRhc2tRdWV1ZS5oYXNQZW5kaW5nVGFza3MoKQogICAgICAgICB8fCAo
aGFzQXVkaW8oKSAmJiBpc1BsYXlpbmcoKSkKICAgICAgICAgfHwgKGhhc0xpdmVTb3VyY2UoKSAm
JiBoYXNFdmVudExpc3RlbmVycygpKTsKQEAgLTU4MzgsNyArNTgyNywxMCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0No
YW5nZWQoYm9vbCBpcwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRJc1BsYXlpbmdUb1dpcmVs
ZXNzVGFyZ2V0KGJvb2wgaXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCkKIHsKICAgICBhdXRvIGxv
Z1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKLSAgICBtX3BsYXliYWNrVGFyZ2V0SXNX
aXJlbGVzc1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0
LCBsb2dTaXRlSWRlbnRpZmllcl0geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgq
dGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgaXNQbGF5aW5nVG9XaXJlbGVz
c1RhcmdldCwgbG9nU2l0ZUlkZW50aWZpZXJdIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3Bw
ZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBVTlVTRURfUEFSQU0obG9nU2l0
ZUlkZW50aWZpZXIpOwogCiAgICAgICAgIGlmIChpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0ID09
IG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCkKQEAgLTYwNTUsNyArNjA0NywxMCBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1v
ZGUpCiAgICAgfQogI2VuZGlmCiAKLSAgICBtX2Z1bGxzY3JlZW5UYXNrUXVldWUuZW5xdWV1ZVRh
c2soW3RoaXMsIG1vZGVdIHsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMs
IFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIG1vZGVdIHsKKyAgICAgICAgaWYgKGlz
Q29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAoZG9j
dW1lbnQoKS5oaWRkZW4oKSkgewogICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCAiIHJldHVybmluZyBiZWNhdXNlIGRvY3VtZW50IGlzIGhpZGRlbiIpOwogICAgICAgICAgICAg
bV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBmYWxzZTsKQEAgLTgwMDIsNyArNzk5Nyw5
IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNWaWRlb1Rvb1NtYWxsRm9ySW5saW5lUGxheWJh
Y2soKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmlzVmlzaWJsZUluVmlld3BvcnRDaGFuZ2Vk
KCkKIHsKLSAgICBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNd
IHsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1l
ZGlhRWxlbWVudCwgW3RoaXNdIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgbWVkaWFTZXNzaW9uKCkuaXNWaXNpYmxlSW5WaWV3
cG9ydENoYW5nZWQoKTsKICAgICAgICAgdXBkYXRlU2hvdWxkQXV0b3BsYXkoKTsKICAgICAgICAg
c2NoZWR1bGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA5ZmM4MTZiMGM5YTdkMTgyNjQwOGRlZGYxMmU4NmY3
MzJiNjdiOTZlLi4wOTJiOGFmOWM4YTMyZGFlMTdiMmY2YWYyMWJjMmFkNGEzYjZjNGFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtOTUwLDEyICs5NTAsNyBAQCBw
cml2YXRlOgogICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fc2Vla1Rhc2s7CiAgICAgRXZl
bnRMb29wRGVmZXJyYWJsZVRhc2sgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVz
dHJpY3Rpb25zVGFzazsKICAgICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX2J1ZmZlcmVkVGlt
ZVJhbmdlc0NoYW5nZWRUYXNrOwotICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Byb21pc2VUYXNr
UXVldWU7Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1
ZXVlOwogICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Jlc291cmNlU2VsZWN0aW9uVGFza1F1ZXVl
OwotICAgIEV2ZW50TG9vcFRhc2tRdWV1ZSBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNrUXVldWU7Ci0g
ICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKLSAgICBFdmVudExv
b3BUYXNrUXVldWUgbV9wbGF5YmFja1RhcmdldElzV2lyZWxlc3NRdWV1ZTsKICAgICBSZWZQdHI8
VGltZVJhbmdlcz4gbV9wbGF5ZWRUaW1lUmFuZ2VzOwogICAgIFVuaXF1ZVJlZjxFdmVudExvb3BF
dmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpA
QCAtMTE1OSw3ICsxMTU0LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWVkaWFLZXlzPiBtX21l
ZGlhS2V5czsKICAgICBib29sIG1fYXR0YWNoaW5nTWVkaWFLZXlzIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fcGxheWJhY2tCbG9ja2VkV2FpdGluZ0ZvcktleSB7IGZhbHNlIH07Ci0gICAgRXZlbnRM
b29wVGFza1F1ZXVlIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZTsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHAKaW5kZXggMWQwMzQ2MWM3NGI1ZDBhNTI1NTI3YTQ1OGQxNmNmOWNlYjFkM2U0MS4u
ZTNkMTRjYTc5YmY0ZDQyZjRjNDc2YzkzZDNkZTUwOTkyZmM3YThkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKQEAgLTc1LDcgKzc1LDYgQEAgUmVmPE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQKIAogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEhU
TUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRv
Y3VtZW50KQotICAgICwgbV90YXNrUXVldWUoJmRvY3VtZW50KQogICAgICwgbV9tZWRpYUVsZW1l
bnQobWFrZVdlYWtQdHIoJmVsZW1lbnQpKQogewogfQpAQCAtMzg3LDggKzM4Niw5IEBAIHZvaWQg
TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6ZXMoRm9yY2VV
cGRhdGUgZm9yY2UpCiAgICAgZm9yIChhdXRvJiBhY3RpdmVDdWUgOiBtX21lZGlhRWxlbWVudC0+
Y3VycmVudGx5QWN0aXZlQ3VlcygpKQogICAgICAgICBhY3RpdmVDdWUuZGF0YSgpLT5yZWNhbGN1
bGF0ZVN0eWxlcygpOwogCi0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdICgpIHsK
LSAgICAgICAgdXBkYXRlRGlzcGxheSgpOworICAgIGRvY3VtZW50KCkuZXZlbnRMb29wKCkucXVl
dWVUYXNrKFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpXSAoKSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlz
LT51cGRhdGVEaXNwbGF5KCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQuaAppbmRleCA3ZTQyYTRkMzViOWNlZGRiNjUxMGIzMmQ5YzU5ZTliYTk2Y2RiNzAy
Li43OTA5Y2MyNDBhMWQ2MzUyMjUzMmZiOTdhMjViNDYyNjAyZTIxOWVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oCkBAIC0zMSw3ICszMSw2IEBACiAKICNpZiBFTkFCTEUo
VklERU8pCiAKLSNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSAiSFRNTERp
dkVsZW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCIKICNpbmNs
dWRlICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgpAQCAtOTcsNyArOTYsNiBAQCBwcml2YXRl
OgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHRUcmFja1JlcHJlc2VudGF0aW9uPiBtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uOwogCi0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fdGFza1F1ZXVl
OwogICAgIFdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4gbV9tZWRpYUVsZW1lbnQ7CiAgICAgSW50
UmVjdCBtX3ZpZGVvRGlzcGxheVNpemU7CiAgICAgaW50IG1fZm9udFNpemUgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcAppbmRleCBiNmYxN2JkNTI2
YzEwNjY4NGI1MDk5YzliMDFkNDE4OWQ1YjNjMGRkLi5kNDQ5ZWVmMDMzZDg2NmM0ZjJlZGY5YTg4
OTEzODFmNWIyZTFjMTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Ry
YWNrTGlzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0
QmFzZS5jcHAKQEAgLTQyLDcgKzQyLDYgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFRy
YWNrTGlzdEJhc2UpOwogVHJhY2tMaXN0QmFzZTo6VHJhY2tMaXN0QmFzZShXZWFrUHRyPEhUTUxN
ZWRpYUVsZW1lbnQ+IGVsZW1lbnQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fZWxlbWVudChlbGVtZW50KQot
ICAgICwgbV9hc3luY0V2ZW50UXVldWUoRXZlbnRMb29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlz
KSkKIHsKICAgICBBU1NFUlQoIWNvbnRleHQgfHwgaXM8RG9jdW1lbnQ+KGNvbnRleHQpKTsKIH0K
QEAgLTk3LDcgKzk2LDcgQEAgYm9vbCBUcmFja0xpc3RCYXNlOjpjb250YWlucyhUcmFja0Jhc2Um
IHRyYWNrKSBjb25zdAogCiB2b2lkIFRyYWNrTGlzdEJhc2U6OnNjaGVkdWxlVHJhY2tFdmVudChj
b25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIFJlZjxUcmFja0Jhc2U+JiYgdHJhY2spCiB7Ci0g
ICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChUcmFja0V2ZW50OjpjcmVhdGUoZXZl
bnROYW1lLCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIFdU
Rk1vdmUodHJhY2spKSk7CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNr
U291cmNlOjpNZWRpYUVsZW1lbnQsIFRyYWNrRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgV1RGTW92ZSh0cmFjaykp
KTsKIH0KIAogdm9pZCBUcmFja0xpc3RCYXNlOjpzY2hlZHVsZUFkZFRyYWNrRXZlbnQoUmVmPFRy
YWNrQmFzZT4mJiB0cmFjaykKQEAgLTE2MCwxMiArMTU5LDExIEBAIHZvaWQgVHJhY2tMaXN0QmFz
ZTo6c2NoZWR1bGVDaGFuZ2VFdmVudCgpCiAgICAgLy8gV2hlbmV2ZXIgYSB0cmFjayBpbiBhIFZp
ZGVvVHJhY2tMaXN0IHRoYXQgd2FzIHByZXZpb3VzbHkgbm90IHNlbGVjdGVkIGlzCiAgICAgLy8g
c2VsZWN0ZWQsIHRoZSB1c2VyIGFnZW50IG11c3QgcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1w
bGUgZXZlbnQgbmFtZWQKICAgICAvLyBjaGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVj
dC4KLSAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmNoYW5nZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKLX0KLQotYm9vbCBUcmFja0xpc3RCYXNlOjppc0NoYW5nZUV2ZW50U2No
ZWR1bGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9hc3luY0V2ZW50UXVldWUtPmhhc1BlbmRp
bmdFdmVudHNPZlR5cGUoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50KTsKKyAgICBtX2lzQ2hhbmdl
RXZlbnRTY2hlZHVsZWQgPSB0cnVlOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgq
dGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpc10geworICAgICAgICBtX2lzQ2hh
bmdlRXZlbnRTY2hlZHVsZWQgPSBmYWxzZTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisgICAgfSk7CiB9CiAKIGJvb2wgVHJhY2tMaXN0QmFz
ZTo6aXNBbnlUcmFja0VuYWJsZWQoKSBjb25zdApAQCAtMTc3LDExICsxNzUsNiBAQCBib29sIFRy
YWNrTGlzdEJhc2U6OmlzQW55VHJhY2tFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWJvb2wgVHJhY2tMaXN0QmFzZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0aXZpdHko
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgKaW5kZXggNmE3MjU5ZjkyNjgyY2IyZDVjZWNmMzc0
MzkzNzBhMDUwOWJiNzQ5ZC4uZGQ2OTkzZmY4MGIyZWQ4MTc3MGM4OTRiZjFmOWUzYTg5ODU0MDU0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgKQEAgLTI4LDcg
KzI4LDYgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKLSNpbmNsdWRlICJFdmVudExvb3BFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTYxLDcgKzYwLDcgQEAgcHVibGljOgogCiAgICAgLy8gTmVlZHMgdG8gYmUgcHVibGlj
IHNvIHRyYWNrcyBjYW4gY2FsbCBpdAogICAgIHZvaWQgc2NoZWR1bGVDaGFuZ2VFdmVudCgpOwot
ICAgIGJvb2wgaXNDaGFuZ2VFdmVudFNjaGVkdWxlZCgpIGNvbnN0OworICAgIGJvb2wgaXNDaGFu
Z2VFdmVudFNjaGVkdWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDaGFuZ2VFdmVudFNjaGVkdWxl
ZDsgfQogCiAgICAgYm9vbCBpc0FueVRyYWNrRW5hYmxlZCgpIGNvbnN0OwogCkBAIC03NiwxNiAr
NzUsMTIgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlVHJhY2tFdmVu
dChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIFJlZjxUcmFja0Jhc2U+JiYpOwogCi0gICAg
Ly8gQWN0aXZlRE9NT2JqZWN0LgotICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICB2b2lkIHJlZkV2ZW50
VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZp
bmFsIHsgZGVyZWYoKTsgfQogCiAgICAgV2Vha1B0cjxIVE1MTWVkaWFFbGVtZW50PiBtX2VsZW1l
bnQ7Ci0KLSAgICBVbmlxdWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVl
dWU7CisgICAgYm9vbCBtX2lzQ2hhbmdlRXZlbnRTY2hlZHVsZWQgeyBmYWxzZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKaW5kZXggYmVlNWNmOTJiMDQ0ODVmNGI1MmQz
Mzk4YWExZjA3YTdiMTBjNzA4My4uOWUwZmU1Mzg3Y2U3ODQyYTZjMWRmMWU2ZmM2YWNkMTE4MDI2
YWExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikKIAotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNp
bmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+Cg==
</data>
<flag name="commit-queue"
          id="452214"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430674</attachid>
            <date>2021-06-05 21:19:09 -0700</date>
            <delta_ts>2021-06-06 11:12:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226692-20210605211908.patch</filename>
            <type>text/plain</type>
            <size>44670</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZkOWY1ZDhmM2EzMjQx
MWM5YTUzODM1NTU4YjFjMTRkMzBmOTE3ZS4uODE4MDc0NmMwYmY0ZGIwYzc2M2UyNjE5MzkxZGMy
MGQwOGIyNDE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIxLTA2LTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBsZWdh
Y3kgRXZlbnRMb29wRXZlbnRRdWV1ZSBhbmQgRXZlbnRMb29wVGFza1F1ZXVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY2OTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgdXNlIG9mIGxlZ2Fj
eSBFdmVudExvb3BFdmVudFF1ZXVlIGFuZCBFdmVudExvb3BUYXNrUXVldWUsIGFuZCB1c2UgdGhl
IEhUTUwgZXZlbnQKKyAgICAgICAgbG9vcCBkaXJlY3RseSBpbnN0ZWFkLiBUaG9zZSBhcmUgdmVy
eSBzaW1wbGUgY2FzZXMsIHRoZXkgcmVhbGx5IGRvbid0IG5lZWQgYW55IG9mIHRoZQorICAgICAg
ICBmZWF0dXJlcyB0aGUgcXVldWUgd2FzIHByb3ZpZGluZyAoc3VjaCBhcyBjYW5jZWxsaW5nIGV2
ZW50cykuCisKKyAgICAgICAgVG8gZ2V0IHJpZCBvZiB0aGUgcmVtYWluaW5nIHVzYWdlIG9mIEV2
ZW50TG9vcEV2ZW50UXVldWUgLyBFdmVudExvb3BUYXNrUXVldWUsIEkgYmVsaWV2ZQorICAgICAg
ICB3ZSdsbCBuZWVkIGEgd2F5IHRvIGNhbmNlbCB0YXNrcyBzY2hlZHVsZWQgaW4gdGhlIEhUTUwg
ZXZlbnQgbG9vcC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTb3VyY2U6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzY2hlZHVsZUV2ZW50KToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlckxpc3Q6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oOgorICAgICAgICAqIE1vZHVsZXMvcmVtb3Rl
cGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxh
eWJhY2s6OlJlbW90ZVBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVBsYXliYWNr
Ojp3YXRjaEF2YWlsYWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6
Y2FuY2VsV2F0Y2hBdmFpbGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJh
Y2s6OnByb21wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6c2V0U3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmRpc2Nvbm5lY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmF2YWlsYWJpbGl0eUNoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OnN0b3ApOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaDoKKyAgICAgICAgKiBhbmltYXRp
b24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJv
bURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxl
cjo6Y2FjaGVDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXI6Om1heWJlQ2xlYXJDYWNoZWRDdXJyZW50VGltZSk6CisgICAgICAgICogYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9GdWxs
c2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6
OnJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2Ny
ZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlh
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlh
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVkRnJv
bUFuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxl
UmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c2NoZWR1bGVSZWplY3RQZW5kaW5nUGxheVByb21pc2VzKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTm90aWZ5QWJvdXRQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhS2V5cyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjbG9zZVRhc2tRdWV1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRJc1BsYXlpbmdUb1dp
cmVsZXNzVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVy
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc1Zpc2li
bGVJblZpZXdwb3J0Q2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0
ZVNpemVzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OlRyYWNrTGlzdEJhc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6VHJhY2tMaXN0QmFzZTo6c2NoZWR1bGVDaGFuZ2VFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpUcmFja0xpc3RCYXNlOjppc0NoYW5nZUV2ZW50U2NoZWR1bGVkIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZp
dHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6OnByb2Nlc3NDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6Om1hdGNoZWRMZW5ndGgp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmg6
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKwogMjAy
MS0wNi0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbbWFjT1NdIE1vdmUgRGF0YURldGVjdG9ycyBzb2Z0bGlua2luZyBpbiBEYXRhRGV0ZWN0b3Jz
U1BJLmggb3V0IGludG8gYSBzZXBhcmF0ZSBQQUwgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAKaW5kZXggOGQzNmI5OTllOWUzYzhjMjJiNzVkMmU2MDA1MGUxMjg2ZTQ5Y2VmZS4u
MzhlYTdjNGI4YWZmM2RkZjE4ZThkNDkwNWE5YTBmMDFmYTBmNDdhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcApAQCAtNTksNyArNTksNiBAQCBNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dAogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2xvZ2dlcihtYWtlUmVm
KERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENv
b3JkaW5hdG9yTG9nSWRlbnRpZmllcigpKQotICAgICwgbV9hc3luY0V2ZW50UXVldWUoRXZlbnRM
b29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOwogfQpAQCAtNDE5LDcgKzQxOCw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhCiAg
ICAgbV9zdGF0ZSA9IHN0YXRlOwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbV9zdGF0
ZSk7CiAgICAgaWYgKHNob3VsZEZpcmVFdmVudHMoKSkKLSAgICAgICAgbV9hc3luY0V2ZW50UXVl
dWUtPmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb29yZGluYXRvcnN0
YXRlY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworICAgICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3Vy
Y2U6Ok1lZGlhRWxlbWVudCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY29vcmRpbmF0b3Jz
dGF0ZWNoYW5nZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3VycmVudFBvc2l0
aW9uQXBwcm94aW1hdGVseUVxdWFsVG8oZG91YmxlIHRpbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaAppbmRleCBlM2RkODA2MGY5ZDQwOTYyM2MwOWZhZWE5Y2RlNTVlNTQ5ZGRhNDMy
Li4zMWM0ZDliNDMzMjg3M2NjYWIzMzI0YTg0MjkwNzBjZGZhZGQ2Y2Y4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUg
IkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1
ZGUgIk1lZGlhU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZS5oIgpAQCAtMTEwLDcgKzEwOSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4gbV9wcml2YXRlQ29vcmRpbmF0b3I7CiAgICAgY29uc3Qg
UmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlm
aWVyOwotICAgIFVuaXF1ZVJlZjxFdmVudExvb3BFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1
ZTsKICAgICBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIG1fc3RhdGUgeyBNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlOjpDbG9zZWQgfTsKICAgICBib29sIG1faGFzQ29vcmRpbmF0b3Jz
U3RhdGVDaGFuZ2VFdmVudExpc3RlbmVyIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDU2YzVkYTg3
ZDc2MTAzODFiYTFmMjg1M2YyZGYzYWJhYTdmMmJmNTIuLmMzOGYwYTg4ZTNjM2VhYzE2Njk3MzIx
MzQ1ZmYyYjU4ZTVhYWE2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0xMDQsNyArMTA0LDYgQEAgTWVkaWFTb3VyY2U6
Ok1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgOiBBY3Rp
dmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2R1cmF0aW9uKE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKSkKICAgICAsIG1fcGVuZGluZ1NlZWtUaW1lKE1lZGlhVGltZTo6aW52YWxpZFRpbWUo
KSkKLSAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNyZWF0ZSgq
dGhpcykpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCkubG9nZ2VyKCkpCiAjZW5kaWYKQEAgLTk5OCw3ICs5OTcsNyBA
QCB2b2lkIE1lZGlhU291cmNlOjpvcGVuSWZJbkVuZGVkU3RhdGUoKQogCiBib29sIE1lZGlhU291
cmNlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9w
cml2YXRlIHx8IG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBtX2Fz
c29jaWF0ZWRSZWdpc3RyeUNvdW50OworICAgIHJldHVybiBtX3ByaXZhdGUgfHwgbV9hc3NvY2lh
dGVkUmVnaXN0cnlDb3VudDsKIH0KIAogdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCkBAIC0xMDc4
LDEwICsxMDc3LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9t
U3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJzY2hl
ZHVsaW5nICciLCBldmVudE5hbWUsICInIik7CiAKLSAgICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObyk7Ci0gICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLQotICAgIG1fYXN5bmNFdmVudFF1
ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0
Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7
CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE1lZGlhU291cmNlOjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuaAppbmRleCBhM2E4NGMzZjIxNTY2OGU4OTdjN2YyMDc3YzUxYWRmOWFl
Y2EyNTk2Li5hMjZlNTUzZTdhMWNkMzUwYTNiNDY0ZjAzZTE0MzllYjZhZTFmMmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCkBAIC0z
Myw3ICszMyw2IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRl
ICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSFRN
TE1lZGlhRWxlbWVudC5oIgpAQCAtMTc0LDcgKzE3Myw2IEBAIHByaXZhdGU6CiAgICAgTWVkaWFU
aW1lIG1fZHVyYXRpb247CiAgICAgTWVkaWFUaW1lIG1fcGVuZGluZ1NlZWtUaW1lOwogICAgIFJl
YWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgUmVhZHlTdGF0ZTo6Q2xvc2VkIH07Ci0gICAgVW5pcXVl
UmVmPEV2ZW50TG9vcEV2ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOwogI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0
IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCAzZmZhMjhjOWY4
ZDczZDNiNzZhZDM2NmI1MDFjNWMwMDk1YTk4YjJkLi5lMTY4ZDc0NWVmMjQxNWZkNWQzNmEzN2Yw
ODQ4ZmUzMzMyNmQ3ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC03NCw3ICs3NCw2IEBAIFNvdXJjZUJ1ZmZlcjo6
U291cmNlQnVmZmVyKFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclByaXZh
dGUsIE1lZGlhCiAgICAgOiBBY3RpdmVET01PYmplY3Qoc291cmNlLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCiAgICAgLCBtX3ByaXZhdGUoV1RGTW92ZShzb3VyY2VCdWZmZXJQcml2YXRlKSkK
ICAgICAsIG1fc291cmNlKHNvdXJjZSkKLSAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9v
cEV2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX2FwcGVuZEJ1ZmZlclRpbWVyKCp0
aGlzLCAmU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVkKQogICAgICwgbV9hcHBl
bmRXaW5kb3dTdGFydChNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgLCBtX2FwcGVuZFdpbmRv
d0VuZChNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpCkBAIC00MzksNyArNDM4LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQog
CiBib29sIFNvdXJjZUJ1ZmZlcjo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fc291cmNlIHx8IG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0
aXZpdHkoKTsKKyAgICByZXR1cm4gbV9zb3VyY2U7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjpz
dG9wKCkKQEAgLTQ2MCwxMCArNDU5LDcgQEAgYm9vbCBTb3VyY2VCdWZmZXI6OmlzUmVtb3ZlZCgp
IGNvbnN0CiAKIHZvaWQgU291cmNlQnVmZmVyOjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJp
bmcmIGV2ZW50TmFtZSkKIHsKLSAgICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7Ci0gICAg
ZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLQotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVl
RXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhp
cywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZl
bnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVySW50ZXJuYWwoY29uc3QgdW5z
aWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IDJjZmY2NzhmNjAxNmNlZDdl
ZmI0Njk3ODFiMWRmMmFhNjI5ZmI3OGQuLmVlY2QzMWJmYzVmNGJhMmYzZjY2MDgwN2RlYTYyNTE3
Nzc1YmE3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaApAQCAtMzUsNyArMzUsNiBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFjay5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50
UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9y
LmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgpAQCAtMjA4LDcgKzIwNyw2IEBA
IHByaXZhdGU6CiAKICAgICBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAg
IE1lZGlhU291cmNlKiBtX3NvdXJjZTsKLSAgICBVbmlxdWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1
ZT4gbV9hc3luY0V2ZW50UXVldWU7CiAgICAgQXBwZW5kTW9kZSBtX21vZGUgeyBBcHBlbmRNb2Rl
OjpTZWdtZW50cyB9OwogCiAgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IG1fcGVuZGluZ0FwcGVu
ZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXJMaXN0LmNwcAppbmRleCA4MzZkNGMwOGI2NGVmNzg3Zjk3Mjc1OGNiZGE3M2U1
ZTk3YzgzMzdiLi43NjUwYjViM2FjZjhjNjllZmU2ZTI3ZGJkYTVlNDJhNTUzYWE5OTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyTGlzdC5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFNvdXJjZUJ1ZmZlckxpc3QpOwogCiBTb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01PYmplY3Qo
Y29udGV4dCkKLSAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6OmNy
ZWF0ZSgqdGhpcykpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CkBAIC05NSwxMCArOTQs
NyBAQCB2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OnN3YXAoVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZm
ZXI+PiYgb3RoZXIpCiAKIHZvaWQgU291cmNlQnVmZmVyTGlzdDo6c2NoZWR1bGVFdmVudChjb25z
dCBBdG9tU3RyaW5nJiBldmVudE5hbWUpCiB7Ci0gICAgYXV0byBldmVudCA9IEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lLCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pOwotICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7Ci0KLSAgICBtX2FzeW5jRXZlbnRRdWV1
ZS0+ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNo
RXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwog
fQogCiBjb25zdCBjaGFyKiBTb3VyY2VCdWZmZXJMaXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXJMaXN0LmgKaW5kZXggZDM5ZjcyOWM5MjhmODAzNTFhZDY3NTU1NmVhMWI5MjFmNGVj
ZjFjMC4uYjdlYWJjNjRmNTAyMjcxMGM2Y2VhM2Q2ZTBlNGRlODQ0YTNkZmMxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0
LmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiRXZlbnRMb29wRXZlbnRRdWV1ZS5oIgog
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04MCw4ICs3OSw2IEBAIHByaXZhdGU6CiAKICAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAKLSAgICBVbmlx
dWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7Ci0KICAgICBWZWN0
b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlcj4+IG1fbGlzdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKaW5k
ZXggNjQ3ZTVkY2ZhYmMyYTViN2NiNGRjODUwM2RiNWY5YzMwNzFjNWUyNi4uNzQ1MGJlNDk4MTZm
ZDExNDQ3NjYzNTk3ZjhmYmQ5NTdjZjRkNWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKQEAgLTUwLDgg
KzUwLDYgQEAgUmVmPFJlbW90ZVBsYXliYWNrPiBSZW1vdGVQbGF5YmFjazo6Y3JlYXRlKEhUTUxN
ZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiBSZW1vdGVQbGF5YmFjazo6UmVtb3RlUGxheWJhY2soSFRN
TE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICA6IFdlYkNvcmU6OkFjdGl2ZURPTU9iamVjdChl
bGVtZW50LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1fbWVkaWFFbGVtZW50KG1h
a2VXZWFrUHRyKGVsZW1lbnQpKQotICAgICwgbV9ldmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVl
dWU6OmNyZWF0ZSgqdGhpcykpCi0gICAgLCBtX3Rhc2tRdWV1ZShlbGVtZW50LnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KQEAgLTY5LDcgKzY3
LDEwIEBAIHZvaWQgUmVtb3RlUGxheWJhY2s6OndhdGNoQXZhaWxhYmlsaXR5KFJlZjxSZW1vdGVQ
bGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrPiYmCiAgICAgLy8gMS4gTGV0IHByb21pc2UgYmUg
YSBuZXcgcHJvbWlzZS0+CiAgICAgLy8gMi4gUmV0dXJuIHByb21pc2UsIGFuZCBydW4gdGhlIGZv
bGxvd2luZyBzdGVwcyBiZWxvdzoKICAgICAKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhb
dGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldICgpIG11dGFibGUgeworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhp
cywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAg
ICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAg
IC8vIDMuIElmIHRoZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgYXR0cmlidXRlIGlzIHByZXNlbnQg
Zm9yIHRoZSBtZWRpYSBlbGVtZW50LCByZWplY3QgdGhlIHByb21pc2Ugd2l0aAogICAgICAgICAv
LyAgICBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgYWxsIHRoZSByZW1haW5pbmcgc3RlcHMu
CiAgICAgICAgIGlmICghbV9tZWRpYUVsZW1lbnQKQEAgLTk3LDcgKzk4LDkgQEAgdm9pZCBSZW1v
dGVQbGF5YmFjazo6d2F0Y2hBdmFpbGFiaWxpdHkoUmVmPFJlbW90ZVBsYXliYWNrQXZhaWxhYmls
aXR5Q2FsbGJhY2s+JiYKICAgICAgICAgLy8gOC4gRnVsZmlsbCBwcm9taXNlIHdpdGggdGhlIGNh
bGxiYWNrSWQgYW5kIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgogICAgICAg
ICBwcm9taXNlLT53aGVuU2V0dGxlZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
dGhpcyksIGNhbGxiYWNrSWRdIHsKICAgICAgICAgICAgIC8vIDguMSBRdWV1ZSBhIHRhc2sgdG8g
aW52b2tlIHRoZSBjYWxsYmFjayB3aXRoIHRoZSBjdXJyZW50IGF2YWlsYWJpbGl0eSBmb3IgdGhl
IG1lZGlhIGVsZW1lbnQuCi0gICAgICAgICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhp
cywgY2FsbGJhY2tJZCwgYXZhaWxhYmxlID0gbV9hdmFpbGFibGVdIHsKKyAgICAgICAgICAgIHF1
ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50
LCBbdGhpcywgY2FsbGJhY2tJZCwgYXZhaWxhYmxlID0gbV9hdmFpbGFibGVdIHsKKyAgICAgICAg
ICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICAgICAgYXV0byBmb3VuZENhbGxiYWNrID0gbV9jYWxsYmFja01hcC5m
aW5kKGNhbGxiYWNrSWQpOwogICAgICAgICAgICAgICAgIGlmIChmb3VuZENhbGxiYWNrID09IG1f
Y2FsbGJhY2tNYXAuZW5kKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyNCw3
ICsxMjcsOSBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpjYW5jZWxXYXRjaEF2YWlsYWJpbGl0eShz
dGQ6Om9wdGlvbmFsPGludDMyX3Q+IGlkLCBSZWY8RGVmZQogICAgIC8vIDEuIExldCBwcm9taXNl
IGJlIGEgbmV3IHByb21pc2UtPgogICAgIC8vIDIuIFJldHVybiBwcm9taXNlLCBhbmQgcnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHMgYmVsb3c6CiAKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhb
dGhpcywgaWQgPSBXVEZNb3ZlKGlkKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIHsKKyAg
ICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxl
bWVudCwgW3RoaXMsIGlkID0gV1RGTW92ZShpZCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIC8vIDMuIElmIHRoZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgYXR0cmlidXRlIGlz
IHByZXNlbnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50LCByZWplY3QgcHJvbWlzZSB3aXRoCiAgICAg
ICAgIC8vICAgIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCBhbGwgdGhlIHJlbWFpbmluZyBz
dGVwcy4KICAgICAgICAgaWYgKCFtX21lZGlhRWxlbWVudApAQCAtMTY3LDcgKzE3MiwxMCBAQCB2
b2lkIFJlbW90ZVBsYXliYWNrOjpwcm9tcHQoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNl
KQogICAgIC8vIDEuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UtPgogICAgIC8vIDIuIFJl
dHVybiBwcm9taXNlLCBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgYmVsb3c6CiAKLSAgICBt
X3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSks
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKV0gKCkgbXV0YWJsZSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFs
aXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0gVXNlckdlc3R1cmVJbmRpY2F0
b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGlz
Q29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICAvLyAzLiBJ
ZiB0aGUgZGlzYWJsZVJlbW90ZVBsYXliYWNrIGF0dHJpYnV0ZSBpcyBwcmVzZW50IGZvciB0aGUg
bWVkaWEgZWxlbWVudCwgcmVqZWN0IHRoZSBwcm9taXNlIHdpdGgKICAgICAgICAgLy8gICAgSW52
YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IGFsbCB0aGUgcmVtYWluaW5nIHN0ZXBzLgogICAgICAg
ICBpZiAoIW1fbWVkaWFFbGVtZW50CkBAIC0yNzAsMTcgKzI3OCwxOSBAQCB2b2lkIFJlbW90ZVBs
YXliYWNrOjpzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkKIAogICAgIG1fc3RhdGUgPSBzdGF0ZTsKIAor
ICAgIFJlZlB0cjxFdmVudD4gZXZlbnQ7CiAgICAgc3dpdGNoIChtX3N0YXRlKSB7CiAgICAgY2Fz
ZSBTdGF0ZTo6Q29ubmVjdGVkOgotICAgICAgICBtX2V2ZW50UXVldWUtPmVucXVldWVFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25uZWN0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgICAgICBldmVudCA9IEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmNvbm5lY3RFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdGF0ZTo6
Q29ubmVjdGluZzoKLSAgICAgICAgbV9ldmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuY29ubmVjdGluZ0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAgICAgICAgZXZlbnQgPSBFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5jb25uZWN0aW5nRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3RhdGU6OkRp
c2Nvbm5lY3RlZDoKLSAgICAgICAgbV9ldmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuZGlzY29ubmVjdEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAgICAgICAgZXZlbnQgPSBFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5kaXNjb25uZWN0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBxdWV1ZVRh
c2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgZXZlbnQu
cmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIHZvaWQgUmVtb3RlUGxheWJhY2s6OmVzdGFibGlzaENv
bm5lY3Rpb24oKQpAQCAtMzEwLDcgKzMyMCwxMCBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpkaXNj
b25uZWN0KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gMi4gUXVldWUgYSB0YXNrIHRvIHJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlz
XSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpN
ZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisg
ICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgLy8gMi4xIFJlcXVlc3QgZGlzY29ubmVjdGlv
biBvZiByZW1vdGUgZnJvbSB0aGUgZGV2aWNlLiBJbXBsZW1lbnRhdGlvbiBpcyB1c2VyIGFnZW50
IHNwZWNpZmljLgogICAgICAgICAvLyBOT1RFOiBJbXBsZW1lbnRlZCBieSBNZWRpYVBsYXllcjo6
c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCgpCiAgICAgICAgIC8vIDIuMiBDaGFuZ2UgdGhlIHJl
bW90ZSdzIHN0YXRlIHRvIGRpc2Nvbm5lY3RlZC4KQEAgLTM3OCw3ICszOTEsMTAgQEAgdm9pZCBS
ZW1vdGVQbGF5YmFjazo6YXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2YWlsYWJsZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIG1fYXZhaWxhYmxlID0gYXZhaWxhYmxlOwogCi0gICAgbV90YXNrUXVl
dWUuZW5xdWV1ZVRhc2soW3RoaXMsIGF2YWlsYWJsZV0geworICAgIHF1ZXVlVGFza0tlZXBpbmdP
YmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgYXZhaWxh
YmxlXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1
cm47CisKICAgICAgICAgLy8gUHJvdGVjdCBtX2NhbGxiYWNrTWFwIGFnYWluc3QgbXV0YXRpb24g
d2hpbGUgaXQncyBiZWluZyBpdGVyYXRlZCBvdmVyLgogICAgICAgICBWZWN0b3I8UmVmPFJlbW90
ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2s+PiBjYWxsYmFja3M7CiAgICAgICAgIGNhbGxi
YWNrcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fY2FsbGJhY2tNYXAuc2l6ZSgpKTsKQEAgLTQw
MSwxMiArNDE3LDYgQEAgY29uc3QgY2hhciogUmVtb3RlUGxheWJhY2s6OmFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiUmVtb3RlUGxheWJhY2siOwogfQogCi12b2lkIFJl
bW90ZVBsYXliYWNrOjpzdG9wKCkKLXsKLSAgICBtX3Rhc2tRdWV1ZS5jbG9zZSgpOwotICAgIG1f
ZXZlbnRRdWV1ZS0+Y2xvc2UoKTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVt
b3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVt
b3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaAppbmRleCBhNTU3ZDFlNzk2YzQxZmFmYTY0MGUz
OWEzNTU4NmNlNDFlNjQyN2M5Li4wNDU3MzhlMzg3MDZmMzliMjI3ZDFkOTY4OGExNmQyMmJhZDYx
OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1Jl
bW90ZVBsYXliYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFj
ay9SZW1vdGVQbGF5YmFjay5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1
ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtODEsNyArODAs
NiBAQCBwcml2YXRlOgogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgogICAgIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHN0b3AoKSBmaW5h
bDsKIAogICAgIC8vIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEuCiAgICAgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBSZW1v
dGVQbGF5YmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpAQCAtOTksOSArOTcsNiBAQCBw
cml2YXRlOgogICAgIFByb21pc2VWZWN0b3IgbV9wcm9tcHRQcm9taXNlczsKICAgICBTdGF0ZSBt
X3N0YXRlIHsgU3RhdGU6OkRpc2Nvbm5lY3RlZCB9OwogICAgIGJvb2wgbV9hdmFpbGFibGUgeyBm
YWxzZSB9OwotCi0gICAgVW5pcXVlUmVmPEV2ZW50TG9vcEV2ZW50UXVldWU+IG1fZXZlbnRRdWV1
ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV90YXNrUXVldWU7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuY3BwCmluZGV4IDk5NDA5MWFmYzU1NTg5NzE2N2Q1MWFiMDEyNGE2Yjk3ODgwYjY3ZTAuLmI1
NWQ2MGIzYmM1ZjBkMzc1NzAzMGNmYzJjNDE5ODliNjJiZjMxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3Bw
CkBAIC00Myw3ICs0Myw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERvY3VtZW50VGltZWxp
bmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKERvY3VtZW50JiBkb2N1
bWVudCkKLSAgICA6IG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZSgmZG9jdW1lbnQpCisg
ICAgOiBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrKCZkb2N1bWVudCkKICAgICAsIG1fZG9jdW1l
bnQoZG9jdW1lbnQpCiB7CiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpIHsK
QEAgLTczLDcgKzczLDcgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OnJlbW92
ZVRpbWVsaW5lKERvY3VtZW50VGltZWxpbmUmIHRpbWVsaW5lKQogCiB2b2lkIERvY3VtZW50VGlt
ZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJvbURvY3VtZW50KCkKIHsKLSAgICBtX2N1cnJlbnRU
aW1lQ2xlYXJpbmdUYXNrUXVldWUuY2xvc2UoKTsKKyAgICBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdU
YXNrLmNsb3NlKCk7CiAKICAgICB3aGlsZSAoIW1fdGltZWxpbmVzLmNvbXB1dGVzRW1wdHkoKSkK
ICAgICAgICAgbV90aW1lbGluZXMuYmVnaW4oKS0+ZGV0YWNoRnJvbURvY3VtZW50KCk7CkBAIC0y
MzMsOCArMjMzLDggQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OmNhY2hlQ3Vy
cmVudFRpbWUoUmVkdWNlZFJlc29sdXRpb25TZWNvbmRzIG5ld0MKICAgICAvLyBhbmltYXRpb25z
LCBzbyB3ZSBzY2hlZHVsZSB0aGUgaW52YWxpZGF0aW9uIHRhc2sgYW5kIHJlZ2lzdGVyIGEgd2hl
bklkbGUgY2FsbGJhY2sgb24gdGhlIFZNLCB3aGljaCB3aWxsCiAgICAgLy8gZmlyZSBzeW5jcm9u
b3VzbHkgaWYgbm8gSlMgaXMgcnVubmluZy4KICAgICBtX3dhaXRpbmdPblZNSWRsZSA9IHRydWU7
Ci0gICAgaWYgKCFtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tz
KCkpCi0gICAgICAgIG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhz
dGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5YmVDbGVhckNhY2hlZEN1
cnJlbnRUaW1lLCB0aGlzKSk7CisgICAgaWYgKCFtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrLmlz
UGVuZGluZygpKQorICAgICAgICBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrLnNjaGVkdWxlVGFz
ayhzdGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5YmVDbGVhckNhY2hl
ZEN1cnJlbnRUaW1lLCB0aGlzKSk7CiAgICAgLy8gV2UgZXh0ZW50IHRoZSBhc3NvY2lhdGVkIERv
Y3VtZW50J3MgbGlmZWN5Y2xlIHVudGlsIHRoZSBWTSBiZWNhbWUgaWRsZSBzaW5jZSB0aGUgRG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyCiAgICAgLy8gaXMgb3duZWQgYnkgdGhlIERvY3VtZW50
LgogICAgIG1fZG9jdW1lbnQudm0oKS53aGVuSWRsZShbdGhpcywgcHJvdGVjdGVkRG9jdW1lbnQg
PSBtYWtlUmVmUHRyKG1fZG9jdW1lbnQpXSgpIHsKQEAgLTI0OSw3ICsyNDksNyBAQCB2b2lkIERv
Y3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5YmVDbGVhckNhY2hlZEN1cnJlbnRUaW1lKCkK
ICAgICAvLyBKUyBvciB3YWl0aW5nIG9uIGFsbCBjdXJyZW50IGFuaW1hdGlvbiB1cGRhdGluZyBj
b2RlIHRvIGhhdmUgY29tcGxldGVkLiBUaGlzIGlzIHNvIHRoYXQKICAgICAvLyB3ZSdyZSBndWFy
YW50ZWVkIHRvIGhhdmUgYSBjb25zaXN0ZW50IGN1cnJlbnQgdGltZSByZXBvcnRlZCBmb3IgYWxs
IHdvcmsgaGFwcGVuaW5nIGluIGEgZ2l2ZW4KICAgICAvLyBKUyBmcmFtZSBvciB0aHJvdWdob3V0
IHVwZGF0aW5nIGFuaW1hdGlvbnMgaW4gV2ViQ29yZS4KLSAgICBpZiAoIW1faXNTdXNwZW5kZWQg
JiYgIW1fd2FpdGluZ09uVk1JZGxlICYmICFtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUu
aGFzUGVuZGluZ1Rhc2tzKCkpCisgICAgaWYgKCFtX2lzU3VzcGVuZGVkICYmICFtX3dhaXRpbmdP
blZNSWRsZSAmJiAhbV9jdXJyZW50VGltZUNsZWFyaW5nVGFzay5pc1BlbmRpbmcoKSkKICAgICAg
ICAgbV9jYWNoZWRDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oCmlu
ZGV4IDQyMTI3OGUzMjNhY2FiOGZmMTJlMWY2YjM1NTc3ZjQ4Zjc2Y2E2NzkuLjJhMTEwNGY3OTdk
NTAzZmM0MmE3NDNlZWRkYWNjZWU2NjgyZWFlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCisj
aW5jbHVkZSAiRGVmZXJyYWJsZVRhc2suaCIKICNpbmNsdWRlICJSZWR1Y2VkUmVzb2x1dGlvblNl
Y29uZHMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgpA
QCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF5YmVDbGVhckNhY2hlZEN1cnJl
bnRUaW1lKCk7CiAKICAgICBXZWFrSGFzaFNldDxEb2N1bWVudFRpbWVsaW5lPiBtX3RpbWVsaW5l
czsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9jdXJyZW50VGltZUNsZWFyaW5nVGFza1F1ZXVl
OworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2s7
CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25k
czo6TWFya2FibGVUcmFpdHM+IG1fY2FjaGVkQ3VycmVudFRpbWU7CiAgICAgYm9vbCBtX2lzU3Vz
cGVuZGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2Ny
ZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3Bw
CmluZGV4IDk3NDZjNjVhMTgzNjBkZWVjZDJjNzk0MGRhOTJmMzYwYjljNDhiYTIuLjgwZTMzNmY0
OTNhYWU1YmMwOTBlNDJlOWJjZjllOGZmOWFkNzIzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1
bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDgsNyArNDgsNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCiBGdWxsc2NyZWVuTWFuYWdlcjo6RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudCB7IGRvY3VtZW50IH0KLSAgICAsIG1fZnVsbHNj
cmVlblRhc2tRdWV1ZSB7ICZkb2N1bWVudCB9CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgLCBtX2xvZ0lkZW50aWZpZXIoTG9nZ2VySGVscGVyOjp1bmlxdWVMb2dJZGVudGlmaWVyKCkp
CiAjZW5kaWYKQEAgLTYyLDEwICs2MSwxMSBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1
ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbHNjcmVlbgogICAg
IGlmICghZWxlbWVudCkKICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50RWxlbWVudCgpOwogCi0g
ICAgYXV0byBmYWlsZWRQcmVmbGlnaHRzID0gW3RoaXNdKGF1dG8gZWxlbWVudCkgbXV0YWJsZSB7
CisgICAgYXV0byBmYWlsZWRQcmVmbGlnaHRzID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpXShhdXRvIGVsZW1lbnQpIG11dGFibGUgewogICAgICAgICBtX2Z1bGxzY3JlZW5F
cnJvckV2ZW50VGFyZ2V0UXVldWUuYXBwZW5kKFdURk1vdmUoZWxlbWVudCkpOwotICAgICAgICBt
X2Z1bGxzY3JlZW5UYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdIHsKLSAgICAgICAgICAgIGRp
c3BhdGNoRnVsbHNjcmVlbkNoYW5nZUV2ZW50cygpOworICAgICAgICBtX2RvY3VtZW50LmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpXSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5kaXNwYXRjaEZ1bGxzY3JlZW5DaGFuZ2VFdmVudHMo
KTsKICAgICAgICAgfSk7CiAgICAgfTsKIApAQCAtMTE0LDcgKzExNCwxMCBAQCB2b2lkIEZ1bGxz
Y3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCwgRnVsbHNjcmVlbgogCiAgICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBlbGVtZW50
OwogCi0gICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBlbGVtZW50
ID0gbWFrZVJlZlB0cihlbGVtZW50KSwgY2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2VzcywgZmFp
bGVkUHJlZmxpZ2h0cywgaWRlbnRpZmllciA9IExPR0lERU5USUZJRVJdICgpIG11dGFibGUgewor
ICAgIG1fZG9jdW1lbnQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1lZGlhRWxl
bWVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBlbGVtZW50ID0gbWFr
ZVJlZlB0cihlbGVtZW50KSwgY2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2VzcywgZmFpbGVkUHJl
ZmxpZ2h0cywgaWRlbnRpZmllciA9IExPR0lERU5USUZJRVJdICgpIG11dGFibGUgeworICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIC8vIERvbid0
IGFsbG93IGZ1bGxzY3JlZW4gaWYgaXQgaGFzIGJlZW4gY2FuY2VsbGVkIG9yIGEgZGlmZmVyZW50
IGZ1bGxzY3JlZW4gZWxlbWVudAogICAgICAgICAvLyBoYXMgcmVxdWVzdGVkIGZ1bGxzY3JlZW4u
CiAgICAgICAgIGlmIChtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVudCAhPSBlbGVtZW50KSB7CkBA
IC0yMjMsNyArMjI2LDEwIEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RGdWxsc2Ny
ZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuCiAgICAgICAgIC8vIDUu
IFJldHVybiwgYW5kIHJ1biB0aGUgcmVtYWluaW5nIHN0ZXBzIGFzeW5jaHJvbm91c2x5LgogICAg
ICAgICAvLyA2LiBPcHRpb25hbGx5LCBwZXJmb3JtIHNvbWUgYW5pbWF0aW9uLgogICAgICAgICBt
X2FyZUtleXNFbmFibGVkSW5GdWxsc2NyZWVuID0gaGFzS2V5Ym9hcmRBY2Nlc3M7Ci0gICAgICAg
IG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgZWxlbWVudCA9IFdURk1v
dmUoZWxlbWVudCksIGZhaWxlZFByZWZsaWdodHMgPSBXVEZNb3ZlKGZhaWxlZFByZWZsaWdodHMp
LCBpZGVudGlmaWVyXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgbV9kb2N1bWVudC5ldmVudExvb3Ao
KS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgd2Vha1RoaXMgPSBX
VEZNb3ZlKHdlYWtUaGlzKSwgZWxlbWVudCA9IFdURk1vdmUoZWxlbWVudCksIGZhaWxlZFByZWZs
aWdodHMgPSBXVEZNb3ZlKGZhaWxlZFByZWZsaWdodHMpLCBpZGVudGlmaWVyXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
CiAgICAgICAgICAgICBhdXRvIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgICAgICAgICBpZiAo
IXBhZ2UgfHwgZG9jdW1lbnQoKS5oaWRkZW4oKSB8fCBtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVu
dCAhPSBlbGVtZW50IHx8ICFlbGVtZW50LT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgICAgICAg
ICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJ0YXNrIC0gcGFnZSwgZG9jdW1lbnQsIG9yIGVsZW1l
bnQgbWlzbWF0Y2g7IGZhaWxpbmcuIik7CkBAIC0zMjcsNyArMzMzLDEwIEBAIHZvaWQgRnVsbHNj
cmVlbk1hbmFnZXI6OmV4aXRGdWxsc2NyZWVuKCkKIAogICAgIC8vIDYuIFJldHVybiwgYW5kIHJ1
biB0aGUgcmVtYWluaW5nIHN0ZXBzIGFzeW5jaHJvbm91c2x5LgogICAgIC8vIDcuIE9wdGlvbmFs
bHksIHBlcmZvcm0gc29tZSBhbmltYXRpb24uCi0gICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVu
cXVldWVUYXNrKFt0aGlzLCBuZXdUb3AgPSBtYWtlUmVmUHRyKG5ld1RvcCksIGZ1bGxzY3JlZW5F
bGVtZW50ID0gbV9mdWxsc2NyZWVuRWxlbWVudCwgaWRlbnRpZmllciA9IExPR0lERU5USUZJRVJd
IHsKKyAgICBtX2RvY3VtZW50LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpNZWRp
YUVsZW1lbnQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgbmV3VG9wID0g
bWFrZVJlZlB0cihuZXdUb3ApLCBmdWxsc2NyZWVuRWxlbWVudCA9IG1fZnVsbHNjcmVlbkVsZW1l
bnQsIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2Uo
KTsKICAgICAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmll
ciwgInRhc2sgLSBEb2N1bWVudCBub3QgaW4gcGFnZTsgYmFpbGluZy4iKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggNGJkMWEzZThiZWZiOGU5ZjIwMTY3NWRkYzI0
NzA4OTJiNzViMGJiMy4uNWJmZTM4ZGE2NGU0ZWRhZWZlZGNjM2RhZDgzMWZiZjM4YzFkMzFhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTI4LDkgKzI4LDkgQEAK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2lu
Y2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFJlbmRlckZ1bGxTY3JlZW47CiBj
bGFzcyBSZW5kZXJUcmVlQnVpbGRlcjsKIGNsYXNzIFJlbmRlclN0eWxlOwogCi1jbGFzcyBGdWxs
c2NyZWVuTWFuYWdlciBmaW5hbCB7CitjbGFzcyBGdWxsc2NyZWVuTWFuYWdlciBmaW5hbCA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxGdWxsc2NyZWVuTWFuYWdlcj4gewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEZ1bGxzY3JlZW5NYW5hZ2VyKERvY3VtZW50Jik7
CkBAIC0xMTksNyArMTE5LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RWxlbWVudD4gbV9mdWxs
c2NyZWVuRWxlbWVudDsKICAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBtX2Z1bGxzY3JlZW5F
bGVtZW50U3RhY2s7CiAgICAgV2Vha1B0cjxSZW5kZXJGdWxsU2NyZWVuPiBtX2Z1bGxzY3JlZW5S
ZW5kZXJlciB7IG51bGxwdHIgfTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9mdWxsc2NyZWVu
VGFza1F1ZXVlOwogICAgIERlcXVlPFJlZlB0cjxOb2RlPj4gbV9mdWxsc2NyZWVuQ2hhbmdlRXZl
bnRUYXJnZXRRdWV1ZTsKICAgICBEZXF1ZTxSZWZQdHI8Tm9kZT4+IG1fZnVsbHNjcmVlbkVycm9y
RXZlbnRUYXJnZXRRdWV1ZTsKICAgICBMYXlvdXRSZWN0IG1fc2F2ZWRQbGFjZWhvbGRlckZyYW1l
UmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQ4NzIy
MDBkOTE5MjBhZGEyOTZlZWU3ZDdhMmNmYmFlOTY4OTA1ODguLjNmNDhlZGIyZTY4ODg5YzEwMzY4
M2RlNjM0YzVlMGNhMDU0NTU2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcApAQCAtNDAzLDEyICs0MDMsNyBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAg
ICwgbV9zZWVrVGFzaygmZG9jdW1lbnQpCiAgICAgLCBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2Vy
QmVoYXZpb3JSZXN0cmljdGlvbnNUYXNrKCZkb2N1bWVudCkKICAgICAsIG1fYnVmZmVyZWRUaW1l
UmFuZ2VzQ2hhbmdlZFRhc2soJmRvY3VtZW50KQotICAgICwgbV9wcm9taXNlVGFza1F1ZXVlKCZk
b2N1bWVudCkKLSAgICAsIG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlKCZkb2N1bWVudCkK
ICAgICAsIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVldWUoJmRvY3VtZW50KQotICAgICwgbV92
aXNpYmlsaXR5Q2hhbmdlVGFza1F1ZXVlKCZkb2N1bWVudCkKLSAgICAsIG1fZnVsbHNjcmVlblRh
c2tRdWV1ZSgmZG9jdW1lbnQpCi0gICAgLCBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVl
KCZkb2N1bWVudCkKICAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50UXVldWU6
OmNyZWF0ZSgqdGhpcykpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAsIG1fdm9sdW1l
UmV2ZXJ0VGFzaygmZG9jdW1lbnQpCkBAIC00NTEsOSArNDQ2LDYgQEAgSFRNTE1lZGlhRWxlbWVu
dDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW0KICAgICAsIG1fcHJvY2Vzc2luZ1ByZWZlcmVuY2VDaGFuZ2UoZmFsc2UpCiAgICAg
LCBtX3Nob3VsZEF1ZGlvUGxheWJhY2tSZXF1aXJlVXNlckdlc3R1cmUoZG9jdW1lbnQudG9wRG9j
dW1lbnQoKS5hdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgpICYmICFwcm9jZXNzaW5n
VXNlckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICwgbV9zaG91bGRWaWRlb1BsYXliYWNrUmVxdWly
ZVVzZXJHZXN0dXJlKGRvY3VtZW50LnRvcERvY3VtZW50KCkudmlkZW9QbGF5YmFja1JlcXVpcmVz
VXNlckdlc3R1cmUoKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKLSNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgICwgbV9lbmNyeXB0ZWRNZWRpYVF1ZXVlKCZkb2N1
bWVudCkKLSNlbmRpZgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAg
LCBtX3JlbW90ZShSZW1vdGVQbGF5YmFjazo6Y3JlYXRlKCp0aGlzKSkKICNlbmRpZgpAQCAtNTg5
LDE0ICs1ODEsOCBAQCBIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxlbWVudCgpCiAKICAg
ICBtX3NlZWtUYXNrLmNsb3NlKCk7CiAgICAgbV9yZXN1bWVUYXNrLmNsb3NlKCk7Ci0gICAgbV9w
cm9taXNlVGFza1F1ZXVlLmNsb3NlKCk7Ci0gICAgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVl
dWUuY2xvc2UoKTsKICAgICBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmlj
dGlvbnNUYXNrLmNsb3NlKCk7CiAgICAgbV9yZXNvdXJjZVNlbGVjdGlvblRhc2tRdWV1ZS5jbG9z
ZSgpOwotICAgIG1fdmlzaWJpbGl0eUNoYW5nZVRhc2tRdWV1ZS5jbG9zZSgpOwotI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCi0gICAgbV9lbmNyeXB0ZWRNZWRpYVF1ZXVlLmNsb3NlKCk7Ci0j
ZW5kaWYKIAogICAgIG1fY29tcGxldGVseUxvYWRlZCA9IHRydWU7CiAKQEAgLTg2NCw3ICs4NTAs
MTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxU
eXBlIHJlbW92YWxUeXBlLCBDb250YWluZXJOb2QKICAgICBzZXRJbkFjdGl2ZURvY3VtZW50KGZh
bHNlKTsKICAgICBpZiAocmVtb3ZhbFR5cGUuZGlzY29ubmVjdGVkRnJvbURvY3VtZW50KSB7CiAg
ICAgICAgIC8vIFBhdXNlIGFzeW5jaHJvbm91c2x5IHRvIGxldCB0aGUgb3BlcmF0aW9uIHRoYXQg
cmVtb3ZlZCB1cyBmaW5pc2gsIGluIGNhc2Ugd2UgZ2V0IGluc2VydGVkIGJhY2sgaW50byBhIGRv
Y3VtZW50LgotICAgICAgICBtX3BhdXNlQWZ0ZXJEZXRhY2hlZFRhc2tRdWV1ZS5lbnF1ZXVlVGFz
ayhzdGQ6OmJpbmQoJkhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlQWZ0ZXJEZXRhY2hlZFRhc2ssIHRo
aXMpKTsKKyAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291
cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAgICAgICBpZiAoIWlzQ29udGV4dFN0
b3BwZWQoKSkKKyAgICAgICAgICAgICAgICBwYXVzZUFmdGVyRGV0YWNoZWRUYXNrKCk7CisgICAg
ICAgIH0pOwogICAgIH0KIAogICAgIGlmIChtX21lZGlhU2Vzc2lvbikKQEAgLTk0OCw4ICs5Mzcs
OSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlUmVzb2x2ZVBlbmRpbmdQbGF5UHJv
bWlzZXMoKQogICAgIGlmIChtX3BlbmRpbmdQbGF5UHJvbWlzZXMuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3Byb21pc2VUYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHBl
bmRpbmdQbGF5UHJvbWlzZXMgPSBXVEZNb3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyldICgpIG11
dGFibGUgewotICAgICAgICByZXNvbHZlUGVuZGluZ1BsYXlQcm9taXNlcyhXVEZNb3ZlKHBlbmRp
bmdQbGF5UHJvbWlzZXMpKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMs
IFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHBlbmRpbmdQbGF5UHJvbWlzZXMgPSBX
VEZNb3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyldICgpIG11dGFibGUgeworICAgICAgICBpZiAo
IWlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIHJlc29sdmVQZW5kaW5nUGxheVByb21p
c2VzKFdURk1vdmUocGVuZGluZ1BsYXlQcm9taXNlcykpOwogICAgIH0pOwogfQogCkBAIC05NTgs
OCArOTQ4LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZVJlamVjdFBlbmRpbmdQ
bGF5UHJvbWlzZXMoUmVmPERPTUV4Y2VwdGlvbj4mJiBlcnIKICAgICBpZiAobV9wZW5kaW5nUGxh
eVByb21pc2VzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcm9taXNlVGFz
a1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBlcnJvciA9IFdURk1vdmUoZXJyb3IpLCBwZW5kaW5n
UGxheVByb21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxl
IHsKLSAgICAgICAgcmVqZWN0UGVuZGluZ1BsYXlQcm9taXNlcyhXVEZNb3ZlKHBlbmRpbmdQbGF5
UHJvbWlzZXMpLCBXVEZNb3ZlKGVycm9yKSk7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFs
aXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBlcnJvciA9IFdURk1v
dmUoZXJyb3IpLCBwZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQbGF5UHJv
bWlzZXMpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFpc0NvbnRleHRTdG9wcGVkKCkpCisg
ICAgICAgICAgICByZWplY3RQZW5kaW5nUGxheVByb21pc2VzKFdURk1vdmUocGVuZGluZ1BsYXlQ
cm9taXNlcyksIFdURk1vdmUoZXJyb3IpKTsKICAgICB9KTsKIH0KIApAQCAtOTc3LDggKzk2OCw5
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMoUGxh
eVByb21pc2VWZWN0b3ImJiBwZW5kaW5nUGxhCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2No
ZWR1bGVOb3RpZnlBYm91dFBsYXlpbmcoKQogewotICAgIG1fcHJvbWlzZVRhc2tRdWV1ZS5lbnF1
ZXVlVGFzayhbdGhpcywgcGVuZGluZ1BsYXlQcm9taXNlcyA9IFdURk1vdmUobV9wZW5kaW5nUGxh
eVByb21pc2VzKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIG5vdGlmeUFib3V0UGxheWluZyhXVEZN
b3ZlKHBlbmRpbmdQbGF5UHJvbWlzZXMpKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxp
dmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHBlbmRpbmdQbGF5UHJv
bWlzZXMgPSBXVEZNb3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyldICgpIG11dGFibGUgeworICAg
ICAgICBpZiAoIWlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIG5vdGlmeUFib3V0UGxh
eWluZyhXVEZNb3ZlKHBlbmRpbmdQbGF5UHJvbWlzZXMpKTsKICAgICB9KTsKIH0KIApAQCAtMjYw
Niw3ICsyNTk4LDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFLZXlzKE1lZGlh
S2V5cyogbWVkaWFLZXlzLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmCiAKICAgICAvLyA0LiBMZXQg
cHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAgIC8vIDUuIFJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzIGluIHBhcmFsbGVsOgotICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5lbnF1ZXVlVGFzayhb
dGhpcywgbWVkaWFLZXlzID0gUmVmUHRyPE1lZGlhS2V5cz4obWVkaWFLZXlzKSwgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVj
dEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBtZWRpYUtleXMg
PSBSZWZQdHI8TWVkaWFLZXlzPihtZWRpYUtleXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKwogICAgICAgICAvLyA1LjEuIElmIGFsbCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgaG9sZDoKICAgICAgICAgLy8gICAgICAtIG1lZGlhS2V5cyBpcyBub3QgbnVsbCwKICAg
ICAgICAgLy8gICAgICAtIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgbWVkaWFLZXlz
IGlzIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgbWVkaWEgZWxlbWVudApAQCAtMjY0MSw4ICsy
NjM2LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRNZWRpYUtleXMoTWVkaWFLZXlzKiBt
ZWRpYUtleXMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYKICAgICAgICAgICAgIC8vIEZJWE1FOiBe
CiAKICAgICAgICAgICAgIC8vIDUuMy4zLiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBBdHRlbXB0
IHRvIFJlc3VtZSBQbGF5YmFjayBJZiBOZWNlc3NhcnkgYWxnb3JpdGhtIG9uIHRoZSBtZWRpYSBl
bGVtZW50LgotICAgICAgICAgICAgbV9lbmNyeXB0ZWRNZWRpYVF1ZXVlLmVucXVldWVUYXNrKFt0
aGlzXSB7Ci0gICAgICAgICAgICAgICAgYXR0ZW1wdFRvUmVzdW1lUGxheWJhY2tJZk5lY2Vzc2Fy
eSgpOworICAgICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNr
U291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0Nv
bnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICAgICAgICAgIGF0dGVtcHRUb1Jlc3VtZVBsYXli
YWNrSWZOZWNlc3NhcnkoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTU2NTEs
MTMgKzU2NDcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsb3NlVGFza1F1ZXVlcygpCiAg
ICAgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGFzay5jbG9z
ZSgpOwogICAgIG1fc2Vla1Rhc2suY2xvc2UoKTsKICAgICBtX3Jlc3VtZVRhc2suY2xvc2UoKTsK
LSAgICBtX3Byb21pc2VUYXNrUXVldWUuY2xvc2UoKTsKLSAgICBtX3BhdXNlQWZ0ZXJEZXRhY2hl
ZFRhc2tRdWV1ZS5jbG9zZSgpOwogICAgIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVldWUuY2xv
c2UoKTsKLSAgICBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNrUXVldWUuY2xvc2UoKTsKLSNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQotICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5jbG9zZSgpOwot
I2VuZGlmCiAgICAgbV9hc3luY0V2ZW50UXVldWUtPmNsb3NlKCk7CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBtX3ZvbHVtZVJldmVydFRhc2suY2xvc2UoKTsKQEAgLTU3NTAsNyArNTc0
MCw2IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY3JlYXRpbmdDb250cm9scwogICAgICAgICB8fCBtX2Fz
eW5jRXZlbnRRdWV1ZS0+aGFzUGVuZGluZ0FjdGl2aXR5KCkKLSAgICAgICAgfHwgbV9wbGF5YmFj
a1RhcmdldElzV2lyZWxlc3NRdWV1ZS5oYXNQZW5kaW5nVGFza3MoKQogICAgICAgICB8fCBtX3Jl
c291cmNlU2VsZWN0aW9uVGFza1F1ZXVlLmhhc1BlbmRpbmdUYXNrcygpCiAgICAgICAgIHx8ICho
YXNBdWRpbygpICYmIGlzUGxheWluZygpKQogICAgICAgICB8fCAoaGFzTGl2ZVNvdXJjZSgpICYm
IGhhc0V2ZW50TGlzdGVuZXJzKCkpOwpAQCAtNTgzOCw3ICs1ODI3LDEwIEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hh
bmdlZChib29sIGlzCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldElzUGxheWluZ1RvV2lyZWxl
c3NUYXJnZXQoYm9vbCBpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KQogewogICAgIGF1dG8gbG9n
U2l0ZUlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOwotICAgIG1fcGxheWJhY2tUYXJnZXRJc1dp
cmVsZXNzUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGlzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQs
IGxvZ1NpdGVJZGVudGlmaWVyXSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0
aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBpc1BsYXlpbmdUb1dpcmVsZXNz
VGFyZ2V0LCBsb2dTaXRlSWRlbnRpZmllcl0geworICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBl
ZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIFVOVVNFRF9QQVJBTShsb2dTaXRl
SWRlbnRpZmllcik7CiAKICAgICAgICAgaWYgKGlzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQgPT0g
bV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KQpAQCAtNjA1NSw3ICs2MDQ3LDEwIEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9k
ZSkKICAgICB9CiAjZW5kaWYKIAotICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVlVGFz
ayhbdGhpcywgbW9kZV0geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywg
VGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgbW9kZV0geworICAgICAgICBpZiAoaXND
b250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGlmIChkb2N1
bWVudCgpLmhpZGRlbigpKSB7CiAgICAgICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
ICIgcmV0dXJuaW5nIGJlY2F1c2UgZG9jdW1lbnQgaXMgaGlkZGVuIik7CiAgICAgICAgICAgICBt
X2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwpAQCAtODAwMiw3ICs3OTk3LDkg
QEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1ZpZGVvVG9vU21hbGxGb3JJbmxpbmVQbGF5YmFj
aygpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6aXNWaXNpYmxlSW5WaWV3cG9ydENoYW5nZWQo
KQogewotICAgIG1fdmlzaWJpbGl0eUNoYW5nZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpc10g
eworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVk
aWFFbGVtZW50LCBbdGhpc10geworICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBtZWRpYVNlc3Npb24oKS5pc1Zpc2libGVJblZpZXdw
b3J0Q2hhbmdlZCgpOwogICAgICAgICB1cGRhdGVTaG91bGRBdXRvcGxheSgpOwogICAgICAgICBz
Y2hlZHVsZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDlmYzgxNmIwYzlhN2QxODI2NDA4ZGVkZjEyZTg2Zjcz
MmI2N2I5NmUuLjA5MmI4YWY5YzhhMzJkYWUxN2IyZjZhZjIxYmMyYWQ0YTNiNmM0YWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC05NTAsMTIgKzk1MCw3IEBAIHBy
aXZhdGU6CiAgICAgRXZlbnRMb29wRGVmZXJyYWJsZVRhc2sgbV9zZWVrVGFzazsKICAgICBFdmVu
dExvb3BEZWZlcnJhYmxlVGFzayBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0
cmljdGlvbnNUYXNrOwogICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fYnVmZmVyZWRUaW1l
UmFuZ2VzQ2hhbmdlZFRhc2s7Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fcHJvbWlzZVRhc2tR
dWV1ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVl
dWU7CiAgICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVldWU7
Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fdmlzaWJpbGl0eUNoYW5nZVRhc2tRdWV1ZTsKLSAg
ICBFdmVudExvb3BUYXNrUXVldWUgbV9mdWxsc2NyZWVuVGFza1F1ZXVlOwotICAgIEV2ZW50TG9v
cFRhc2tRdWV1ZSBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlOwogICAgIFJlZlB0cjxU
aW1lUmFuZ2VzPiBtX3BsYXllZFRpbWVSYW5nZXM7CiAgICAgVW5pcXVlUmVmPEV2ZW50TG9vcEV2
ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBA
IC0xMTU5LDcgKzExNTQsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxNZWRpYUtleXM+IG1fbWVk
aWFLZXlzOwogICAgIGJvb2wgbV9hdHRhY2hpbmdNZWRpYUtleXMgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9wbGF5YmFja0Jsb2NrZWRXYWl0aW5nRm9yS2V5IHsgZmFsc2UgfTsKLSAgICBFdmVudExv
b3BUYXNrUXVldWUgbV9lbmNyeXB0ZWRNZWRpYVF1ZXVlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50LmNwcAppbmRleCAxZDAzNDYxYzc0YjVkMGE1MjU1MjdhNDU4ZDE2Y2Y5Y2ViMWQzZTQxLi5l
M2QxNGNhNzliZjRkNDJmNGM0NzZjOTNkM2RlNTA5OTJmYzdhOGQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0
VHJhY2tDb250YWluZXJFbGVtZW50LmNwcApAQCAtNzUsNyArNzUsNiBAQCBSZWY8TWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudAogCiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgSFRN
TE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9j
dW1lbnQpCi0gICAgLCBtX3Rhc2tRdWV1ZSgmZG9jdW1lbnQpCiAgICAgLCBtX21lZGlhRWxlbWVu
dChtYWtlV2Vha1B0cigmZWxlbWVudCkpCiB7CiB9CkBAIC0zODcsOCArMzg2LDkgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVTaXplcyhGb3JjZVVw
ZGF0ZSBmb3JjZSkKICAgICBmb3IgKGF1dG8mIGFjdGl2ZUN1ZSA6IG1fbWVkaWFFbGVtZW50LT5j
dXJyZW50bHlBY3RpdmVDdWVzKCkpCiAgICAgICAgIGFjdGl2ZUN1ZS5kYXRhKCktPnJlY2FsY3Vs
YXRlU3R5bGVzKCk7CiAKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpc10gKCkgewot
ICAgICAgICB1cGRhdGVEaXNwbGF5KCk7CisgICAgZG9jdW1lbnQoKS5ldmVudExvb3AoKS5xdWV1
ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyldICgpIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMt
PnVwZGF0ZURpc3BsYXkoKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudC5oCmluZGV4IDdlNDJhNGQzNWI5Y2VkZGI2NTEwYjMyZDljNTllOWJhOTZjZGI3MDIu
Ljc5MDljYzI0MGExZDYzNTIyNTMyZmI5N2EyNWI0NjI2MDJlMjE5ZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0
VHJhY2tDb250YWluZXJFbGVtZW50LmgKQEAgLTMxLDcgKzMxLDYgQEAKIAogI2lmIEVOQUJMRShW
SURFTykKIAotI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJIVE1MRGl2
RWxlbWVudC5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgogI2luY2x1
ZGUgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCkBAIC05Nyw3ICs5Niw2IEBAIHByaXZhdGU6
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dFRyYWNrUmVwcmVzZW50YXRpb24+IG1fdGV4dFRy
YWNrUmVwcmVzZW50YXRpb247CiAKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV90YXNrUXVldWU7
CiAgICAgV2Vha1B0cjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKICAgICBJbnRS
ZWN0IG1fdmlkZW9EaXNwbGF5U2l6ZTsKICAgICBpbnQgbV9mb250U2l6ZSB7IDAgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwCmluZGV4IGI2ZjE3YmQ1MjZj
MTA2Njg0YjUwOTljOWIwMWQ0MTg5ZDViM2MwZGQuLmQ0NDllZWYwMzNkODY2YzRmMmVkZjlhODg5
MTM4MWY1YjJlMWMxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJh
Y2tMaXN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RC
YXNlLmNwcApAQCAtNDIsNyArNDIsNiBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVHJh
Y2tMaXN0QmFzZSk7CiBUcmFja0xpc3RCYXNlOjpUcmFja0xpc3RCYXNlKFdlYWtQdHI8SFRNTE1l
ZGlhRWxlbWVudD4gZWxlbWVudCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAg
ICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAgICwgbV9lbGVtZW50KGVsZW1lbnQpCi0g
ICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShFdmVudExvb3BFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMp
KQogewogICAgIEFTU0VSVCghY29udGV4dCB8fCBpczxEb2N1bWVudD4oY29udGV4dCkpOwogfQpA
QCAtOTcsNyArOTYsNyBAQCBib29sIFRyYWNrTGlzdEJhc2U6OmNvbnRhaW5zKFRyYWNrQmFzZSYg
dHJhY2spIGNvbnN0CiAKIHZvaWQgVHJhY2tMaXN0QmFzZTo6c2NoZWR1bGVUcmFja0V2ZW50KGNv
bnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwgUmVmPFRyYWNrQmFzZT4mJiB0cmFjaykKIHsKLSAg
ICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KFRyYWNrRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgV1RG
TW92ZSh0cmFjaykpKTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tT
b3VyY2U6Ok1lZGlhRWxlbWVudCwgVHJhY2tFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBXVEZNb3ZlKHRyYWNrKSkp
OwogfQogCiB2b2lkIFRyYWNrTGlzdEJhc2U6OnNjaGVkdWxlQWRkVHJhY2tFdmVudChSZWY8VHJh
Y2tCYXNlPiYmIHRyYWNrKQpAQCAtMTYwLDEyICsxNTksMTEgQEAgdm9pZCBUcmFja0xpc3RCYXNl
OjpzY2hlZHVsZUNoYW5nZUV2ZW50KCkKICAgICAvLyBXaGVuZXZlciBhIHRyYWNrIGluIGEgVmlk
ZW9UcmFja0xpc3QgdGhhdCB3YXMgcHJldmlvdXNseSBub3Qgc2VsZWN0ZWQgaXMKICAgICAvLyBz
ZWxlY3RlZCwgdGhlIHVzZXIgYWdlbnQgbXVzdCBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBs
ZSBldmVudCBuYW1lZAogICAgIC8vIGNoYW5nZSBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0
LgotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOwotfQotCi1ib29sIFRyYWNrTGlzdEJhc2U6OmlzQ2hhbmdlRXZlbnRTY2hl
ZHVsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2FzeW5jRXZlbnRRdWV1ZS0+aGFzUGVuZGlu
Z0V2ZW50c09mVHlwZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQpOworICAgIG1faXNDaGFuZ2VF
dmVudFNjaGVkdWxlZCA9IHRydWU7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0
aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAgIG1faXNDaGFu
Z2VFdmVudFNjaGVkdWxlZCA9IGZhbHNlOworICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZl
bnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAgICB9KTsKIH0KIAogYm9vbCBUcmFja0xpc3RCYXNl
Ojppc0FueVRyYWNrRW5hYmxlZCgpIGNvbnN0CkBAIC0xNzcsMTEgKzE3NSw2IEBAIGJvb2wgVHJh
Y2tMaXN0QmFzZTo6aXNBbnlUcmFja0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBUcmFja0xpc3RCYXNlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9hc3luY0V2ZW50UXVldWUtPmhhc1BlbmRpbmdBY3Rpdml0eSgp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaAppbmRleCA2YTcyNTlmOTI2ODJjYjJkNWNlY2YzNzQz
OTM3MGEwNTA5YmI3NDlkLi5kZDY5OTNmZjgwYjJlZDgxNzcwYzg5NGJmMWY5ZTNhODk4NTQwNTQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaApAQCAtMjgsNyAr
MjgsNiBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdl
dC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtNjEsNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBOZWVkcyB0byBiZSBwdWJsaWMg
c28gdHJhY2tzIGNhbiBjYWxsIGl0CiAgICAgdm9pZCBzY2hlZHVsZUNoYW5nZUV2ZW50KCk7Ci0g
ICAgYm9vbCBpc0NoYW5nZUV2ZW50U2NoZWR1bGVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0NoYW5n
ZUV2ZW50U2NoZWR1bGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0NoYW5nZUV2ZW50U2NoZWR1bGVk
OyB9CiAKICAgICBib29sIGlzQW55VHJhY2tFbmFibGVkKCkgY29uc3Q7CiAKQEAgLTc2LDE2ICs3
NSwxMiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmFja0V2ZW50
KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwgUmVmPFRyYWNrQmFzZT4mJik7CiAKLSAgICAv
LyBBY3RpdmVET01PYmplY3QuCi0gICAgYm9vbCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZvaWQgcmVmRXZlbnRU
YXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmlu
YWwgeyBkZXJlZigpOyB9CiAKICAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fZWxlbWVu
dDsKLQotICAgIFVuaXF1ZVJlZjxFdmVudExvb3BFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1
ZTsKKyAgICBib29sIG1faXNDaGFuZ2VFdmVudFNjaGVkdWxlZCB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAppbmRleCBiZWU1Y2Y5MmIwNDQ4NWY0YjUyZDMz
OThhYTFmMDdhN2IxMGM3MDgzLi45ZTBmZTUzODdjZTc4NDJhNmMxZGYxZTZmYzZhY2QxMTgwMjZh
YTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQogCi0jaW5jbHVkZSAiRXZlbnRMb29wRXZlbnRRdWV1ZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430687</attachid>
            <date>2021-06-06 11:12:29 -0700</date>
            <delta_ts>2021-06-06 14:01:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226692-20210606111228.patch</filename>
            <type>text/plain</type>
            <size>44676</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc2N2ZjNTE0ZDEwMTkw
NmQyZDdiZTNjOGI0M2QzNzJkYjYzYzZjNC4uYjYwMDM2NWIxNTA4NWE4MjA0YWJhOTBiMTg4MmYx
YTFkODI3NTVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIxLTA2LTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBsZWdh
Y3kgRXZlbnRMb29wRXZlbnRRdWV1ZSBhbmQgRXZlbnRMb29wVGFza1F1ZXVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY2OTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZWR1Y2UgdXNlIG9mIGxlZ2FjeSBF
dmVudExvb3BFdmVudFF1ZXVlIGFuZCBFdmVudExvb3BUYXNrUXVldWUsIGFuZCB1c2UgdGhlIEhU
TUwgZXZlbnQKKyAgICAgICAgbG9vcCBkaXJlY3RseSBpbnN0ZWFkLiBUaG9zZSBhcmUgdmVyeSBz
aW1wbGUgY2FzZXMsIHRoZXkgcmVhbGx5IGRvbid0IG5lZWQgYW55IG9mIHRoZQorICAgICAgICBm
ZWF0dXJlcyB0aGUgcXVldWUgd2FzIHByb3ZpZGluZyAoc3VjaCBhcyBjYW5jZWxsaW5nIGV2ZW50
cykuCisKKyAgICAgICAgVG8gZ2V0IHJpZCBvZiB0aGUgcmVtYWluaW5nIHVzYWdlIG9mIEV2ZW50
TG9vcEV2ZW50UXVldWUgLyBFdmVudExvb3BUYXNrUXVldWUsIEkgYmVsaWV2ZQorICAgICAgICB3
ZSdsbCBuZWVkIGEgd2F5IHRvIGNhbmNlbCB0YXNrcyBzY2hlZHVsZWQgaW4gdGhlIEhUTUwgZXZl
bnQgbG9vcC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNvdXJjZTo6TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OnZp
cnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2U6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzY2hlZHVsZUV2ZW50KToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlckxpc3Q6OnNjaGVkdWxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oOgorICAgICAgICAqIE1vZHVsZXMvcmVtb3RlcGxh
eWJhY2svUmVtb3RlUGxheWJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJh
Y2s6OlJlbW90ZVBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVBsYXliYWNrOjp3
YXRjaEF2YWlsYWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6Y2Fu
Y2VsV2F0Y2hBdmFpbGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6
OnByb21wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6c2V0U3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmRpc2Nvbm5lY3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmF2YWlsYWJpbGl0eUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OnN0b3ApOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaDoKKyAgICAgICAgKiBhbmltYXRpb24v
RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50VGltZWxpbmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJvbURv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6
Y2FjaGVDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lc0Nv
bnRyb2xsZXI6Om1heWJlQ2xlYXJDYWNoZWRDdXJyZW50VGltZSk6CisgICAgICAgICogYW5pbWF0
aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9GdWxsc2Ny
ZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6RnVs
bHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OnJl
cXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVu
TWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAg
KiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVkRnJvbUFu
Y2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlUmVz
b2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6c2NoZWR1bGVSZWplY3RQZW5kaW5nUGxheVByb21pc2VzKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTm90aWZ5QWJvdXRQbGF5aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhS2V5cyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjbG9zZVRhc2tRdWV1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRJc1BsYXlpbmdUb1dpcmVs
ZXNzVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc1Zpc2libGVJ
blZpZXdwb3J0Q2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50OjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZVNp
emVzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OlRyYWNrTGlzdEJhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6VHJhY2tMaXN0QmFzZTo6c2NoZWR1bGVDaGFuZ2VFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFja0xpc3RCYXNlOjppc0NoYW5nZUV2ZW50U2NoZWR1bGVkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6OnByb2Nlc3NDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkN1cmxNdWx0aXBhcnRIYW5kbGU6Om1hdGNoZWRMZW5ndGgpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsTXVsdGlwYXJ0SGFuZGxlLmg6Cisg
ICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKwogMjAyMS0w
Ni0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVEZD
XSBBZG9wdCBhIGxlc3MgcXVpcmt5IGZpeGVkIGNvbHVtbiB3aWR0aCBzcGFjZSBkaXN0cmlidXRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRleCA4ZDM2Yjk5OWU5ZTNjOGMyMmI3
NWQyZTYwMDUwZTEyODZlNDljZWZlLi4zOGVhN2M0YjhhZmYzZGRmMThlOGQ0OTA1YTlhMGYwMWZh
MGY0N2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC01OSw3ICs1OSw2IEBA
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0CiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkK
ICAgICAsIG1fbG9nZ2VyKG1ha2VSZWYoRG9jdW1lbnQ6OnNoYXJlZExvZ2dlcigpKSkKICAgICAs
IG1fbG9nSWRlbnRpZmllcihuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKCkpCi0gICAgLCBt
X2FzeW5jRXZlbnRRdWV1ZShFdmVudExvb3BFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQogewog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiB9CkBAIC00MTksNyArNDE4LDcgQEAgdm9p
ZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JTdGEKICAgICBtX3N0YXRlID0gc3RhdGU7CiAgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSLCBtX3N0YXRlKTsKICAgICBpZiAoc2hvdWxkRmlyZUV2ZW50cygpKQot
ICAgICAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmNvb3JkaW5hdG9yc3RhdGVjaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisgICAgICAgIHF1ZXVlVGFza1RvRGlzcGF0
Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5jb29yZGluYXRvcnN0YXRlY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogfQogCiBib29sIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpjdXJyZW50UG9zaXRpb25BcHByb3hpbWF0ZWx5RXF1YWxUbyhkb3VibGUgdGlt
ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCmluZGV4IGUzZGQ4MDYwZjlkNDA5NjIz
YzA5ZmFlYTljZGU1NWU1NDlkZGE0MzIuLjMxYzRkOWI0MzMyODczY2NhYjMzMjRhODQyOTA3MGNk
ZmFkZDZjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMjgsNyArMjgsNiBAQAog
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQogCiAjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiRXZlbnRMb29wRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUg
IkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmgiCkBAIC0xMTAsNyArMTA5LDYgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiBtX3ByaXZhdGVD
b29yZGluYXRvcjsKICAgICBjb25zdCBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBj
b25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Ci0gICAgVW5pcXVlUmVmPEV2ZW50TG9vcEV2ZW50
UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOwogICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3Rh
dGUgbV9zdGF0ZSB7IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkNsb3NlZCB9OwogICAg
IGJvb2wgbV9oYXNDb29yZGluYXRvcnNTdGF0ZUNoYW5nZUV2ZW50TGlzdGVuZXIgeyBmYWxzZSB9
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5jcHAKaW5kZXggNTZjNWRhODdkNzYxMDM4MWJhMWYyODUzZjJkZjNhYmFhN2YyYmY1Mi4u
YzM4ZjBhODhlM2MzZWFjMTY2OTczMjEzNDVmZjJiNThlNWFhYTY4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTEwNCw3
ICsxMDQsNiBAQCBNZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fZHVy
YXRpb24oTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQogICAgICwgbV9wZW5kaW5nU2Vla1RpbWUo
TWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQotICAgICwgbV9hc3luY0V2ZW50UXVldWUoRXZlbnRM
b29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ICAgICAsIG1fbG9nZ2VyKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5sb2dnZXIoKSkKICNl
bmRpZgpAQCAtOTk4LDcgKzk5Nyw3IEBAIHZvaWQgTWVkaWFTb3VyY2U6Om9wZW5JZkluRW5kZWRT
dGF0ZSgpCiAKIGJvb2wgTWVkaWFTb3VyY2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBj
b25zdAogewotICAgIHJldHVybiBtX3ByaXZhdGUgfHwgbV9hc3luY0V2ZW50UXVldWUtPmhhc1Bl
bmRpbmdBY3Rpdml0eSgpIHx8IG1fYXNzb2NpYXRlZFJlZ2lzdHJ5Q291bnQ7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZSB8fCBtX2Fzc29jaWF0ZWRSZWdpc3RyeUNvdW50OwogfQogCiB2b2lkIE1lZGlh
U291cmNlOjpzdG9wKCkKQEAgLTEwNzgsMTAgKzEwNzcsNyBAQCB2b2lkIE1lZGlhU291cmNlOjpz
Y2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSkKIHsKICAgICBERUJVR19M
T0coTE9HSURFTlRJRklFUiwgInNjaGVkdWxpbmcgJyIsIGV2ZW50TmFtZSwgIiciKTsKIAotICAg
IGF1dG8gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKTsKLSAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMp
OwotCi0gICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChXVEZNb3ZlKGV2ZW50KSk7
CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVs
ZW1lbnQsIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZl
bnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKIH0KIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTWVk
aWFTb3VyY2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCmluZGV4IGEzYTg0YzNmMjE1
NjY4ZTg5N2M3ZjIwNzdjNTFhZGY5YWVjYTI1OTYuLmEyNmU1NTNlN2ExY2QzNTBhM2I0NjRmMDNl
MTQzOWViNmFlMWYyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiRXZlbnRMb29w
RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCkBAIC0xNzQsNyArMTczLDYg
QEAgcHJpdmF0ZToKICAgICBNZWRpYVRpbWUgbV9kdXJhdGlvbjsKICAgICBNZWRpYVRpbWUgbV9w
ZW5kaW5nU2Vla1RpbWU7CiAgICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBSZWFkeVN0YXRl
OjpDbG9zZWQgfTsKLSAgICBVbmlxdWVSZWY8RXZlbnRMb29wRXZlbnRRdWV1ZT4gbV9hc3luY0V2
ZW50UXVldWU7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgUmVmPGNvbnN0IExvZ2dl
cj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyIHsgbnVsbHB0ciB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuY3BwCmluZGV4IDNmZmEyOGM5ZjhkNzNkM2I3NmFkMzY2YjUwMWM1YzAwOTVhOThiMmQuLmUx
NjhkNzQ1ZWYyNDE1ZmQ1ZDM2YTM3ZjA4NDhmZTMzMzI2ZDdmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTc0LDcg
Kzc0LDYgQEAgU291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIoUmVmPFNvdXJjZUJ1ZmZlclByaXZh
dGU+JiYgc291cmNlQnVmZmVyUHJpdmF0ZSwgTWVkaWEKICAgICA6IEFjdGl2ZURPTU9iamVjdChz
b3VyY2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1fcHJpdmF0ZShXVEZNb3Zl
KHNvdXJjZUJ1ZmZlclByaXZhdGUpKQogICAgICwgbV9zb3VyY2Uoc291cmNlKQotICAgICwgbV9h
c3luY0V2ZW50UXVldWUoRXZlbnRMb29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKICAgICAs
IG1fYXBwZW5kQnVmZmVyVGltZXIoKnRoaXMsICZTb3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlclRp
bWVyRmlyZWQpCiAgICAgLCBtX2FwcGVuZFdpbmRvd1N0YXJ0KE1lZGlhVGltZTo6emVyb1RpbWUo
KSkKICAgICAsIG1fYXBwZW5kV2luZG93RW5kKE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRp
bWUoKSkKQEAgLTQzOSw3ICs0MzgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2Vla1RvVGltZShj
b25zdCBNZWRpYVRpbWUmIHRpbWUpCiAKIGJvb2wgU291cmNlQnVmZmVyOjp2aXJ0dWFsSGFzUGVu
ZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9zb3VyY2UgfHwgbV9hc3luY0V2
ZW50UXVldWUtPmhhc1BlbmRpbmdBY3Rpdml0eSgpOworICAgIHJldHVybiBtX3NvdXJjZTsKIH0K
IAogdm9pZCBTb3VyY2VCdWZmZXI6OnN0b3AoKQpAQCAtNDYwLDEwICs0NTksNyBAQCBib29sIFNv
dXJjZUJ1ZmZlcjo6aXNSZW1vdmVkKCkgY29uc3QKIAogdm9pZCBTb3VyY2VCdWZmZXI6OnNjaGVk
dWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lKQogewotICAgIGF1dG8gZXZlbnQg
PSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJ
c0NhbmNlbGFibGU6Ok5vKTsKLSAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwotCi0gICAgbV9h
c3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChXVEZNb3ZlKGV2ZW50KSk7CisgICAgcXVldWVU
YXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lLCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gU291cmNlQnVmZmVyOjphcHBlbmRC
dWZmZXJJbnRlcm5hbChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgK
aW5kZXggMmNmZjY3OGY2MDE2Y2VkN2VmYjQ2OTc4MWIxZGYyYWE2MjlmYjc4ZC4uZWVjZDMxYmZj
NWY0YmEyZjNmNjYwODA3ZGVhNjI1MTc3NzViYTc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCkBAIC0zNSw3ICszNSw2IEBACiAK
ICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCi0j
aW5jbHVkZSAiRXZlbnRMb29wRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRl
LmgiCkBAIC0yMDgsNyArMjA3LDYgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxTb3VyY2VCdWZmZXJQ
cml2YXRlPiBtX3ByaXZhdGU7CiAgICAgTWVkaWFTb3VyY2UqIG1fc291cmNlOwotICAgIFVuaXF1
ZVJlZjxFdmVudExvb3BFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKICAgICBBcHBlbmRN
b2RlIG1fbW9kZSB7IEFwcGVuZE1vZGU6OlNlZ21lbnRzIH07CiAKICAgICBWZWN0b3I8dW5zaWdu
ZWQgY2hhcj4gbV9wZW5kaW5nQXBwZW5kRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCmluZGV4IDgzNmQ0YzA4
YjY0ZWY3ODdmOTcyNzU4Y2JkYTczZTVlOTdjODMzN2IuLjc2NTBiNWIzYWNmOGM2OWVmZTZlMjdk
YmRhNWU0MmE1NTNhYTk5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcApAQCAtNDQsNyArNDQsNiBAQCBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU291cmNlQnVmZmVyTGlzdCk7CiAKIFNvdXJjZUJ1ZmZl
ckxpc3Q6OlNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
ICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQotICAgICwgbV9hc3luY0V2ZW50UXVldWUo
RXZlbnRMb29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKIHsKICAgICBzdXNwZW5kSWZOZWVk
ZWQoKTsKIH0KQEAgLTk1LDEwICs5NCw3IEBAIHZvaWQgU291cmNlQnVmZmVyTGlzdDo6c3dhcChW
ZWN0b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlcj4+JiBvdGhlcikKIAogdm9pZCBTb3VyY2VCdWZmZXJM
aXN0OjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSkKIHsKLSAgICBh
dXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7Ci0gICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsK
LQotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOwor
ICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVt
ZW50LCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAKIGNvbnN0IGNoYXIqIFNvdXJjZUJ1ZmZlckxpc3Q6
OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaAppbmRleCBkMzlmNzI5YzkyOGY4
MDM1MWFkNjc1NTU2ZWExYjkyMWY0ZWNmMWMwLi5iN2VhYmM2NGY1MDIyNzEwYzZjZWEzZDZlMGU0
ZGU4NDRhM2RmYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaApAQCAtMzMsNyArMzMsNiBAQAogI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJF
dmVudExvb3BFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTgwLDggKzc5
LDYgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBmaW5hbDsKIAotICAgIFVuaXF1ZVJlZjxFdmVudExvb3BFdmVudFF1ZXVlPiBtX2FzeW5j
RXZlbnRRdWV1ZTsKLQogICAgIFZlY3RvcjxSZWZQdHI8U291cmNlQnVmZmVyPj4gbV9saXN0Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9S
ZW1vdGVQbGF5YmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmNwcAppbmRleCA2NDdlNWRjZmFiYzJhNWI3Y2I0ZGM4NTAzZGI1Zjlj
MzA3MWM1ZTI2Li4yN2NjMDQ4NDBhN2NhNGQ2ZWUxOTc0ZmUwMDUxYzRhOGIzMmIxNWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXli
YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90
ZVBsYXliYWNrLmNwcApAQCAtNTAsOCArNTAsNiBAQCBSZWY8UmVtb3RlUGxheWJhY2s+IFJlbW90
ZVBsYXliYWNrOjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKIFJlbW90ZVBsYXli
YWNrOjpSZW1vdGVQbGF5YmFjayhIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAgIDogV2Vi
Q29yZTo6QWN0aXZlRE9NT2JqZWN0KGVsZW1lbnQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQog
ICAgICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIoZWxlbWVudCkpCi0gICAgLCBtX2V2ZW50
UXVldWUoRXZlbnRMb29wRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKLSAgICAsIG1fdGFza1F1
ZXVlKGVsZW1lbnQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogewogICAgIHN1c3BlbmRJZk5l
ZWRlZCgpOwogfQpAQCAtNjksNyArNjcsMTAgQEAgdm9pZCBSZW1vdGVQbGF5YmFjazo6d2F0Y2hB
dmFpbGFiaWxpdHkoUmVmPFJlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2s+JiYKICAg
ICAvLyAxLiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLT4KICAgICAvLyAyLiBSZXR1cm4g
cHJvbWlzZSwgYW5kIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGJlbG93OgogICAgIAotICAgIG1f
dGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgcXVldWVUYXNr
S2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlz
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAg
ICAgICByZXR1cm47CisKICAgICAgICAgLy8gMy4gSWYgdGhlIGRpc2FibGVSZW1vdGVQbGF5YmFj
ayBhdHRyaWJ1dGUgaXMgcHJlc2VudCBmb3IgdGhlIG1lZGlhIGVsZW1lbnQsIHJlamVjdCB0aGUg
cHJvbWlzZSB3aXRoCiAgICAgICAgIC8vICAgIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCBh
bGwgdGhlIHJlbWFpbmluZyBzdGVwcy4KICAgICAgICAgaWYgKCFtX21lZGlhRWxlbWVudApAQCAt
OTcsNyArOTgsOSBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjp3YXRjaEF2YWlsYWJpbGl0eShSZWY8
UmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjaz4mJgogICAgICAgICAvLyA4LiBGdWxm
aWxsIHByb21pc2Ugd2l0aCB0aGUgY2FsbGJhY2tJZCBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgc3Rl
cHMgaW4gcGFyYWxsZWw6CiAgICAgICAgIHByb21pc2UtPndoZW5TZXR0bGVkKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgY2FsbGJhY2tJZF0gewogICAgICAgICAgICAg
Ly8gOC4xIFF1ZXVlIGEgdGFzayB0byBpbnZva2UgdGhlIGNhbGxiYWNrIHdpdGggdGhlIGN1cnJl
bnQgYXZhaWxhYmlsaXR5IGZvciB0aGUgbWVkaWEgZWxlbWVudC4KLSAgICAgICAgICAgIG1fdGFz
a1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBjYWxsYmFja0lkLCBhdmFpbGFibGUgPSBtX2F2YWls
YWJsZV0geworICAgICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBU
YXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBjYWxsYmFja0lkLCBhdmFpbGFibGUgPSBt
X2F2YWlsYWJsZV0geworICAgICAgICAgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICBhdXRvIGZvdW5kQ2Fs
bGJhY2sgPSBtX2NhbGxiYWNrTWFwLmZpbmQoY2FsbGJhY2tJZCk7CiAgICAgICAgICAgICAgICAg
aWYgKGZvdW5kQ2FsbGJhY2sgPT0gbV9jYWxsYmFja01hcC5lbmQoKSkKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMTI0LDcgKzEyNyw5IEBAIHZvaWQgUmVtb3RlUGxheWJhY2s6OmNh
bmNlbFdhdGNoQXZhaWxhYmlsaXR5KHN0ZDo6b3B0aW9uYWw8aW50MzJfdD4gaWQsIFJlZjxEZWZl
CiAgICAgLy8gMS4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS0+CiAgICAgLy8gMi4gUmV0
dXJuIHByb21pc2UsIGFuZCBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBiZWxvdzoKIAotICAgIG1f
dGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBpZCA9IFdURk1vdmUoaWQpLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhp
cywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgaWQgPSBXVEZNb3ZlKGlkKSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQo
KSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgLy8gMy4gSWYgdGhlIGRpc2FibGVSZW1v
dGVQbGF5YmFjayBhdHRyaWJ1dGUgaXMgcHJlc2VudCBmb3IgdGhlIG1lZGlhIGVsZW1lbnQsIHJl
amVjdCBwcm9taXNlIHdpdGgKICAgICAgICAgLy8gICAgSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFi
b3J0IGFsbCB0aGUgcmVtYWluaW5nIHN0ZXBzLgogICAgICAgICBpZiAoIW1fbWVkaWFFbGVtZW50
CkBAIC0xNjcsNyArMTcyLDEwIEBAIHZvaWQgUmVtb3RlUGxheWJhY2s6OnByb21wdChSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgLy8gMS4gTGV0IHByb21pc2UgYmUgYSBuZXcg
cHJvbWlzZS0+CiAgICAgLy8gMi4gUmV0dXJuIHByb21pc2UsIGFuZCBydW4gdGhlIGZvbGxvd2lu
ZyBzdGVwcyBiZWxvdzoKIAotICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0gVXNlckdlc3R1
cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpXSAoKSBtdXRhYmxlIHsKKyAgICBx
dWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVu
dCwgW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUgPSBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCldICgpIG11
dGFibGUgeworICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0
dXJuOworCiAgICAgICAgIC8vIDMuIElmIHRoZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgYXR0cmli
dXRlIGlzIHByZXNlbnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50LCByZWplY3QgdGhlIHByb21pc2Ug
d2l0aAogICAgICAgICAvLyAgICBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgYWxsIHRoZSBy
ZW1haW5pbmcgc3RlcHMuCiAgICAgICAgIGlmICghbV9tZWRpYUVsZW1lbnQKQEAgLTI3MCwxNyAr
Mjc4LDE4IEBAIHZvaWQgUmVtb3RlUGxheWJhY2s6OnNldFN0YXRlKFN0YXRlIHN0YXRlKQogCiAg
ICAgbV9zdGF0ZSA9IHN0YXRlOwogCi0gICAgc3dpdGNoIChtX3N0YXRlKSB7Ci0gICAgY2FzZSBT
dGF0ZTo6Q29ubmVjdGVkOgotICAgICAgICBtX2V2ZW50UXVldWUtPmVucXVldWVFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25uZWN0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFN0
YXRlOjpDb25uZWN0aW5nOgotICAgICAgICBtX2V2ZW50UXVldWUtPmVucXVldWVFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25uZWN0aW5nRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFN0YXRlOjpEaXNjb25uZWN0ZWQ6Ci0gICAgICAgIG1fZXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRpc2Nvbm5lY3RFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KKyAgICBhdXRvIGV2ZW50TmFtZSA9IFtdKFN0YXRlIHN0YXRlKSB7CisgICAgICAgIHN3aXRj
aCAoc3RhdGUpIHsKKyAgICAgICAgY2FzZSBTdGF0ZTo6Q29ubmVjdGVkOgorICAgICAgICAgICAg
cmV0dXJuIGV2ZW50TmFtZXMoKS5jb25uZWN0RXZlbnQ7CisgICAgICAgIGNhc2UgU3RhdGU6OkNv
bm5lY3Rpbmc6CisgICAgICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLmNvbm5lY3RpbmdFdmVu
dDsKKyAgICAgICAgY2FzZSBTdGF0ZTo6RGlzY29ubmVjdGVkOgorICAgICAgICAgICAgcmV0dXJu
IGV2ZW50TmFtZXMoKS5kaXNjb25uZWN0RXZlbnQ7CisgICAgICAgIH0KKyAgICB9OworCisgICAg
cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQs
IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lKHN0YXRlKSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAKIHZvaWQgUmVtb3RlUGxheWJhY2s6OmVzdGFi
bGlzaENvbm5lY3Rpb24oKQpAQCAtMzEwLDcgKzMxOSwxMCBAQCB2b2lkIFJlbW90ZVBsYXliYWNr
OjpkaXNjb25uZWN0KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gMi4gUXVldWUgYSB0YXNr
IHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNr
KFt0aGlzXSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291
cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVk
KCkpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgLy8gMi4xIFJlcXVlc3QgZGlzY29u
bmVjdGlvbiBvZiByZW1vdGUgZnJvbSB0aGUgZGV2aWNlLiBJbXBsZW1lbnRhdGlvbiBpcyB1c2Vy
IGFnZW50IHNwZWNpZmljLgogICAgICAgICAvLyBOT1RFOiBJbXBsZW1lbnRlZCBieSBNZWRpYVBs
YXllcjo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldCgpCiAgICAgICAgIC8vIDIuMiBDaGFuZ2Ug
dGhlIHJlbW90ZSdzIHN0YXRlIHRvIGRpc2Nvbm5lY3RlZC4KQEAgLTM3OCw3ICszOTAsMTAgQEAg
dm9pZCBSZW1vdGVQbGF5YmFjazo6YXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2YWlsYWJsZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIG1fYXZhaWxhYmxlID0gYXZhaWxhYmxlOwogCi0gICAgbV90
YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGF2YWlsYWJsZV0geworICAgIHF1ZXVlVGFza0tl
ZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywg
YXZhaWxhYmxlXSB7CisgICAgICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAg
ICByZXR1cm47CisKICAgICAgICAgLy8gUHJvdGVjdCBtX2NhbGxiYWNrTWFwIGFnYWluc3QgbXV0
YXRpb24gd2hpbGUgaXQncyBiZWluZyBpdGVyYXRlZCBvdmVyLgogICAgICAgICBWZWN0b3I8UmVm
PFJlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2s+PiBjYWxsYmFja3M7CiAgICAgICAg
IGNhbGxiYWNrcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fY2FsbGJhY2tNYXAuc2l6ZSgpKTsK
QEAgLTQwMSwxMiArNDE2LDYgQEAgY29uc3QgY2hhciogUmVtb3RlUGxheWJhY2s6OmFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiUmVtb3RlUGxheWJhY2siOwogfQogCi12
b2lkIFJlbW90ZVBsYXliYWNrOjpzdG9wKCkKLXsKLSAgICBtX3Rhc2tRdWV1ZS5jbG9zZSgpOwot
ICAgIG1fZXZlbnRRdWV1ZS0+Y2xvc2UoKTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaAppbmRleCBhNTU3ZDFlNzk2YzQxZmFm
YTY0MGUzOWEzNTU4NmNlNDFlNjQyN2M5Li4wNDU3MzhlMzg3MDZmMzliMjI3ZDFkOTY4OGExNmQy
MmJhZDYxOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXli
YWNrL1JlbW90ZVBsYXliYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVw
bGF5YmFjay9SZW1vdGVQbGF5YmFjay5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgot
I2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtODEs
NyArODAsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgogICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHN0b3Ao
KSBmaW5hbDsKIAogICAgIC8vIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEuCiAgICAgRXZlbnRU
YXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBSZW1vdGVQbGF5YmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpAQCAtOTksOSArOTcs
NiBAQCBwcml2YXRlOgogICAgIFByb21pc2VWZWN0b3IgbV9wcm9tcHRQcm9taXNlczsKICAgICBT
dGF0ZSBtX3N0YXRlIHsgU3RhdGU6OkRpc2Nvbm5lY3RlZCB9OwogICAgIGJvb2wgbV9hdmFpbGFi
bGUgeyBmYWxzZSB9OwotCi0gICAgVW5pcXVlUmVmPEV2ZW50TG9vcEV2ZW50UXVldWU+IG1fZXZl
bnRRdWV1ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV90YXNrUXVldWU7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0Nv
bnRyb2xsZXIuY3BwCmluZGV4IDk5NDA5MWFmYzU1NTg5NzE2N2Q1MWFiMDEyNGE2Yjk3ODgwYjY3
ZTAuLmI1NWQ2MGIzYmM1ZjBkMzc1NzAzMGNmYzJjNDE5ODliNjJiZjMxMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERvY3VtZW50
VGltZWxpbmVzQ29udHJvbGxlcjo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKERvY3VtZW50
JiBkb2N1bWVudCkKLSAgICA6IG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZSgmZG9jdW1l
bnQpCisgICAgOiBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrKCZkb2N1bWVudCkKICAgICAsIG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdl
KCkpIHsKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6
OnJlbW92ZVRpbWVsaW5lKERvY3VtZW50VGltZWxpbmUmIHRpbWVsaW5lKQogCiB2b2lkIERvY3Vt
ZW50VGltZWxpbmVzQ29udHJvbGxlcjo6ZGV0YWNoRnJvbURvY3VtZW50KCkKIHsKLSAgICBtX2N1
cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUuY2xvc2UoKTsKKyAgICBtX2N1cnJlbnRUaW1lQ2xl
YXJpbmdUYXNrLmNsb3NlKCk7CiAKICAgICB3aGlsZSAoIW1fdGltZWxpbmVzLmNvbXB1dGVzRW1w
dHkoKSkKICAgICAgICAgbV90aW1lbGluZXMuYmVnaW4oKS0+ZGV0YWNoRnJvbURvY3VtZW50KCk7
CkBAIC0yMzMsOCArMjMzLDggQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OmNh
Y2hlQ3VycmVudFRpbWUoUmVkdWNlZFJlc29sdXRpb25TZWNvbmRzIG5ld0MKICAgICAvLyBhbmlt
YXRpb25zLCBzbyB3ZSBzY2hlZHVsZSB0aGUgaW52YWxpZGF0aW9uIHRhc2sgYW5kIHJlZ2lzdGVy
IGEgd2hlbklkbGUgY2FsbGJhY2sgb24gdGhlIFZNLCB3aGljaCB3aWxsCiAgICAgLy8gZmlyZSBz
eW5jcm9ub3VzbHkgaWYgbm8gSlMgaXMgcnVubmluZy4KICAgICBtX3dhaXRpbmdPblZNSWRsZSA9
IHRydWU7Ci0gICAgaWYgKCFtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWUuaGFzUGVuZGlu
Z1Rhc2tzKCkpCi0gICAgICAgIG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZS5lbnF1ZXVl
VGFzayhzdGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5YmVDbGVhckNh
Y2hlZEN1cnJlbnRUaW1lLCB0aGlzKSk7CisgICAgaWYgKCFtX2N1cnJlbnRUaW1lQ2xlYXJpbmdU
YXNrLmlzUGVuZGluZygpKQorICAgICAgICBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrLnNjaGVk
dWxlVGFzayhzdGQ6OmJpbmQoJkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5YmVDbGVh
ckNhY2hlZEN1cnJlbnRUaW1lLCB0aGlzKSk7CiAgICAgLy8gV2UgZXh0ZW50IHRoZSBhc3NvY2lh
dGVkIERvY3VtZW50J3MgbGlmZWN5Y2xlIHVudGlsIHRoZSBWTSBiZWNhbWUgaWRsZSBzaW5jZSB0
aGUgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyCiAgICAgLy8gaXMgb3duZWQgYnkgdGhlIERv
Y3VtZW50LgogICAgIG1fZG9jdW1lbnQudm0oKS53aGVuSWRsZShbdGhpcywgcHJvdGVjdGVkRG9j
dW1lbnQgPSBtYWtlUmVmUHRyKG1fZG9jdW1lbnQpXSgpIHsKQEAgLTI0OSw3ICsyNDksNyBAQCB2
b2lkIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6bWF5YmVDbGVhckNhY2hlZEN1cnJlbnRU
aW1lKCkKICAgICAvLyBKUyBvciB3YWl0aW5nIG9uIGFsbCBjdXJyZW50IGFuaW1hdGlvbiB1cGRh
dGluZyBjb2RlIHRvIGhhdmUgY29tcGxldGVkLiBUaGlzIGlzIHNvIHRoYXQKICAgICAvLyB3ZSdy
ZSBndWFyYW50ZWVkIHRvIGhhdmUgYSBjb25zaXN0ZW50IGN1cnJlbnQgdGltZSByZXBvcnRlZCBm
b3IgYWxsIHdvcmsgaGFwcGVuaW5nIGluIGEgZ2l2ZW4KICAgICAvLyBKUyBmcmFtZSBvciB0aHJv
dWdob3V0IHVwZGF0aW5nIGFuaW1hdGlvbnMgaW4gV2ViQ29yZS4KLSAgICBpZiAoIW1faXNTdXNw
ZW5kZWQgJiYgIW1fd2FpdGluZ09uVk1JZGxlICYmICFtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNr
UXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCisgICAgaWYgKCFtX2lzU3VzcGVuZGVkICYmICFtX3dh
aXRpbmdPblZNSWRsZSAmJiAhbV9jdXJyZW50VGltZUNsZWFyaW5nVGFzay5pc1BlbmRpbmcoKSkK
ICAgICAgICAgbV9jYWNoZWRDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxl
ci5oCmluZGV4IDQyMTI3OGUzMjNhY2FiOGZmMTJlMWY2YjM1NTc3ZjQ4Zjc2Y2E2NzkuLjJhMTEw
NGY3OTdkNTAzZmM0MmE3NDNlZWRkYWNjZWU2NjgyZWFlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVl
LmgiCisjaW5jbHVkZSAiRGVmZXJyYWJsZVRhc2suaCIKICNpbmNsdWRlICJSZWR1Y2VkUmVzb2x1
dGlvblNlY29uZHMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9NYXJrYWJs
ZS5oPgpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF5YmVDbGVhckNhY2hl
ZEN1cnJlbnRUaW1lKCk7CiAKICAgICBXZWFrSGFzaFNldDxEb2N1bWVudFRpbWVsaW5lPiBtX3Rp
bWVsaW5lczsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9jdXJyZW50VGltZUNsZWFyaW5nVGFz
a1F1ZXVlOworICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fY3VycmVudFRpbWVDbGVhcmlu
Z1Rhc2s7CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgTWFya2FibGU8U2Vjb25kcywg
U2Vjb25kczo6TWFya2FibGVUcmFpdHM+IG1fY2FjaGVkQ3VycmVudFRpbWU7CiAgICAgYm9vbCBt
X2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9G
dWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFn
ZXIuY3BwCmluZGV4IDk3NDZjNjVhMTgzNjBkZWVjZDJjNzk0MGRhOTJmMzYwYjljNDhiYTIuLjgw
ZTMzNmY0OTNhYWU1YmMwOTBlNDJlOWJjZjllOGZmOWFkNzIzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDgsNyArNDgsNiBAQCB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCiBGdWxsc2NyZWVuTWFuYWdlcjo6RnVsbHNjcmVlbk1hbmFnZXIoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudCB7IGRvY3VtZW50IH0KLSAgICAsIG1f
ZnVsbHNjcmVlblRhc2tRdWV1ZSB7ICZkb2N1bWVudCB9CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoTG9nZ2VySGVscGVyOjp1bmlxdWVMb2dJZGVudGlm
aWVyKCkpCiAjZW5kaWYKQEAgLTYyLDEwICs2MSwxMSBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2Vy
OjpyZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbHNjcmVl
bgogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50RWxlbWVudCgp
OwogCi0gICAgYXV0byBmYWlsZWRQcmVmbGlnaHRzID0gW3RoaXNdKGF1dG8gZWxlbWVudCkgbXV0
YWJsZSB7CisgICAgYXV0byBmYWlsZWRQcmVmbGlnaHRzID0gW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpXShhdXRvIGVsZW1lbnQpIG11dGFibGUgewogICAgICAgICBtX2Z1bGxz
Y3JlZW5FcnJvckV2ZW50VGFyZ2V0UXVldWUuYXBwZW5kKFdURk1vdmUoZWxlbWVudCkpOwotICAg
ICAgICBtX2Z1bGxzY3JlZW5UYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdIHsKLSAgICAgICAg
ICAgIGRpc3BhdGNoRnVsbHNjcmVlbkNoYW5nZUV2ZW50cygpOworICAgICAgICBtX2RvY3VtZW50
LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt3ZWFrVGhp
cyA9IFdURk1vdmUod2Vha1RoaXMpXSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5kaXNwYXRjaEZ1bGxzY3JlZW5DaGFuZ2VF
dmVudHMoKTsKICAgICAgICAgfSk7CiAgICAgfTsKIApAQCAtMTE0LDcgKzExNCwxMCBAQCB2b2lk
IEZ1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCog
ZWxlbWVudCwgRnVsbHNjcmVlbgogCiAgICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBl
bGVtZW50OwogCi0gICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBl
bGVtZW50ID0gbWFrZVJlZlB0cihlbGVtZW50KSwgY2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2Vz
cywgZmFpbGVkUHJlZmxpZ2h0cywgaWRlbnRpZmllciA9IExPR0lERU5USUZJRVJdICgpIG11dGFi
bGUgeworICAgIG1fZG9jdW1lbnQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1l
ZGlhRWxlbWVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBlbGVtZW50
ID0gbWFrZVJlZlB0cihlbGVtZW50KSwgY2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2VzcywgZmFp
bGVkUHJlZmxpZ2h0cywgaWRlbnRpZmllciA9IExPR0lERU5USUZJRVJdICgpIG11dGFibGUgewor
ICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIC8v
IERvbid0IGFsbG93IGZ1bGxzY3JlZW4gaWYgaXQgaGFzIGJlZW4gY2FuY2VsbGVkIG9yIGEgZGlm
ZmVyZW50IGZ1bGxzY3JlZW4gZWxlbWVudAogICAgICAgICAvLyBoYXMgcmVxdWVzdGVkIGZ1bGxz
Y3JlZW4uCiAgICAgICAgIGlmIChtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVudCAhPSBlbGVtZW50
KSB7CkBAIC0yMjMsNyArMjI2LDEwIEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RG
dWxsc2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuCiAgICAgICAg
IC8vIDUuIFJldHVybiwgYW5kIHJ1biB0aGUgcmVtYWluaW5nIHN0ZXBzIGFzeW5jaHJvbm91c2x5
LgogICAgICAgICAvLyA2LiBPcHRpb25hbGx5LCBwZXJmb3JtIHNvbWUgYW5pbWF0aW9uLgogICAg
ICAgICBtX2FyZUtleXNFbmFibGVkSW5GdWxsc2NyZWVuID0gaGFzS2V5Ym9hcmRBY2Nlc3M7Ci0g
ICAgICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgZWxlbWVudCA9
IFdURk1vdmUoZWxlbWVudCksIGZhaWxlZFByZWZsaWdodHMgPSBXVEZNb3ZlKGZhaWxlZFByZWZs
aWdodHMpLCBpZGVudGlmaWVyXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgbV9kb2N1bWVudC5ldmVu
dExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgd2Vha1Ro
aXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgZWxlbWVudCA9IFdURk1vdmUoZWxlbWVudCksIGZhaWxl
ZFByZWZsaWdodHMgPSBXVEZNb3ZlKGZhaWxlZFByZWZsaWdodHMpLCBpZGVudGlmaWVyXSAoKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCiAgICAgICAgICAgICBhdXRvIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgICAgICAg
ICBpZiAoIXBhZ2UgfHwgZG9jdW1lbnQoKS5oaWRkZW4oKSB8fCBtX3BlbmRpbmdGdWxsc2NyZWVu
RWxlbWVudCAhPSBlbGVtZW50IHx8ICFlbGVtZW50LT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAg
ICAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJ0YXNrIC0gcGFnZSwgZG9jdW1lbnQsIG9y
IGVsZW1lbnQgbWlzbWF0Y2g7IGZhaWxpbmcuIik7CkBAIC0zMjcsNyArMzMzLDEwIEBAIHZvaWQg
RnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRGdWxsc2NyZWVuKCkKIAogICAgIC8vIDYuIFJldHVybiwg
YW5kIHJ1biB0aGUgcmVtYWluaW5nIHN0ZXBzIGFzeW5jaHJvbm91c2x5LgogICAgIC8vIDcuIE9w
dGlvbmFsbHksIHBlcmZvcm0gc29tZSBhbmltYXRpb24uCi0gICAgbV9mdWxsc2NyZWVuVGFza1F1
ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBuZXdUb3AgPSBtYWtlUmVmUHRyKG5ld1RvcCksIGZ1bGxz
Y3JlZW5FbGVtZW50ID0gbV9mdWxsc2NyZWVuRWxlbWVudCwgaWRlbnRpZmllciA9IExPR0lERU5U
SUZJRVJdIHsKKyAgICBtX2RvY3VtZW50LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNl
OjpNZWRpYUVsZW1lbnQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgbmV3
VG9wID0gbWFrZVJlZlB0cihuZXdUb3ApLCBmdWxsc2NyZWVuRWxlbWVudCA9IG1fZnVsbHNjcmVl
bkVsZW1lbnQsIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSXSB7CisgICAgICAgIGlmICghd2Vh
a1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgYXV0byogcGFnZSA9IHRoaXMt
PnBhZ2UoKTsKICAgICAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAgICAgICBFUlJPUl9MT0coaWRl
bnRpZmllciwgInRhc2sgLSBEb2N1bWVudCBub3QgaW4gcGFnZTsgYmFpbGluZy4iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggNGJkMWEzZThiZWZiOGU5ZjIwMTY3
NWRkYzI0NzA4OTJiNzViMGJiMy4uNWJmZTM4ZGE2NGU0ZWRhZWZlZGNjM2RhZDgzMWZiZjM4YzFk
MzFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTI4LDkgKzI4
LDkgQEAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgotI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0Lmgi
CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFJlbmRlckZ1bGxTY3Jl
ZW47CiBjbGFzcyBSZW5kZXJUcmVlQnVpbGRlcjsKIGNsYXNzIFJlbmRlclN0eWxlOwogCi1jbGFz
cyBGdWxsc2NyZWVuTWFuYWdlciBmaW5hbCB7CitjbGFzcyBGdWxsc2NyZWVuTWFuYWdlciBmaW5h
bCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGdWxsc2NyZWVuTWFuYWdlcj4gewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEZ1bGxzY3JlZW5NYW5hZ2VyKERvY3Vt
ZW50Jik7CkBAIC0xMTksNyArMTE5LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RWxlbWVudD4g
bV9mdWxsc2NyZWVuRWxlbWVudDsKICAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBtX2Z1bGxz
Y3JlZW5FbGVtZW50U3RhY2s7CiAgICAgV2Vha1B0cjxSZW5kZXJGdWxsU2NyZWVuPiBtX2Z1bGxz
Y3JlZW5SZW5kZXJlciB7IG51bGxwdHIgfTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9mdWxs
c2NyZWVuVGFza1F1ZXVlOwogICAgIERlcXVlPFJlZlB0cjxOb2RlPj4gbV9mdWxsc2NyZWVuQ2hh
bmdlRXZlbnRUYXJnZXRRdWV1ZTsKICAgICBEZXF1ZTxSZWZQdHI8Tm9kZT4+IG1fZnVsbHNjcmVl
bkVycm9yRXZlbnRUYXJnZXRRdWV1ZTsKICAgICBMYXlvdXRSZWN0IG1fc2F2ZWRQbGFjZWhvbGRl
ckZyYW1lUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4
IDQ4NzIyMDBkOTE5MjBhZGEyOTZlZWU3ZDdhMmNmYmFlOTY4OTA1ODguLjNmNDhlZGIyZTY4ODg5
YzEwMzY4M2RlNjM0YzVlMGNhMDU0NTU2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcApAQCAtNDAzLDEyICs0MDMsNyBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1M
TWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bQogICAgICwgbV9zZWVrVGFzaygmZG9jdW1lbnQpCiAgICAgLCBtX3BsYXliYWNrQ29udHJvbHNN
YW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUYXNrKCZkb2N1bWVudCkKICAgICAsIG1fYnVmZmVy
ZWRUaW1lUmFuZ2VzQ2hhbmdlZFRhc2soJmRvY3VtZW50KQotICAgICwgbV9wcm9taXNlVGFza1F1
ZXVlKCZkb2N1bWVudCkKLSAgICAsIG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlKCZkb2N1
bWVudCkKICAgICAsIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVldWUoJmRvY3VtZW50KQotICAg
ICwgbV92aXNpYmlsaXR5Q2hhbmdlVGFza1F1ZXVlKCZkb2N1bWVudCkKLSAgICAsIG1fZnVsbHNj
cmVlblRhc2tRdWV1ZSgmZG9jdW1lbnQpCi0gICAgLCBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVz
c1F1ZXVlKCZkb2N1bWVudCkKICAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEV2ZW50TG9vcEV2ZW50
UXVldWU6OmNyZWF0ZSgqdGhpcykpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAsIG1f
dm9sdW1lUmV2ZXJ0VGFzaygmZG9jdW1lbnQpCkBAIC00NTEsOSArNDQ2LDYgQEAgSFRNTE1lZGlh
RWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW0KICAgICAsIG1fcHJvY2Vzc2luZ1ByZWZlcmVuY2VDaGFuZ2UoZmFsc2Up
CiAgICAgLCBtX3Nob3VsZEF1ZGlvUGxheWJhY2tSZXF1aXJlVXNlckdlc3R1cmUoZG9jdW1lbnQu
dG9wRG9jdW1lbnQoKS5hdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgpICYmICFwcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICwgbV9zaG91bGRWaWRlb1BsYXliYWNr
UmVxdWlyZVVzZXJHZXN0dXJlKGRvY3VtZW50LnRvcERvY3VtZW50KCkudmlkZW9QbGF5YmFja1Jl
cXVpcmVzVXNlckdlc3R1cmUoKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkK
LSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgICwgbV9lbmNyeXB0ZWRNZWRpYVF1ZXVl
KCZkb2N1bWVudCkKLSNlbmRpZgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CiAgICAgLCBtX3JlbW90ZShSZW1vdGVQbGF5YmFjazo6Y3JlYXRlKCp0aGlzKSkKICNlbmRpZgpA
QCAtNTg5LDE0ICs1ODEsOCBAQCBIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxlbWVudCgp
CiAKICAgICBtX3NlZWtUYXNrLmNsb3NlKCk7CiAgICAgbV9yZXN1bWVUYXNrLmNsb3NlKCk7Ci0g
ICAgbV9wcm9taXNlVGFza1F1ZXVlLmNsb3NlKCk7Ci0gICAgbV9wYXVzZUFmdGVyRGV0YWNoZWRU
YXNrUXVldWUuY2xvc2UoKTsKICAgICBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JS
ZXN0cmljdGlvbnNUYXNrLmNsb3NlKCk7CiAgICAgbV9yZXNvdXJjZVNlbGVjdGlvblRhc2tRdWV1
ZS5jbG9zZSgpOwotICAgIG1fdmlzaWJpbGl0eUNoYW5nZVRhc2tRdWV1ZS5jbG9zZSgpOwotI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgbV9lbmNyeXB0ZWRNZWRpYVF1ZXVlLmNsb3Nl
KCk7Ci0jZW5kaWYKIAogICAgIG1fY29tcGxldGVseUxvYWRlZCA9IHRydWU7CiAKQEAgLTg2NCw3
ICs4NTAsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJl
bW92YWxUeXBlIHJlbW92YWxUeXBlLCBDb250YWluZXJOb2QKICAgICBzZXRJbkFjdGl2ZURvY3Vt
ZW50KGZhbHNlKTsKICAgICBpZiAocmVtb3ZhbFR5cGUuZGlzY29ubmVjdGVkRnJvbURvY3VtZW50
KSB7CiAgICAgICAgIC8vIFBhdXNlIGFzeW5jaHJvbm91c2x5IHRvIGxldCB0aGUgb3BlcmF0aW9u
IHRoYXQgcmVtb3ZlZCB1cyBmaW5pc2gsIGluIGNhc2Ugd2UgZ2V0IGluc2VydGVkIGJhY2sgaW50
byBhIGRvY3VtZW50LgotICAgICAgICBtX3BhdXNlQWZ0ZXJEZXRhY2hlZFRhc2tRdWV1ZS5lbnF1
ZXVlVGFzayhzdGQ6OmJpbmQoJkhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlQWZ0ZXJEZXRhY2hlZFRh
c2ssIHRoaXMpKTsKKyAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBU
YXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAgICAgICBpZiAoIWlzQ29u
dGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgICAgICBwYXVzZUFmdGVyRGV0YWNoZWRUYXNrKCk7
CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChtX21lZGlhU2Vzc2lvbikKQEAgLTk0OCw4
ICs5MzcsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlUmVzb2x2ZVBlbmRpbmdQ
bGF5UHJvbWlzZXMoKQogICAgIGlmIChtX3BlbmRpbmdQbGF5UHJvbWlzZXMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX3Byb21pc2VUYXNrUXVldWUuZW5xdWV1ZVRhc2soW3Ro
aXMsIHBlbmRpbmdQbGF5UHJvbWlzZXMgPSBXVEZNb3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyld
ICgpIG11dGFibGUgewotICAgICAgICByZXNvbHZlUGVuZGluZ1BsYXlQcm9taXNlcyhXVEZNb3Zl
KHBlbmRpbmdQbGF5UHJvbWlzZXMpKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUo
KnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHBlbmRpbmdQbGF5UHJvbWlz
ZXMgPSBXVEZNb3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyldICgpIG11dGFibGUgeworICAgICAg
ICBpZiAoIWlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIHJlc29sdmVQZW5kaW5nUGxh
eVByb21pc2VzKFdURk1vdmUocGVuZGluZ1BsYXlQcm9taXNlcykpOwogICAgIH0pOwogfQogCkBA
IC05NTgsOCArOTQ4LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZVJlamVjdFBl
bmRpbmdQbGF5UHJvbWlzZXMoUmVmPERPTUV4Y2VwdGlvbj4mJiBlcnIKICAgICBpZiAobV9wZW5k
aW5nUGxheVByb21pc2VzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcm9t
aXNlVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBlcnJvciA9IFdURk1vdmUoZXJyb3IpLCBw
ZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBt
dXRhYmxlIHsKLSAgICAgICAgcmVqZWN0UGVuZGluZ1BsYXlQcm9taXNlcyhXVEZNb3ZlKHBlbmRp
bmdQbGF5UHJvbWlzZXMpLCBXVEZNb3ZlKGVycm9yKSk7CisgICAgcXVldWVUYXNrS2VlcGluZ09i
amVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBlcnJvciA9
IFdURk1vdmUoZXJyb3IpLCBwZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQ
bGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFpc0NvbnRleHRTdG9wcGVk
KCkpCisgICAgICAgICAgICByZWplY3RQZW5kaW5nUGxheVByb21pc2VzKFdURk1vdmUocGVuZGlu
Z1BsYXlQcm9taXNlcyksIFdURk1vdmUoZXJyb3IpKTsKICAgICB9KTsKIH0KIApAQCAtOTc3LDgg
Kzk2OCw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlz
ZXMoUGxheVByb21pc2VWZWN0b3ImJiBwZW5kaW5nUGxhCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2NoZWR1bGVOb3RpZnlBYm91dFBsYXlpbmcoKQogewotICAgIG1fcHJvbWlzZVRhc2tRdWV1
ZS5lbnF1ZXVlVGFzayhbdGhpcywgcGVuZGluZ1BsYXlQcm9taXNlcyA9IFdURk1vdmUobV9wZW5k
aW5nUGxheVByb21pc2VzKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIG5vdGlmeUFib3V0UGxheWlu
ZyhXVEZNb3ZlKHBlbmRpbmdQbGF5UHJvbWlzZXMpKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2Jq
ZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHBlbmRpbmdQ
bGF5UHJvbWlzZXMgPSBXVEZNb3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyldICgpIG11dGFibGUg
eworICAgICAgICBpZiAoIWlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgICAgIG5vdGlmeUFi
b3V0UGxheWluZyhXVEZNb3ZlKHBlbmRpbmdQbGF5UHJvbWlzZXMpKTsKICAgICB9KTsKIH0KIApA
QCAtMjYwNiw3ICsyNTk4LDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFLZXlz
KE1lZGlhS2V5cyogbWVkaWFLZXlzLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmCiAKICAgICAvLyA0
LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAgIC8vIDUuIFJ1biB0aGUgZm9sbG93
aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5lbnF1ZXVl
VGFzayhbdGhpcywgbWVkaWFLZXlzID0gUmVmUHRyPE1lZGlhS2V5cz4obWVkaWFLZXlzKSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgcXVldWVUYXNrS2VlcGlu
Z09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBtZWRp
YUtleXMgPSBSZWZQdHI8TWVkaWFLZXlzPihtZWRpYUtleXMpLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKwogICAgICAgICAvLyA1LjEuIElmIGFsbCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgaG9sZDoKICAgICAgICAgLy8gICAgICAtIG1lZGlhS2V5cyBpcyBub3QgbnVs
bCwKICAgICAgICAgLy8gICAgICAtIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgbWVk
aWFLZXlzIGlzIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgbWVkaWEgZWxlbWVudApAQCAtMjY0
MSw4ICsyNjM2LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRNZWRpYUtleXMoTWVkaWFL
ZXlzKiBtZWRpYUtleXMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYKICAgICAgICAgICAgIC8vIEZJ
WE1FOiBeCiAKICAgICAgICAgICAgIC8vIDUuMy4zLiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBB
dHRlbXB0IHRvIFJlc3VtZSBQbGF5YmFjayBJZiBOZWNlc3NhcnkgYWxnb3JpdGhtIG9uIHRoZSBt
ZWRpYSBlbGVtZW50LgotICAgICAgICAgICAgbV9lbmNyeXB0ZWRNZWRpYVF1ZXVlLmVucXVldWVU
YXNrKFt0aGlzXSB7Ci0gICAgICAgICAgICAgICAgYXR0ZW1wdFRvUmVzdW1lUGxheWJhY2tJZk5l
Y2Vzc2FyeSgpOworICAgICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlz
LCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAgICAgICAgICAgaWYg
KCFpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICAgICAgICAgIGF0dGVtcHRUb1Jlc3Vt
ZVBsYXliYWNrSWZOZWNlc3NhcnkoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAg
LTU2NTEsMTMgKzU2NDcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsb3NlVGFza1F1ZXVl
cygpCiAgICAgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGFz
ay5jbG9zZSgpOwogICAgIG1fc2Vla1Rhc2suY2xvc2UoKTsKICAgICBtX3Jlc3VtZVRhc2suY2xv
c2UoKTsKLSAgICBtX3Byb21pc2VUYXNrUXVldWUuY2xvc2UoKTsKLSAgICBtX3BhdXNlQWZ0ZXJE
ZXRhY2hlZFRhc2tRdWV1ZS5jbG9zZSgpOwogICAgIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNrUXVl
dWUuY2xvc2UoKTsKLSAgICBtX3Zpc2liaWxpdHlDaGFuZ2VUYXNrUXVldWUuY2xvc2UoKTsKLSNp
ZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIG1fZW5jcnlwdGVkTWVkaWFRdWV1ZS5jbG9z
ZSgpOwotI2VuZGlmCiAgICAgbV9hc3luY0V2ZW50UXVldWUtPmNsb3NlKCk7CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBtX3ZvbHVtZVJldmVydFRhc2suY2xvc2UoKTsKQEAgLTU3NTAs
NyArNTc0MCw2IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY3JlYXRpbmdDb250cm9scwogICAgICAgICB8
fCBtX2FzeW5jRXZlbnRRdWV1ZS0+aGFzUGVuZGluZ0FjdGl2aXR5KCkKLSAgICAgICAgfHwgbV9w
bGF5YmFja1RhcmdldElzV2lyZWxlc3NRdWV1ZS5oYXNQZW5kaW5nVGFza3MoKQogICAgICAgICB8
fCBtX3Jlc291cmNlU2VsZWN0aW9uVGFza1F1ZXVlLmhhc1BlbmRpbmdUYXNrcygpCiAgICAgICAg
IHx8IChoYXNBdWRpbygpICYmIGlzUGxheWluZygpKQogICAgICAgICB8fCAoaGFzTGl2ZVNvdXJj
ZSgpICYmIGhhc0V2ZW50TGlzdGVuZXJzKCkpOwpAQCAtNTgzOCw3ICs1ODI3LDEwIEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVs
ZXNzQ2hhbmdlZChib29sIGlzCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldElzUGxheWluZ1Rv
V2lyZWxlc3NUYXJnZXQoYm9vbCBpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KQogewogICAgIGF1
dG8gbG9nU2l0ZUlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOwotICAgIG1fcGxheWJhY2tUYXJn
ZXRJc1dpcmVsZXNzUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGlzUGxheWluZ1RvV2lyZWxlc3NU
YXJnZXQsIGxvZ1NpdGVJZGVudGlmaWVyXSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFs
aXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCBpc1BsYXlpbmdUb1dp
cmVsZXNzVGFyZ2V0LCBsb2dTaXRlSWRlbnRpZmllcl0geworICAgICAgICBpZiAoaXNDb250ZXh0
U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIFVOVVNFRF9QQVJBTShs
b2dTaXRlSWRlbnRpZmllcik7CiAKICAgICAgICAgaWYgKGlzUGxheWluZ1RvV2lyZWxlc3NUYXJn
ZXQgPT0gbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KQpAQCAtNjA1NSw3ICs2MDQ3LDEwIEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1v
ZGUgbW9kZSkKICAgICB9CiAjZW5kaWYKIAotICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1
ZXVlVGFzayhbdGhpcywgbW9kZV0geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgq
dGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgbW9kZV0geworICAgICAgICBp
ZiAoaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGlm
IChkb2N1bWVudCgpLmhpZGRlbigpKSB7CiAgICAgICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsICIgcmV0dXJuaW5nIGJlY2F1c2UgZG9jdW1lbnQgaXMgaGlkZGVuIik7CiAgICAgICAg
ICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwpAQCAtODAwMiw3ICs3
OTk3LDkgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1ZpZGVvVG9vU21hbGxGb3JJbmxpbmVQ
bGF5YmFjaygpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6aXNWaXNpYmxlSW5WaWV3cG9ydENo
YW5nZWQoKQogewotICAgIG1fdmlzaWJpbGl0eUNoYW5nZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhb
dGhpc10geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJj
ZTo6TWVkaWFFbGVtZW50LCBbdGhpc10geworICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgp
KQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtZWRpYVNlc3Npb24oKS5pc1Zpc2libGVJ
blZpZXdwb3J0Q2hhbmdlZCgpOwogICAgICAgICB1cGRhdGVTaG91bGRBdXRvcGxheSgpOwogICAg
ICAgICBzY2hlZHVsZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDlmYzgxNmIwYzlhN2QxODI2NDA4ZGVkZjEy
ZTg2ZjczMmI2N2I5NmUuLjA5MmI4YWY5YzhhMzJkYWUxN2IyZjZhZjIxYmMyYWQ0YTNiNmM0YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC05NTAsMTIgKzk1MCw3
IEBAIHByaXZhdGU6CiAgICAgRXZlbnRMb29wRGVmZXJyYWJsZVRhc2sgbV9zZWVrVGFzazsKICAg
ICBFdmVudExvb3BEZWZlcnJhYmxlVGFzayBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZp
b3JSZXN0cmljdGlvbnNUYXNrOwogICAgIEV2ZW50TG9vcERlZmVycmFibGVUYXNrIG1fYnVmZmVy
ZWRUaW1lUmFuZ2VzQ2hhbmdlZFRhc2s7Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fcHJvbWlz
ZVRhc2tRdWV1ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9wYXVzZUFmdGVyRGV0YWNoZWRU
YXNrUXVldWU7CiAgICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fcmVzb3VyY2VTZWxlY3Rpb25UYXNr
UXVldWU7Ci0gICAgRXZlbnRMb29wVGFza1F1ZXVlIG1fdmlzaWJpbGl0eUNoYW5nZVRhc2tRdWV1
ZTsKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV9mdWxsc2NyZWVuVGFza1F1ZXVlOwotICAgIEV2
ZW50TG9vcFRhc2tRdWV1ZSBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlOwogICAgIFJl
ZlB0cjxUaW1lUmFuZ2VzPiBtX3BsYXllZFRpbWVSYW5nZXM7CiAgICAgVW5pcXVlUmVmPEV2ZW50
TG9vcEV2ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCkBAIC0xMTU5LDcgKzExNTQsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxNZWRpYUtleXM+
IG1fbWVkaWFLZXlzOwogICAgIGJvb2wgbV9hdHRhY2hpbmdNZWRpYUtleXMgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9wbGF5YmFja0Jsb2NrZWRXYWl0aW5nRm9yS2V5IHsgZmFsc2UgfTsKLSAgICBF
dmVudExvb3BUYXNrUXVldWUgbV9lbmNyeXB0ZWRNZWRpYVF1ZXVlOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50LmNwcAppbmRleCAxZDAzNDYxYzc0YjVkMGE1MjU1MjdhNDU4ZDE2Y2Y5Y2ViMWQz
ZTQxLi5lM2QxNGNhNzliZjRkNDJmNGM0NzZjOTNkM2RlNTA5OTJmYzdhOGQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcApAQCAtNzUsNyArNzUsNiBAQCBSZWY8TWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudAogCiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
OjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCwgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRh
ZywgZG9jdW1lbnQpCi0gICAgLCBtX3Rhc2tRdWV1ZSgmZG9jdW1lbnQpCiAgICAgLCBtX21lZGlh
RWxlbWVudChtYWtlV2Vha1B0cigmZWxlbWVudCkpCiB7CiB9CkBAIC0zODcsOCArMzg2LDkgQEAg
dm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVTaXplcyhG
b3JjZVVwZGF0ZSBmb3JjZSkKICAgICBmb3IgKGF1dG8mIGFjdGl2ZUN1ZSA6IG1fbWVkaWFFbGVt
ZW50LT5jdXJyZW50bHlBY3RpdmVDdWVzKCkpCiAgICAgICAgIGFjdGl2ZUN1ZS5kYXRhKCktPnJl
Y2FsY3VsYXRlU3R5bGVzKCk7CiAKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpc10g
KCkgewotICAgICAgICB1cGRhdGVEaXNwbGF5KCk7CisgICAgZG9jdW1lbnQoKS5ldmVudExvb3Ao
KS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyldICgpIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vh
a1RoaXMtPnVwZGF0ZURpc3BsYXkoKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudC5oCmluZGV4IDdlNDJhNGQzNWI5Y2VkZGI2NTEwYjMyZDljNTllOWJhOTZj
ZGI3MDIuLjc5MDljYzI0MGExZDYzNTIyNTMyZmI5N2EyNWI0NjI2MDJlMjE5ZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgKQEAgLTMxLDcgKzMxLDYgQEAKIAogI2lmIEVO
QUJMRShWSURFTykKIAotI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJI
VE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgog
I2luY2x1ZGUgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCkBAIC05Nyw3ICs5Niw2IEBAIHBy
aXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dFRyYWNrUmVwcmVzZW50YXRpb24+IG1f
dGV4dFRyYWNrUmVwcmVzZW50YXRpb247CiAKLSAgICBFdmVudExvb3BUYXNrUXVldWUgbV90YXNr
UXVldWU7CiAgICAgV2Vha1B0cjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKICAg
ICBJbnRSZWN0IG1fdmlkZW9EaXNwbGF5U2l6ZTsKICAgICBpbnQgbV9mb250U2l6ZSB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwCmluZGV4IGI2ZjE3
YmQ1MjZjMTA2Njg0YjUwOTljOWIwMWQ0MTg5ZDViM2MwZGQuLmQ0NDllZWYwMzNkODY2YzRmMmVk
ZjlhODg5MTM4MWY1YjJlMWMxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVHJhY2tMaXN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFj
a0xpc3RCYXNlLmNwcApAQCAtNDIsNyArNDIsNiBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoVHJhY2tMaXN0QmFzZSk7CiBUcmFja0xpc3RCYXNlOjpUcmFja0xpc3RCYXNlKFdlYWtQdHI8
SFRNTE1lZGlhRWxlbWVudD4gZWxlbWVudCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAgICwgbV9lbGVtZW50KGVsZW1l
bnQpCi0gICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShFdmVudExvb3BFdmVudFF1ZXVlOjpjcmVhdGUo
KnRoaXMpKQogewogICAgIEFTU0VSVCghY29udGV4dCB8fCBpczxEb2N1bWVudD4oY29udGV4dCkp
OwogfQpAQCAtOTcsNyArOTYsNyBAQCBib29sIFRyYWNrTGlzdEJhc2U6OmNvbnRhaW5zKFRyYWNr
QmFzZSYgdHJhY2spIGNvbnN0CiAKIHZvaWQgVHJhY2tMaXN0QmFzZTo6c2NoZWR1bGVUcmFja0V2
ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwgUmVmPFRyYWNrQmFzZT4mJiB0cmFjaykK
IHsKLSAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KFRyYWNrRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bywgV1RGTW92ZSh0cmFjaykpKTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMs
IFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgVHJhY2tFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwg
RXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBXVEZNb3ZlKHRy
YWNrKSkpOwogfQogCiB2b2lkIFRyYWNrTGlzdEJhc2U6OnNjaGVkdWxlQWRkVHJhY2tFdmVudChS
ZWY8VHJhY2tCYXNlPiYmIHRyYWNrKQpAQCAtMTYwLDEyICsxNTksMTEgQEAgdm9pZCBUcmFja0xp
c3RCYXNlOjpzY2hlZHVsZUNoYW5nZUV2ZW50KCkKICAgICAvLyBXaGVuZXZlciBhIHRyYWNrIGlu
IGEgVmlkZW9UcmFja0xpc3QgdGhhdCB3YXMgcHJldmlvdXNseSBub3Qgc2VsZWN0ZWQgaXMKICAg
ICAvLyBzZWxlY3RlZCwgdGhlIHVzZXIgYWdlbnQgbXVzdCBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBh
IHNpbXBsZSBldmVudCBuYW1lZAogICAgIC8vIGNoYW5nZSBhdCB0aGUgVmlkZW9UcmFja0xpc3Qg
b2JqZWN0LgotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6
SXNDYW5jZWxhYmxlOjpObykpOwotfQotCi1ib29sIFRyYWNrTGlzdEJhc2U6OmlzQ2hhbmdlRXZl
bnRTY2hlZHVsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2FzeW5jRXZlbnRRdWV1ZS0+aGFz
UGVuZGluZ0V2ZW50c09mVHlwZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQpOworICAgIG1faXND
aGFuZ2VFdmVudFNjaGVkdWxlZCA9IHRydWU7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFs
aXZlKCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzXSB7CisgICAgICAgIG1f
aXNDaGFuZ2VFdmVudFNjaGVkdWxlZCA9IGZhbHNlOworICAgICAgICBkaXNwYXRjaEV2ZW50KEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAgICB9KTsKIH0KIAogYm9vbCBUcmFja0xp
c3RCYXNlOjppc0FueVRyYWNrRW5hYmxlZCgpIGNvbnN0CkBAIC0xNzcsMTEgKzE3NSw2IEBAIGJv
b2wgVHJhY2tMaXN0QmFzZTo6aXNBbnlUcmFja0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotYm9vbCBUcmFja0xpc3RCYXNlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9hc3luY0V2ZW50UXVldWUtPmhhc1BlbmRpbmdBY3Rp
dml0eSgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaAppbmRleCA2YTcyNTlmOTI2ODJjYjJkNWNl
Y2YzNzQzOTM3MGEwNTA5YmI3NDlkLi5kZDY5OTNmZjgwYjJlZDgxNzcwYzg5NGJmMWY5ZTNhODk4
NTQwNTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaApAQCAt
MjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgpAQCAtNjEsNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBOZWVkcyB0byBiZSBw
dWJsaWMgc28gdHJhY2tzIGNhbiBjYWxsIGl0CiAgICAgdm9pZCBzY2hlZHVsZUNoYW5nZUV2ZW50
KCk7Ci0gICAgYm9vbCBpc0NoYW5nZUV2ZW50U2NoZWR1bGVkKCkgY29uc3Q7CisgICAgYm9vbCBp
c0NoYW5nZUV2ZW50U2NoZWR1bGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0NoYW5nZUV2ZW50U2No
ZWR1bGVkOyB9CiAKICAgICBib29sIGlzQW55VHJhY2tFbmFibGVkKCkgY29uc3Q7CiAKQEAgLTc2
LDE2ICs3NSwxMiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmFj
a0V2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwgUmVmPFRyYWNrQmFzZT4mJik7CiAK
LSAgICAvLyBBY3RpdmVET01PYmplY3QuCi0gICAgYm9vbCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZvaWQgcmVm
RXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0
KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IG1f
ZWxlbWVudDsKLQotICAgIFVuaXF1ZVJlZjxFdmVudExvb3BFdmVudFF1ZXVlPiBtX2FzeW5jRXZl
bnRRdWV1ZTsKKyAgICBib29sIG1faXNDaGFuZ2VFdmVudFNjaGVkdWxlZCB7IGZhbHNlIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAppbmRleCBiZWU1Y2Y5MmIwNDQ4NWY0
YjUyZDMzOThhYTFmMDdhN2IxMGM3MDgzLi45ZTBmZTUzODdjZTc4NDJhNmMxZGYxZTZmYzZhY2Qx
MTgwMjZhYTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQogCi0jaW5jbHVkZSAiRXZlbnRMb29wRXZlbnRRdWV1ZS5o
IgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
</data>
<flag name="commit-queue"
          id="452250"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>