<?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>237524</bug_id>
          
          <creation_ts>2022-03-07 05:30:40 -0800</creation_ts>
          <short_desc>Add a preference to mute video capture in case audio capture gets interrupted</short_desc>
          <delta_ts>2022-04-30 04:54:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit 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=239926</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1848698</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 05:30:40 -0800</bug_when>
    <thetext>Add a preference to mute video capture in case audio capture gets interrupted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848699</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 05:31:06 -0800</bug_when>
    <thetext>&lt;rdar://78421282&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848703</commentid>
    <comment_count>2</comment_count>
      <attachid>453967</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 05:46:59 -0800</bug_when>
    <thetext>Created attachment 453967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848723</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-07 06:25:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/89902939&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848756</commentid>
    <comment_count>4</comment_count>
      <attachid>453983</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 07:53:54 -0800</bug_when>
    <thetext>Created attachment 453983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848759</commentid>
    <comment_count>5</comment_count>
      <attachid>453985</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 07:59:39 -0800</bug_when>
    <thetext>Created attachment 453985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848761</commentid>
    <comment_count>6</comment_count>
      <attachid>453987</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 08:13:28 -0800</bug_when>
    <thetext>Created attachment 453987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848791</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 09:21:14 -0800</bug_when>
    <thetext>@philn, I am trying to remove the internals API to interrupt source and use testRunner interruption API which should be closer to how this actually works.

The test currently fails in GTK, probably due to MockRealtimeAudioSource::setIsInterrupted being implemented for Cocoa right now.
Any idea how this could be implemented for GTK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848799</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-03-07 09:31:08 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; @philn, I am trying to remove the internals API to interrupt source and use
&gt; testRunner interruption API which should be closer to how this actually
&gt; works.
&gt; 
&gt; The test currently fails in GTK, probably due to
&gt; MockRealtimeAudioSource::setIsInterrupted being implemented for Cocoa right
&gt; now.
&gt; Any idea how this could be implemented for GTK?

Humm maybe make it so that MockRealtimeAudioSourceGStreamer::render returns early without notifying samples?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848801</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-03-07 09:31:58 -0800</bug_when>
    <thetext>We do implement MockRealtimeAudioSourceGStreamer::setInterruptedForTesting() though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848802</commentid>
    <comment_count>10</comment_count>
      <attachid>453987</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-03-07 09:34:22 -0800</bug_when>
    <thetext>Comment on attachment 453987
Patch

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

&gt; Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:-143
&gt; -void MockRealtimeAudioSourceGStreamer::setInterruptedForTesting(bool isInterrupted)

Sorry, didn&apos;t read the patch. :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848805</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 09:41:44 -0800</bug_when>
    <thetext>&gt; Humm maybe make it so that MockRealtimeAudioSourceGStreamer::render returns
&gt; early without notifying samples?

The main difference is that we are going from an instance method to a static method.
Maybe a static variable that MockRealtimeAudioSourceGStreamer::render would use might do the trick?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848808</commentid>
    <comment_count>12</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-03-07 09:47:33 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #11)
&gt; &gt; Humm maybe make it so that MockRealtimeAudioSourceGStreamer::render returns
&gt; &gt; early without notifying samples?
&gt; 
&gt; The main difference is that we are going from an instance method to a static
&gt; method.
&gt; Maybe a static variable that MockRealtimeAudioSourceGStreamer::render would
&gt; use might do the trick?

Yes maybe. Otherwise mark the test as failing and I&apos;ll try to fix it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848848</commentid>
    <comment_count>13</comment_count>
      <attachid>453987</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-03-07 11:13:08 -0800</bug_when>
    <thetext>Comment on attachment 453987
Patch

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

r=me once the bots are happy

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:521
&gt; +        if (!source.isEnded() &amp;&amp; source.type() == RealtimeMediaSource::Type::Video)
&gt; +            source.setMuted(isMicrophoneInterrupted);

Shouldn&apos;t we also mute screen and window capture during and interruption?

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:643
&gt; +    if (wasInterrupted != m_isInterrupted &amp;&amp; m_private-&gt;source().type() == RealtimeMediaSource::Type::Audio &amp;&amp; document-&gt;settings().muteCameraOnMicrophoneInterruptionEnabled())
&gt; +        updateVideoCaptureAccordingMicrophoneInterruption(*document, m_isInterrupted);

Won&apos;t this run multiple times if we have more than one audio track?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848863</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 11:40:27 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #13)
&gt; Comment on attachment 453987 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453987&amp;action=review
&gt; 
&gt; r=me once the bots are happy
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:521
&gt; &gt; +        if (!source.isEnded() &amp;&amp; source.type() == RealtimeMediaSource::Type::Video)
&gt; &gt; +            source.setMuted(isMicrophoneInterrupted);
&gt; 
&gt; Shouldn&apos;t we also mute screen and window capture during and interruption?

I was not sure about that.
Let&apos;s continue the discussion on this one.

&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:643
&gt; &gt; +    if (wasInterrupted != m_isInterrupted &amp;&amp; m_private-&gt;source().type() == RealtimeMediaSource::Type::Audio &amp;&amp; document-&gt;settings().muteCameraOnMicrophoneInterruptionEnabled())
&gt; &gt; +        updateVideoCaptureAccordingMicrophoneInterruption(*document, m_isInterrupted);
&gt; 
&gt; Won&apos;t this run multiple times if we have more than one audio track?

Yes, it will run once per live microphone track attached to the source.
In general, probably only once but it could be more with cloning.
That is the downside of using tracks but should have no functional impact visible to users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849124</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 23:39:45 -0800</bug_when>
    <thetext>Given gtk failures, I&apos;ll add back the internals API, we should remove it as a follow-up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849146</commentid>
    <comment_count>16</comment_count>
      <attachid>454081</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-08 00:57:54 -0800</bug_when>
    <thetext>Created attachment 454081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849177</commentid>
    <comment_count>17</comment_count>
      <attachid>454092</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-08 03:07:47 -0800</bug_when>
    <thetext>Created attachment 454092
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849195</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-08 04:25:37 -0800</bug_when>
    <thetext>Committed r290985 (248163@main): &lt;https://commits.webkit.org/248163@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454092.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849316</commentid>
    <comment_count>19</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-08 09:49:11 -0800</bug_when>
    <thetext>&gt; &gt; Shouldn&apos;t we also mute screen and window capture during and interruption?


&gt; I was not sure about that.
&gt; Let&apos;s continue the discussion on this one.

FWIW, I tend to agree with the general direction that, if we&apos;re going to interrupt, we should interrupt everything. I think that&apos;s a simpler mental model for the user, and it matches most UI&apos;s I&apos;ve seen best.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453967</attachid>
            <date>2022-03-07 05:46:59 -0800</date>
            <delta_ts>2022-03-07 07:41:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237524-20220307144657.patch</filename>
            <type>text/plain</type>
            <size>44303</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyZGM0ODMzNTA2MzNiNWEyYzJhNjFk
ZWVkZDY3ODE5NWIxMjlhYzEuLmIxNmY2ODQ4NTEzNTJkN2U2YmU5MDBmOTk4NzI2ZGU1Y2E4MjNi
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBj
YXB0dXJlIGluIGNhc2UgYXVkaW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1MjQKKyAgICAgICAgPHJk
YXI6Ly83ODQyMTI4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1s
OgorCiAyMDIyLTAzLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBudWxsIGNoZWNrIGZvciBwYXRoIGluIG1ha2VBbGxEaXJlY3RvcmllcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGUxYmM3MzkzOTRiMzFjMmViZmQ2ZTRiYWNmNWJkNzczYWFkZTVlNzAuLjBkYWExZjVk
NzhlYTRmMWZlMzQ3NzRlYjE3MDU0MzJhYmVkZmJhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NSBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRp
byBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8cmRhcjovLzc4NDIxMjgyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGNhc2Ugd2Ug
ZGV0ZWN0IHRoYXQgYSBtaWNyb3Bob25lIHRyYWNrIHNvdXJjZSBnZXRzIG11dGVkIGR1ZSB0byBp
bnRlcnJ1cHRpb24sIHdlIG11dGUKKyAgICAgICAgY2FwdHVyZSB2aWRlbyB0cmFja3MgYmFzZWQg
aWYgYWxsb3dlZCBieSB0aGUgbmV3IE11dGVDYW1lcmFPbk1pY3JvcGhvbmVJbnRlcnJ1cHRpb25F
bmFibGVkIHNldHRpbmcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1vY2sgbWljcm9waG9u
ZSBpbnRlcnJ1cHRpb24uCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1z
dHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisKIDIwMjItMDMtMDYgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUHVzaCBIVE1MTWVkaWFF
bGVtZW50IHJlbmRlcmVyJ3MgY29udGVudEJveCByZWN0IHRvIEdQVSBwcm9jZXNzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDhlY2QxZTYyZDFiM2VkNDUwOGE1MzcwOWRjZjYwNzY4ZjlkNmU4ODguLjA2OWY1NGNlZmE0
YjcwOGM3YjhhMWUzYjhiMjZhYzEyOTc2M2E5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMjItMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBjYXB0dXJlIGluIGNhc2UgYXVkaW8gY2Fw
dHVyZSBnZXRzIGludGVycnVwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzc1MjQKKyAgICAgICAgPHJkYXI6Ly83ODQyMTI4Mj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
aW50ZXJydXB0IG1vY2sgbWljcm9waG9uZSBkZXZpY2VzLgorICAgICAgICBTZW5kIHRvIFdlYlBy
b2Nlc3Mgc291cmNlcyB3aGV0aGVyIHNvdXJjZXMgYXJlIGludGVycnVwdGVkIGVhY2ggdGltZSB0
aGUgc291cmNlIG11dGVkIHZhbHVlIGNoYW5nZXMuCisgICAgICAgIFN0b3JlIHRoYXQgdmFsdWUg
aW4gcmVtb3RlIHNvdXJjZXMuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3Bw
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nl
c3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjoKKwogMjAyMi0wMy0wNiAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBMYXllciB0
cmVlIGNhbiBnZXQgaW5kZWZpbml0ZWx5IGZyb3plbiBpZiBXS1dlYlZpZXcgaXMgdW5wYXJlbnRl
ZCB1bmRlcm5lYXRoIC1bVUlXaW5kb3cgZGVhbGxvY10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
U2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCmluZGV4
IDgzYmVhMWY3ZGY2ZDU4ZDY3MDc5N2E1YWYzYTYyMjY1OGZjYTk1ZDEuLjM5OWQ1MDg5ZjNlM2Yz
ODNkYzVjZWNjZDQ1MDdmODU1MGRkY2ZjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKKysrIGIvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbApAQCAtNjQw
LDYgKzY0MCwxOCBAQCBNb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkOgogICAgIFdlYktpdDoK
ICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK011dGVDYW1lcmFPbk1pY3JvcGhvbmVJbnRlcnJ1cHRp
b25FbmFibGVkOgorICB0eXBlOiBib29sCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisgICAgV2ViS2l0OgorICAgICAgIlBMQVRGT1JNKElPU19GQU1JTFkpIjogdHJ1ZQorICAg
ICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwog
TlBBUElQbHVnSW5zRW5hYmxlZEZvclRlc3RpbmdJbldlYktpdExlZ2FjeToKICAgdHlwZTogYm9v
bAogICBodW1hblJlYWRhYmxlTmFtZTogIk5QQVBJIFBsdWctSW5zIEVuYWJsZWQgSW4gV2ViS2l0
TGVnYWN5IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggYTQ1ZDE5ZTU0NzM5OTU2ZGI3ODA2M2M3Y2FiZThh
OGUwZjEwNGQ0ZC4uNzRhOGQ3Y2VhN2Y0YjFmMDBmNmVjN2EwMDQwMDhmMWM1MzRjMjNkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwCkBAIC05MSw2ICs5MSw3IEBAIE1lZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3Ry
ZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPE1lZGlhU3RyCiAg
ICAgaWYgKCFpc0NhcHR1cmVUcmFjaygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX2lzSW50
ZXJydXB0ZWQgPSBtX3ByaXZhdGUtPnNvdXJjZSgpLmludGVycnVwdGVkKCk7CiAgICAgYWxsQ2Fw
dHVyZVRyYWNrcygpLmFkZCh0aGlzKTsKIAogICAgIGlmIChtX3ByaXZhdGUtPmhhc0F1ZGlvKCkp
CkBAIC01MDksNiArNTEwLDE4IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVy
ZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAjZW5kaWYKIH0KIAor
c3RhdGljIHZvaWQgdXBkYXRlVmlkZW9DYXB0dXJlQWNjb3JkaW5nTWljcm9waG9uZUludGVycnVw
dGlvbihEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCit7
CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBmb3IgKGF1dG8qIGNhcHR1
cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgeworICAgICAgICBpZiAoIWNhcHR1cmVUcmFj
ay0+ZG9jdW1lbnQoKSB8fCBjYXB0dXJlVHJhY2stPmRvY3VtZW50KCktPnBhZ2UoKSAhPSBwYWdl
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGF1dG8mIHNvdXJjZSA9IGNhcHR1cmVU
cmFjay0+c291cmNlKCk7CisgICAgICAgIGlmICghc291cmNlLmlzRW5kZWQoKSAmJiBzb3VyY2Uu
dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKQorICAgICAgICAgICAg
c291cmNlLnNldE11dGVkKGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKKyAgICB9Cit9CisKIHZv
aWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpCiB7CiAgICAgQVNT
RVJUKGlzQ2FwdHVyZVRyYWNrKCkpOwpAQCAtNjEyLDcgKzYyNSw4IEBAIHZvaWQgTWVkaWFTdHJl
YW1UcmFjazo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiAgICAgCiB2b2lk
IE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikKIHsKLSAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hY3RpdmVET01PYmpl
Y3RzQXJlU3RvcHBlZCgpIHx8IG1fZW5kZWQpCisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpOworICAgIGlmIChkb2N1bWVudC0+YWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQo
KSB8fCBtX2VuZGVkKQogICAgICAgICByZXR1cm47CiAKICAgICBxdWV1ZVRhc2tLZWVwaW5nT2Jq
ZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBtdXRlZCA9IG1f
cHJpdmF0ZS0+bXV0ZWQoKV0gewpAQCAtNjIyLDYgKzYzNiwxMiBAQCB2b2lkIE1lZGlhU3RyZWFt
VHJhY2s6OnRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKICAgICAg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKG11dGVkID8gZXZlbnROYW1lcygpLm11dGVF
dmVudCA6IGV2ZW50TmFtZXMoKS51bm11dGVFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAgICAgfSk7CiAgICAgY29uZmlndXJlVHJhY2tSZW5k
ZXJpbmcoKTsKKworICAgIGF1dG8mIHNvdXJjZSA9IG1fcHJpdmF0ZS0+c291cmNlKCk7CisgICAg
aWYgKHNvdXJjZS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gJiYg
c291cmNlLmludGVycnVwdGVkKCkgIT0gbV9pc0ludGVycnVwdGVkICYmIGRvY3VtZW50LT5zZXR0
aW5ncygpLm11dGVDYW1lcmFPbk1pY3JvcGhvbmVJbnRlcnJ1cHRpb25FbmFibGVkKCkpIHsKKyAg
ICAgICAgbV9pc0ludGVycnVwdGVkID0gc291cmNlLmludGVycnVwdGVkKCk7CisgICAgICAgIHVw
ZGF0ZVZpZGVvQ2FwdHVyZUFjY29yZGluZ01pY3JvcGhvbmVJbnRlcnJ1cHRpb24oKmRvY3VtZW50
LCBtX2lzSW50ZXJydXB0ZWQpOworICAgIH0KIH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0
cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmlu
ZGV4IGM5YTQzODU5MzU5YWE0ZDhmNzBmYmY0NTUyOWIxYTZlNTdmYjFiOTAuLjA3MGY3ZGMwOTA2
YzU0OTk5YjJjYmVmNmVkZDM2ZWYzZTkwZWYwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC0yMDgsNiArMjA4
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9l
bmRlZCB7IGZhbHNlIH07CiAgICAgY29uc3QgYm9vbCBtX2lzQ2FwdHVyZVRyYWNrIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faXNJbnRlcnJ1cHRlZCB7IGZhbHNlIH07CiB9OwogCiB0eXBlZGVmIFZl
Y3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+IE1lZGlhU3RyZWFtVHJhY2tWZWN0b3I7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwCmluZGV4IGQwODk0ZDVkNGZlODI1ZjhiMDZkNmM5MjhhYWYwOTg2Mzc3Y2M0
YjIuLjJhYWUxOTFjMTdlZjNlY2E3YWEwMDdhM2EyOGI1YTExYWVhY2NhNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkK
KyNpbmNsdWRlICJNb2NrQXVkaW9TaGFyZWRVbml0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYm
ICFVU0UoR1NUUkVBTUVSKQpAQCAtMTgwLDYgKzE4NCwxNyBAQCB2b2lkIE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlOjpkZWxheVNhbXBsZXMoU2Vjb25kcyBkZWx0YSkKICAgICBtX2RlbGF5VW50aWwg
PSBNb25vdG9uaWNUaW1lOjpub3coKSArIGRlbHRhOwogfQogCit2b2lkIE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlOjpzZXRJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3sKKyAgICBV
TlVTRURfUEFSQU0oaXNJbnRlcnJ1cHRlZCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYg
KGlzSW50ZXJydXB0ZWQpCisgICAgICAgIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigp
LnN1c3BlbmQoKTsKKyAgICBlbHNlCisgICAgICAgIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmds
ZXRvbigpLnJlc3VtZSgpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggZjBkYWRmNzFk
MmQwMzUzNWE2ODJlNTBjNzliOTQyNDJkMDg2OGZmOC4uNTVmOWVkMmE2YzI4OTQ4ZDQwY2U4MDY0
OGY1MGRkODc3Y2UzNjllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqKTsKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpOwogCisgICAgc3Rh
dGljIHZvaWQgc2V0SXNJbnRlcnJ1cHRlZChib29sKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkKTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmNwcAppbmRleCAwOTJkMmZlNjExOTM0OGY5ODY1YTg4ZmIyNzkxZTNhMmQ3MTRh
NDAxLi5jMzlmYTdiY2U0M2MzN2ViM2RlYjcxM2U5N2Q5ZTkyMDljYjJmYjU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMzE3LDkgKzMxNywxMCBAQCB2b2lkIE1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpyZXNldERldmljZXMoKQogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogfQogCi12b2lk
IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRl
ZChib29sIGlzSW50ZXJydXB0ZWQpCit2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0
ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCk7Cisg
ICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQoaXNNaWNyb3Bob25l
SW50ZXJydXB0ZWQpOwogfQogCiB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
ZXREZXZpY2VzKFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+JiYgbmV3TW9ja0RldmljZXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKaW5kZXggN2ZhYzg5OTRlZDNhYjgwM2Q4YTZhYjVjNTQ3MDk1YWI5
MTIxMmI2My4uNjk5ODg0ZjMxMTljMmI0ZjFjZjgyOTA2MzAwYWRjNTZmMzNkMjViMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgYWRkRGV2aWNlKGNvbnN0IE1vY2tNZWRpYURldmljZSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlbW92ZURldmljZShjb25zdCBTdHJpbmcm
IHBlcnNpc3RlbnRJZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVzZXREZXZp
Y2VzKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50
ZXJydXB0ZWQoYm9vbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0TW9ja0Nh
cHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlz
TWljcm9waG9uZUludGVycnVwdGVkKTsKIAogICAgIHZvaWQgc2V0TW9ja0F1ZGlvQ2FwdHVyZUVu
YWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc01vY2tBdWRpb0NhcHR1cmVFbmFibGVkID0gaXNF
bmFibGVkOyB9CiAgICAgdm9pZCBzZXRNb2NrVmlkZW9DYXB0dXJlRW5hYmxlZChib29sIGlzRW5h
YmxlZCkgeyBtX2lzTW9ja1ZpZGVvQ2FwdHVyZUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAppbmRleCBmZmUwYWNkODEyMzI2YTNhMDdi
MmE1MjM3OGJhN2Y2MWVhMDAwZDg0Li45Mzg2MDA5MjZmODc1ZTgzM2QxNzBhODMwY2UwYjBhNTg2
YTQ4YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC0zNTEs
OSArMzUxLDkgQEAgdm9pZCBHUFVQcm9jZXNzOjpyZXNldE1vY2tNZWRpYURldmljZXMoKQogICAg
IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpyZXNldERldmljZXMoKTsKIH0KIAotdm9p
ZCBHUFVQcm9jZXNzOjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sIGlzSW50ZXJydXB0
ZWQpCit2b2lkIEdQVVByb2Nlc3M6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJv
b2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCkKIHsK
LSAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja0NhbWVyYUlzSW50ZXJy
dXB0ZWQoaXNJbnRlcnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGlz
TWljcm9waG9uZUludGVycnVwdGVkKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAppbmRleCA5MTBhOGI4YTJlOWJj
MTQyODRiN2JmZDdjNmYwYTgzNTA2ZjM3ZDUxLi41M2JlNWQ4NzRiYTBmNjQ5MDhhNGM0YjhjMjNk
YTQzYjQzYmFmMjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTE1
Miw3ICsxNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJNb2NrTWVkaWFEZXZpY2VzKCk7
CiAgICAgdm9pZCByZW1vdmVNb2NrTWVkaWFEZXZpY2UoY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50
SWQpOwogICAgIHZvaWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7Ci0gICAgdm9pZCBzZXRNb2Nr
Q2FtZXJhSXNJbnRlcnJ1cHRlZChib29sKTsKKyAgICB2b2lkIHNldE1vY2tDYXB0dXJlRGV2aWNl
c0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJ
bnRlcnJ1cHRlZCk7CiAgICAgYm9vbCBzZXRDYXB0dXJlQXR0cmlidXRpb25TdHJpbmcoY29uc3Qg
U3RyaW5nJik7CiAjZW5kaWYKICNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklOR19TRVNTSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCA4ZTk5MjlhNTM1YjQxZTJkMTY3ZjIxZTViM2VmMzI1YmQ1YzgyM2NkLi5hNjMxN2ZiZDQ2MGU3
OGQ1ODc1MjEzZjE3NDdjNjY5NmVhY2VkM2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzksMTEgKzM5LDExIEBAIG1lc3NhZ2Vz
IC0+IEdQVVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFVwZGF0ZVNhbmRib3hBY2Nlc3Mo
VmVjdG9yPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBleHRlbnNpb25zKTsKICAg
ICBVcGRhdGVDYXB0dXJlQWNjZXNzKGJvb2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dW
aWRlb0NhcHR1cmUsIGJvb2wgYWxsb3dEaXNwbGF5Q2FwdHVyZSwgV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIgcHJvY2Vzc0lEKSAtPiAoKSBBc3luYwogICAgIFVwZGF0ZUNhcHR1cmVPcmlnaW4o
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhLCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSUQpCi0gICAgQWRkTW9ja01lZGlhRGV2aWNlKHN0cnVj
dCBXZWJDb3JlOjpNb2NrTWVkaWFEZXZpY2UgZGV2aWNlKTsKLSAgICBDbGVhck1vY2tNZWRpYURl
dmljZXMoKTsKLSAgICBSZW1vdmVNb2NrTWVkaWFEZXZpY2UoU3RyaW5nIHBlcnNpc3RlbnRJZCk7
Ci0gICAgUmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7Ci0gICAgU2V0TW9ja0NhbWVyYUlzSW50ZXJy
dXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKTsKKyAgICBBZGRNb2NrTWVkaWFEZXZpY2Uoc3RydWN0
IFdlYkNvcmU6Ok1vY2tNZWRpYURldmljZSBkZXZpY2UpCisgICAgQ2xlYXJNb2NrTWVkaWFEZXZp
Y2VzKCkKKyAgICBSZW1vdmVNb2NrTWVkaWFEZXZpY2UoU3RyaW5nIHBlcnNpc3RlbnRJZCkKKyAg
ICBSZXNldE1vY2tNZWRpYURldmljZXMoKQorICAgIFNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVy
cnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1
cHRlZCkKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBEaXNwbGF5Q29uZmlndXJhdGlv
bkNoYW5nZWQoQ0dEaXJlY3REaXNwbGF5SUQgZGlzcGxheUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1t
YXJ5RmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApp
bmRleCA4OWIxZWJmYzIzMWYwYjcyMmQzMDExOGM5MDZhOTY5NDhjOGE4ZjVmLi5iZWQwZTJmYWQ3
ZDI3OGY2NTY0ZDE2MTAzODgwODE1ZjQ5M2U3MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxMzksMTUgKzMxMzksMTUgQEAgYm9vbCBXS1BhZ2VJc01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYpCiAjZW5kaWYKIH0K
IAotdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChXS1BhZ2VSZWYgcGFnZVJl
ZiwgYm9vbCBpc0ludGVycnVwdGVkKQordm9pZCBXS1BhZ2VTZXRNb2NrQ2FwdHVyZURldmljZXNJ
bnRlcnJ1cHRlZChXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBi
b29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgYXV0
byYgZ3B1UHJvY2VzcyA9IHRvSW1wbChwYWdlUmVmKS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCku
ZW5zdXJlR1BVUHJvY2VzcygpOwotICAgIGdwdVByb2Nlc3Muc2V0TW9ja0NhbWVyYUlzSW50ZXJy
dXB0ZWQoaXNJbnRlcnJ1cHRlZCk7CisgICAgZ3B1UHJvY2Vzcy5zZXRNb2NrQ2FwdHVyZURldmlj
ZXNJbnRlcnJ1cHRlZChpc0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRl
ZCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoR1NUUkVBTUVSKQot
ICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1
cHRlZCk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRNb2NrQ2FwdHVyZURldmljZXNzSW50ZXJy
dXB0ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aAppbmRleCAyZGM0OWI0YzIxMTVmZWFhYTllZTRhNDBiMDlkMTAwODc5YjdhYjZmLi4wZjcwZDdl
MDgxYTEwZjg3OTMwNGEzNGI5YzFmNTYzYjJmYjIyNWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCkBAIC0yMDEsNyArMjAxLDcgQEAgV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRl
c3RpbmcoV0tQYWdlUmVmIHAKIAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9y
aWVudGF0aW9uKFdLUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBvcmllbnRhdGlvbik7CiBXS19FWFBP
UlQgYm9vbCBXS1BhZ2VJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1Bh
Z2VSZWYgcGFnZSk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1
cHRlZChXS1BhZ2VSZWYgcGFnZSwgYm9vbCBpc0ludGVycnVwdGVkKTsKK1dLX0VYUE9SVCB2b2lk
IFdLUGFnZVNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKFdLUGFnZVJlZiBwYWdlLCBi
b29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwog
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGdW5jdGlvbiko
V0tBcnJheVJlZiBkb21haW5zLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZv
aWQgV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VM
b2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tD
b250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWQwNzU4MjE3NTEwMTM1
N2UwNTViMTE0MjY4ODkyZmE3YzczYzk0Ni4uNzg3YmIxMjFlNzRjNjY5NjU4MThiNjIwNDliMjFm
ZTliOTVlNzJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTE0Niw3ICsxNDYs
NyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmlu
YWwgewotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpTb3VyY2VNdXRlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPm11dGVkKCkpLCAw
KTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlTXV0ZWRDaGFuZ2VkKG1faWQsIG1fc291cmNlLT5tdXRlZCgpLCBtX3Nv
dXJjZS0+aW50ZXJydXB0ZWQoKSksIDApOwogICAgIH0KIAogICAgIHZvaWQgc291cmNlU2V0dGlu
Z3NDaGFuZ2VkKCkgZmluYWwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyMzJjNTcyNjUxMTM5NDU3ODU2ODA2YzU0NzlkNjI3YzQ4
NDQxMDU4Li42ZjgyMzI4NTEwN2Q5MjdhODRjZGUxNWQ3YzhiYTk4ZTU0NWE3MjU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzUw
LDkgKzM1MCw5IEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpyZXNldE1vY2tNZWRpYURldmljZXMo
KQogICAgIHNlbmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlJlc2V0TW9ja01lZGlhRGV2aWNlcyB7
IH0sIDApOwogfQogCi12b2lkIEdQVVByb2Nlc3NQcm94eTo6c2V0TW9ja0NhbWVyYUlzSW50ZXJy
dXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQordm9pZCBHUFVQcm9jZXNzUHJveHk6OnNldE1vY2tD
YXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBp
c01pY3JvcGhvbmVJbnRlcnJ1cHRlZCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNz
OjpTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZCB7IGlzSW50ZXJydXB0ZWQgfSwgMCk7CisgICAg
c2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0
ZWQgeyBpc0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCB9LCAwKTsK
IH0KICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5kZXggMDA2MjU1ZDFmNjY2ZThjNDI0ZDBj
Y2I2ZWZjZGVjYTFjODJjNzlhYS4uNDQzZTliN2E0NjZhZmU1MWU4ODRiNGY5NDM4YzRjYzY1ZDcz
YjhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHku
aApAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck1vY2tNZWRpYURldmlj
ZXMoKTsKICAgICB2b2lkIHJlbW92ZU1vY2tNZWRpYURldmljZShjb25zdCBTdHJpbmcmKTsKICAg
ICB2b2lkIHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlz
SW50ZXJydXB0ZWQoYm9vbCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1
cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0
ZWQpOwogICAgIHZvaWQgdXBkYXRlU2FuZGJveEFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJl
LCBib29sIGFsbG93VmlkZW9DYXB0dXJlLCBib29sIGFsbG93RGlzcGxheUNhcHR1cmUpOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJmZGRi
ODQ5NTJkMDg4OWE4ODI1NGU0NzdiZmYyMzIwYjYwZjAxZGMuLjc1ZTI0NjY1NzYzMWJmZmQyMDE3
ZDY2ZWJjZmFkNWYzNjIzN2JmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTA4ODIsOSArMTA4ODIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3Jp
ZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiB9CiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoR1NUUkVBTUVSKQotdm9pZCBXZWJQYWdlUHJveHk6
OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJh
SW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6U2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1cHRl
ZCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1vY2tDYXB0dXJlRGV2aWNlc0lu
dGVycnVwdGVkKGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGlzTWljcm9waG9uZUludGVycnVwdGVkKSk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3
OGQ1NGQ4MWRmMWI1ODcwMGIxYjQwNWVhZjU3YjkwYTBlZmNjZThiLi44ODlhMWE5NjgwMjMzNjc4
NmZmOTkxOTIyYzliOTI5YzNmMmE2YTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMTg5Miw3ICsxODkyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3JpZW50
YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3QpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkgJiYgVVNFKEdTVFJFQU1FUikKLSAgICB2b2lkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVk
KGJvb2wpOworICAgIHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBp
c0NhbWVyYUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKICNlbmRp
ZgogCiAgICAgYm9vbCBpc0hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCkgY29uc3QgeyBy
ZXR1cm4gbV9oYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydENvdW50OyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDA5ZGJhZThlMzEwNTQy
MTZmZTk4OGY2MGI5ZjQ2NGNjYzdkYjlmNjkuLjMyZmY5YzM2YTI2M2M4NzE4MTJjNjJjNWYwODk3
MjRiODBiYjIwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC00OTE0LDkgKzQ5MTQsOSBAQCB2b2lkIFdlYlBhZ2U6OnNldE9yaWVudGF0aW9u
Rm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90IHJvdGF0aW9uKQogICAgIH0pOwogfQogCi12b2lkIFdl
YlBhZ2U6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3Zv
aWQgV2ViUGFnZTo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVy
YUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChpc0lu
dGVycnVwdGVkKTsKKyAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja0Nh
cHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25l
SW50ZXJydXB0ZWQpOwogfQogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNWViYWVjNDViYTAyNGFkNGJm
MmYyYjllNjFlMmM0ZDVhY2VkZDk3Li4xZTE0NzUyNTA0ZmFkNTQwYjk4NzVlNWRjNzIyYmU0ZDRj
ZThkYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC0xMjQ0LDcgKzEyNDQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIHZvaWQgc2V0T3JpZW50YXRpb25Gb3JNZWRpYUNh
cHR1cmUodWludDY0X3Qgcm90YXRpb24pOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJy
dXB0ZWQoYm9vbCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChi
b29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwog
I2VuZGlmCiAKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoU3RyaW5nJiYgc291cmNlLCBJbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkJiwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcywg
V2ViQ29yZTo6VXNlclNjcmlwdEluamVjdGlvblRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNmY1MjZlNDk5
NThjMjZiZThkNzEyMjcwMGY4YjUzNWFjMDg0NjMwMC4uYmVhNjQzOGE5N2U5MDc2Yzk2ODg0YTZl
OTQyZTNlMWVmMzk3MDk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00MDcsNyArNDA3LDcgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogI2lmIFVTRShHU1RS
RUFNRVIpCiAgICAgU2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUoaW50IHJvdGF0aW9uKQot
ICAgIFNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKKyAgICBT
ZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQs
IGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiAjZW5kaWYKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UuaAppbmRleCBhM2M0MWRjMDRhYWNlNWRkNGVhNzM5YTYwZjJhNTMwZTVlM2QwNzVl
Li4yYTMzZjk3NjgwMzBhMDZhNzhlNDhmMzBkN2FjYzYzYmViNmQzYmM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZUZhaWxl
ZCgpIGZpbmFsOwogCiAgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJD
b3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKLSAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQorICAg
IHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0ZWQpOwog
CiBwcml2YXRlOgogICAgIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKTsKQEAgLTg1LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7
IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQogICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykgZmluYWwgeyBtX3Byb3h5LndoZW5SZWFk
eShXVEZNb3ZlKGNhbGxiYWNrKSk7IH0KICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmRldmljZVR5
cGUoKTsgfQorICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3By
b3h5LmludGVycnVwdGVkKCk7IH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBH
UFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CkBAIC0xMDEsNiArMTAyLDEyIEBAIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CiB9
OwogCitpbmxpbmUgdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpzb3VyY2VNdXRlZENo
YW5nZWQoYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKK3sKKyAgICBtX3Byb3h5LnNldElu
dGVycnVwdGVkKGludGVycnVwdGVkKTsKKyAgICBub3RpZnlNdXRlZENoYW5nZShtdXRlZCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uu
aAppbmRleCA1MmY1MzViM2Q3M2Q2ODk3NzhiOTVmMTk0N2Y4ZTcyZDgyOThkNmExLi5mOWM5MjI0
NWEyMjRjZjUyZDQ1ODI2NWVhNDY2ODMyZTFiY2JlMjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZS5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBm
aW5hbDsKIAogICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6TWVk
aWFTYW1wbGUmIHNhbXBsZSwgV2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0YSkg
eyB2aWRlb1NhbXBsZUF2YWlsYWJsZShzYW1wbGUsIG1ldGFkYXRhKTsgfQotICAgIHZvaWQgc291
cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9
CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRl
ZCk7CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cyk7CkBAIC03OSw2ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4g
bV9jYXBhYmlsaXRpZXM7IH0KICAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spIGZpbmFsIHsgbV9wcm94eS53aGVuUmVhZHkoV1RGTW92
ZShjYWxsYmFjaykpOyB9CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBk
ZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5kZXZpY2VUeXBlKCk7IH0K
KyAgICBib29sIGludGVycnVwdGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5pbnRl
cnJ1cHRlZCgpOyB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vz
c0Nvbm5lY3Rpb246OkNsaWVudApAQCAtOTUsNiArOTYsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKIH07CiAKK2lubGlu
ZSB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKGJv
b2wgbXV0ZWQsIGJvb2wgaW50ZXJydXB0ZWQpCit7CisgICAgbV9wcm94eS5zZXRJbnRlcnJ1cHRl
ZChpbnRlcnJ1cHRlZCk7CisgICAgbm90aWZ5TXV0ZWRDaGFuZ2UobXV0ZWQpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHku
Y3BwCmluZGV4IDRhMjk0ZDhjNTQxNzFlNmUxMDA1YjNhNDA2NjU2YjI2YzE1OWMwNGQuLjI0NDZl
Mzk4ZThjMzY4NzhkNDE0NDIwY2E1ZGJjN2JiNWU4NDUxODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkuY3BwCkBAIC02MCwxMSArNjAsMTMgQEAgSVBDOjpDb25uZWN0aW9uKiBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNvbm5lY3Rpb24oKQogCiB2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKKyAgICBtX2lu
dGVycnVwdGVkID0gZmFsc2U7CiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZp
ZXIgfSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpzdG9w
UHJvZHVjaW5nRGF0YSgpCiB7CisgICAgbV9pbnRlcnJ1cHRlZCA9IGZhbHNlOwogICAgIGNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3Rv
cFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkuaAppbmRleCAwM2MxZDcxMjIyN2NkNWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRh
MzYyLi41OWUyYzI4MzQ1YzkwZjdkMmM0ZWE3ZjMwNmJhNDUwZjVhMTI1NzZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5oCkBAIC03MSw2ICs3MSw5IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwogCisgICAgYm9vbCBpbnRlcnJ1cHRl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJydXB0ZWQ7IH0KKyAgICB2b2lkIHNldEludGVycnVw
dGVkKGJvb2wgaW50ZXJydXB0ZWQpIHsgbV9pbnRlcnJ1cHRlZCA9IGludGVycnVwdGVkOyB9CisK
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9kZXZpY2U7CkBAIC04MSw2
ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OwogICAgIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9l
cnJvck1lc3NhZ2U7CisgICAgYm9vbCBtX2ludGVycnVwdGVkIHsgZmFsc2UgfTsKIH07CiAKIGlu
bGluZSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCAzMmE4YTExNTQ2NGIwYjY1YjdlYWYzYmYw
ZGI4MTdmZTFiOGY5YTk3Li41YjQ2NTExZjQxODczMjQ4NmIzMjZlMGRiOWExZWU5NzE4OWFhMjcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZv
aWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOwogCiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJs
ZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYsIFdlYkNvcmU6OkludFNpemUsIFdlYkNvcmU6OlZpZGVv
U2FtcGxlTWV0YWRhdGEpOwotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUp
IHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5n
ZWQoYm9vbCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKIHByaXZhdGU6CiAgICAgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwpAQCAtOTAsNiAr
OTAsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
IHNhbXBsZVJvdGF0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zYW1wbGVSb3RhdGlvbjsg
fQogICAgIHZvaWQgc2V0RnJhbWVSYXRlV2l0aFByZXNldChkb3VibGUsIFJlZlB0cjxXZWJDb3Jl
OjpWaWRlb1ByZXNldD4pIGZpbmFsOwogICAgIGJvb2wgcHJlZmVyc1ByZXNldChXZWJDb3JlOjpW
aWRlb1ByZXNldCYpIGZpbmFsOworICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3Byb3h5LmludGVycnVwdGVkKCk7IH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKICAgICAvLyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CkBAIC0xMTAsNiArMTExLDEy
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9z
YW1wbGVSb3RhdGlvbiB7IFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25l
IH07CiB9OwogCitpbmxpbmUgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzb3VyY2VN
dXRlZENoYW5nZWQoYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKK3sKKyAgICBtX3Byb3h5
LnNldEludGVycnVwdGVkKGludGVycnVwdGVkKTsKKyAgICBub3RpZnlNdXRlZENoYW5nZShtdXRl
ZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwCmluZGV4IGY2ODdkOGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMuLjRjYTI1
NGY0NmRlYmFkOWEyYzVkNjFkN2U1YzhkOGEyZWJjMTY1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cApAQCAtMTU0LDE4ICsxNTQsMTggQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2Fw
dHVyZUZhaWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGkKICAgICB9LCBb
XShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6c291cmNlTXV0ZWRDaGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGJvb2wgbXV0ZWQpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VN
dXRlZENoYW5nZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9v
bCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9zb3Vy
Y2VzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fc291cmNlcy5lbmQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbbXV0
ZWRdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNv
dXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkKTsKLSAgICB9LCBbbXV0ZWRdKFJlZjxSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+c291cmNl
TXV0ZWRDaGFuZ2VkKG11dGVkKTsKLSAgICB9LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURp
c3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5n
ZWQobXV0ZWQpOworICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgW211dGVkLCBpbnRlcnJ1
cHRlZF0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAg
c291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsKKyAgICB9LCBb
bXV0ZWQsIGludGVycnVwdGVkXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJj
ZSkgeworICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCwgaW50ZXJydXB0
ZWQpOworICAgIH0sIFttdXRlZCwgaW50ZXJydXB0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQo
bXV0ZWQsIGludGVycnVwdGVkKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaAppbmRleCA4Y2M1YjRmOTI2OWIyNDRkYjU5OTViN2I3NDQ0YjkxNTk3
ZjE2YTgyLi5kOGZiODBiNGZlOGRhZTc2OTk1NDgyYTIzOTE3ZDJmZWE1OTIwZTFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaApAQCAtMTI2LDcgKzEyNiw4IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiAgICAgdm9pZCBjYXB0dXJlRmFpbGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgc291cmNl
TXV0ZWRDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29s
IG11dGVkKTsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCk7CisKICAg
ICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAg
IHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwog
ICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgU3RyaW5nJiYsIFN0cmluZyYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5tZXNzYWdlcy5pbgppbmRleCBhMDVmNmRkMmVhODdmOTBiY2VjZTVjNzY0Y2NjZGMxNTViNDQz
ZGU0Li45NzljY2UyNTg5NjAwNTNmZTE0ZjcwZTZkMjM2MjAxOTBiMTZhZGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw3IEBACiBtZXNzYWdlcyAt
PiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICBDYXB0dXJlRmFp
bGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAgIFNvdXJj
ZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCi0gICAg
U291cmNlTXV0ZWRDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkLCBib29sIG11dGVkKQorICAgIFNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkK
ICAgICBTb3VyY2VTZXR0aW5nc0NoYW5nZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5n
cykKICAgICBBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mg
c2V0dGluZ3MpCiAgICAgQXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZCwgU3RyaW5nIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyBt
ZXNzYWdlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGE1YmMwNGNhNzQxMmRlNjkwZGFmZGNkOGM1NjhiZjI4ODNkNDQ5MjMuLmFiZDllNzViZGZj
NTZhNzE2ZTM1OTQ5MzkyYmM1MjY5ODgxNDZkYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMi0wMy0wNyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5j
ZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJy
dXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NzUyNAorICAgICAgICA8cmRhcjovLzc4NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpbnRlcnJ1cHQgbW9jayBt
aWNyb3Bob25lIGRldmljZXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwOgorCiAyMDIyLTAzLTA2ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtGbGF0cGFrIFNES10gRml4IGtleSBleHBpcmVkIHRyZWF0bWVudCB3aXRoIFB5dGhv
bjMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGRkMzk3NjNhYzUxMjVhYWJlNjA0OTYy
OTQ3ODBmMjA2YjEwYzI4NzYuLmU1ZDE0OGFmN2VlZGIwMjRmOWZmOWZjNmY4N2EwODE0ZWM5MGE5
N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzg3LDcgKzM4Nyw3IEBAIGludGVy
ZmFjZSBUZXN0UnVubmVyIHsKICAgICB1bmRlZmluZWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7
CiAgICAgdW5kZWZpbmVkIHNldE1vY2tDYW1lcmFPcmllbnRhdGlvbih1bnNpZ25lZCBsb25nIG9y
aWVudGF0aW9uKTsKICAgICBib29sZWFuIGlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJF
bmFibGVkKCk7Ci0gICAgdW5kZWZpbmVkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2xl
YW4gaXNJbnRlcnJ1cHRlZCk7CisgICAgdW5kZWZpbmVkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0lu
dGVycnVwdGVkKGJvb2xlYW4gaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbGVhbiBpc01pY3JvcGhv
bmVJbnRlcnJ1cHRlZCk7CiAKICAgICBib29sZWFuIGhhc0FwcEJvdW5kU2Vzc2lvbigpOwogICAg
IHVuZGVmaW5lZCBjbGVhckFwcEJvdW5kU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggMjkwMTRjMGRk
NGYwOGUzNzY5OTkxNTliNjNiMGE5Y2E3M2ZlZTMzMy4uNDYyOWNmNzIzZWEyYjM5MWZkOTQ5YzUz
OWIyODFlYWJlZTkzNGU0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xODMyLDkgKzE4MzIsMTIgQEAgYm9vbCBU
ZXN0UnVubmVyOjppc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpCiAgICAg
cmV0dXJuIHBvc3RTeW5jaHJvbm91c01lc3NhZ2VSZXR1cm5pbmdCb29sZWFuKCJJc01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNl
dE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgVGVzdFJ1
bm5lcjo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVy
cnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIHBvc3RTeW5jaHJv
bm91c01lc3NhZ2UoIlNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkIiwgaXNJbnRlcnJ1cHRlZCk7
CisgICAgcG9zdFN5bmNocm9ub3VzTWVzc2FnZSgiU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJy
dXB0ZWQiLCBjcmVhdGVXS0RpY3Rpb25hcnkoeworICAgICAgICB7ICJjYW1lcmEiLCBhZG9wdFdL
KFdLQm9vbGVhbkNyZWF0ZShpc0NhbWVyYUludGVycnVwdGVkKSkgfSwKKyAgICAgICAgeyAibWlj
cm9waG9uZSIsIGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzTWljcm9waG9uZUludGVycnVwdGVk
KSkgfSwKKyAgICB9KSk7CiB9CiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggOTBmNWVl
NDgxZjQ1MTAwZTM3YWM0YmNkNWEyZDRhNzA1MmYxNGMxNi4uN2Y2OTE2NjI4YmNhMjhkZmQ4YWY2
MTkzMzY0YzRkNGQzNzllMDIxNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQ5OSw3ICs0OTksNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZXNldE1vY2tNZWRpYURldmljZXMoKTsKICAgICB2b2lkIHNldE1vY2tDYW1lcmFP
cmllbnRhdGlvbih1bnNpZ25lZCk7CiAgICAgYm9vbCBpc01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyRW5hYmxlZCgpOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9v
bCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2Ft
ZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogCiAgICAgYm9v
bCBoYXNBcHBCb3VuZFNlc3Npb24oKTsKICAgICB2b2lkIGNsZWFyQXBwQm91bmRTZXNzaW9uKCk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGZhNmI2OTFj
NzRjODY1ZjllMWRlMzliNzRlM2MxYmNlODQ1OGRlZWQuLjVmMDJiMGVlOGM4NTRmMzZlNzBlZTUy
NjkzZWVmODBmNTQ3ZWU1NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC0zNjIwLDkgKzM2MjAsOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc01vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIFdLUGFn
ZUlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKG1fbWFpbldlYlZpZXctPnBh
Z2UoKSk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVw
dGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldE1vY2tDYXB0
dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01p
Y3JvcGhvbmVJbnRlcnJ1cHRlZCkKIHsKLSAgICBXS1BhZ2VTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1
cHRlZChtX21haW5XZWJWaWV3LT5wYWdlKCksIGlzSW50ZXJydXB0ZWQpOworICAgIFdLUGFnZVNl
dE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgaXND
YW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogfQogCiBzdHJ1Y3Qg
SW5BcHBCcm93c2VyUHJpdmFjeUNhbGxiYWNrQ29udGV4dCB7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKaW5kZXggZTI0YWMzMjAzNGFkYjQ1YzJlOTc1OWQ4OThjMjgwYTVj
NWQzNmU2ZC4uYThhMjQ5N2Q2ZjY1YjQwODE2ZWRkODYxNjkyNTJmZTdiOWQyYjAzNCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzEyLDcgKzMxMiw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgc2V0TW9j
a0NhbWVyYU9yaWVudGF0aW9uKHVpbnQ2NF90KTsKICAgICBib29sIGlzTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJFbmFibGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJ
bnRlcnJ1cHRlZChib29sKTsKKyAgICB2b2lkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVw
dGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRl
ZCk7CiAgICAgYm9vbCBoYXNBcHBCb3VuZFNlc3Npb24oKTsKIAogICAgIHZvaWQgaW5qZWN0VXNl
clNjcmlwdChXS1N0cmluZ1JlZik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCmluZGV4IDk0YTA0NmIyMDJlMjZkYmRiYTk5ZmFkNDgyZTQxYjMyOTQ5NDc3MzMuLmQ5
ZTA2MGRhYzJhYjk5NDc3NjQ4YzUyNTU3NzhmZTAzYzVjNTY3NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC05NzMsOCArOTczLDExIEBAIFdLUmV0YWlu
UHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVz
c2FnZU5hbWUsICJJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCIpKQogICAg
ICAgICByZXR1cm4gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLmlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCkpKTsKICAgICAK
LSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldE1v
Y2tDYW1lcmFJc0ludGVycnVwdGVkIikpIHsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9k
eSkpOworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
U2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQiKSkgeworICAgICAgICBhdXRvIG1lc3Nh
Z2VCb2R5RGljdGlvbmFyeSA9IGRpY3Rpb25hcnlWYWx1ZShtZXNzYWdlQm9keSk7CisgICAgICAg
IGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCA9IGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keURpY3Rp
b25hcnksICJjYW1lcmEiKTsKKyAgICAgICAgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCA9
IGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keURpY3Rpb25hcnksICJtaWNyb3Bob25lIik7CisgICAg
ICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRl
cnJ1cHRlZChpc0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNlMjc2MGMwNzM4NzVhOGJm
MzAxN2Q3MzEzYzAxYTA3ZmIzNWI1YjEuLmNjMGYyZTA1MzlmMDVlZDU2MmVmNmQyNzljMWNjMTNk
NjMyYjAwYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRl
IHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAg
ICAgICA8cmRhcjovLzc4NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJh
Y2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZy
b20tYXVkaW8uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1z
dHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbDoKKwogMjAyMi0wMy0wNSAgQWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5vbi1zdGFuZGFyZCBk
aXNwbGF5OmJsb2NrIFVBIHN0eWxlc2hlZXQgcnVsZSBmb3IgPGxheWVyPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50
ZXJydXB0ZWQtZnJvbS1hdWRpby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9tLWF1ZGlvLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjEzMzA2ODJlMTJlYjEwODE3MDAxZDQ1MTYxNDkyNDE2
NTE5ZmQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9t
ZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgTXV0ZS91bm11dGUgdmlkZW8gdHJhY2sgaWYgYXVk
aW8gZ2V0cyBpbnRlcnJ1cHRlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9tLWF1ZGlvLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFj
ay1pbnRlcnJ1cHRlZC1mcm9tLWF1ZGlvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWJmZWM1ZmQxODNlMDY2
NTU4NjZiMWFmYzVhNDNhNTY0NzAyMzdjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZy
b20tYXVkaW8uaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBDYXB0
dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkPXRydWUgTXV0ZUNhbWVyYU9uTWljcm9waG9uZUlu
dGVycnVwdGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlZpZGVvIGNhcHR1cmUgc291cmNlIGludGVycnVw
dGlvbiBiYXNlZCBvbiBhdWRpbyBpbnRlcnJ1cHRpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorIDwv
aGVhZD4KKzxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0
KSA9PiB7CisgICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9KTsKKyAgICAgICAgY29u
c3QgdHJhY2sgPSBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICAgICAgaWYgKCF3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgcHJvbWlz
ZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25tdXRlID0gcmVz
b2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkgfSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFsc2UsIHRy
dWUpOworICAgICAgICBhd2FpdCBwcm9taXNlOworCisgICAgICAgIGFzc2VydF90cnVlKHRyYWNr
Lm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKKworICAgICAgICBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7IHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFsc2UsIGZhbHNlKTsKKyAg
ICAgICAgYXdhaXQgcHJvbWlzZTsKKworICAgICAgICBhc3NlcnRfZmFsc2UodHJhY2subXV0ZWQs
ICJ0cmFjayBpcyBub3QgbXV0ZWQiKTsKKworICAgICAgICB0cmFjay5zdG9wKCk7CisgICAgfSwg
Ik11dGUvdW5tdXRlIHZpZGVvIHRyYWNrIGlmIGF1ZGlvIGdldHMgaW50ZXJydXB0ZWQiKTsKKyAg
ICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1p
bnRlcnJ1cHRlZC5odG1sCmluZGV4IGViOWE5YmZlYjc0YWJmYmYzMTg4NjdiNWRhNDRmYTUzYmU4
ODk2ZjEuLjgyZTY3MjI3OTVhOTE2ZWQ0MGQ2MGVjMmU3OTNhNjBjNTVhMmRmZDggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNr
LWludGVycnVwdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRp
YS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbApAQCAtMTUsMTMgKzE1LDEzIEBA
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9ubXV0ZSA9IHJlc29sdmU7IHNldFRpbWVv
dXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUwMDApIH0pOwotICAgICAgICB0ZXN0UnVubmVy
LnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNl
dE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKHRydWUsIGZhbHNlKTsKICAgICAgICAgYXdh
aXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSh0cmFjay5tdXRlZCwgInRyYWNrIGlz
IG11dGVkIik7CiAKICAgICAgICAgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsgdHJhY2sub251bm11dGUgPSByZXNvbHZlOyBzZXRUaW1lb3V0KCgpID0+IHJlamVj
dCgibm8gdW5tdXRlIiksIDUwMDApIH0pOwotICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1l
cmFJc0ludGVycnVwdGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVy
ZURldmljZXNJbnRlcnJ1cHRlZChmYWxzZSwgZmFsc2UpOwogICAgICAgICBhd2FpdCBwcm9taXNl
OwogCiAgICAgICAgIGFzc2VydF9mYWxzZSh0cmFjay5tdXRlZCwgInRyYWNrIGlzIG5vdCBtdXRl
ZCIpOwpAQCAtNDUsNyArNDUsNyBAQAogCiAgICAgICAgIC8vIGdldHRpbmcgYW4gaW50ZXJydXB0
aW9uLCB0cmFjayBzaG91bGQgYmUgbXV0ZWQuCiAgICAgICAgIGxldCBwcm9taXNlID0gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbm11dGUgPSByZXNvbHZlOyBzZXRU
aW1lb3V0KCgpID0+IHJlamVjdCgibm8gbXV0ZSIpLCA1MDAwKSB9KTsKLSAgICAgICAgdGVzdFJ1
bm5lci5zZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZCh0cnVlLCBmYWxzZSk7CiAgICAgICAg
IGF3YWl0IHByb21pc2U7CiAKICAgICAgICAgYXNzZXJ0X3RydWUodHJhY2subXV0ZWQsICJ0cmFj
ayBpcyBtdXRlZCIpOwo=
</data>
<flag name="commit-queue"
          id="481521"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453983</attachid>
            <date>2022-03-07 07:53:54 -0800</date>
            <delta_ts>2022-03-07 08:22:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237524-20220307165352.patch</filename>
            <type>text/plain</type>
            <size>55051</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyZGM0ODMzNTA2MzNiNWEyYzJhNjFk
ZWVkZDY3ODE5NWIxMjlhYzEuLmIxNmY2ODQ4NTEzNTJkN2U2YmU5MDBmOTk4NzI2ZGU1Y2E4MjNi
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBj
YXB0dXJlIGluIGNhc2UgYXVkaW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1MjQKKyAgICAgICAgPHJk
YXI6Ly83ODQyMTI4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1s
OgorCiAyMDIyLTAzLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBudWxsIGNoZWNrIGZvciBwYXRoIGluIG1ha2VBbGxEaXJlY3RvcmllcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGUxYmM3MzkzOTRiMzFjMmViZmQ2ZTRiYWNmNWJkNzczYWFkZTVlNzAuLjEyYTBmNGVl
NzRkODVhMzVhNTYzMTFmZTdiYTM4MDBlYzBjN2Q4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NSBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRp
byBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8cmRhcjovLzc4NDIxMjgyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGNhc2Ugd2Ug
ZGV0ZWN0IHRoYXQgYSBtaWNyb3Bob25lIHRyYWNrIHNvdXJjZSBnZXRzIG11dGVkIGR1ZSB0byBp
bnRlcnJ1cHRpb24sIHdlIG11dGUKKyAgICAgICAgY2FwdHVyZSB2aWRlbyB0cmFja3MgYmFzZWQg
aWYgYWxsb3dlZCBieSB0aGUgbmV3IE11dGVDYW1lcmFPbk1pY3JvcGhvbmVJbnRlcnJ1cHRpb25F
bmFibGVkIHNldHRpbmcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1vY2sgbWljcm9waG9u
ZSBpbnRlcnJ1cHRpb24gYW5kIHJlbW92ZSBwcmV2aW91cyBpbiBwcm9jZXNzIGludGVybmFscyBB
UEkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8t
dHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRNZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMi0wMy0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBQdXNoIEhUTUxNZWRpYUVsZW1lbnQgcmVuZGVyZXIn
cyBjb250ZW50Qm94IHJlY3QgdG8gR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGVjZDFlNjJkMWIz
ZWQ0NTA4YTUzNzA5ZGNmNjA3NjhmOWQ2ZTg4OC4uMDY5ZjU0Y2VmYTRiNzA4YzdiOGExZTNiOGIy
NmFjMTI5NzYzYTk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAyMi0wMy0wNyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5j
ZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJy
dXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NzUyNAorICAgICAgICA8cmRhcjovLzc4NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpbnRlcnJ1cHQgbW9jayBt
aWNyb3Bob25lIGRldmljZXMuCisgICAgICAgIFNlbmQgdG8gV2ViUHJvY2VzcyBzb3VyY2VzIHdo
ZXRoZXIgc291cmNlcyBhcmUgaW50ZXJydXB0ZWQgZWFjaCB0aW1lIHRoZSBzb3VyY2UgbXV0ZWQg
dmFsdWUgY2hhbmdlcy4KKyAgICAgICAgU3RvcmUgdGhhdCB2YWx1ZSBpbiByZW1vdGUgc291cmNl
cy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6CisgICAgICAgICogR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLm1lc3NhZ2VzLmluOgorCiAyMDIyLTAzLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIExheWVyIHRyZWUgY2FuIGdldCBpbmRl
ZmluaXRlbHkgZnJvemVuIGlmIFdLV2ViVmlldyBpcyB1bnBhcmVudGVkIHVuZGVybmVhdGggLVtV
SVdpbmRvdyBkZWFsbG9jXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKaW5kZXggODNiZWExZjdkZjZkNThk
NjcwNzk3YTVhZjNhNjIyNjU4ZmNhOTVkMS4uMzk5ZDUwODlmM2UzZjM4M2RjNWNlY2NkNDUwN2Y4
NTUwZGRjZmNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBAIC02NDAsNiArNjQwLDE4IEBAIE1v
dXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQ6CiAgICAgV2ViS2l0OgogICAgICAgZGVmYXVsdDog
ZmFsc2UKIAorTXV0ZUNhbWVyYU9uTWljcm9waG9uZUludGVycnVwdGlvbkVuYWJsZWQ6CisgIHR5
cGU6IGJvb2wKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICBkZWZhdWx0VmFs
dWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6
CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWSkiOiB0cnVlCisgICAgICBkZWZhdWx0OiBmYWxz
ZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBOUEFQSVBsdWdJbnNFbmFi
bGVkRm9yVGVzdGluZ0luV2ViS2l0TGVnYWN5OgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiTlBBUEkgUGx1Zy1JbnMgRW5hYmxlZCBJbiBXZWJLaXRMZWdhY3kiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAppbmRleCBhNDVkMTllNTQ3Mzk5NTZkYjc4MDYzYzdjYWJlOGE4ZTBmMTA0ZDRkLi43NGE4
ZDdjZWE3ZjRiMWYwMGY2ZWM3YTAwNDAwOGYxYzUzNGMyM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAg
LTkxLDYgKzkxLDcgQEAgTWVkaWFTdHJlYW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayhTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVkaWFTdHIKICAgICBpZiAoIWlzQ2FwdHVy
ZVRyYWNrKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1faXNJbnRlcnJ1cHRlZCA9IG1fcHJp
dmF0ZS0+c291cmNlKCkuaW50ZXJydXB0ZWQoKTsKICAgICBhbGxDYXB0dXJlVHJhY2tzKCkuYWRk
KHRoaXMpOwogCiAgICAgaWYgKG1fcHJpdmF0ZS0+aGFzQXVkaW8oKSkKQEAgLTUwOSw2ICs1MTAs
MTggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRl
ZFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKICNlbmRpZgogfQogCitzdGF0aWMgdm9pZCB1cGRh
dGVWaWRlb0NhcHR1cmVBY2NvcmRpbmdNaWNyb3Bob25lSW50ZXJydXB0aW9uKERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCkKK3sKKyAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQucGFnZSgpOworICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2Fw
dHVyZVRyYWNrcygpKSB7CisgICAgICAgIGlmICghY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpIHx8
IGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKS0+cGFnZSgpICE9IHBhZ2UpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgYXV0byYgc291cmNlID0gY2FwdHVyZVRyYWNrLT5zb3VyY2UoKTsK
KyAgICAgICAgaWYgKCFzb3VyY2UuaXNFbmRlZCgpICYmIHNvdXJjZS50eXBlKCkgPT0gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pCisgICAgICAgICAgICBzb3VyY2Uuc2V0TXV0ZWQo
aXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOworICAgIH0KK30KKwogdm9pZCBNZWRpYVN0cmVhbVRy
YWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKIHsKICAgICBBU1NFUlQoaXNDYXB0dXJlVHJh
Y2soKSk7CkBAIC02MTIsNyArNjI1LDggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja0Vu
ZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKICAgICAKIHZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewotICAgIGlm
IChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdG9wcGVkKCkg
fHwgbV9lbmRlZCkKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAg
aWYgKGRvY3VtZW50LT5hY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpIHx8IG1fZW5kZWQpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywg
VGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIG11dGVkID0gbV9wcml2YXRlLT5tdXRlZCgp
XSB7CkBAIC02MjIsNiArNjM2LDEyIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tNdXRl
ZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogICAgICAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUobXV0ZWQgPyBldmVudE5hbWVzKCkubXV0ZUV2ZW50IDogZXZlbnROYW1l
cygpLnVubXV0ZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKICAgICB9KTsKICAgICBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOworCisgICAg
YXV0byYgc291cmNlID0gbV9wcml2YXRlLT5zb3VyY2UoKTsKKyAgICBpZiAoc291cmNlLnR5cGUo
KSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAmJiBzb3VyY2UuaW50ZXJydXB0
ZWQoKSAhPSBtX2lzSW50ZXJydXB0ZWQgJiYgZG9jdW1lbnQtPnNldHRpbmdzKCkubXV0ZUNhbWVy
YU9uTWljcm9waG9uZUludGVycnVwdGlvbkVuYWJsZWQoKSkgeworICAgICAgICBtX2lzSW50ZXJy
dXB0ZWQgPSBzb3VyY2UuaW50ZXJydXB0ZWQoKTsKKyAgICAgICAgdXBkYXRlVmlkZW9DYXB0dXJl
QWNjb3JkaW5nTWljcm9waG9uZUludGVycnVwdGlvbigqZG9jdW1lbnQsIG1faXNJbnRlcnJ1cHRl
ZCk7CisgICAgfQogfQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrU2V0dGluZ3NDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggYzlhNDM4NTkzNTlh
YTRkOGY3MGZiZjQ1NTI5YjFhNmU1N2ZiMWI5MC4uMDcwZjdkYzA5MDZjNTQ5OTliMmNiZWY2ZWRk
MzZlZjNlOTBlZjBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTIwOCw2ICsyMDgsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuZGVkIHsgZmFsc2UgfTsK
ICAgICBjb25zdCBib29sIG1faXNDYXB0dXJlVHJhY2sgeyBmYWxzZSB9OworICAgIGJvb2wgbV9p
c0ludGVycnVwdGVkIHsgZmFsc2UgfTsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrPj4gTWVkaWFTdHJlYW1UcmFja1ZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKaW5kZXggZGUwZjFhN2E0ZTYzNWExMzllNDgyOGI1NDdmZGNmMDY2MTliMzVhYi4uODEwOWMx
ODliNzI2MTJjMmNmOGEwNzZmMTk3YWEwY2JjMmMxMGZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKQEAgLTEzNCwxMSArMTM0LDYgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpub3RpZnlN
dXRlZENoYW5nZShib29sIG11dGVkKQogICAgIG5vdGlmeU11dGVkT2JzZXJ2ZXJzKCk7CiB9CiAK
LXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJvb2wg
aW50ZXJydXB0ZWQpCi17Ci0gICAgbm90aWZ5TXV0ZWRDaGFuZ2UoaW50ZXJydXB0ZWQpOwotfQot
CiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlv
bjx2b2lkKE9ic2VydmVyJik+JiBhcHBseSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGIyNTkzNzY3OWFiOTI3MGYxOWI2MmZmNDBkNTI1MTE0
M2I2OWFiNDQuLjg5MTNiNWM1ZDNiZDVmODk1ZWUxODM2YWIwYjdkYWZmYjc3YTQ3MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmgKQEAgLTIxNyw3ICsyMTcsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBUZXN0
aW5nIG9ubHkKICAgICB2aXJ0dWFsIHZvaWQgZGVsYXlTYW1wbGVzKFNlY29uZHMpIHsgfTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJvb2wpOwogCiAgICAgdmly
dHVhbCBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDlhMGIyOWVkYjFkMTc4
MTU2NTQ1MGY1OGRlOTA5ZjY4Yzg3M2VhMDMuLmU2MzBjNGM1YzAyOWUyNjI2OTRmZTRjMDc1NmE3
ODk4MTE2YzJmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTcw
MiwxNSArNzAyLDYgQEAgY29uc3QgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6dW5pdCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fb3ZlcnJpZGVVbml0ID8gKm1fb3Zl
cnJpZGVVbml0IDogQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCk7CiB9CiAKLXZvaWQg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJvb2wgaXNJ
bnRlcnJ1cHRlZCkKLXsKLSAgICBpZiAoaXNJbnRlcnJ1cHRlZCkgewotICAgICAgICB1bml0KCku
c3VzcGVuZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHVuaXQoKS5yZXN1bWUoKTsK
LX0KLQogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6YmVnaW5JbnRlcnJ1cHRp
b24oKQogewogICAgIGVuc3VyZU9uTWFpblRocmVhZChbXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaAppbmRleCAzMzAzNmU5OTZmNjczZTUyNzAyMzg1YjQxZTBhOTNmMTgwMzUxZjk5
Li42ZTE3OTFjZTk4MTRmYWQ5NGExMzMzNmVkNTRhYWQwZjEwY2U4YjUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTc0LDcgKzc0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAKICAgICB2b2lkIGRlbGF5U2FtcGxlcyhTZWNv
bmRzKSBmaW5hbDsKLSAgICB2b2lkIHNldEludGVycnVwdGVkRm9yVGVzdGluZyhib29sKSBmaW5h
bDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPGludD4+IGRpc2NyZXRlU2FtcGxlUmF0ZXMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB7IHsgODAwMCwgMTYwMDAsIDMyMDAwLCA0NDEwMCwgNDgw
MDAsIDk2MDAwIH0gfTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGQwODk0ZDVkNGZlODI1Zjhi
MDZkNmM5MjhhYWYwOTg2Mzc3Y2M0YjIuLjJhYWUxOTFjMTdlZjNlY2E3YWEwMDdhM2EyOGI1YTEx
YWVhY2NhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUg
IlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJNb2NrQXVkaW9TaGFyZWRVbml0LmgiCisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPU19GQU1JTFkpICYmICFVU0UoR1NUUkVBTUVSKQpAQCAtMTgwLDYgKzE4NCwxNyBA
QCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpkZWxheVNhbXBsZXMoU2Vjb25kcyBkZWx0
YSkKICAgICBtX2RlbGF5VW50aWwgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIGRlbHRhOwogfQog
Cit2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXRJc0ludGVycnVwdGVkKGJvb2wgaXNJ
bnRlcnJ1cHRlZCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaXNJbnRlcnJ1cHRlZCk7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgaWYgKGlzSW50ZXJydXB0ZWQpCisgICAgICAgIE1vY2tBdWRpb1No
YXJlZFVuaXQ6OnNpbmdsZXRvbigpLnN1c3BlbmQoKTsKKyAgICBlbHNlCisgICAgICAgIE1vY2tB
dWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnJlc3VtZSgpOworI2VuZGlmCit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlLmgKaW5kZXggZjBkYWRmNzFkMmQwMzUzNWE2ODJlNTBjNzliOTQyNDJkMDg2OGZmOC4uNTVm
OWVkMmE2YzI4OTQ4ZDQwY2U4MDY0OGY1MGRkODc3Y2UzNjllMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAt
NDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZSgpOwogCisgICAgc3RhdGljIHZvaWQgc2V0SXNJbnRlcnJ1cHRlZChib29sKTsKKwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkKTsKIAogcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCAwOTJkMmZlNjExOTM0OGY5
ODY1YTg4ZmIyNzkxZTNhMmQ3MTRhNDAxLi5jMzlmYTdiY2U0M2MzN2ViM2RlYjcxM2U5N2Q5ZTky
MDljYjJmYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMzE3LDkgKzMxNywx
MCBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpyZXNldERldmljZXMoKQog
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNhcHR1cmVEZXZpY2Vz
Q2hhbmdlZCgpOwogfQogCi12b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRN
b2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sIGlzSW50ZXJydXB0ZWQpCit2b2lkIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChi
b29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7
Ci0gICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1
cHRlZCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQoaXND
YW1lcmFJbnRlcnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldElzSW50
ZXJydXB0ZWQoaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogfQogCiB2b2lkIE1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzZXREZXZpY2VzKFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+JiYg
bmV3TW9ja0RldmljZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggN2ZhYzg5OTRlZDNh
YjgwM2Q4YTZhYjVjNTQ3MDk1YWI5MTIxMmI2My4uNjk5ODg0ZjMxMTljMmI0ZjFjZjgyOTA2MzAw
YWRjNTZmMzNkMjViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNDcsNyArNDcsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgYWRkRGV2aWNlKGNvbnN0
IE1vY2tNZWRpYURldmljZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlbW92
ZURldmljZShjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgcmVzZXREZXZpY2VzKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVy
YUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKIAogICAgIHZvaWQg
c2V0TW9ja0F1ZGlvQ2FwdHVyZUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc01vY2tBdWRp
b0NhcHR1cmVFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRNb2NrVmlkZW9DYXB0
dXJlRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzTW9ja1ZpZGVvQ2FwdHVyZUVuYWJsZWQg
PSBpc0VuYWJsZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAzZTEy
ZWM4ZjYwZDExNTNlNzUyZTFiNmNjM2EzMjI4ZGZhYWE2NDc3Li5hMWVmMDAyODllNWE4NjMyNmYy
MmIxYzgyMDdhNzY2YTQ0NDFiMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC01NTgzLDExICs1NTgzLDYgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE1lZGlhU3RyZWFtVHJh
Y2tJZGVudGlmaWVyKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBTdHJpbmcmJgogICAgIHRyYWNr
LnNldElkRm9yVGVzdGluZyhXVEZNb3ZlKGlkKSk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpzZXRN
ZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBib29s
IGludGVycnVwdGVkKQotewotICAgIHRyYWNrLnNvdXJjZSgpLnNldEludGVycnVwdGVkRm9yVGVz
dGluZyhpbnRlcnJ1cHRlZCk7Ci19Ci0KIGJvb2wgSW50ZXJuYWxzOjppc01lZGlhU3RyZWFtU291
cmNlSW50ZXJydXB0ZWQoTWVkaWFTdHJlYW1UcmFjayYgdHJhY2spIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHRyYWNrLnNvdXJjZSgpLmludGVycnVwdGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAppbmRleCBjZTk5OGMzNDdlNDVjMmRmMzA5YjU5MGJmMmNhYWE1ZTc1NjBkODZkLi5jOTdk
MThhNGUyMWRlOTA0MmUxY2FkYjVlOTFkYTlmYjdkNGFmZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKQEAgLTg3OCw3ICs4NzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVN
ZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtJiwgTWVkaWFTdHJlYW1UcmFjayYpOwogICAgIHZv
aWQgc2ltdWxhdGVNZWRpYVN0cmVhbVRyYWNrQ2FwdHVyZVNvdXJjZUZhaWx1cmUoTWVkaWFTdHJl
YW1UcmFjayYpOwogICAgIHZvaWQgc2V0TWVkaWFTdHJlYW1UcmFja0lkZW50aWZpZXIoTWVkaWFT
dHJlYW1UcmFjayYsIFN0cmluZyYmIGlkKTsKLSAgICB2b2lkIHNldE1lZGlhU3RyZWFtU291cmNl
SW50ZXJydXB0ZWQoTWVkaWFTdHJlYW1UcmFjayYsIGJvb2wpOwogICAgIGJvb2wgaXNNZWRpYVN0
cmVhbVNvdXJjZUludGVycnVwdGVkKE1lZGlhU3RyZWFtVHJhY2smKSBjb25zdDsKICAgICBib29s
IGlzTWVkaWFTdHJlYW1Tb3VyY2VFbmRlZChNZWRpYVN0cmVhbVRyYWNrJikgY29uc3Q7CiAgICAg
Ym9vbCBpc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDQyOGYzYjMyYWI5NjIxZDE0YmI2NGM0ZDdkYmY1
NGRkNmEzMjc0MDUuLjEzMjI4ZDNiZTlmMjQ3ZDY3MjhkYzNmN2UwZTU2OGE0YzEyMGE5NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkyNSw3ICs5MjUsNiBAQCB0eXBl
ZGVmIChGZXRjaFJlcXVlc3Qgb3IgRmV0Y2hSZXNwb25zZSkgRmV0Y2hPYmplY3Q7CiAgICAgW0Nv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTV0gdW5kZWZpbmVkIHJlbW92ZU1lZGlhU3RyZWFtVHJhY2so
TWVkaWFTdHJlYW0gc3RyZWFtLCBNZWRpYVN0cmVhbVRyYWNrIHRyYWNrKTsKICAgICBbQ29uZGl0
aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2ltdWxhdGVNZWRpYVN0cmVhbVRyYWNrQ2Fw
dHVyZVNvdXJjZUZhaWx1cmUoTWVkaWFTdHJlYW1UcmFjayB0cmFjayk7CiAgICAgW0NvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTV0gdW5kZWZpbmVkIHNldE1lZGlhU3RyZWFtVHJhY2tJZGVudGlmaWVy
KE1lZGlhU3RyZWFtVHJhY2sgdHJhY2ssIERPTVN0cmluZyBpZGVudGlmaWVyKTsKLSAgICBbQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0TWVkaWFTdHJlYW1Tb3VyY2VJbnRl
cnJ1cHRlZChNZWRpYVN0cmVhbVRyYWNrIHRyYWNrLCBib29sZWFuIGludGVycnVwdGVkKTsKICAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSBib29sZWFuIGlzTWVkaWFTdHJlYW1Tb3VyY2VJ
bnRlcnJ1cHRlZChNZWRpYVN0cmVhbVRyYWNrIHRyYWNrKTsKICAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNXSBib29sZWFuIGlzTWVkaWFTdHJlYW1Tb3VyY2VFbmRlZChNZWRpYVN0cmVhbVRy
YWNrIHRyYWNrKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSBib29sZWFuIGlzTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUHJvY2Vzcy5jcHAKaW5kZXggZmZlMGFjZDgxMjMyNmEzYTA3YjJhNTIzNzhiYTdmNjFl
YTAwMGQ4NC4uOTM4NjAwOTI2Zjg3NWU4MzNkMTcwYTgzMGNlMGIwYTU4NmE0OGFjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzUxLDkgKzM1MSw5IEBAIHZv
aWQgR1BVUHJvY2Vzczo6cmVzZXRNb2NrTWVkaWFEZXZpY2VzKCkKICAgICBNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6cmVzZXREZXZpY2VzKCk7CiB9CiAKLXZvaWQgR1BVUHJvY2Vzczo6
c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQordm9pZCBHUFVQ
cm9jZXNzOjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50
ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlzSW50ZXJy
dXB0ZWQpOworICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FwdHVy
ZURldmljZXNJbnRlcnJ1cHRlZChpc0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRl
cnJ1cHRlZCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggOTEwYThiOGEyZTliYzE0Mjg0YjdiZmQ3YzZm
MGE4MzUwNmYzN2Q1MS4uNTNiZTVkODc0YmEwZjY0OTA4YTRjNGI4YzIzZGE0M2I0M2JhZjI5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCkBAIC0xNTIsNyArMTUyLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNsZWFyTW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgcmVt
b3ZlTW9ja01lZGlhRGV2aWNlKGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElkKTsKICAgICB2b2lk
IHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJy
dXB0ZWQoYm9vbCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChi
b29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwog
ICAgIGJvb2wgc2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogI2Vu
ZGlmCiAjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOGU5OTI5YTUzNWI0
MWUyZDE2N2YyMWU1YjNlZjMyNWJkNWM4MjNjZC4uYTYzMTdmYmQ0NjBlNzhkNTg3NTIxM2YxNzQ3
YzY2OTZlYWNlZDNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTM5LDExICszOSwxMSBAQCBtZXNzYWdlcyAtPiBHUFVQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBVcGRhdGVTYW5kYm94QWNjZXNzKFZlY3RvcjxXZWJLaXQ6
OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gZXh0ZW5zaW9ucyk7CiAgICAgVXBkYXRlQ2FwdHVy
ZUFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJlLCBib29sIGFsbG93VmlkZW9DYXB0dXJlLCBi
b29sIGFsbG93RGlzcGxheUNhcHR1cmUsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nl
c3NJRCkgLT4gKCkgQXN5bmMKICAgICBVcGRhdGVDYXB0dXJlT3JpZ2luKHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2Vzc0lEKQotICAgIEFkZE1vY2tNZWRpYURldmljZShzdHJ1Y3QgV2ViQ29yZTo6TW9j
a01lZGlhRGV2aWNlIGRldmljZSk7Ci0gICAgQ2xlYXJNb2NrTWVkaWFEZXZpY2VzKCk7Ci0gICAg
UmVtb3ZlTW9ja01lZGlhRGV2aWNlKFN0cmluZyBwZXJzaXN0ZW50SWQpOwotICAgIFJlc2V0TW9j
a01lZGlhRGV2aWNlcygpOwotICAgIFNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJ
bnRlcnJ1cHRlZCk7CisgICAgQWRkTW9ja01lZGlhRGV2aWNlKHN0cnVjdCBXZWJDb3JlOjpNb2Nr
TWVkaWFEZXZpY2UgZGV2aWNlKQorICAgIENsZWFyTW9ja01lZGlhRGV2aWNlcygpCisgICAgUmVt
b3ZlTW9ja01lZGlhRGV2aWNlKFN0cmluZyBwZXJzaXN0ZW50SWQpCisgICAgUmVzZXRNb2NrTWVk
aWFEZXZpY2VzKCkKKyAgICBTZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlz
Q2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiAjZW5kaWYK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgRGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGly
ZWN0RGlzcGxheUlEIGRpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzIGZsYWdz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggODliMWViZmMy
MzFmMGI3MjJkMzAxMThjOTA2YTk2OTQ4YzhhOGY1Zi4uZTI1NDkyNmRjNTFhNDlhZWJhNDk4ZDc5
NDlhYWZjODA3YTRiNzIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCkBAIC0zMTM5LDE1ICszMTM5LDE1IEBAIGJvb2wgV0tQYWdlSXNNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlckVuYWJsZWQoV0tQYWdlUmVmKQogI2VuZGlmCiB9CiAKLXZvaWQgV0tQYWdl
U2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgaXNJbnRl
cnJ1cHRlZCkKK3ZvaWQgV0tQYWdlU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoV0tQ
YWdlUmVmIHBhZ2VSZWYsIGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhv
bmVJbnRlcnJ1cHRlZCkKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGF1dG8mIGdwdVByb2Nlc3Mg
PSB0b0ltcGwocGFnZVJlZiktPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmVuc3VyZUdQVVByb2Nl
c3MoKTsKLSAgICBncHVQcm9jZXNzLnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlzSW50ZXJy
dXB0ZWQpOworICAgIGdwdVByb2Nlc3Muc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQo
aXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEdTVFJFQU1FUikKLSAgICB0b0ltcGwocGFn
ZVJlZiktPnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlzSW50ZXJydXB0ZWQpOworICAgIHRv
SW1wbChwYWdlUmVmKS0+c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoaXNDYW1lcmFJ
bnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCAyZGM0OWI0
YzIxMTVmZWFhYTllZTRhNDBiMDlkMTAwODc5YjdhYjZmLi4wZjcwZDdlMDgxYTEwZjg3OTMwNGEz
NGI5YzFmNTYzYjJmYjIyNWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlUHJpdmF0ZS5oCkBAIC0yMDEsNyArMjAxLDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tQYWdl
U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdlUmVm
IHAKIAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBvcmllbnRhdGlvbik7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJ
c01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYgcGFnZSk7Ci1X
S19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChXS1BhZ2VSZWYg
cGFnZSwgYm9vbCBpc0ludGVycnVwdGVkKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldE1vY2tD
YXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKFdLUGFnZVJlZiBwYWdlLCBib29sIGlzQ2FtZXJhSW50
ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogCiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGdW5jdGlvbikoV0tBcnJheVJlZiBkb21h
aW5zLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlTG9hZGVk
U3VicmVzb3VyY2VEb21haW5zKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VMb2FkZWRTdWJyZXNvdXJj
ZURvbWFpbnNGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWQwNzU4MjE3NTEwMTM1N2UwNTViMTE0MjY4ODky
ZmE3YzczYzk0Ni4uNzg3YmIxMjFlNzRjNjY5NjU4MThiNjIwNDliMjFmZTliOTVlNzJmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgog
ICAgIH0KIAogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWwgewotICAgICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3Vy
Y2VNdXRlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPm11dGVkKCkpLCAwKTsKKyAgICAgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNl
TXV0ZWRDaGFuZ2VkKG1faWQsIG1fc291cmNlLT5tdXRlZCgpLCBtX3NvdXJjZS0+aW50ZXJydXB0
ZWQoKSksIDApOwogICAgIH0KIAogICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKCkgZmlu
YWwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCAyMzJjNTcyNjUxMTM5NDU3ODU2ODA2YzU0NzlkNjI3YzQ4NDQxMDU4Li42ZjgyMzI4
NTEwN2Q5MjdhODRjZGUxNWQ3YzhiYTk4ZTU0NWE3MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzUwLDkgKzM1MCw5IEBAIHZv
aWQgR1BVUHJvY2Vzc1Byb3h5OjpyZXNldE1vY2tNZWRpYURldmljZXMoKQogICAgIHNlbmQoTWVz
c2FnZXM6OkdQVVByb2Nlc3M6OlJlc2V0TW9ja01lZGlhRGV2aWNlcyB7IH0sIDApOwogfQogCi12
b2lkIEdQVVByb2Nlc3NQcm94eTo6c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBpc0lu
dGVycnVwdGVkKQordm9pZCBHUFVQcm9jZXNzUHJveHk6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0lu
dGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRl
cnJ1cHRlZCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpTZXRNb2NrQ2FtZXJh
SXNJbnRlcnJ1cHRlZCB7IGlzSW50ZXJydXB0ZWQgfSwgMCk7CisgICAgc2VuZChNZXNzYWdlczo6
R1BVUHJvY2Vzczo6U2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQgeyBpc0NhbWVyYUlu
dGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCB9LCAwKTsKIH0KICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc1Byb3h5LmgKaW5kZXggMDA2MjU1ZDFmNjY2ZThjNDI0ZDBjY2I2ZWZjZGVjYTFjODJj
NzlhYS4uNDQzZTliN2E0NjZhZmU1MWU4ODRiNGY5NDM4YzRjYzY1ZDczYjhkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApAQCAtODYsNyArODYs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck1vY2tNZWRpYURldmljZXMoKTsKICAgICB2b2lk
IHJlbW92ZU1vY2tNZWRpYURldmljZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlc2V0TW9j
a01lZGlhRGV2aWNlcygpOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9v
bCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2Ft
ZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogICAgIHZvaWQg
dXBkYXRlU2FuZGJveEFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJlLCBib29sIGFsbG93Vmlk
ZW9DYXB0dXJlLCBib29sIGFsbG93RGlzcGxheUNhcHR1cmUpOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJmZGRiODQ5NTJkMDg4OWE4ODI1
NGU0NzdiZmYyMzIwYjYwZjAxZGMuLjc1ZTI0NjY1NzYzMWJmZmQyMDE3ZDY2ZWJjZmFkNWYzNjIz
N2JmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTA4
ODIsOSArMTA4ODIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3JpZW50YXRpb25Gb3JNZWRp
YUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKSAmJiBVU0UoR1NUUkVBTUVSKQotdm9pZCBXZWJQYWdlUHJveHk6OnNldE1vY2tDYW1lcmFJ
c0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRN
b2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJv
b2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6U2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1cHRlZCkpOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzQ2Ft
ZXJhSW50ZXJydXB0ZWQsIGlzTWljcm9waG9uZUludGVycnVwdGVkKSk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3OGQ1NGQ4MWRmMWI1ODcw
MGIxYjQwNWVhZjU3YjkwYTBlZmNjZThiLi44ODlhMWE5NjgwMjMzNjc4NmZmOTkxOTIyYzliOTI5
YzNmMmE2YTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTg5
Miw3ICsxODkyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3JpZW50YXRpb25Gb3JNZWRpYUNh
cHR1cmUodWludDY0X3QpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEdTVFJF
QU1FUikKLSAgICB2b2lkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wpOworICAgIHZv
aWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVw
dGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKICNlbmRpZgogCiAgICAgYm9vbCBp
c0hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGlu
Z1ByZXZlbnRhYmxlVG91Y2hTdGFydENvdW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDA5ZGJhZThlMzEwNTQyMTZmZTk4OGY2MGI5ZjQ2
NGNjYzdkYjlmNjkuLjMyZmY5YzM2YTI2M2M4NzE4MTJjNjJjNWYwODk3MjRiODBiYjIwZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00OTE0
LDkgKzQ5MTQsOSBAQCB2b2lkIFdlYlBhZ2U6OnNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJl
KHVpbnQ2NF90IHJvdGF0aW9uKQogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldE1vY2tD
YW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgV2ViUGFnZTo6c2V0
TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBi
b29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIE1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChpc0ludGVycnVwdGVkKTsKKyAg
ICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50
ZXJydXB0ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwog
fQogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNWViYWVjNDViYTAyNGFkNGJmMmYyYjllNjFlMmM0ZDVh
Y2VkZDk3Li4xZTE0NzUyNTA0ZmFkNTQwYjk4NzVlNWRjNzIyYmU0ZDRjZThkYjc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjQ0LDcgKzEyNDQs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoR1NU
UkVBTUVSKQogICAgIHZvaWQgc2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qg
cm90YXRpb24pOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7Cisg
ICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50
ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2VuZGlmCiAKICAgICB2
b2lkIGFkZFVzZXJTY3JpcHQoU3RyaW5nJiYgc291cmNlLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkJiwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcywgV2ViQ29yZTo6VXNlclNj
cmlwdEluamVjdGlvblRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNmY1MjZlNDk5NThjMjZiZThkNzEyMjcw
MGY4YjUzNWFjMDg0NjMwMC4uYmVhNjQzOGE5N2U5MDc2Yzk2ODg0YTZlOTQyZTNlMWVmMzk3MDk0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC00MDcsNyArNDA3LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUK
ICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgU2V0
T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUoaW50IHJvdGF0aW9uKQotICAgIFNldE1vY2tDYW1l
cmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKKyAgICBTZXRNb2NrQ2FwdHVyZURl
dmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bo
b25lSW50ZXJydXB0ZWQpCiAjZW5kaWYKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRl
eCBhM2M0MWRjMDRhYWNlNWRkNGVhNzM5YTYwZjJhNTMwZTVlM2QwNzVlLi4yYTMzZjk3NjgwMzBh
MDZhNzhlNDhmMzBkN2FjYzYzYmViNmQzYmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKQEAgLTY4
LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOwogCiAg
ICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29u
c3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKLSAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29s
IHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQorICAgIHZvaWQgc291cmNlTXV0
ZWRDaGFuZ2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0ZWQpOwogCiBwcml2YXRlOgogICAg
IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKQEAg
LTg1LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFi
aWxpdGllczsgfQogICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nKT4mJiBjYWxsYmFjaykgZmluYWwgeyBtX3Byb3h5LndoZW5SZWFkeShXVEZNb3ZlKGNhbGxi
YWNrKSk7IH0KICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmRldmljZVR5cGUoKTsgfQorICAgIGJv
b2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmludGVycnVwdGVk
KCk7IH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6Q2xpZW50CkBAIC0xMDEsNiArMTAyLDEyIEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CiB9OwogCitpbmxpbmUgdm9p
ZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCBtdXRl
ZCwgYm9vbCBpbnRlcnJ1cHRlZCkKK3sKKyAgICBtX3Byb3h5LnNldEludGVycnVwdGVkKGludGVy
cnVwdGVkKTsKKyAgICBub3RpZnlNdXRlZENoYW5nZShtdXRlZCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAppbmRleCA1MmY1MzVi
M2Q3M2Q2ODk3NzhiOTVmMTk0N2Y4ZTcyZDgyOThkNmExLi5mOWM5MjI0NWEyMjRjZjUyZDQ1ODI2
NWVhNDY2ODMyZTFiY2JlMjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCkBAIC02Miw3ICs2
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKIAogICAgIHZv
aWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmIHNhbXBs
ZSwgV2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0YSkgeyB2aWRlb1NhbXBsZUF2
YWlsYWJsZShzYW1wbGUsIG1ldGFkYXRhKTsgfQotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2Vk
KGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CisgICAgdm9pZCBzb3Vy
Y2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKIHByaXZhdGU6
CiAgICAgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CkBAIC03OSw2ICs3
OSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7
IH0KICAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYg
Y2FsbGJhY2spIGZpbmFsIHsgbV9wcm94eS53aGVuUmVhZHkoV1RGTW92ZShjYWxsYmFjaykpOyB9
CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5kZXZpY2VUeXBlKCk7IH0KKyAgICBib29sIGludGVy
cnVwdGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5pbnRlcnJ1cHRlZCgpOyB9CiAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNs
aWVudApAQCAtOTUsNiArOTYsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKIH07CiAKK2lubGluZSB2b2lkIFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQsIGJvb2wg
aW50ZXJydXB0ZWQpCit7CisgICAgbV9wcm94eS5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCk7
CisgICAgbm90aWZ5TXV0ZWRDaGFuZ2UobXV0ZWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCmluZGV4IDRhMjk0
ZDhjNTQxNzFlNmUxMDA1YjNhNDA2NjU2YjI2YzE1OWMwNGQuLjI0NDZlMzk4ZThjMzY4NzhkNDE0
NDIwY2E1ZGJjN2JiNWU4NDUxODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3Bw
CkBAIC02MCwxMSArNjAsMTMgQEAgSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHk6OmNvbm5lY3Rpb24oKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKKyAgICBtX2ludGVycnVwdGVkID0gZmFs
c2U7CiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAK
IHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSgp
CiB7CisgICAgbV9pbnRlcnJ1cHRlZCA9IGZhbHNlOwogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEg
eyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaApp
bmRleCAwM2MxZDcxMjIyN2NkNWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYyLi41OWUyYzI4MzQ1
YzkwZjdkMmM0ZWE3ZjMwNmJhNDUwZjVhMTI1NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eS5oCkBAIC03MSw2ICs3MSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkRmFpbChTdHJp
bmcmJiBlcnJvck1lc3NhZ2UpOwogCisgICAgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1faW50ZXJydXB0ZWQ7IH0KKyAgICB2b2lkIHNldEludGVycnVwdGVkKGJvb2wgaW50ZXJy
dXB0ZWQpIHsgbV9pbnRlcnJ1cHRlZCA9IGludGVycnVwdGVkOyB9CisKIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAg
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9kZXZpY2U7CkBAIC04MSw2ICs4NCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OwogICAgIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7Cisg
ICAgYm9vbCBtX2ludGVycnVwdGVkIHsgZmFsc2UgfTsKIH07CiAKIGlubGluZSBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuaAppbmRleCAzMmE4YTExNTQ2NGIwYjY1YjdlYWYzYmYwZGI4MTdmZTFiOGY5YTk3
Li41YjQ2NTExZjQxODczMjQ4NmIzMjZlMGRiOWExZWU5NzE4OWFhMjczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZUZhaWxl
ZCgpIGZpbmFsOwogCiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRp
YVNhbXBsZSYsIFdlYkNvcmU6OkludFNpemUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEp
OwotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRD
aGFuZ2UodmFsdWUpOyB9CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSwg
Ym9vbCBpbnRlcnJ1cHRlZCk7CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwpAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRl
OgogICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHNhbXBsZVJvdGF0aW9u
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zYW1wbGVSb3RhdGlvbjsgfQogICAgIHZvaWQgc2V0
RnJhbWVSYXRlV2l0aFByZXNldChkb3VibGUsIFJlZlB0cjxXZWJDb3JlOjpWaWRlb1ByZXNldD4p
IGZpbmFsOwogICAgIGJvb2wgcHJlZmVyc1ByZXNldChXZWJDb3JlOjpWaWRlb1ByZXNldCYpIGZp
bmFsOworICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5
LmludGVycnVwdGVkKCk7IH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CkBAIC0xMTAsNiArMTExLDEyIEBAIHByaXZhdGU6CiAg
ICAgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9zYW1wbGVSb3RhdGlvbiB7
IFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCitpbmxp
bmUgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoYm9v
bCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKK3sKKyAgICBtX3Byb3h5LnNldEludGVycnVwdGVk
KGludGVycnVwdGVkKTsKKyAgICBub3RpZnlNdXRlZENoYW5nZShtdXRlZCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IGY2ODdk
OGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMuLjRjYTI1NGY0NmRlYmFkOWEyYzVk
NjFkN2U1YzhkOGEyZWJjMTY1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMTU0LDE4ICsx
NTQsMTggQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwdHVyZUZhaWxlZChSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGkKICAgICB9LCBbXShzdGQ6Om51bGxwdHJf
dCkgeyB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRD
aGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbXV0
ZWQpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBtdXRlZCwgYm9vbCBp
bnRlcnJ1cHRlZCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRp
Zmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fc291cmNlcy5lbmQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbbXV0ZWRdKFJlZjxSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+c291cmNlTXV0
ZWRDaGFuZ2VkKG11dGVkKTsKLSAgICB9LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11
dGVkKTsKLSAgICB9LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBz
b3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQpOworICAg
IHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgW211dGVkLCBpbnRlcnJ1cHRlZF0oUmVmPFJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5zb3VyY2VN
dXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsKKyAgICB9LCBbbXV0ZWQsIGludGVycnVw
dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBz
b3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCwgaW50ZXJydXB0ZWQpOworICAgIH0sIFtt
dXRlZCwgaW50ZXJydXB0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3Vy
Y2UpIHsKKyAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVw
dGVkKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aAppbmRleCA4Y2M1YjRmOTI2OWIyNDRkYjU5OTViN2I3NDQ0YjkxNTk3ZjE2YTgyLi5kOGZiODBi
NGZlOGRhZTc2OTk1NDgyYTIzOTE3ZDJmZWE1OTIwZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAt
MTI2LDcgKzEyNiw4IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyCiAgICAgdm9pZCBjYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIG11dGVkKTsKKyAgICB2
b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCk7CisKICAgICB2b2lkIHNvdXJjZVNl
dHRpbmdzQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlDb25z
dHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlD
b25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
U3RyaW5nJiYsIFN0cmluZyYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpp
bmRleCBhMDVmNmRkMmVhODdmOTBiY2VjZTVjNzY0Y2NjZGMxNTViNDQzZGU0Li45NzljY2UyNTg5
NjAwNTNmZTE0ZjcwZTZkMjM2MjAxOTBiMTZhZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw3IEBACiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICBDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAgIFNvdXJjZVN0b3BwZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCi0gICAgU291cmNlTXV0ZWRDaGFu
Z2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBib29sIG11dGVk
KQorICAgIFNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZCwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKICAgICBTb3VyY2VTZXR0
aW5nc0NoYW5nZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKICAgICBBcHBseUNv
bnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAg
QXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZCwgU3RyaW5nIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyBtZXNzYWdlKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE1YmMwNGNhNzQx
MmRlNjkwZGFmZGNkOGM1NjhiZjI4ODNkNDQ5MjMuLmFiZDllNzViZGZjNTZhNzE2ZTM1OTQ5Mzky
YmM1MjY5ODgxNDZkYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVv
IGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8
cmRhcjovLzc4NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpbnRlcnJ1cHQgbW9jayBtaWNyb3Bob25lIGRldmlj
ZXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorCiAyMDIyLTAz
LTA2ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGbGF0cGFr
IFNES10gRml4IGtleSBleHBpcmVkIHRyZWF0bWVudCB3aXRoIFB5dGhvbjMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCmluZGV4IGRkMzk3NjNhYzUxMjVhYWJlNjA0OTYyOTQ3ODBmMjA2YjEwYzI4
NzYuLmU1ZDE0OGFmN2VlZGIwMjRmOWZmOWZjNmY4N2EwODE0ZWM5MGE5N2UgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbApAQCAtMzg3LDcgKzM4Nyw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVy
IHsKICAgICB1bmRlZmluZWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7CiAgICAgdW5kZWZpbmVk
IHNldE1vY2tDYW1lcmFPcmllbnRhdGlvbih1bnNpZ25lZCBsb25nIG9yaWVudGF0aW9uKTsKICAg
ICBib29sZWFuIGlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCk7Ci0gICAg
dW5kZWZpbmVkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2xlYW4gaXNJbnRlcnJ1cHRl
ZCk7CisgICAgdW5kZWZpbmVkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2xl
YW4gaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbGVhbiBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7
CiAKICAgICBib29sZWFuIGhhc0FwcEJvdW5kU2Vzc2lvbigpOwogICAgIHVuZGVmaW5lZCBjbGVh
ckFwcEJvdW5kU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggMjkwMTRjMGRkNGYwOGUzNzY5OTkxNTli
NjNiMGE5Y2E3M2ZlZTMzMy4uNDYyOWNmNzIzZWEyYjM5MWZkOTQ5YzUzOWIyODFlYWJlZTkzNGU0
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCkBAIC0xODMyLDkgKzE4MzIsMTIgQEAgYm9vbCBUZXN0UnVubmVyOjppc01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpCiAgICAgcmV0dXJuIHBvc3RTeW5j
aHJvbm91c01lc3NhZ2VSZXR1cm5pbmdCb29sZWFuKCJJc01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyRW5hYmxlZCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tDYW1lcmFJc0lu
dGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0Nh
cHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlz
TWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIHBvc3RTeW5jaHJvbm91c01lc3NhZ2UoIlNl
dE1vY2tDYW1lcmFJc0ludGVycnVwdGVkIiwgaXNJbnRlcnJ1cHRlZCk7CisgICAgcG9zdFN5bmNo
cm9ub3VzTWVzc2FnZSgiU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQiLCBjcmVhdGVX
S0RpY3Rpb25hcnkoeworICAgICAgICB7ICJjYW1lcmEiLCBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0
ZShpc0NhbWVyYUludGVycnVwdGVkKSkgfSwKKyAgICAgICAgeyAibWljcm9waG9uZSIsIGFkb3B0
V0soV0tCb29sZWFuQ3JlYXRlKGlzTWljcm9waG9uZUludGVycnVwdGVkKSkgfSwKKyAgICB9KSk7
CiB9CiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggOTBmNWVlNDgxZjQ1MTAwZTM3YWM0
YmNkNWEyZDRhNzA1MmYxNGMxNi4uN2Y2OTE2NjI4YmNhMjhkZmQ4YWY2MTkzMzY0YzRkNGQzNzll
MDIxNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKQEAgLTQ5OSw3ICs0OTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldE1v
Y2tNZWRpYURldmljZXMoKTsKICAgICB2b2lkIHNldE1vY2tDYW1lcmFPcmllbnRhdGlvbih1bnNp
Z25lZCk7CiAgICAgYm9vbCBpc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgp
OwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7CisgICAgdm9pZCBz
ZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQs
IGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogCiAgICAgYm9vbCBoYXNBcHBCb3VuZFNl
c3Npb24oKTsKICAgICB2b2lkIGNsZWFyQXBwQm91bmRTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGZhNmI2OTFjNzRjODY1ZjllMWRlMzli
NzRlM2MxYmNlODQ1OGRlZWQuLjVmMDJiMGVlOGM4NTRmMzZlNzBlZTUyNjkzZWVmODBmNTQ3ZWU1
NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zNjIw
LDkgKzM2MjAsOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIFdLUGFnZUlzTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKG1fbWFpbldlYlZpZXctPnBhZ2UoKSk7CiB9CiAKLXZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRl
cnJ1cHRlZCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVy
cnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1
cHRlZCkKIHsKLSAgICBXS1BhZ2VTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChtX21haW5XZWJW
aWV3LT5wYWdlKCksIGlzSW50ZXJydXB0ZWQpOworICAgIFdLUGFnZVNldE1vY2tDYXB0dXJlRGV2
aWNlc0ludGVycnVwdGVkKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgaXNDYW1lcmFJbnRlcnJ1cHRl
ZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogfQogCiBzdHJ1Y3QgSW5BcHBCcm93c2VyUHJp
dmFjeUNhbGxiYWNrQ29udGV4dCB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggZTI0YWMzMjAzNGFkYjQ1YzJlOTc1OWQ4OThjMjgwYTVjNWQzNmU2ZC4uYThhMjQ5
N2Q2ZjY1YjQwODE2ZWRkODYxNjkyNTJmZTdiOWQyYjAzNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzEyLDcgKzMxMiw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgc2V0TW9ja0NhbWVyYU9yaWVudGF0
aW9uKHVpbnQ2NF90KTsKICAgICBib29sIGlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJF
bmFibGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29s
KTsKKyAgICB2b2lkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1l
cmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAgICAgYm9vbCBo
YXNBcHBCb3VuZFNlc3Npb24oKTsKIAogICAgIHZvaWQgaW5qZWN0VXNlclNjcmlwdChXS1N0cmlu
Z1JlZik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDk0
YTA0NmIyMDJlMjZkYmRiYTk5ZmFkNDgyZTQxYjMyOTQ5NDc3MzMuLmQ5ZTA2MGRhYzJhYjk5NDc3
NjQ4YzUyNTU3NzhmZTAzYzVjNTY3NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCkBAIC05NzMsOCArOTczLDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4g
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRC
CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJJc01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCIpKQogICAgICAgICByZXR1cm4gYWRv
cHRXSyhXS0Jvb2xlYW5DcmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmlzTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCkpKTsKICAgICAKLSAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldE1vY2tDYW1lcmFJc0ludGVy
cnVwdGVkIikpIHsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldE1vY2tD
YW1lcmFJc0ludGVycnVwdGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOworICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0TW9ja0NhcHR1cmVE
ZXZpY2VzSW50ZXJydXB0ZWQiKSkgeworICAgICAgICBhdXRvIG1lc3NhZ2VCb2R5RGljdGlvbmFy
eSA9IGRpY3Rpb25hcnlWYWx1ZShtZXNzYWdlQm9keSk7CisgICAgICAgIGJvb2wgaXNDYW1lcmFJ
bnRlcnJ1cHRlZCA9IGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keURpY3Rpb25hcnksICJjYW1lcmEi
KTsKKyAgICAgICAgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCA9IGJvb2xlYW5WYWx1ZSht
ZXNzYWdlQm9keURpY3Rpb25hcnksICJtaWNyb3Bob25lIik7CisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChpc0NhbWVy
YUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNlMjc2MGMwNzM4NzVhOGJmMzAxN2Q3MzEzYzAxYTA3
ZmIzNWI1YjEuLmZmYjY5YTg1NDAzZGEwZTdhNzg0OTg5NzZiOWU1ZWMyMjk2YjVmZmQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUg
aW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8cmRhcjovLzc4
NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQt
ZnJvbS1hdWRpby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJh
Y2staW50ZXJydXB0ZWQuaHRtbDogTWlncmF0ZWQgdG8gdGVzdFJ1bm5lciBBUEkuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS90cmFjay1lbmRlZC13aGlsZS1tdXRlZC5odG1sOgorICAgICAg
ICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0wNSAgQWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5vbi1zdGFuZGFyZCBk
aXNwbGF5OmJsb2NrIFVBIHN0eWxlc2hlZXQgcnVsZSBmb3IgPGxheWVyPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50ZXJydXB0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNr
LWludGVycnVwdGVkLmh0bWwKaW5kZXggOTBhM2VmYmNjNWM1YmZlMWY3OTIzZGNiOWI1NTU1MmFi
NjdmOGI0Yy4uMDhkY2IzNTM1Mjk5MmFlNDhmNjVjNmU2NmI2M2E5YmQ4OWUxODQ1NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50
ZXJydXB0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0
cmVhbS10cmFjay1pbnRlcnJ1cHRlZC5odG1sCkBAIC0xLDUgKzEsNCBAQAotPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFi
bGVkPWZhbHNlIENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZD1mYWxzZSBdIC0tPgotPCFE
T0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIENh
cHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBDYXB0dXJlVmlkZW9JbkdQVVByb2Nl
c3NFbmFibGVkPXRydWUgTXV0ZUNhbWVyYU9uTWljcm9waG9uZUludGVycnVwdGlvbkVuYWJsZWQ9
ZmFsc2UgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgpA
QCAtMTIsMTggKzExLDE4IEBACiAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAg
ICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHthdWRpbzogdHJ1ZX0pOwogICAgICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpWzBdOwotICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
bGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9u
bXV0ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUwMDAp
IH0pOwotICAgICAgICBpbnRlcm5hbHMuc2V0TWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1cHRlZCh0
cmFjaywgdHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50
ZXJydXB0ZWQoZmFsc2UsIHRydWUpOwogICAgICAgICBhd2FpdCBwcm9taXNlOwogCiAgICAgICAg
IGFzc2VydF90cnVlKHRyYWNrLm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKICAgICAgICAgYXNz
ZXJ0X3RydWUoaW50ZXJuYWxzLmlzTWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1cHRlZCh0cmFjayks
ICJzb3VyY2UgaXMgaW50ZXJydXB0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7IHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAgIGludGVy
bmFscy5zZXRNZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKHRyYWNrLCBmYWxzZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFsc2UsIGZh
bHNlKTsKICAgICAgICAgYXdhaXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfZmFsc2UodHJh
Y2subXV0ZWQsICJ0cmFjayBpcyBubyBsb25nZXIgbXV0ZWQiKTsKQEAgLTc0LDE0ICs3MywxNCBA
QAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHBhZ2VNZWRpYVN0YXRl
LmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlJyA6ICdIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2ZhbHNlKHBhZ2VNZWRpYVN0YXRlLmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFzQWN0aXZl
VmlkZW9DYXB0dXJlRGV2aWNlJyA6ICdIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UnKSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVN0YXRlID0gaW50ZXJuYWxzLnBhZ2VNZWRp
YVN0YXRlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1lZGlh
U3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJhY2ssIGZhbHNlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFs
c2UsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgfSkKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICAgICAgICAgICAgICAgICBwYWdlU3RhdGUgPSBpbnRlcm5hbHMucGFnZU1lZGlhU3RhdGUoKTsK
LSAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNlSW50ZXJy
dXB0ZWQodHJhY2ssIHRydWUpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldE1v
Y2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzVmlkZW8sICFpc1ZpZGVvKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIk11dGVk
IHN0YXRlIGRpZCBub3QgY2hhbmdlIGluIDEgc2Vjb25kIiksIDEwMDApOwogICAgICAgICAgICAg
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVh
bS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9tLWF1ZGlvLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVw
dGVkLWZyb20tYXVkaW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMTMzMDY4MmUxMmViMTA4
MTcwMDFkNDUxNjE0OTI0MTY1MTlmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9t
LWF1ZGlvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBNdXRlL3VubXV0ZSB2
aWRlbyB0cmFjayBpZiBhdWRpbyBnZXRzIGludGVycnVwdGVkCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVw
dGVkLWZyb20tYXVkaW8uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEt
c3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lYmZlYzVmZDE4M2UwNjY1NTg2NmIxYWZjNWE0M2E1NjQ3MDIzN2NhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJh
Y2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQ
RSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNz
RW5hYmxlZD10cnVlIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBNdXRlQ2Ft
ZXJhT25NaWNyb3Bob25lSW50ZXJydXB0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+VmlkZW8gY2FwdHVy
ZSBzb3VyY2UgaW50ZXJydXB0aW9uIGJhc2VkIG9uIGF1ZGlvIGludGVycnVwdGlvbjwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1
ZX0pOworICAgICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOwor
ICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0
cmFjay5vbm11dGUgPSByZXNvbHZlOyBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgibm8gbXV0ZSIp
LCA1MDAwKSB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRl
cnJ1cHRlZChmYWxzZSwgdHJ1ZSk7CisgICAgICAgIGF3YWl0IHByb21pc2U7CisKKyAgICAgICAg
YXNzZXJ0X3RydWUodHJhY2subXV0ZWQsICJ0cmFjayBpcyBtdXRlZCIpOworCisgICAgICAgIHBy
b21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9udW5tdXRl
ID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIHVubXV0ZSIpLCA1MDAwKSB9
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChm
YWxzZSwgZmFsc2UpOworICAgICAgICBhd2FpdCBwcm9taXNlOworCisgICAgICAgIGFzc2VydF9m
YWxzZSh0cmFjay5tdXRlZCwgInRyYWNrIGlzIG5vdCBtdXRlZCIpOworCisgICAgICAgIHRyYWNr
LnN0b3AoKTsKKyAgICB9LCAiTXV0ZS91bm11dGUgdmlkZW8gdHJhY2sgaWYgYXVkaW8gZ2V0cyBp
bnRlcnJ1cHRlZCIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2st
aW50ZXJydXB0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3Ry
ZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLmh0bWwKaW5kZXggZWI5YTliZmViNzRhYmZiZjMx
ODg2N2I1ZGE0NGZhNTNiZTg4OTZmMS4uODJlNjcyMjc5NWE5MTZlZDQwZDYwZWMyZTc5M2E2MGM1
NWEyZGZkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1z
dHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC5odG1sCkBA
IC0xNSwxMyArMTUsMTMgQEAKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsZXQgcHJv
bWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25tdXRlID0g
cmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkgfSk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQodHJ1ZSwgZmFs
c2UpOwogICAgICAgICBhd2FpdCBwcm9taXNlOwogCiAgICAgICAgIGFzc2VydF90cnVlKHRyYWNr
Lm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7IHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAgIHRlc3RS
dW5uZXIuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGZhbHNlLCBmYWxzZSk7CiAgICAg
ICAgIGF3YWl0IHByb21pc2U7CiAKICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRyYWNrLm11dGVkLCAi
dHJhY2sgaXMgbm90IG11dGVkIik7CkBAIC00NSw3ICs0NSw3IEBACiAKICAgICAgICAgLy8gZ2V0
dGluZyBhbiBpbnRlcnJ1cHRpb24sIHRyYWNrIHNob3VsZCBiZSBtdXRlZC4KICAgICAgICAgbGV0
IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9ubXV0
ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUwMDApIH0p
OwotICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKHRydWUs
IGZhbHNlKTsKICAgICAgICAgYXdhaXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSh0
cmFjay5tdXRlZCwgInRyYWNrIGlzIG11dGVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL3RyYWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3RyYWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwKaW5kZXggOWRi
Nzg2MjcxOTM5ZmUzNGU1OTRiYzg2MzVlMzJlOTQzNDRlMzk2Ni4uNjI1OTk2NzM3NjdiNDRhOGEx
NjAzMzBmNzkzYjZmMTM0MDBkYzZhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS90cmFjay1lbmRlZC13aGlsZS1tdXRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vdHJhY2stZW5kZWQtd2hpbGUtbXV0ZWQuaHRtbApAQCAtMTEsMTMgKzEx
LDEzIEBACiBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCBzdHJlYW0g
PSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9
KTsKICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwotICAgIGlm
ICghd2luZG93LmludGVybmFscykKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAg
ICByZXR1cm47CiAKICAgICBjb25zdCBjbG9uZSA9IHRyYWNrLmNsb25lKCk7CiAKICAgICBsZXQg
cHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25tdXRl
ID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkgfSk7
Ci0gICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJhY2ssIHRy
dWUpOworICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFs
c2UsIHRydWUpOwogICAgIGF3YWl0IHByb21pc2U7CiAKICAgICB0cmFjay5zdG9wKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWQ2NDkwMTk1OTYz
MGRlODhmMGQxNWFjYjkwY2I5MGNiMTgzNjc1NS4uN2E1ZjQ4NmM3ZjBmMmM1MmIxYTNhMzc4Nzll
Nzk3Nzg1M2RmMDViNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNzk4LDYgKzc5OCw3IEBAIHdlYmtpdC5vcmcvYi8yMTM2OTkgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjCiB3ZWJraXQu
b3JnL2IvMjMwNDE1IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY29ubmVj
dGlvbnN0YXRlY2hhbmdlLWV2ZW50Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHRtbCBbIEZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzE4NzYwMyBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10
cmFjay1zb3VyY2UtZmFpbHVyZS5odG1sIFsgVGltZW91dCBGYWlsdXJlIFBhc3MgXQorZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRp
by5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMjM1MDggaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVs
ZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCg==
</data>
<flag name="commit-queue"
          id="481525"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453985</attachid>
            <date>2022-03-07 07:59:39 -0800</date>
            <delta_ts>2022-03-07 08:13:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237524-20220307165938.patch</filename>
            <type>text/plain</type>
            <size>55051</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyZGM0ODMzNTA2MzNiNWEyYzJhNjFk
ZWVkZDY3ODE5NWIxMjlhYzEuLmIxNmY2ODQ4NTEzNTJkN2U2YmU5MDBmOTk4NzI2ZGU1Y2E4MjNi
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBj
YXB0dXJlIGluIGNhc2UgYXVkaW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1MjQKKyAgICAgICAgPHJk
YXI6Ly83ODQyMTI4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1s
OgorCiAyMDIyLTAzLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBudWxsIGNoZWNrIGZvciBwYXRoIGluIG1ha2VBbGxEaXJlY3RvcmllcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGUxYmM3MzkzOTRiMzFjMmViZmQ2ZTRiYWNmNWJkNzczYWFkZTVlNzAuLjEyYTBmNGVl
NzRkODVhMzVhNTYzMTFmZTdiYTM4MDBlYzBjN2Q4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NSBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRp
byBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8cmRhcjovLzc4NDIxMjgyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGNhc2Ugd2Ug
ZGV0ZWN0IHRoYXQgYSBtaWNyb3Bob25lIHRyYWNrIHNvdXJjZSBnZXRzIG11dGVkIGR1ZSB0byBp
bnRlcnJ1cHRpb24sIHdlIG11dGUKKyAgICAgICAgY2FwdHVyZSB2aWRlbyB0cmFja3MgYmFzZWQg
aWYgYWxsb3dlZCBieSB0aGUgbmV3IE11dGVDYW1lcmFPbk1pY3JvcGhvbmVJbnRlcnJ1cHRpb25F
bmFibGVkIHNldHRpbmcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1vY2sgbWljcm9waG9u
ZSBpbnRlcnJ1cHRpb24gYW5kIHJlbW92ZSBwcmV2aW91cyBpbiBwcm9jZXNzIGludGVybmFscyBB
UEkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8t
dHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRNZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMi0wMy0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBQdXNoIEhUTUxNZWRpYUVsZW1lbnQgcmVuZGVyZXIn
cyBjb250ZW50Qm94IHJlY3QgdG8gR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGVjZDFlNjJkMWIz
ZWQ0NTA4YTUzNzA5ZGNmNjA3NjhmOWQ2ZTg4OC4uMDY5ZjU0Y2VmYTRiNzA4YzdiOGExZTNiOGIy
NmFjMTI5NzYzYTk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAyMi0wMy0wNyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5j
ZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJy
dXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NzUyNAorICAgICAgICA8cmRhcjovLzc4NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpbnRlcnJ1cHQgbW9jayBt
aWNyb3Bob25lIGRldmljZXMuCisgICAgICAgIFNlbmQgdG8gV2ViUHJvY2VzcyBzb3VyY2VzIHdo
ZXRoZXIgc291cmNlcyBhcmUgaW50ZXJydXB0ZWQgZWFjaCB0aW1lIHRoZSBzb3VyY2UgbXV0ZWQg
dmFsdWUgY2hhbmdlcy4KKyAgICAgICAgU3RvcmUgdGhhdCB2YWx1ZSBpbiByZW1vdGUgc291cmNl
cy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6CisgICAgICAgICogR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLm1lc3NhZ2VzLmluOgorCiAyMDIyLTAzLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIExheWVyIHRyZWUgY2FuIGdldCBpbmRl
ZmluaXRlbHkgZnJvemVuIGlmIFdLV2ViVmlldyBpcyB1bnBhcmVudGVkIHVuZGVybmVhdGggLVtV
SVdpbmRvdyBkZWFsbG9jXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKaW5kZXggODNiZWExZjdkZjZkNThk
NjcwNzk3YTVhZjNhNjIyNjU4ZmNhOTVkMS4uMzk5ZDUwODlmM2UzZjM4M2RjNWNlY2NkNDUwN2Y4
NTUwZGRjZmNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBAIC02NDAsNiArNjQwLDE4IEBAIE1v
dXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQ6CiAgICAgV2ViS2l0OgogICAgICAgZGVmYXVsdDog
ZmFsc2UKIAorTXV0ZUNhbWVyYU9uTWljcm9waG9uZUludGVycnVwdGlvbkVuYWJsZWQ6CisgIHR5
cGU6IGJvb2wKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICBkZWZhdWx0VmFs
dWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6
CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWSkiOiB0cnVlCisgICAgICBkZWZhdWx0OiBmYWxz
ZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBOUEFQSVBsdWdJbnNFbmFi
bGVkRm9yVGVzdGluZ0luV2ViS2l0TGVnYWN5OgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiTlBBUEkgUGx1Zy1JbnMgRW5hYmxlZCBJbiBXZWJLaXRMZWdhY3kiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAppbmRleCBhNDVkMTllNTQ3Mzk5NTZkYjc4MDYzYzdjYWJlOGE4ZTBmMTA0ZDRkLi43NGE4
ZDdjZWE3ZjRiMWYwMGY2ZWM3YTAwNDAwOGYxYzUzNGMyM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAg
LTkxLDYgKzkxLDcgQEAgTWVkaWFTdHJlYW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayhTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVkaWFTdHIKICAgICBpZiAoIWlzQ2FwdHVy
ZVRyYWNrKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1faXNJbnRlcnJ1cHRlZCA9IG1fcHJp
dmF0ZS0+c291cmNlKCkuaW50ZXJydXB0ZWQoKTsKICAgICBhbGxDYXB0dXJlVHJhY2tzKCkuYWRk
KHRoaXMpOwogCiAgICAgaWYgKG1fcHJpdmF0ZS0+aGFzQXVkaW8oKSkKQEAgLTUwOSw2ICs1MTAs
MTggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRl
ZFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKICNlbmRpZgogfQogCitzdGF0aWMgdm9pZCB1cGRh
dGVWaWRlb0NhcHR1cmVBY2NvcmRpbmdNaWNyb3Bob25lSW50ZXJydXB0aW9uKERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCkKK3sKKyAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQucGFnZSgpOworICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2Fw
dHVyZVRyYWNrcygpKSB7CisgICAgICAgIGlmICghY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpIHx8
IGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKS0+cGFnZSgpICE9IHBhZ2UpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgYXV0byYgc291cmNlID0gY2FwdHVyZVRyYWNrLT5zb3VyY2UoKTsK
KyAgICAgICAgaWYgKCFzb3VyY2UuaXNFbmRlZCgpICYmIHNvdXJjZS50eXBlKCkgPT0gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pCisgICAgICAgICAgICBzb3VyY2Uuc2V0TXV0ZWQo
aXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOworICAgIH0KK30KKwogdm9pZCBNZWRpYVN0cmVhbVRy
YWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKIHsKICAgICBBU1NFUlQoaXNDYXB0dXJlVHJh
Y2soKSk7CkBAIC02MTIsNyArNjI1LDggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja0Vu
ZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKICAgICAKIHZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewotICAgIGlm
IChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdG9wcGVkKCkg
fHwgbV9lbmRlZCkKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAg
aWYgKGRvY3VtZW50LT5hY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpIHx8IG1fZW5kZWQpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywg
VGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIG11dGVkID0gbV9wcml2YXRlLT5tdXRlZCgp
XSB7CkBAIC02MjIsNiArNjM2LDEyIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tNdXRl
ZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogICAgICAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUobXV0ZWQgPyBldmVudE5hbWVzKCkubXV0ZUV2ZW50IDogZXZlbnROYW1l
cygpLnVubXV0ZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKICAgICB9KTsKICAgICBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOworCisgICAg
YXV0byYgc291cmNlID0gbV9wcml2YXRlLT5zb3VyY2UoKTsKKyAgICBpZiAoc291cmNlLnR5cGUo
KSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAmJiBzb3VyY2UuaW50ZXJydXB0
ZWQoKSAhPSBtX2lzSW50ZXJydXB0ZWQgJiYgZG9jdW1lbnQtPnNldHRpbmdzKCkubXV0ZUNhbWVy
YU9uTWljcm9waG9uZUludGVycnVwdGlvbkVuYWJsZWQoKSkgeworICAgICAgICBtX2lzSW50ZXJy
dXB0ZWQgPSBzb3VyY2UuaW50ZXJydXB0ZWQoKTsKKyAgICAgICAgdXBkYXRlVmlkZW9DYXB0dXJl
QWNjb3JkaW5nTWljcm9waG9uZUludGVycnVwdGlvbigqZG9jdW1lbnQsIG1faXNJbnRlcnJ1cHRl
ZCk7CisgICAgfQogfQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrU2V0dGluZ3NDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggYzlhNDM4NTkzNTlh
YTRkOGY3MGZiZjQ1NTI5YjFhNmU1N2ZiMWI5MC4uMDcwZjdkYzA5MDZjNTQ5OTliMmNiZWY2ZWRk
MzZlZjNlOTBlZjBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTIwOCw2ICsyMDgsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuZGVkIHsgZmFsc2UgfTsK
ICAgICBjb25zdCBib29sIG1faXNDYXB0dXJlVHJhY2sgeyBmYWxzZSB9OworICAgIGJvb2wgbV9p
c0ludGVycnVwdGVkIHsgZmFsc2UgfTsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrPj4gTWVkaWFTdHJlYW1UcmFja1ZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKaW5kZXggZGUwZjFhN2E0ZTYzNWExMzllNDgyOGI1NDdmZGNmMDY2MTliMzVhYi4uODEwOWMx
ODliNzI2MTJjMmNmOGEwNzZmMTk3YWEwY2JjMmMxMGZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKQEAgLTEzNCwxMSArMTM0LDYgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpub3RpZnlN
dXRlZENoYW5nZShib29sIG11dGVkKQogICAgIG5vdGlmeU11dGVkT2JzZXJ2ZXJzKCk7CiB9CiAK
LXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJvb2wg
aW50ZXJydXB0ZWQpCi17Ci0gICAgbm90aWZ5TXV0ZWRDaGFuZ2UoaW50ZXJydXB0ZWQpOwotfQot
CiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlv
bjx2b2lkKE9ic2VydmVyJik+JiBhcHBseSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGIyNTkzNzY3OWFiOTI3MGYxOWI2MmZmNDBkNTI1MTE0
M2I2OWFiNDQuLjg5MTNiNWM1ZDNiZDVmODk1ZWUxODM2YWIwYjdkYWZmYjc3YTQ3MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmgKQEAgLTIxNyw3ICsyMTcsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBUZXN0
aW5nIG9ubHkKICAgICB2aXJ0dWFsIHZvaWQgZGVsYXlTYW1wbGVzKFNlY29uZHMpIHsgfTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJvb2wpOwogCiAgICAgdmly
dHVhbCBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDlhMGIyOWVkYjFkMTc4
MTU2NTQ1MGY1OGRlOTA5ZjY4Yzg3M2VhMDMuLmU2MzBjNGM1YzAyOWUyNjI2OTRmZTRjMDc1NmE3
ODk4MTE2YzJmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTcw
MiwxNSArNzAyLDYgQEAgY29uc3QgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6dW5pdCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fb3ZlcnJpZGVVbml0ID8gKm1fb3Zl
cnJpZGVVbml0IDogQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCk7CiB9CiAKLXZvaWQg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJvb2wgaXNJ
bnRlcnJ1cHRlZCkKLXsKLSAgICBpZiAoaXNJbnRlcnJ1cHRlZCkgewotICAgICAgICB1bml0KCku
c3VzcGVuZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHVuaXQoKS5yZXN1bWUoKTsK
LX0KLQogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6YmVnaW5JbnRlcnJ1cHRp
b24oKQogewogICAgIGVuc3VyZU9uTWFpblRocmVhZChbXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaAppbmRleCAzMzAzNmU5OTZmNjczZTUyNzAyMzg1YjQxZTBhOTNmMTgwMzUxZjk5
Li42ZTE3OTFjZTk4MTRmYWQ5NGExMzMzNmVkNTRhYWQwZjEwY2U4YjUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTc0LDcgKzc0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAKICAgICB2b2lkIGRlbGF5U2FtcGxlcyhTZWNv
bmRzKSBmaW5hbDsKLSAgICB2b2lkIHNldEludGVycnVwdGVkRm9yVGVzdGluZyhib29sKSBmaW5h
bDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPGludD4+IGRpc2NyZXRlU2FtcGxlUmF0ZXMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB7IHsgODAwMCwgMTYwMDAsIDMyMDAwLCA0NDEwMCwgNDgw
MDAsIDk2MDAwIH0gfTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGQwODk0ZDVkNGZlODI1Zjhi
MDZkNmM5MjhhYWYwOTg2Mzc3Y2M0YjIuLjJhYWUxOTFjMTdlZjNlY2E3YWEwMDdhM2EyOGI1YTEx
YWVhY2NhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUg
IlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJNb2NrQXVkaW9TaGFyZWRVbml0LmgiCisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPU19GQU1JTFkpICYmICFVU0UoR1NUUkVBTUVSKQpAQCAtMTgwLDYgKzE4NCwxNyBA
QCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpkZWxheVNhbXBsZXMoU2Vjb25kcyBkZWx0
YSkKICAgICBtX2RlbGF5VW50aWwgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIGRlbHRhOwogfQog
Cit2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXRJc0ludGVycnVwdGVkKGJvb2wgaXNJ
bnRlcnJ1cHRlZCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaXNJbnRlcnJ1cHRlZCk7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgaWYgKGlzSW50ZXJydXB0ZWQpCisgICAgICAgIE1vY2tBdWRpb1No
YXJlZFVuaXQ6OnNpbmdsZXRvbigpLnN1c3BlbmQoKTsKKyAgICBlbHNlCisgICAgICAgIE1vY2tB
dWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnJlc3VtZSgpOworI2VuZGlmCit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlLmgKaW5kZXggZjBkYWRmNzFkMmQwMzUzNWE2ODJlNTBjNzliOTQyNDJkMDg2OGZmOC4uNTVm
OWVkMmE2YzI4OTQ4ZDQwY2U4MDY0OGY1MGRkODc3Y2UzNjllMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAt
NDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZSgpOwogCisgICAgc3RhdGljIHZvaWQgc2V0SXNJbnRlcnJ1cHRlZChib29sKTsKKwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkKTsKIAogcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCAwOTJkMmZlNjExOTM0OGY5
ODY1YTg4ZmIyNzkxZTNhMmQ3MTRhNDAxLi5jMzlmYTdiY2U0M2MzN2ViM2RlYjcxM2U5N2Q5ZTky
MDljYjJmYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMzE3LDkgKzMxNywx
MCBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpyZXNldERldmljZXMoKQog
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNhcHR1cmVEZXZpY2Vz
Q2hhbmdlZCgpOwogfQogCi12b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRN
b2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sIGlzSW50ZXJydXB0ZWQpCit2b2lkIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChi
b29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7
Ci0gICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1
cHRlZCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQoaXND
YW1lcmFJbnRlcnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldElzSW50
ZXJydXB0ZWQoaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogfQogCiB2b2lkIE1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzZXREZXZpY2VzKFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+JiYg
bmV3TW9ja0RldmljZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggN2ZhYzg5OTRlZDNh
YjgwM2Q4YTZhYjVjNTQ3MDk1YWI5MTIxMmI2My4uNjk5ODg0ZjMxMTljMmI0ZjFjZjgyOTA2MzAw
YWRjNTZmMzNkMjViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNDcsNyArNDcsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgYWRkRGV2aWNlKGNvbnN0
IE1vY2tNZWRpYURldmljZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlbW92
ZURldmljZShjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgcmVzZXREZXZpY2VzKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVy
YUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKIAogICAgIHZvaWQg
c2V0TW9ja0F1ZGlvQ2FwdHVyZUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc01vY2tBdWRp
b0NhcHR1cmVFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRNb2NrVmlkZW9DYXB0
dXJlRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzTW9ja1ZpZGVvQ2FwdHVyZUVuYWJsZWQg
PSBpc0VuYWJsZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAzZTEy
ZWM4ZjYwZDExNTNlNzUyZTFiNmNjM2EzMjI4ZGZhYWE2NDc3Li5hMWVmMDAyODllNWE4NjMyNmYy
MmIxYzgyMDdhNzY2YTQ0NDFiMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC01NTgzLDExICs1NTgzLDYgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE1lZGlhU3RyZWFtVHJh
Y2tJZGVudGlmaWVyKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBTdHJpbmcmJgogICAgIHRyYWNr
LnNldElkRm9yVGVzdGluZyhXVEZNb3ZlKGlkKSk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpzZXRN
ZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBib29s
IGludGVycnVwdGVkKQotewotICAgIHRyYWNrLnNvdXJjZSgpLnNldEludGVycnVwdGVkRm9yVGVz
dGluZyhpbnRlcnJ1cHRlZCk7Ci19Ci0KIGJvb2wgSW50ZXJuYWxzOjppc01lZGlhU3RyZWFtU291
cmNlSW50ZXJydXB0ZWQoTWVkaWFTdHJlYW1UcmFjayYgdHJhY2spIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHRyYWNrLnNvdXJjZSgpLmludGVycnVwdGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAppbmRleCBjZTk5OGMzNDdlNDVjMmRmMzA5YjU5MGJmMmNhYWE1ZTc1NjBkODZkLi5jOTdk
MThhNGUyMWRlOTA0MmUxY2FkYjVlOTFkYTlmYjdkNGFmZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKQEAgLTg3OCw3ICs4NzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVN
ZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtJiwgTWVkaWFTdHJlYW1UcmFjayYpOwogICAgIHZv
aWQgc2ltdWxhdGVNZWRpYVN0cmVhbVRyYWNrQ2FwdHVyZVNvdXJjZUZhaWx1cmUoTWVkaWFTdHJl
YW1UcmFjayYpOwogICAgIHZvaWQgc2V0TWVkaWFTdHJlYW1UcmFja0lkZW50aWZpZXIoTWVkaWFT
dHJlYW1UcmFjayYsIFN0cmluZyYmIGlkKTsKLSAgICB2b2lkIHNldE1lZGlhU3RyZWFtU291cmNl
SW50ZXJydXB0ZWQoTWVkaWFTdHJlYW1UcmFjayYsIGJvb2wpOwogICAgIGJvb2wgaXNNZWRpYVN0
cmVhbVNvdXJjZUludGVycnVwdGVkKE1lZGlhU3RyZWFtVHJhY2smKSBjb25zdDsKICAgICBib29s
IGlzTWVkaWFTdHJlYW1Tb3VyY2VFbmRlZChNZWRpYVN0cmVhbVRyYWNrJikgY29uc3Q7CiAgICAg
Ym9vbCBpc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDQyOGYzYjMyYWI5NjIxZDE0YmI2NGM0ZDdkYmY1
NGRkNmEzMjc0MDUuLjEzMjI4ZDNiZTlmMjQ3ZDY3MjhkYzNmN2UwZTU2OGE0YzEyMGE5NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkyNSw3ICs5MjUsNiBAQCB0eXBl
ZGVmIChGZXRjaFJlcXVlc3Qgb3IgRmV0Y2hSZXNwb25zZSkgRmV0Y2hPYmplY3Q7CiAgICAgW0Nv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTV0gdW5kZWZpbmVkIHJlbW92ZU1lZGlhU3RyZWFtVHJhY2so
TWVkaWFTdHJlYW0gc3RyZWFtLCBNZWRpYVN0cmVhbVRyYWNrIHRyYWNrKTsKICAgICBbQ29uZGl0
aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2ltdWxhdGVNZWRpYVN0cmVhbVRyYWNrQ2Fw
dHVyZVNvdXJjZUZhaWx1cmUoTWVkaWFTdHJlYW1UcmFjayB0cmFjayk7CiAgICAgW0NvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTV0gdW5kZWZpbmVkIHNldE1lZGlhU3RyZWFtVHJhY2tJZGVudGlmaWVy
KE1lZGlhU3RyZWFtVHJhY2sgdHJhY2ssIERPTVN0cmluZyBpZGVudGlmaWVyKTsKLSAgICBbQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0TWVkaWFTdHJlYW1Tb3VyY2VJbnRl
cnJ1cHRlZChNZWRpYVN0cmVhbVRyYWNrIHRyYWNrLCBib29sZWFuIGludGVycnVwdGVkKTsKICAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSBib29sZWFuIGlzTWVkaWFTdHJlYW1Tb3VyY2VJ
bnRlcnJ1cHRlZChNZWRpYVN0cmVhbVRyYWNrIHRyYWNrKTsKICAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNXSBib29sZWFuIGlzTWVkaWFTdHJlYW1Tb3VyY2VFbmRlZChNZWRpYVN0cmVhbVRy
YWNrIHRyYWNrKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSBib29sZWFuIGlzTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUHJvY2Vzcy5jcHAKaW5kZXggZmZlMGFjZDgxMjMyNmEzYTA3YjJhNTIzNzhiYTdmNjFl
YTAwMGQ4NC4uOTM4NjAwOTI2Zjg3NWU4MzNkMTcwYTgzMGNlMGIwYTU4NmE0OGFjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzUxLDkgKzM1MSw5IEBAIHZv
aWQgR1BVUHJvY2Vzczo6cmVzZXRNb2NrTWVkaWFEZXZpY2VzKCkKICAgICBNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6cmVzZXREZXZpY2VzKCk7CiB9CiAKLXZvaWQgR1BVUHJvY2Vzczo6
c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQordm9pZCBHUFVQ
cm9jZXNzOjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50
ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlzSW50ZXJy
dXB0ZWQpOworICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FwdHVy
ZURldmljZXNJbnRlcnJ1cHRlZChpc0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRl
cnJ1cHRlZCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggOTEwYThiOGEyZTliYzE0Mjg0YjdiZmQ3YzZm
MGE4MzUwNmYzN2Q1MS4uNTNiZTVkODc0YmEwZjY0OTA4YTRjNGI4YzIzZGE0M2I0M2JhZjI5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCkBAIC0xNTIsNyArMTUyLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNsZWFyTW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgcmVt
b3ZlTW9ja01lZGlhRGV2aWNlKGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElkKTsKICAgICB2b2lk
IHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJy
dXB0ZWQoYm9vbCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChi
b29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwog
ICAgIGJvb2wgc2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogI2Vu
ZGlmCiAjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOGU5OTI5YTUzNWI0
MWUyZDE2N2YyMWU1YjNlZjMyNWJkNWM4MjNjZC4uYTYzMTdmYmQ0NjBlNzhkNTg3NTIxM2YxNzQ3
YzY2OTZlYWNlZDNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTM5LDExICszOSwxMSBAQCBtZXNzYWdlcyAtPiBHUFVQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBVcGRhdGVTYW5kYm94QWNjZXNzKFZlY3RvcjxXZWJLaXQ6
OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gZXh0ZW5zaW9ucyk7CiAgICAgVXBkYXRlQ2FwdHVy
ZUFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJlLCBib29sIGFsbG93VmlkZW9DYXB0dXJlLCBi
b29sIGFsbG93RGlzcGxheUNhcHR1cmUsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nl
c3NJRCkgLT4gKCkgQXN5bmMKICAgICBVcGRhdGVDYXB0dXJlT3JpZ2luKHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2Vzc0lEKQotICAgIEFkZE1vY2tNZWRpYURldmljZShzdHJ1Y3QgV2ViQ29yZTo6TW9j
a01lZGlhRGV2aWNlIGRldmljZSk7Ci0gICAgQ2xlYXJNb2NrTWVkaWFEZXZpY2VzKCk7Ci0gICAg
UmVtb3ZlTW9ja01lZGlhRGV2aWNlKFN0cmluZyBwZXJzaXN0ZW50SWQpOwotICAgIFJlc2V0TW9j
a01lZGlhRGV2aWNlcygpOwotICAgIFNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJ
bnRlcnJ1cHRlZCk7CisgICAgQWRkTW9ja01lZGlhRGV2aWNlKHN0cnVjdCBXZWJDb3JlOjpNb2Nr
TWVkaWFEZXZpY2UgZGV2aWNlKQorICAgIENsZWFyTW9ja01lZGlhRGV2aWNlcygpCisgICAgUmVt
b3ZlTW9ja01lZGlhRGV2aWNlKFN0cmluZyBwZXJzaXN0ZW50SWQpCisgICAgUmVzZXRNb2NrTWVk
aWFEZXZpY2VzKCkKKyAgICBTZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlz
Q2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiAjZW5kaWYK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgRGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGly
ZWN0RGlzcGxheUlEIGRpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzIGZsYWdz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggODliMWViZmMy
MzFmMGI3MjJkMzAxMThjOTA2YTk2OTQ4YzhhOGY1Zi4uZTI1NDkyNmRjNTFhNDlhZWJhNDk4ZDc5
NDlhYWZjODA3YTRiNzIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCkBAIC0zMTM5LDE1ICszMTM5LDE1IEBAIGJvb2wgV0tQYWdlSXNNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlckVuYWJsZWQoV0tQYWdlUmVmKQogI2VuZGlmCiB9CiAKLXZvaWQgV0tQYWdl
U2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgaXNJbnRl
cnJ1cHRlZCkKK3ZvaWQgV0tQYWdlU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoV0tQ
YWdlUmVmIHBhZ2VSZWYsIGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhv
bmVJbnRlcnJ1cHRlZCkKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGF1dG8mIGdwdVByb2Nlc3Mg
PSB0b0ltcGwocGFnZVJlZiktPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmVuc3VyZUdQVVByb2Nl
c3MoKTsKLSAgICBncHVQcm9jZXNzLnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlzSW50ZXJy
dXB0ZWQpOworICAgIGdwdVByb2Nlc3Muc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQo
aXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEdTVFJFQU1FUikKLSAgICB0b0ltcGwocGFn
ZVJlZiktPnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlzSW50ZXJydXB0ZWQpOworICAgIHRv
SW1wbChwYWdlUmVmKS0+c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoaXNDYW1lcmFJ
bnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCAyZGM0OWI0
YzIxMTVmZWFhYTllZTRhNDBiMDlkMTAwODc5YjdhYjZmLi4wZjcwZDdlMDgxYTEwZjg3OTMwNGEz
NGI5YzFmNTYzYjJmYjIyNWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlUHJpdmF0ZS5oCkBAIC0yMDEsNyArMjAxLDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tQYWdl
U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdlUmVm
IHAKIAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBvcmllbnRhdGlvbik7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJ
c01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYgcGFnZSk7Ci1X
S19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChXS1BhZ2VSZWYg
cGFnZSwgYm9vbCBpc0ludGVycnVwdGVkKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldE1vY2tD
YXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKFdLUGFnZVJlZiBwYWdlLCBib29sIGlzQ2FtZXJhSW50
ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogCiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGdW5jdGlvbikoV0tBcnJheVJlZiBkb21h
aW5zLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlTG9hZGVk
U3VicmVzb3VyY2VEb21haW5zKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VMb2FkZWRTdWJyZXNvdXJj
ZURvbWFpbnNGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWQwNzU4MjE3NTEwMTM1N2UwNTViMTE0MjY4ODky
ZmE3YzczYzk0Ni4uNzg3YmIxMjFlNzRjNjY5NjU4MThiNjIwNDliMjFmZTliOTVlNzJmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgog
ICAgIH0KIAogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWwgewotICAgICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3Vy
Y2VNdXRlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPm11dGVkKCkpLCAwKTsKKyAgICAgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNl
TXV0ZWRDaGFuZ2VkKG1faWQsIG1fc291cmNlLT5tdXRlZCgpLCBtX3NvdXJjZS0+aW50ZXJydXB0
ZWQoKSksIDApOwogICAgIH0KIAogICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKCkgZmlu
YWwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCAyMzJjNTcyNjUxMTM5NDU3ODU2ODA2YzU0NzlkNjI3YzQ4NDQxMDU4Li42ZjgyMzI4
NTEwN2Q5MjdhODRjZGUxNWQ3YzhiYTk4ZTU0NWE3MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzUwLDkgKzM1MCw5IEBAIHZv
aWQgR1BVUHJvY2Vzc1Byb3h5OjpyZXNldE1vY2tNZWRpYURldmljZXMoKQogICAgIHNlbmQoTWVz
c2FnZXM6OkdQVVByb2Nlc3M6OlJlc2V0TW9ja01lZGlhRGV2aWNlcyB7IH0sIDApOwogfQogCi12
b2lkIEdQVVByb2Nlc3NQcm94eTo6c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBpc0lu
dGVycnVwdGVkKQordm9pZCBHUFVQcm9jZXNzUHJveHk6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0lu
dGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRl
cnJ1cHRlZCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpTZXRNb2NrQ2FtZXJh
SXNJbnRlcnJ1cHRlZCB7IGlzSW50ZXJydXB0ZWQgfSwgMCk7CisgICAgc2VuZChNZXNzYWdlczo6
R1BVUHJvY2Vzczo6U2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQgeyBpc0NhbWVyYUlu
dGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCB9LCAwKTsKIH0KICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc1Byb3h5LmgKaW5kZXggMDA2MjU1ZDFmNjY2ZThjNDI0ZDBjY2I2ZWZjZGVjYTFjODJj
NzlhYS4uNDQzZTliN2E0NjZhZmU1MWU4ODRiNGY5NDM4YzRjYzY1ZDczYjhkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApAQCAtODYsNyArODYs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck1vY2tNZWRpYURldmljZXMoKTsKICAgICB2b2lk
IHJlbW92ZU1vY2tNZWRpYURldmljZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlc2V0TW9j
a01lZGlhRGV2aWNlcygpOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9v
bCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2Ft
ZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogICAgIHZvaWQg
dXBkYXRlU2FuZGJveEFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJlLCBib29sIGFsbG93Vmlk
ZW9DYXB0dXJlLCBib29sIGFsbG93RGlzcGxheUNhcHR1cmUpOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJmZGRiODQ5NTJkMDg4OWE4ODI1
NGU0NzdiZmYyMzIwYjYwZjAxZGMuLjc1ZTI0NjY1NzYzMWJmZmQyMDE3ZDY2ZWJjZmFkNWYzNjIz
N2JmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTA4
ODIsOSArMTA4ODIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3JpZW50YXRpb25Gb3JNZWRp
YUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKSAmJiBVU0UoR1NUUkVBTUVSKQotdm9pZCBXZWJQYWdlUHJveHk6OnNldE1vY2tDYW1lcmFJ
c0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRN
b2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJv
b2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6U2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1cHRlZCkpOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzQ2Ft
ZXJhSW50ZXJydXB0ZWQsIGlzTWljcm9waG9uZUludGVycnVwdGVkKSk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3OGQ1NGQ4MWRmMWI1ODcw
MGIxYjQwNWVhZjU3YjkwYTBlZmNjZThiLi44ODlhMWE5NjgwMjMzNjc4NmZmOTkxOTIyYzliOTI5
YzNmMmE2YTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTg5
Miw3ICsxODkyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3JpZW50YXRpb25Gb3JNZWRpYUNh
cHR1cmUodWludDY0X3QpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEdTVFJF
QU1FUikKLSAgICB2b2lkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wpOworICAgIHZv
aWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVw
dGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKICNlbmRpZgogCiAgICAgYm9vbCBp
c0hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGlu
Z1ByZXZlbnRhYmxlVG91Y2hTdGFydENvdW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDA5ZGJhZThlMzEwNTQyMTZmZTk4OGY2MGI5ZjQ2
NGNjYzdkYjlmNjkuLjMyZmY5YzM2YTI2M2M4NzE4MTJjNjJjNWYwODk3MjRiODBiYjIwZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00OTE0
LDkgKzQ5MTQsOSBAQCB2b2lkIFdlYlBhZ2U6OnNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJl
KHVpbnQ2NF90IHJvdGF0aW9uKQogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldE1vY2tD
YW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgV2ViUGFnZTo6c2V0
TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBi
b29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIE1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChpc0ludGVycnVwdGVkKTsKKyAg
ICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50
ZXJydXB0ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwog
fQogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNWViYWVjNDViYTAyNGFkNGJmMmYyYjllNjFlMmM0ZDVh
Y2VkZDk3Li4xZTE0NzUyNTA0ZmFkNTQwYjk4NzVlNWRjNzIyYmU0ZDRjZThkYjc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjQ0LDcgKzEyNDQs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoR1NU
UkVBTUVSKQogICAgIHZvaWQgc2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qg
cm90YXRpb24pOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7Cisg
ICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50
ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2VuZGlmCiAKICAgICB2
b2lkIGFkZFVzZXJTY3JpcHQoU3RyaW5nJiYgc291cmNlLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkJiwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcywgV2ViQ29yZTo6VXNlclNj
cmlwdEluamVjdGlvblRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNmY1MjZlNDk5NThjMjZiZThkNzEyMjcw
MGY4YjUzNWFjMDg0NjMwMC4uYmVhNjQzOGE5N2U5MDc2Yzk2ODg0YTZlOTQyZTNlMWVmMzk3MDk0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC00MDcsNyArNDA3LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUK
ICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgU2V0
T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUoaW50IHJvdGF0aW9uKQotICAgIFNldE1vY2tDYW1l
cmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKKyAgICBTZXRNb2NrQ2FwdHVyZURl
dmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bo
b25lSW50ZXJydXB0ZWQpCiAjZW5kaWYKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRl
eCBhM2M0MWRjMDRhYWNlNWRkNGVhNzM5YTYwZjJhNTMwZTVlM2QwNzVlLi4yYTMzZjk3NjgwMzBh
MDZhNzhlNDhmMzBkN2FjYzYzYmViNmQzYmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKQEAgLTY4
LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOwogCiAg
ICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29u
c3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKLSAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29s
IHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQorICAgIHZvaWQgc291cmNlTXV0
ZWRDaGFuZ2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0ZWQpOwogCiBwcml2YXRlOgogICAg
IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKQEAg
LTg1LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFi
aWxpdGllczsgfQogICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nKT4mJiBjYWxsYmFjaykgZmluYWwgeyBtX3Byb3h5LndoZW5SZWFkeShXVEZNb3ZlKGNhbGxi
YWNrKSk7IH0KICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmRldmljZVR5cGUoKTsgfQorICAgIGJv
b2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmludGVycnVwdGVk
KCk7IH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6Q2xpZW50CkBAIC0xMDEsNiArMTAyLDEyIEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CiB9OwogCitpbmxpbmUgdm9p
ZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCBtdXRl
ZCwgYm9vbCBpbnRlcnJ1cHRlZCkKK3sKKyAgICBtX3Byb3h5LnNldEludGVycnVwdGVkKGludGVy
cnVwdGVkKTsKKyAgICBub3RpZnlNdXRlZENoYW5nZShtdXRlZCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAppbmRleCA1MmY1MzVi
M2Q3M2Q2ODk3NzhiOTVmMTk0N2Y4ZTcyZDgyOThkNmExLi5mOWM5MjI0NWEyMjRjZjUyZDQ1ODI2
NWVhNDY2ODMyZTFiY2JlMjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCkBAIC02Miw3ICs2
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKIAogICAgIHZv
aWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmIHNhbXBs
ZSwgV2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0YSkgeyB2aWRlb1NhbXBsZUF2
YWlsYWJsZShzYW1wbGUsIG1ldGFkYXRhKTsgfQotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2Vk
KGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CisgICAgdm9pZCBzb3Vy
Y2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKIHByaXZhdGU6
CiAgICAgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CkBAIC03OSw2ICs3
OSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7
IH0KICAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYg
Y2FsbGJhY2spIGZpbmFsIHsgbV9wcm94eS53aGVuUmVhZHkoV1RGTW92ZShjYWxsYmFjaykpOyB9
CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5kZXZpY2VUeXBlKCk7IH0KKyAgICBib29sIGludGVy
cnVwdGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5pbnRlcnJ1cHRlZCgpOyB9CiAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNs
aWVudApAQCAtOTUsNiArOTYsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKIH07CiAKK2lubGluZSB2b2lkIFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQsIGJvb2wg
aW50ZXJydXB0ZWQpCit7CisgICAgbV9wcm94eS5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCk7
CisgICAgbm90aWZ5TXV0ZWRDaGFuZ2UobXV0ZWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCmluZGV4IDRhMjk0
ZDhjNTQxNzFlNmUxMDA1YjNhNDA2NjU2YjI2YzE1OWMwNGQuLjI0NDZlMzk4ZThjMzY4NzhkNDE0
NDIwY2E1ZGJjN2JiNWU4NDUxODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3Bw
CkBAIC02MCwxMSArNjAsMTMgQEAgSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHk6OmNvbm5lY3Rpb24oKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKKyAgICBtX2ludGVycnVwdGVkID0gZmFs
c2U7CiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAK
IHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSgp
CiB7CisgICAgbV9pbnRlcnJ1cHRlZCA9IGZhbHNlOwogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEg
eyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaApp
bmRleCAwM2MxZDcxMjIyN2NkNWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYyLi41OWUyYzI4MzQ1
YzkwZjdkMmM0ZWE3ZjMwNmJhNDUwZjVhMTI1NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eS5oCkBAIC03MSw2ICs3MSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkRmFpbChTdHJp
bmcmJiBlcnJvck1lc3NhZ2UpOwogCisgICAgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1faW50ZXJydXB0ZWQ7IH0KKyAgICB2b2lkIHNldEludGVycnVwdGVkKGJvb2wgaW50ZXJy
dXB0ZWQpIHsgbV9pbnRlcnJ1cHRlZCA9IGludGVycnVwdGVkOyB9CisKIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAg
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9kZXZpY2U7CkBAIC04MSw2ICs4NCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OwogICAgIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7Cisg
ICAgYm9vbCBtX2ludGVycnVwdGVkIHsgZmFsc2UgfTsKIH07CiAKIGlubGluZSBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuaAppbmRleCAzMmE4YTExNTQ2NGIwYjY1YjdlYWYzYmYwZGI4MTdmZTFiOGY5YTk3
Li41YjQ2NTExZjQxODczMjQ4NmIzMjZlMGRiOWExZWU5NzE4OWFhMjczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZUZhaWxl
ZCgpIGZpbmFsOwogCiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRp
YVNhbXBsZSYsIFdlYkNvcmU6OkludFNpemUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEp
OwotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRD
aGFuZ2UodmFsdWUpOyB9CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSwg
Ym9vbCBpbnRlcnJ1cHRlZCk7CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwpAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRl
OgogICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHNhbXBsZVJvdGF0aW9u
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zYW1wbGVSb3RhdGlvbjsgfQogICAgIHZvaWQgc2V0
RnJhbWVSYXRlV2l0aFByZXNldChkb3VibGUsIFJlZlB0cjxXZWJDb3JlOjpWaWRlb1ByZXNldD4p
IGZpbmFsOwogICAgIGJvb2wgcHJlZmVyc1ByZXNldChXZWJDb3JlOjpWaWRlb1ByZXNldCYpIGZp
bmFsOworICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5
LmludGVycnVwdGVkKCk7IH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CkBAIC0xMTAsNiArMTExLDEyIEBAIHByaXZhdGU6CiAg
ICAgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9zYW1wbGVSb3RhdGlvbiB7
IFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCitpbmxp
bmUgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoYm9v
bCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKK3sKKyAgICBtX3Byb3h5LnNldEludGVycnVwdGVk
KGludGVycnVwdGVkKTsKKyAgICBub3RpZnlNdXRlZENoYW5nZShtdXRlZCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IGY2ODdk
OGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMuLjRjYTI1NGY0NmRlYmFkOWEyYzVk
NjFkN2U1YzhkOGEyZWJjMTY1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMTU0LDE4ICsx
NTQsMTggQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwdHVyZUZhaWxlZChSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGkKICAgICB9LCBbXShzdGQ6Om51bGxwdHJf
dCkgeyB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRD
aGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbXV0
ZWQpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBtdXRlZCwgYm9vbCBp
bnRlcnJ1cHRlZCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRp
Zmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fc291cmNlcy5lbmQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbbXV0ZWRdKFJlZjxSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+c291cmNlTXV0
ZWRDaGFuZ2VkKG11dGVkKTsKLSAgICB9LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11
dGVkKTsKLSAgICB9LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBz
b3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQpOworICAg
IHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgW211dGVkLCBpbnRlcnJ1cHRlZF0oUmVmPFJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5zb3VyY2VN
dXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsKKyAgICB9LCBbbXV0ZWQsIGludGVycnVw
dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBz
b3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCwgaW50ZXJydXB0ZWQpOworICAgIH0sIFtt
dXRlZCwgaW50ZXJydXB0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3Vy
Y2UpIHsKKyAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVw
dGVkKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aAppbmRleCA4Y2M1YjRmOTI2OWIyNDRkYjU5OTViN2I3NDQ0YjkxNTk3ZjE2YTgyLi5kOGZiODBi
NGZlOGRhZTc2OTk1NDgyYTIzOTE3ZDJmZWE1OTIwZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAt
MTI2LDcgKzEyNiw4IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyCiAgICAgdm9pZCBjYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIG11dGVkKTsKKyAgICB2
b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCk7CisKICAgICB2b2lkIHNvdXJjZVNl
dHRpbmdzQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlDb25z
dHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlD
b25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
U3RyaW5nJiYsIFN0cmluZyYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpp
bmRleCBhMDVmNmRkMmVhODdmOTBiY2VjZTVjNzY0Y2NjZGMxNTViNDQzZGU0Li45NzljY2UyNTg5
NjAwNTNmZTE0ZjcwZTZkMjM2MjAxOTBiMTZhZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw3IEBACiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICBDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAgIFNvdXJjZVN0b3BwZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCi0gICAgU291cmNlTXV0ZWRDaGFu
Z2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBib29sIG11dGVk
KQorICAgIFNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZCwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKICAgICBTb3VyY2VTZXR0
aW5nc0NoYW5nZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKICAgICBBcHBseUNv
bnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAg
QXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZCwgU3RyaW5nIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyBtZXNzYWdlKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE1YmMwNGNhNzQx
MmRlNjkwZGFmZGNkOGM1NjhiZjI4ODNkNDQ5MjMuLmFiZDllNzViZGZjNTZhNzE2ZTM1OTQ5Mzky
YmM1MjY5ODgxNDZkYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVv
IGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8
cmRhcjovLzc4NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpbnRlcnJ1cHQgbW9jayBtaWNyb3Bob25lIGRldmlj
ZXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorCiAyMDIyLTAz
LTA2ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGbGF0cGFr
IFNES10gRml4IGtleSBleHBpcmVkIHRyZWF0bWVudCB3aXRoIFB5dGhvbjMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCmluZGV4IGRkMzk3NjNhYzUxMjVhYWJlNjA0OTYyOTQ3ODBmMjA2YjEwYzI4
NzYuLmU1ZDE0OGFmN2VlZGIwMjRmOWZmOWZjNmY4N2EwODE0ZWM5MGE5N2UgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbApAQCAtMzg3LDcgKzM4Nyw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVy
IHsKICAgICB1bmRlZmluZWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7CiAgICAgdW5kZWZpbmVk
IHNldE1vY2tDYW1lcmFPcmllbnRhdGlvbih1bnNpZ25lZCBsb25nIG9yaWVudGF0aW9uKTsKICAg
ICBib29sZWFuIGlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCk7Ci0gICAg
dW5kZWZpbmVkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2xlYW4gaXNJbnRlcnJ1cHRl
ZCk7CisgICAgdW5kZWZpbmVkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2xl
YW4gaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbGVhbiBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7
CiAKICAgICBib29sZWFuIGhhc0FwcEJvdW5kU2Vzc2lvbigpOwogICAgIHVuZGVmaW5lZCBjbGVh
ckFwcEJvdW5kU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggMjkwMTRjMGRkNGYwOGUzNzY5OTkxNTli
NjNiMGE5Y2E3M2ZlZTMzMy4uNDYyOWNmNzIzZWEyYjM5MWZkOTQ5YzUzOWIyODFlYWJlZTkzNGU0
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCkBAIC0xODMyLDkgKzE4MzIsMTIgQEAgYm9vbCBUZXN0UnVubmVyOjppc01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpCiAgICAgcmV0dXJuIHBvc3RTeW5j
aHJvbm91c01lc3NhZ2VSZXR1cm5pbmdCb29sZWFuKCJJc01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyRW5hYmxlZCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tDYW1lcmFJc0lu
dGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0Nh
cHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlz
TWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIHBvc3RTeW5jaHJvbm91c01lc3NhZ2UoIlNl
dE1vY2tDYW1lcmFJc0ludGVycnVwdGVkIiwgaXNJbnRlcnJ1cHRlZCk7CisgICAgcG9zdFN5bmNo
cm9ub3VzTWVzc2FnZSgiU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQiLCBjcmVhdGVX
S0RpY3Rpb25hcnkoeworICAgICAgICB7ICJjYW1lcmEiLCBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0
ZShpc0NhbWVyYUludGVycnVwdGVkKSkgfSwKKyAgICAgICAgeyAibWljcm9waG9uZSIsIGFkb3B0
V0soV0tCb29sZWFuQ3JlYXRlKGlzTWljcm9waG9uZUludGVycnVwdGVkKSkgfSwKKyAgICB9KSk7
CiB9CiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggOTBmNWVlNDgxZjQ1MTAwZTM3YWM0
YmNkNWEyZDRhNzA1MmYxNGMxNi4uN2Y2OTE2NjI4YmNhMjhkZmQ4YWY2MTkzMzY0YzRkNGQzNzll
MDIxNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKQEAgLTQ5OSw3ICs0OTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldE1v
Y2tNZWRpYURldmljZXMoKTsKICAgICB2b2lkIHNldE1vY2tDYW1lcmFPcmllbnRhdGlvbih1bnNp
Z25lZCk7CiAgICAgYm9vbCBpc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgp
OwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7CisgICAgdm9pZCBz
ZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQs
IGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogCiAgICAgYm9vbCBoYXNBcHBCb3VuZFNl
c3Npb24oKTsKICAgICB2b2lkIGNsZWFyQXBwQm91bmRTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGZhNmI2OTFjNzRjODY1ZjllMWRlMzli
NzRlM2MxYmNlODQ1OGRlZWQuLjVmMDJiMGVlOGM4NTRmMzZlNzBlZTUyNjkzZWVmODBmNTQ3ZWU1
NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zNjIw
LDkgKzM2MjAsOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIFdLUGFnZUlzTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKG1fbWFpbldlYlZpZXctPnBhZ2UoKSk7CiB9CiAKLXZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRl
cnJ1cHRlZCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVy
cnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1
cHRlZCkKIHsKLSAgICBXS1BhZ2VTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChtX21haW5XZWJW
aWV3LT5wYWdlKCksIGlzSW50ZXJydXB0ZWQpOworICAgIFdLUGFnZVNldE1vY2tDYXB0dXJlRGV2
aWNlc0ludGVycnVwdGVkKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgaXNDYW1lcmFJbnRlcnJ1cHRl
ZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogfQogCiBzdHJ1Y3QgSW5BcHBCcm93c2VyUHJp
dmFjeUNhbGxiYWNrQ29udGV4dCB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggZTI0YWMzMjAzNGFkYjQ1YzJlOTc1OWQ4OThjMjgwYTVjNWQzNmU2ZC4uYThhMjQ5
N2Q2ZjY1YjQwODE2ZWRkODYxNjkyNTJmZTdiOWQyYjAzNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzEyLDcgKzMxMiw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgc2V0TW9ja0NhbWVyYU9yaWVudGF0
aW9uKHVpbnQ2NF90KTsKICAgICBib29sIGlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJF
bmFibGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29s
KTsKKyAgICB2b2lkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1l
cmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAgICAgYm9vbCBo
YXNBcHBCb3VuZFNlc3Npb24oKTsKIAogICAgIHZvaWQgaW5qZWN0VXNlclNjcmlwdChXS1N0cmlu
Z1JlZik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDk0
YTA0NmIyMDJlMjZkYmRiYTk5ZmFkNDgyZTQxYjMyOTQ5NDc3MzMuLmQ5ZTA2MGRhYzJhYjk5NDc3
NjQ4YzUyNTU3NzhmZTAzYzVjNTY3NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCkBAIC05NzMsOCArOTczLDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4g
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRC
CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJJc01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCIpKQogICAgICAgICByZXR1cm4gYWRv
cHRXSyhXS0Jvb2xlYW5DcmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmlzTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCkpKTsKICAgICAKLSAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldE1vY2tDYW1lcmFJc0ludGVy
cnVwdGVkIikpIHsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldE1vY2tD
YW1lcmFJc0ludGVycnVwdGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOworICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0TW9ja0NhcHR1cmVE
ZXZpY2VzSW50ZXJydXB0ZWQiKSkgeworICAgICAgICBhdXRvIG1lc3NhZ2VCb2R5RGljdGlvbmFy
eSA9IGRpY3Rpb25hcnlWYWx1ZShtZXNzYWdlQm9keSk7CisgICAgICAgIGJvb2wgaXNDYW1lcmFJ
bnRlcnJ1cHRlZCA9IGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keURpY3Rpb25hcnksICJjYW1lcmEi
KTsKKyAgICAgICAgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCA9IGJvb2xlYW5WYWx1ZSht
ZXNzYWdlQm9keURpY3Rpb25hcnksICJtaWNyb3Bob25lIik7CisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChpc0NhbWVy
YUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNlMjc2MGMwNzM4NzVhOGJmMzAxN2Q3MzEzYzAxYTA3
ZmIzNWI1YjEuLmZmYjY5YTg1NDAzZGEwZTdhNzg0OTg5NzZiOWU1ZWMyMjk2YjVmZmQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUg
aW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8cmRhcjovLzc4
NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQt
ZnJvbS1hdWRpby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJh
Y2staW50ZXJydXB0ZWQuaHRtbDogTWlncmF0ZWQgdG8gdGVzdFJ1bm5lciBBUEkuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS90cmFjay1lbmRlZC13aGlsZS1tdXRlZC5odG1sOgorICAgICAg
ICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0wNSAgQWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5vbi1zdGFuZGFyZCBk
aXNwbGF5OmJsb2NrIFVBIHN0eWxlc2hlZXQgcnVsZSBmb3IgPGxheWVyPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50ZXJydXB0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNr
LWludGVycnVwdGVkLmh0bWwKaW5kZXggOTBhM2VmYmNjNWM1YmZlMWY3OTIzZGNiOWI1NTU1MmFi
NjdmOGI0Yy4uMDhkY2IzNTM1Mjk5MmFlNDhmNjVjNmU2NmI2M2E5YmQ4OWUxODQ1NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50
ZXJydXB0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0
cmVhbS10cmFjay1pbnRlcnJ1cHRlZC5odG1sCkBAIC0xLDUgKzEsNCBAQAotPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFi
bGVkPWZhbHNlIENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZD1mYWxzZSBdIC0tPgotPCFE
T0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIENh
cHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBDYXB0dXJlVmlkZW9JbkdQVVByb2Nl
c3NFbmFibGVkPXRydWUgTXV0ZUNhbWVyYU9uTWljcm9waG9uZUludGVycnVwdGlvbkVuYWJsZWQ9
ZmFsc2UgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgpA
QCAtMTIsMTggKzExLDE4IEBACiAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAg
ICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHthdWRpbzogdHJ1ZX0pOwogICAgICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpWzBdOwotICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
bGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9u
bXV0ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUwMDAp
IH0pOwotICAgICAgICBpbnRlcm5hbHMuc2V0TWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1cHRlZCh0
cmFjaywgdHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50
ZXJydXB0ZWQoZmFsc2UsIHRydWUpOwogICAgICAgICBhd2FpdCBwcm9taXNlOwogCiAgICAgICAg
IGFzc2VydF90cnVlKHRyYWNrLm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKICAgICAgICAgYXNz
ZXJ0X3RydWUoaW50ZXJuYWxzLmlzTWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1cHRlZCh0cmFjayks
ICJzb3VyY2UgaXMgaW50ZXJydXB0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7IHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAgIGludGVy
bmFscy5zZXRNZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKHRyYWNrLCBmYWxzZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFsc2UsIGZh
bHNlKTsKICAgICAgICAgYXdhaXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfZmFsc2UodHJh
Y2subXV0ZWQsICJ0cmFjayBpcyBubyBsb25nZXIgbXV0ZWQiKTsKQEAgLTc0LDE0ICs3MywxNCBA
QAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHBhZ2VNZWRpYVN0YXRl
LmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlJyA6ICdIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2ZhbHNlKHBhZ2VNZWRpYVN0YXRlLmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFzQWN0aXZl
VmlkZW9DYXB0dXJlRGV2aWNlJyA6ICdIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UnKSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVN0YXRlID0gaW50ZXJuYWxzLnBhZ2VNZWRp
YVN0YXRlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1lZGlh
U3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJhY2ssIGZhbHNlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFs
c2UsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgfSkKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICAgICAgICAgICAgICAgICBwYWdlU3RhdGUgPSBpbnRlcm5hbHMucGFnZU1lZGlhU3RhdGUoKTsK
LSAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNlSW50ZXJy
dXB0ZWQodHJhY2ssIHRydWUpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldE1v
Y2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzVmlkZW8sICFpc1ZpZGVvKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIk11dGVk
IHN0YXRlIGRpZCBub3QgY2hhbmdlIGluIDEgc2Vjb25kIiksIDEwMDApOwogICAgICAgICAgICAg
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVh
bS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9tLWF1ZGlvLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVw
dGVkLWZyb20tYXVkaW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMTMzMDY4MmUxMmViMTA4
MTcwMDFkNDUxNjE0OTI0MTY1MTlmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9t
LWF1ZGlvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBNdXRlL3VubXV0ZSB2
aWRlbyB0cmFjayBpZiBhdWRpbyBnZXRzIGludGVycnVwdGVkCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVw
dGVkLWZyb20tYXVkaW8uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEt
c3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lYmZlYzVmZDE4M2UwNjY1NTg2NmIxYWZjNWE0M2E1NjQ3MDIzN2NhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJh
Y2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQ
RSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNz
RW5hYmxlZD10cnVlIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBNdXRlQ2Ft
ZXJhT25NaWNyb3Bob25lSW50ZXJydXB0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+VmlkZW8gY2FwdHVy
ZSBzb3VyY2UgaW50ZXJydXB0aW9uIGJhc2VkIG9uIGF1ZGlvIGludGVycnVwdGlvbjwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1
ZX0pOworICAgICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOwor
ICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0
cmFjay5vbm11dGUgPSByZXNvbHZlOyBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgibm8gbXV0ZSIp
LCA1MDAwKSB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRl
cnJ1cHRlZChmYWxzZSwgdHJ1ZSk7CisgICAgICAgIGF3YWl0IHByb21pc2U7CisKKyAgICAgICAg
YXNzZXJ0X3RydWUodHJhY2subXV0ZWQsICJ0cmFjayBpcyBtdXRlZCIpOworCisgICAgICAgIHBy
b21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9udW5tdXRl
ID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIHVubXV0ZSIpLCA1MDAwKSB9
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChm
YWxzZSwgZmFsc2UpOworICAgICAgICBhd2FpdCBwcm9taXNlOworCisgICAgICAgIGFzc2VydF9m
YWxzZSh0cmFjay5tdXRlZCwgInRyYWNrIGlzIG5vdCBtdXRlZCIpOworCisgICAgICAgIHRyYWNr
LnN0b3AoKTsKKyAgICB9LCAiTXV0ZS91bm11dGUgdmlkZW8gdHJhY2sgaWYgYXVkaW8gZ2V0cyBp
bnRlcnJ1cHRlZCIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2st
aW50ZXJydXB0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3Ry
ZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLmh0bWwKaW5kZXggZWI5YTliZmViNzRhYmZiZjMx
ODg2N2I1ZGE0NGZhNTNiZTg4OTZmMS4uODJlNjcyMjc5NWE5MTZlZDQwZDYwZWMyZTc5M2E2MGM1
NWEyZGZkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1z
dHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC5odG1sCkBA
IC0xNSwxMyArMTUsMTMgQEAKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsZXQgcHJv
bWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25tdXRlID0g
cmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkgfSk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQodHJ1ZSwgZmFs
c2UpOwogICAgICAgICBhd2FpdCBwcm9taXNlOwogCiAgICAgICAgIGFzc2VydF90cnVlKHRyYWNr
Lm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7IHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAgIHRlc3RS
dW5uZXIuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGZhbHNlLCBmYWxzZSk7CiAgICAg
ICAgIGF3YWl0IHByb21pc2U7CiAKICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRyYWNrLm11dGVkLCAi
dHJhY2sgaXMgbm90IG11dGVkIik7CkBAIC00NSw3ICs0NSw3IEBACiAKICAgICAgICAgLy8gZ2V0
dGluZyBhbiBpbnRlcnJ1cHRpb24sIHRyYWNrIHNob3VsZCBiZSBtdXRlZC4KICAgICAgICAgbGV0
IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9ubXV0
ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUwMDApIH0p
OwotICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKHRydWUs
IGZhbHNlKTsKICAgICAgICAgYXdhaXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSh0
cmFjay5tdXRlZCwgInRyYWNrIGlzIG11dGVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL3RyYWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3RyYWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwKaW5kZXggOWRi
Nzg2MjcxOTM5ZmUzNGU1OTRiYzg2MzVlMzJlOTQzNDRlMzk2Ni4uNjI1OTk2NzM3NjdiNDRhOGEx
NjAzMzBmNzkzYjZmMTM0MDBkYzZhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS90cmFjay1lbmRlZC13aGlsZS1tdXRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vdHJhY2stZW5kZWQtd2hpbGUtbXV0ZWQuaHRtbApAQCAtMTEsMTMgKzEx
LDEzIEBACiBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCBzdHJlYW0g
PSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9
KTsKICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwotICAgIGlm
ICghd2luZG93LmludGVybmFscykKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAg
ICByZXR1cm47CiAKICAgICBjb25zdCBjbG9uZSA9IHRyYWNrLmNsb25lKCk7CiAKICAgICBsZXQg
cHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25tdXRl
ID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkgfSk7
Ci0gICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJhY2ssIHRy
dWUpOworICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFs
c2UsIHRydWUpOwogICAgIGF3YWl0IHByb21pc2U7CiAKICAgICB0cmFjay5zdG9wKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWQ2NDkwMTk1OTYz
MGRlODhmMGQxNWFjYjkwY2I5MGNiMTgzNjc1NS4uN2E1ZjQ4NmM3ZjBmMmM1MmIxYTNhMzc4Nzll
Nzk3Nzg1M2RmMDViNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNzk4LDYgKzc5OCw3IEBAIHdlYmtpdC5vcmcvYi8yMTM2OTkgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjCiB3ZWJraXQu
b3JnL2IvMjMwNDE1IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY29ubmVj
dGlvbnN0YXRlY2hhbmdlLWV2ZW50Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHRtbCBbIEZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzE4NzYwMyBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10
cmFjay1zb3VyY2UtZmFpbHVyZS5odG1sIFsgVGltZW91dCBGYWlsdXJlIFBhc3MgXQorZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRp
by5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMjM1MDggaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVs
ZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453987</attachid>
            <date>2022-03-07 08:13:28 -0800</date>
            <delta_ts>2022-03-08 00:57:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237524-20220307171326.patch</filename>
            <type>text/plain</type>
            <size>58819</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyZGM0ODMzNTA2MzNiNWEyYzJhNjFk
ZWVkZDY3ODE5NWIxMjlhYzEuLmIxNmY2ODQ4NTEzNTJkN2U2YmU5MDBmOTk4NzI2ZGU1Y2E4MjNi
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBj
YXB0dXJlIGluIGNhc2UgYXVkaW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1MjQKKyAgICAgICAgPHJk
YXI6Ly83ODQyMTI4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1s
OgorCiAyMDIyLTAzLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBudWxsIGNoZWNrIGZvciBwYXRoIGluIG1ha2VBbGxEaXJlY3RvcmllcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGUxYmM3MzkzOTRiMzFjMmViZmQ2ZTRiYWNmNWJkNzczYWFkZTVlNzAuLjk1MzFhNTBm
Y2M1MDI3OWU0ZjIzOWI4ZDE1ODZkODllMmY5OWU4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
MSBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRp
byBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8cmRhcjovLzc4NDIxMjgyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGNhc2Ugd2Ug
ZGV0ZWN0IHRoYXQgYSBtaWNyb3Bob25lIHRyYWNrIHNvdXJjZSBnZXRzIG11dGVkIGR1ZSB0byBp
bnRlcnJ1cHRpb24sIHdlIG11dGUKKyAgICAgICAgY2FwdHVyZSB2aWRlbyB0cmFja3MgYmFzZWQg
aWYgYWxsb3dlZCBieSB0aGUgbmV3IE11dGVDYW1lcmFPbk1pY3JvcGhvbmVJbnRlcnJ1cHRpb25F
bmFibGVkIHNldHRpbmcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1vY2sgbWljcm9waG9u
ZSBpbnRlcnJ1cHRpb24gYW5kIHJlbW92ZSBwcmV2aW91cyBpbiBwcm9jZXNzIGludGVybmFscyBB
UEkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8t
dHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OnNldElu
dGVycnVwdGVkRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdT
dHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdT
dHJlYW1lcjo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3Ry
ZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpzZXRJbnRlcnJ1cHRlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldE1lZGlhU3Ry
ZWFtU291cmNlSW50ZXJydXB0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIyLTAzLTA2ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFB1c2ggSFRN
TE1lZGlhRWxlbWVudCByZW5kZXJlcidzIGNvbnRlbnRCb3ggcmVjdCB0byBHUFUgcHJvY2Vzcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA4ZWNkMWU2MmQxYjNlZDQ1MDhhNTM3MDlkY2Y2MDc2OGY5ZDZlODg4Li4wNjlm
NTRjZWZhNGI3MDhjN2I4YTFlM2I4YjI2YWMxMjk3NjNhOTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM3IEBACisyMDIyLTAzLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIHRvIG11dGUgdmlkZW8gY2FwdHVyZSBpbiBjYXNlIGF1
ZGlvIGNhcHR1cmUgZ2V0cyBpbnRlcnJ1cHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTI0CisgICAgICAgIDxyZGFyOi8vNzg0MjEyODI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIGludGVycnVwdCBtb2NrIG1pY3JvcGhvbmUgZGV2aWNlcy4KKyAgICAgICAgU2VuZCB0
byBXZWJQcm9jZXNzIHNvdXJjZXMgd2hldGhlciBzb3VyY2VzIGFyZSBpbnRlcnJ1cHRlZCBlYWNo
IHRpbWUgdGhlIHNvdXJjZSBtdXRlZCB2YWx1ZSBjaGFuZ2VzLgorICAgICAgICBTdG9yZSB0aGF0
IHZhbHVlIGluIHJlbW90ZSBzb3VyY2VzLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46CisKIDIwMjItMDMtMDYg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
TGF5ZXIgdHJlZSBjYW4gZ2V0IGluZGVmaW5pdGVseSBmcm96ZW4gaWYgV0tXZWJWaWV3IGlzIHVu
cGFyZW50ZWQgdW5kZXJuZWF0aCAtW1VJV2luZG93IGRlYWxsb2NdCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFt
bAppbmRleCA4M2JlYTFmN2RmNmQ1OGQ2NzA3OTdhNWFmM2E2MjI2NThmY2E5NWQxLi4zOTlkNTA4
OWYzZTNmMzgzZGM1Y2VjY2Q0NTA3Zjg1NTBkZGNmY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwK
QEAgLTY0MCw2ICs2NDAsMTggQEAgTW91c2VFdmVudHNTaW11bGF0aW9uRW5hYmxlZDoKICAgICBX
ZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNdXRlQ2FtZXJhT25NaWNyb3Bob25lSW50
ZXJydXB0aW9uRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBjb25kaXRpb246IEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZh
dWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgICJQTEFURk9STShJT1NfRkFNSUxZKSI6IHRy
dWUKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisKIE5QQVBJUGx1Z0luc0VuYWJsZWRGb3JUZXN0aW5nSW5XZWJLaXRMZWdhY3k6CiAgIHR5
cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJOUEFQSSBQbHVnLUlucyBFbmFibGVkIElu
IFdlYktpdExlZ2FjeSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGE0NWQxOWU1NDczOTk1NmRiNzgwNjNj
N2NhYmU4YThlMGYxMDRkNGQuLjNlMzk0NGJjZDUwMTdkYjIyN2Y5MjhlYWE3YWI0OTY5NDcxMmFi
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtOTEsNiArOTEsNyBAQCBNZWRpYVN0cmVhbVRyYWNrOjpN
ZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxNZWRp
YVN0cgogICAgIGlmICghaXNDYXB0dXJlVHJhY2soKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
bV9pc0ludGVycnVwdGVkID0gbV9wcml2YXRlLT5zb3VyY2UoKS5pbnRlcnJ1cHRlZCgpOwogICAg
IGFsbENhcHR1cmVUcmFja3MoKS5hZGQodGhpcyk7CiAKICAgICBpZiAobV9wcml2YXRlLT5oYXNB
dWRpbygpKQpAQCAtNTA5LDYgKzUxMCwxOCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0
ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVkU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogI2VuZGlm
CiB9CiAKK3N0YXRpYyB2b2lkIHVwZGF0ZVZpZGVvQ2FwdHVyZUFjY29yZGluZ01pY3JvcGhvbmVJ
bnRlcnJ1cHRpb24oRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIGlzTWljcm9waG9uZUludGVycnVw
dGVkKQoreworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgZm9yIChhdXRv
KiBjYXB0dXJlVHJhY2sgOiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKKyAgICAgICAgaWYgKCFjYXB0
dXJlVHJhY2stPmRvY3VtZW50KCkgfHwgY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpLT5wYWdlKCkg
IT0gcGFnZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhdXRvJiBzb3VyY2UgPSBj
YXB0dXJlVHJhY2stPnNvdXJjZSgpOworICAgICAgICBpZiAoIXNvdXJjZS5pc0VuZGVkKCkgJiYg
c291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykKKyAgICAg
ICAgICAgIHNvdXJjZS5zZXRNdXRlZChpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CisgICAgfQor
fQorCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKQogewog
ICAgIEFTU0VSVChpc0NhcHR1cmVUcmFjaygpKTsKQEAgLTYxMiw3ICs2MjUsOCBAQCB2b2lkIE1l
ZGlhU3RyZWFtVHJhY2s6OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogICAg
IAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpCiB7Ci0gICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWN0aXZl
RE9NT2JqZWN0c0FyZVN0b3BwZWQoKSB8fCBtX2VuZGVkKQorICAgIGF1dG8qIGRvY3VtZW50ID0g
dGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoZG9jdW1lbnQtPmFjdGl2ZURPTU9iamVjdHNBcmVT
dG9wcGVkKCkgfHwgbV9lbmRlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcXVldWVUYXNrS2Vl
cGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgbXV0
ZWQgPSBtX3ByaXZhdGUtPm11dGVkKCldIHsKQEAgLTYyMiw2ICs2MzYsMTEgQEAgdm9pZCBNZWRp
YVN0cmVhbVRyYWNrOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
CiAgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShtdXRlZCA/IGV2ZW50TmFtZXMo
KS5tdXRlRXZlbnQgOiBldmVudE5hbWVzKCkudW5tdXRlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogICAgIH0pOwogICAgIGNvbmZpZ3VyZVRy
YWNrUmVuZGVyaW5nKCk7CisKKyAgICBib29sIHdhc0ludGVycnVwdGVkID0gbV9pc0ludGVycnVw
dGVkOworICAgIG1faXNJbnRlcnJ1cHRlZCA9IG1fcHJpdmF0ZS0+c291cmNlKCkuaW50ZXJydXB0
ZWQoKTsKKyAgICBpZiAod2FzSW50ZXJydXB0ZWQgIT0gbV9pc0ludGVycnVwdGVkICYmIG1fcHJp
dmF0ZS0+c291cmNlKCkudHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
ICYmIGRvY3VtZW50LT5zZXR0aW5ncygpLm11dGVDYW1lcmFPbk1pY3JvcGhvbmVJbnRlcnJ1cHRp
b25FbmFibGVkKCkpCisgICAgICAgIHVwZGF0ZVZpZGVvQ2FwdHVyZUFjY29yZGluZ01pY3JvcGhv
bmVJbnRlcnJ1cHRpb24oKmRvY3VtZW50LCBtX2lzSW50ZXJydXB0ZWQpOwogfQogCiB2b2lkIE1l
ZGlhU3RyZWFtVHJhY2s6OnRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmgKaW5kZXggYzlhNDM4NTkzNTlhYTRkOGY3MGZiZjQ1NTI5YjFhNmU1N2Zi
MWI5MC4uMDcwZjdkYzA5MDZjNTQ5OTliMmNiZWY2ZWRkMzZlZjNlOTBlZjBhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmgKQEAgLTIwOCw2ICsyMDgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2VuZGVkIHsgZmFsc2UgfTsKICAgICBjb25zdCBib29sIG1faXNDYXB0
dXJlVHJhY2sgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0ludGVycnVwdGVkIHsgZmFsc2UgfTsK
IH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4gTWVkaWFTdHJl
YW1UcmFja1ZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggZGUwZjFhN2E0ZTYzNWEx
MzllNDgyOGI1NDdmZGNmMDY2MTliMzVhYi4uODEwOWMxODliNzI2MTJjMmNmOGEwNzZmMTk3YWEw
Y2JjMmMxMGZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTEzNCwxMSArMTM0LDYgQEAg
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpub3RpZnlNdXRlZENoYW5nZShib29sIG11dGVkKQog
ICAgIG5vdGlmeU11dGVkT2JzZXJ2ZXJzKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJvb2wgaW50ZXJydXB0ZWQpCi17Ci0gICAgbm90
aWZ5TXV0ZWRDaGFuZ2UoaW50ZXJydXB0ZWQpOwotfQotCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JiBhcHBs
eSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4
IGIyNTkzNzY3OWFiOTI3MGYxOWI2MmZmNDBkNTI1MTE0M2I2OWFiNDQuLjg5MTNiNWM1ZDNiZDVm
ODk1ZWUxODM2YWIwYjdkYWZmYjc3YTQ3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTIxNyw3
ICsyMTcsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBUZXN0aW5nIG9ubHkKICAgICB2aXJ0dWFsIHZv
aWQgZGVsYXlTYW1wbGVzKFNlY29uZHMpIHsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW50ZXJy
dXB0ZWRGb3JUZXN0aW5nKGJvb2wpOwogCiAgICAgdmlydHVhbCBib29sIHNldFNob3VsZEFwcGx5
Um90YXRpb24oYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA0ODZiMGU0NDg2YTNjNjRl
M2FjMTNmMzU3YmQwMTRkZTAzMTgwZGY2Li41OGEyNjc1MTZjMjFkYmRkNWI2YjcyM2IzNjMxOTEy
ZTRhYTkyZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlLmNwcApAQCAtMjEzLDEyICsyMTMsNiBAQCBib29sIEdTdHJlYW1lckF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6aW50ZXJydXB0ZWQoKSBjb25zdAogICAgIHJldHVybiBtX2NhcHR1cmVyLT5p
c0ludGVycnVwdGVkKCkgfHwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6aW50ZXJydXB0ZWQoKTsKIH0K
IAotdm9pZCBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OnNldEludGVycnVwdGVkRm9yVGVz
dGluZyhib29sIGlzSW50ZXJydXB0ZWQpCi17Ci0gICAgbV9jYXB0dXJlci0+c2V0SW50ZXJydXB0
ZWQoaXNJbnRlcnJ1cHRlZCk7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0SW50ZXJydXB0
ZWRGb3JUZXN0aW5nKGlzSW50ZXJydXB0ZWQpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoR1NUUkVBTUVSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDdj
NDJmZjliYjUwNzM3MGQ4ZDI1MGUxZmQ3YjA4YWQ2YTI4OGVhMWEuLmQ4ZTFkYWMwNTBiYTk1MWM2
ZjliOTU4MzY0YWJjM2I0MTRhMTM4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTU0LDcgKzU0LDYgQEAgcHJvdGVjdGVkOgogCiBw
cml2YXRlOgogICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNl
dEludGVycnVwdGVkRm9yVGVzdGluZyhib29sKSBmaW5hbDsKIAogICAgIGJvb2wgaXNDYXB0dXJl
U291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgc2V0dGluZ3NE
aWRDaGFuZ2UoT3B0aW9uU2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZUdTdHJlYW1lci5jcHAKaW5kZXggYzc3ZGNhMjdjM2FjN2EyYzYwNjI1YTMzMTYxMjNjNzk4ZTk2
NDQ4NC4uYzM4ZjUxMzNjMzUxMzkyOGU4YzMzZjM3NGNkNTJmN2M1Mjg2Mjk0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIu
Y3BwCkBAIC0xNDAsMTIgKzE0MCw2IEBAIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3Ry
ZWFtZXI6OnJlY29uZmlndXJlKCkKICAgICAgICAgYWRkSHVtKHNfTm9pc2VWb2x1bWUsIHNfTm9p
c2VGcmVxdWVuY3ksIHJhdGUsIDAsIG1fYmlwQm9wQnVmZmVyLmRhdGEoKSwgc2FtcGxlQ291bnQp
OwogfQogCi12b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRJbnRlcnJ1
cHRlZEZvclRlc3RpbmcoYm9vbCBpc0ludGVycnVwdGVkKQotewotICAgIG1faXNJbnRlcnJ1cHRl
ZCA9IGlzSW50ZXJydXB0ZWQ7Ci0gICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldEludGVy
cnVwdGVkRm9yVGVzdGluZyhpc0ludGVycnVwdGVkKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEdTVFJFQU1FUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVh
bWVyLmgKaW5kZXggZGU1NTYxM2JmODJmNGUwZGE2ZGM3NzcxYTM1MTBjMjczZTYwM2ZhOC4uZmYw
N2JmMmY1NGE5YTU1N2UxYTBhZjRlZDRiOWY5NzJjZDFkNjJiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlv
U291cmNlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmgKQEAgLTQ2LDcg
KzQ2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZEh1bShmbG9hdCBhbXBsaXR1ZGUsIGZsb2F0
IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3Qgc3RhcnQsIGZsb2F0ICpwLCB1
aW50NjRfdCBjb3VudCk7CiAKICAgICBib29sIGludGVycnVwdGVkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9pc0ludGVycnVwdGVkOyB9OwotICAgIHZvaWQgc2V0SW50ZXJydXB0ZWRGb3JUZXN0
aW5nKGJvb2wpIGZpbmFsOwogCiAgICAgc3RkOjpvcHRpb25hbDxHU3RyZWFtZXJBdWRpb1N0cmVh
bURlc2NyaXB0aW9uPiBtX3N0cmVhbUZvcm1hdDsKICAgICBWZWN0b3I8ZmxvYXQ+IG1fYmlwQm9w
QnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDlhMGIyOWVk
YjFkMTc4MTU2NTQ1MGY1OGRlOTA5ZjY4Yzg3M2VhMDMuLmU2MzBjNGM1YzAyOWUyNjI2OTRmZTRj
MDc1NmE3ODk4MTE2YzJmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAK
QEAgLTcwMiwxNSArNzAyLDYgQEAgY29uc3QgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZTo6dW5pdCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fb3ZlcnJpZGVVbml0ID8g
Km1fb3ZlcnJpZGVVbml0IDogQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCk7CiB9CiAK
LXZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJv
b2wgaXNJbnRlcnJ1cHRlZCkKLXsKLSAgICBpZiAoaXNJbnRlcnJ1cHRlZCkgewotICAgICAgICB1
bml0KCkuc3VzcGVuZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHVuaXQoKS5yZXN1
bWUoKTsKLX0KLQogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6YmVnaW5JbnRl
cnJ1cHRpb24oKQogewogICAgIGVuc3VyZU9uTWFpblRocmVhZChbXSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaAppbmRleCAzMzAzNmU5OTZmNjczZTUyNzAyMzg1YjQxZTBhOTNmMTgw
MzUxZjk5Li42ZTE3OTFjZTk4MTRmYWQ5NGExMzMzNmVkNTRhYWQwZjEwY2U4YjUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTc0LDcgKzc0LDYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAKICAgICB2b2lkIGRlbGF5U2FtcGxl
cyhTZWNvbmRzKSBmaW5hbDsKLSAgICB2b2lkIHNldEludGVycnVwdGVkRm9yVGVzdGluZyhib29s
KSBmaW5hbDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPGludD4+IGRpc2NyZXRlU2FtcGxl
UmF0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB7IHsgODAwMCwgMTYwMDAsIDMyMDAwLCA0NDEw
MCwgNDgwMDAsIDk2MDAwIH0gfTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGQwODk0ZDVkNGZl
ODI1ZjhiMDZkNmM5MjhhYWYwOTg2Mzc3Y2M0YjIuLjJhYWUxOTFjMTdlZjNlY2E3YWEwMDdhM2Ey
OGI1YTExYWVhY2NhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00Miw2ICs0MiwxMCBAQAogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9VVUlE
Lmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJNb2NrQXVkaW9TaGFyZWRVbml0
LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykg
JiYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYmICFVU0UoR1NUUkVBTUVSKQpAQCAtMTgwLDYgKzE4
NCwxNyBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpkZWxheVNhbXBsZXMoU2Vjb25k
cyBkZWx0YSkKICAgICBtX2RlbGF5VW50aWwgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIGRlbHRh
OwogfQogCit2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXRJc0ludGVycnVwdGVkKGJv
b2wgaXNJbnRlcnJ1cHRlZCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaXNJbnRlcnJ1cHRlZCk7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGlzSW50ZXJydXB0ZWQpCisgICAgICAgIE1vY2tB
dWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnN1c3BlbmQoKTsKKyAgICBlbHNlCisgICAgICAg
IE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnJlc3VtZSgpOworI2VuZGlmCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmgKaW5kZXggZjBkYWRmNzFkMmQwMzUzNWE2ODJlNTBjNzliOTQyNDJkMDg2OGZm
OC4uNTVmOWVkMmE2YzI4OTQ4ZDQwY2U4MDY0OGY1MGRkODc3Y2UzNjllMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
aApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZSgpOwogCisgICAgc3RhdGljIHZvaWQgc2V0SXNJbnRlcnJ1cHRlZChib29s
KTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkKTsK
IAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCAwOTJkMmZlNjEx
OTM0OGY5ODY1YTg4ZmIyNzkxZTNhMmQ3MTRhNDAxLi5jMzlmYTdiY2U0M2MzN2ViM2RlYjcxM2U5
N2Q5ZTkyMDljYjJmYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMzE3LDkg
KzMxNywxMCBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpyZXNldERldmlj
ZXMoKQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNhcHR1cmVE
ZXZpY2VzQ2hhbmdlZCgpOwogfQogCi12b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sIGlzSW50ZXJydXB0ZWQpCit2b2lkIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1
cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0
ZWQpCiB7Ci0gICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQoaXNJ
bnRlcnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldElzSW50ZXJydXB0
ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNl
dElzSW50ZXJydXB0ZWQoaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogfQogCiB2b2lkIE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXREZXZpY2VzKFZlY3RvcjxNb2NrTWVkaWFEZXZp
Y2U+JiYgbmV3TW9ja0RldmljZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggN2ZhYzg5
OTRlZDNhYjgwM2Q4YTZhYjVjNTQ3MDk1YWI5MTIxMmI2My4uNjk5ODg0ZjMxMTljMmI0ZjFjZjgy
OTA2MzAwYWRjNTZmMzNkMjViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNDcsNyAr
NDcsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgYWRkRGV2aWNl
KGNvbnN0IE1vY2tNZWRpYURldmljZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IHJlbW92ZURldmljZShjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJZCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgcmVzZXREZXZpY2VzKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBp
c0NhbWVyYUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKIAogICAg
IHZvaWQgc2V0TW9ja0F1ZGlvQ2FwdHVyZUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc01v
Y2tBdWRpb0NhcHR1cmVFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRNb2NrVmlk
ZW9DYXB0dXJlRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzTW9ja1ZpZGVvQ2FwdHVyZUVu
YWJsZWQgPSBpc0VuYWJsZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCAzZTEyZWM4ZjYwZDExNTNlNzUyZTFiNmNjM2EzMjI4ZGZhYWE2NDc3Li5hMWVmMDAyODllNWE4
NjMyNmYyMmIxYzgyMDdhNzY2YTQ0NDFiMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC01NTgzLDExICs1NTgzLDYgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE1lZGlhU3Ry
ZWFtVHJhY2tJZGVudGlmaWVyKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBTdHJpbmcmJgogICAg
IHRyYWNrLnNldElkRm9yVGVzdGluZyhXVEZNb3ZlKGlkKSk7CiB9CiAKLXZvaWQgSW50ZXJuYWxz
OjpzZXRNZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNr
LCBib29sIGludGVycnVwdGVkKQotewotICAgIHRyYWNrLnNvdXJjZSgpLnNldEludGVycnVwdGVk
Rm9yVGVzdGluZyhpbnRlcnJ1cHRlZCk7Ci19Ci0KIGJvb2wgSW50ZXJuYWxzOjppc01lZGlhU3Ry
ZWFtU291cmNlSW50ZXJydXB0ZWQoTWVkaWFTdHJlYW1UcmFjayYgdHJhY2spIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIHRyYWNrLnNvdXJjZSgpLmludGVycnVwdGVkKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCBjZTk5OGMzNDdlNDVjMmRmMzA5YjU5MGJmMmNhYWE1ZTc1NjBkODZk
Li5jOTdkMThhNGUyMWRlOTA0MmUxY2FkYjVlOTFkYTlmYjdkNGFmZGU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKQEAgLTg3OCw3ICs4NzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZW1vdmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtJiwgTWVkaWFTdHJlYW1UcmFjayYpOwog
ICAgIHZvaWQgc2ltdWxhdGVNZWRpYVN0cmVhbVRyYWNrQ2FwdHVyZVNvdXJjZUZhaWx1cmUoTWVk
aWFTdHJlYW1UcmFjayYpOwogICAgIHZvaWQgc2V0TWVkaWFTdHJlYW1UcmFja0lkZW50aWZpZXIo
TWVkaWFTdHJlYW1UcmFjayYsIFN0cmluZyYmIGlkKTsKLSAgICB2b2lkIHNldE1lZGlhU3RyZWFt
U291cmNlSW50ZXJydXB0ZWQoTWVkaWFTdHJlYW1UcmFjayYsIGJvb2wpOwogICAgIGJvb2wgaXNN
ZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKE1lZGlhU3RyZWFtVHJhY2smKSBjb25zdDsKICAg
ICBib29sIGlzTWVkaWFTdHJlYW1Tb3VyY2VFbmRlZChNZWRpYVN0cmVhbVRyYWNrJikgY29uc3Q7
CiAgICAgYm9vbCBpc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDQyOGYzYjMyYWI5NjIxZDE0YmI2NGM0
ZDdkYmY1NGRkNmEzMjc0MDUuLjEzMjI4ZDNiZTlmMjQ3ZDY3MjhkYzNmN2UwZTU2OGE0YzEyMGE5
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkyNSw3ICs5MjUsNiBA
QCB0eXBlZGVmIChGZXRjaFJlcXVlc3Qgb3IgRmV0Y2hSZXNwb25zZSkgRmV0Y2hPYmplY3Q7CiAg
ICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTV0gdW5kZWZpbmVkIHJlbW92ZU1lZGlhU3RyZWFt
VHJhY2soTWVkaWFTdHJlYW0gc3RyZWFtLCBNZWRpYVN0cmVhbVRyYWNrIHRyYWNrKTsKICAgICBb
Q29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2ltdWxhdGVNZWRpYVN0cmVhbVRy
YWNrQ2FwdHVyZVNvdXJjZUZhaWx1cmUoTWVkaWFTdHJlYW1UcmFjayB0cmFjayk7CiAgICAgW0Nv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTV0gdW5kZWZpbmVkIHNldE1lZGlhU3RyZWFtVHJhY2tJZGVu
dGlmaWVyKE1lZGlhU3RyZWFtVHJhY2sgdHJhY2ssIERPTVN0cmluZyBpZGVudGlmaWVyKTsKLSAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0TWVkaWFTdHJlYW1Tb3Vy
Y2VJbnRlcnJ1cHRlZChNZWRpYVN0cmVhbVRyYWNrIHRyYWNrLCBib29sZWFuIGludGVycnVwdGVk
KTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSBib29sZWFuIGlzTWVkaWFTdHJlYW1T
b3VyY2VJbnRlcnJ1cHRlZChNZWRpYVN0cmVhbVRyYWNrIHRyYWNrKTsKICAgICBbQ29uZGl0aW9u
YWw9TUVESUFfU1RSRUFNXSBib29sZWFuIGlzTWVkaWFTdHJlYW1Tb3VyY2VFbmRlZChNZWRpYVN0
cmVhbVRyYWNrIHRyYWNrKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSBib29sZWFu
IGlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKaW5kZXggZmZlMGFjZDgxMjMyNmEzYTA3YjJhNTIzNzhi
YTdmNjFlYTAwMGQ4NC4uOTM4NjAwOTI2Zjg3NWU4MzNkMTcwYTgzMGNlMGIwYTU4NmE0OGFjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzUxLDkgKzM1MSw5
IEBAIHZvaWQgR1BVUHJvY2Vzczo6cmVzZXRNb2NrTWVkaWFEZXZpY2VzKCkKICAgICBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6cmVzZXREZXZpY2VzKCk7CiB9CiAKLXZvaWQgR1BVUHJv
Y2Vzczo6c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQordm9p
ZCBHUFVQcm9jZXNzOjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2Ft
ZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlz
SW50ZXJydXB0ZWQpOworICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2Nr
Q2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChpc0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhv
bmVJbnRlcnJ1cHRlZCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggOTEwYThiOGEyZTliYzE0Mjg0Yjdi
ZmQ3YzZmMGE4MzUwNmYzN2Q1MS4uNTNiZTVkODc0YmEwZjY0OTA4YTRjNGI4YzIzZGE0M2I0M2Jh
ZjI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCkBAIC0xNTIsNyArMTUy
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyTW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZv
aWQgcmVtb3ZlTW9ja01lZGlhRGV2aWNlKGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElkKTsKICAg
ICB2b2lkIHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlz
SW50ZXJydXB0ZWQoYm9vbCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1
cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0
ZWQpOwogICAgIGJvb2wgc2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5nKGNvbnN0IFN0cmluZyYp
OwogI2VuZGlmCiAjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOGU5OTI5
YTUzNWI0MWUyZDE2N2YyMWU1YjNlZjMyNWJkNWM4MjNjZC4uYTYzMTdmYmQ0NjBlNzhkNTg3NTIx
M2YxNzQ3YzY2OTZlYWNlZDNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM5LDExICszOSwxMSBAQCBtZXNzYWdlcyAtPiBHUFVQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBVcGRhdGVTYW5kYm94QWNjZXNzKFZlY3RvcjxX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gZXh0ZW5zaW9ucyk7CiAgICAgVXBkYXRl
Q2FwdHVyZUFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJlLCBib29sIGFsbG93VmlkZW9DYXB0
dXJlLCBib29sIGFsbG93RGlzcGxheUNhcHR1cmUsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IHByb2Nlc3NJRCkgLT4gKCkgQXN5bmMKICAgICBVcGRhdGVDYXB0dXJlT3JpZ2luKHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YSwgV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIgcHJvY2Vzc0lEKQotICAgIEFkZE1vY2tNZWRpYURldmljZShzdHJ1Y3QgV2ViQ29y
ZTo6TW9ja01lZGlhRGV2aWNlIGRldmljZSk7Ci0gICAgQ2xlYXJNb2NrTWVkaWFEZXZpY2VzKCk7
Ci0gICAgUmVtb3ZlTW9ja01lZGlhRGV2aWNlKFN0cmluZyBwZXJzaXN0ZW50SWQpOwotICAgIFJl
c2V0TW9ja01lZGlhRGV2aWNlcygpOwotICAgIFNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJv
b2wgaXNJbnRlcnJ1cHRlZCk7CisgICAgQWRkTW9ja01lZGlhRGV2aWNlKHN0cnVjdCBXZWJDb3Jl
OjpNb2NrTWVkaWFEZXZpY2UgZGV2aWNlKQorICAgIENsZWFyTW9ja01lZGlhRGV2aWNlcygpCisg
ICAgUmVtb3ZlTW9ja01lZGlhRGV2aWNlKFN0cmluZyBwZXJzaXN0ZW50SWQpCisgICAgUmVzZXRN
b2NrTWVkaWFEZXZpY2VzKCkKKyAgICBTZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChi
b29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiAj
ZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgRGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2Vk
KENHRGlyZWN0RGlzcGxheUlEIGRpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdz
IGZsYWdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggODli
MWViZmMyMzFmMGI3MjJkMzAxMThjOTA2YTk2OTQ4YzhhOGY1Zi4uZTI1NDkyNmRjNTFhNDlhZWJh
NDk4ZDc5NDlhYWZjODA3YTRiNzIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCkBAIC0zMTM5LDE1ICszMTM5LDE1IEBAIGJvb2wgV0tQYWdlSXNNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoV0tQYWdlUmVmKQogI2VuZGlmCiB9CiAKLXZvaWQg
V0tQYWdlU2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wg
aXNJbnRlcnJ1cHRlZCkKK3ZvaWQgV0tQYWdlU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0
ZWQoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01p
Y3JvcGhvbmVJbnRlcnJ1cHRlZCkKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGF1dG8mIGdwdVBy
b2Nlc3MgPSB0b0ltcGwocGFnZVJlZiktPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmVuc3VyZUdQ
VVByb2Nlc3MoKTsKLSAgICBncHVQcm9jZXNzLnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlz
SW50ZXJydXB0ZWQpOworICAgIGdwdVByb2Nlc3Muc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJy
dXB0ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEdTVFJFQU1FUikKLSAgICB0b0lt
cGwocGFnZVJlZiktPnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlzSW50ZXJydXB0ZWQpOwor
ICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoaXND
YW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCAy
ZGM0OWI0YzIxMTVmZWFhYTllZTRhNDBiMDlkMTAwODc5YjdhYjZmLi4wZjcwZDdlMDgxYTEwZjg3
OTMwNGEzNGI5YzFmNTYzYjJmYjIyNWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlUHJpdmF0ZS5oCkBAIC0yMDEsNyArMjAxLDcgQEAgV0tfRVhQT1JUIHZvaWQg
V0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQ
YWdlUmVmIHAKIAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9u
KFdLUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBvcmllbnRhdGlvbik7CiBXS19FWFBPUlQgYm9vbCBX
S1BhZ2VJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYgcGFn
ZSk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChXS1Bh
Z2VSZWYgcGFnZSwgYm9vbCBpc0ludGVycnVwdGVkKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNl
dE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKFdLUGFnZVJlZiBwYWdlLCBib29sIGlzQ2Ft
ZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogCiB0eXBlZGVm
IHZvaWQgKCpXS1BhZ2VMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGdW5jdGlvbikoV0tBcnJheVJl
ZiBkb21haW5zLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdl
TG9hZGVkU3VicmVzb3VyY2VEb21haW5zKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VMb2FkZWRTdWJy
ZXNvdXJjZURvbWFpbnNGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWQwNzU4MjE3NTEwMTM1N2UwNTViMTE0
MjY4ODkyZmE3YzczYzk0Ni4uNzg3YmIxMjFlNzRjNjY5NjU4MThiNjIwNDliMjFmZTliOTVlNzJm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2
YXRlOgogICAgIH0KIAogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWwgewotICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpTb3VyY2VNdXRlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPm11dGVkKCkpLCAwKTsKKyAgICAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlTXV0ZWRDaGFuZ2VkKG1faWQsIG1fc291cmNlLT5tdXRlZCgpLCBtX3NvdXJjZS0+aW50
ZXJydXB0ZWQoKSksIDApOwogICAgIH0KIAogICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2Vk
KCkgZmluYWwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAyMzJjNTcyNjUxMTM5NDU3ODU2ODA2YzU0NzlkNjI3YzQ4NDQxMDU4Li42
ZjgyMzI4NTEwN2Q5MjdhODRjZGUxNWQ3YzhiYTk4ZTU0NWE3MjU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzUwLDkgKzM1MCw5
IEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpyZXNldE1vY2tNZWRpYURldmljZXMoKQogICAgIHNl
bmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlJlc2V0TW9ja01lZGlhRGV2aWNlcyB7IH0sIDApOwog
fQogCi12b2lkIEdQVVByb2Nlc3NQcm94eTo6c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9v
bCBpc0ludGVycnVwdGVkKQordm9pZCBHUFVQcm9jZXNzUHJveHk6OnNldE1vY2tDYXB0dXJlRGV2
aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhv
bmVJbnRlcnJ1cHRlZCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpTZXRNb2Nr
Q2FtZXJhSXNJbnRlcnJ1cHRlZCB7IGlzSW50ZXJydXB0ZWQgfSwgMCk7CisgICAgc2VuZChNZXNz
YWdlczo6R1BVUHJvY2Vzczo6U2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQgeyBpc0Nh
bWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCB9LCAwKTsKIH0KICNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5kZXggMDA2MjU1ZDFmNjY2ZThjNDI0ZDBjY2I2ZWZjZGVj
YTFjODJjNzlhYS4uNDQzZTliN2E0NjZhZmU1MWU4ODRiNGY5NDM4YzRjYzY1ZDczYjhkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApAQCAtODYs
NyArODYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck1vY2tNZWRpYURldmljZXMoKTsKICAg
ICB2b2lkIHJlbW92ZU1vY2tNZWRpYURldmljZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJl
c2V0TW9ja01lZGlhRGV2aWNlcygpOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0
ZWQoYm9vbCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29s
IGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogICAg
IHZvaWQgdXBkYXRlU2FuZGJveEFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJlLCBib29sIGFs
bG93VmlkZW9DYXB0dXJlLCBib29sIGFsbG93RGlzcGxheUNhcHR1cmUpOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJmZGRiODQ5NTJkMDg4
OWE4ODI1NGU0NzdiZmYyMzIwYjYwZjAxZGMuLjc1ZTI0NjY1NzYzMWJmZmQyMDE3ZDY2ZWJjZmFk
NWYzNjIzN2JmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtMTA4ODIsOSArMTA4ODIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3JpZW50YXRpb25G
b3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiB9CiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKSAmJiBVU0UoR1NUUkVBTUVSKQotdm9pZCBXZWJQYWdlUHJveHk6OnNldE1vY2tD
YW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0
ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1cHRlZCkpOworICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVk
KGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGlzTWljcm9waG9uZUludGVycnVwdGVkKSk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3OGQ1NGQ4MWRm
MWI1ODcwMGIxYjQwNWVhZjU3YjkwYTBlZmNjZThiLi44ODlhMWE5NjgwMjMzNjc4NmZmOTkxOTIy
YzliOTI5YzNmMmE2YTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMTg5Miw3ICsxODkyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3JpZW50YXRpb25Gb3JN
ZWRpYUNhcHR1cmUodWludDY0X3QpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNF
KEdTVFJFQU1FUikKLSAgICB2b2lkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wpOwor
ICAgIHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUlu
dGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKICNlbmRpZgogCiAgICAg
Ym9vbCBpc0hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9o
YW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydENvdW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDA5ZGJhZThlMzEwNTQyMTZmZTk4OGY2
MGI5ZjQ2NGNjYzdkYjlmNjkuLjMyZmY5YzM2YTI2M2M4NzE4MTJjNjJjNWYwODk3MjRiODBiYjIw
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC00OTE0LDkgKzQ5MTQsOSBAQCB2b2lkIFdlYlBhZ2U6OnNldE9yaWVudGF0aW9uRm9yTWVkaWFD
YXB0dXJlKHVpbnQ2NF90IHJvdGF0aW9uKQogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2U6OnNl
dE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgV2ViUGFn
ZTo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVw
dGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChpc0ludGVycnVwdGVk
KTsKKyAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja0NhcHR1cmVEZXZp
Y2VzSW50ZXJydXB0ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0
ZWQpOwogfQogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNWViYWVjNDViYTAyNGFkNGJmMmYyYjllNjFl
MmM0ZDVhY2VkZDk3Li4xZTE0NzUyNTA0ZmFkNTQwYjk4NzVlNWRjNzIyYmU0ZDRjZThkYjc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjQ0LDcg
KzEyNDQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBV
U0UoR1NUUkVBTUVSKQogICAgIHZvaWQgc2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWlu
dDY0X3Qgcm90YXRpb24pOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9v
bCk7CisgICAgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2Ft
ZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2VuZGlmCiAK
ICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoU3RyaW5nJiYgc291cmNlLCBJbmplY3RlZEJ1bmRsZVNj
cmlwdFdvcmxkJiwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcywgV2ViQ29yZTo6
VXNlclNjcmlwdEluamVjdGlvblRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNmY1MjZlNDk5NThjMjZiZThk
NzEyMjcwMGY4YjUzNWFjMDg0NjMwMC4uYmVhNjQzOGE5N2U5MDc2Yzk2ODg0YTZlOTQyZTNlMWVm
Mzk3MDk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00MDcsNyArNDA3LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZFR5cGUKICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogI2lmIFVTRShHU1RSRUFNRVIpCiAg
ICAgU2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUoaW50IHJvdGF0aW9uKQotICAgIFNldE1v
Y2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKKyAgICBTZXRNb2NrQ2Fw
dHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNN
aWNyb3Bob25lSW50ZXJydXB0ZWQpCiAjZW5kaWYKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2Uu
aAppbmRleCBhM2M0MWRjMDRhYWNlNWRkNGVhNzM5YTYwZjJhNTMwZTVlM2QwNzVlLi4yYTMzZjk3
NjgwMzBhMDZhNzhlNDhmMzBkN2FjYzYzYmViNmQzYmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgK
QEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFs
OwogCiAgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKLSAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdl
ZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQorICAgIHZvaWQgc291
cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0ZWQpOwogCiBwcml2YXRl
OgogICAgIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KTsKQEAgLTg1LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBt
X2NhcGFiaWxpdGllczsgfQogICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nKT4mJiBjYWxsYmFjaykgZmluYWwgeyBtX3Byb3h5LndoZW5SZWFkeShXVEZNb3Zl
KGNhbGxiYWNrKSk7IH0KICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRl
dmljZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmRldmljZVR5cGUoKTsgfQor
ICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmludGVy
cnVwdGVkKCk7IH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC0xMDEsNiArMTAyLDEyIEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CiB9OwogCitpbmxp
bmUgdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoYm9v
bCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKK3sKKyAgICBtX3Byb3h5LnNldEludGVycnVwdGVk
KGludGVycnVwdGVkKTsKKyAgICBub3RpZnlNdXRlZENoYW5nZShtdXRlZCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAppbmRleCA1
MmY1MzViM2Q3M2Q2ODk3NzhiOTVmMTk0N2Y4ZTcyZDgyOThkNmExLi5mOWM5MjI0NWEyMjRjZjUy
ZDQ1ODI2NWVhNDY2ODMyZTFiY2JlMjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCkBAIC02
Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKIAog
ICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUm
IHNhbXBsZSwgV2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0YSkgeyB2aWRlb1Nh
bXBsZUF2YWlsYWJsZShzYW1wbGUsIG1ldGFkYXRhKTsgfQotICAgIHZvaWQgc291cmNlTXV0ZWRD
aGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CisgICAgdm9p
ZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKIHBy
aXZhdGU6CiAgICAgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CkBAIC03
OSw2ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmls
aXRpZXM7IH0KICAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmlu
Zyk+JiYgY2FsbGJhY2spIGZpbmFsIHsgbV9wcm94eS53aGVuUmVhZHkoV1RGTW92ZShjYWxsYmFj
aykpOyB9CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5kZXZpY2VUeXBlKCk7IH0KKyAgICBib29s
IGludGVycnVwdGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5pbnRlcnJ1cHRlZCgp
OyB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rp
b246OkNsaWVudApAQCAtOTUsNiArOTYsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKIH07CiAKK2lubGluZSB2b2lkIFJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQs
IGJvb2wgaW50ZXJydXB0ZWQpCit7CisgICAgbV9wcm94eS5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1
cHRlZCk7CisgICAgbm90aWZ5TXV0ZWRDaGFuZ2UobXV0ZWQpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCmluZGV4
IDRhMjk0ZDhjNTQxNzFlNmUxMDA1YjNhNDA2NjU2YjI2YzE1OWMwNGQuLjI0NDZlMzk4ZThjMzY4
NzhkNDE0NDIwY2E1ZGJjN2JiNWU4NDUxODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkuY3BwCkBAIC02MCwxMSArNjAsMTMgQEAgSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlUHJveHk6OmNvbm5lY3Rpb24oKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKKyAgICBtX2ludGVycnVwdGVk
ID0gZmFsc2U7CiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7
CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpzdG9wUHJvZHVjaW5n
RGF0YSgpCiB7CisgICAgbV9pbnRlcnJ1cHRlZCA9IGZhbHNlOwogICAgIGNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2lu
Z0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkuaAppbmRleCAwM2MxZDcxMjIyN2NkNWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYyLi41OWUy
YzI4MzQ1YzkwZjdkMmM0ZWE3ZjMwNmJhNDUwZjVhMTI1NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eS5oCkBAIC03MSw2ICs3MSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkRmFp
bChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwogCisgICAgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0
IHsgcmV0dXJuIG1faW50ZXJydXB0ZWQ7IH0KKyAgICB2b2lkIHNldEludGVycnVwdGVkKGJvb2wg
aW50ZXJydXB0ZWQpIHsgbV9pbnRlcnJ1cHRlZCA9IGludGVycnVwdGVkOyB9CisKIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVy
OwogICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9kZXZpY2U7CkBAIC04MSw2ICs4NCw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OwogICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9lcnJvck1lc3Nh
Z2U7CisgICAgYm9vbCBtX2ludGVycnVwdGVkIHsgZmFsc2UgfTsKIH07CiAKIGlubGluZSBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UuaAppbmRleCAzMmE4YTExNTQ2NGIwYjY1YjdlYWYzYmYwZGI4MTdmZTFi
OGY5YTk3Li41YjQ2NTExZjQxODczMjQ4NmIzMjZlMGRiOWExZWU5NzE4OWFhMjczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVy
ZUZhaWxlZCgpIGZpbmFsOwogCiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3Jl
OjpNZWRpYVNhbXBsZSYsIFdlYkNvcmU6OkludFNpemUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0
YWRhdGEpOwotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5
TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2
YWx1ZSwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwpAQCAtOTAsNiArOTAsNyBAQCBw
cml2YXRlOgogICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHNhbXBsZVJv
dGF0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zYW1wbGVSb3RhdGlvbjsgfQogICAgIHZv
aWQgc2V0RnJhbWVSYXRlV2l0aFByZXNldChkb3VibGUsIFJlZlB0cjxXZWJDb3JlOjpWaWRlb1By
ZXNldD4pIGZpbmFsOwogICAgIGJvb2wgcHJlZmVyc1ByZXNldChXZWJDb3JlOjpWaWRlb1ByZXNl
dCYpIGZpbmFsOworICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3Byb3h5LmludGVycnVwdGVkKCk7IH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAv
LyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CkBAIC0xMTAsNiArMTExLDEyIEBAIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9zYW1wbGVSb3Rh
dGlvbiB7IFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9Owog
CitpbmxpbmUgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzb3VyY2VNdXRlZENoYW5n
ZWQoYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKK3sKKyAgICBtX3Byb3h5LnNldEludGVy
cnVwdGVkKGludGVycnVwdGVkKTsKKyAgICBub3RpZnlNdXRlZENoYW5nZShtdXRlZCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4
IGY2ODdkOGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMuLjRjYTI1NGY0NmRlYmFk
OWEyYzVkNjFkN2U1YzhkOGEyZWJjMTY1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMTU0
LDE4ICsxNTQsMTggQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwdHVyZUZhaWxl
ZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGkKICAgICB9LCBbXShzdGQ6Om51
bGxwdHJfdCkgeyB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNl
TXV0ZWRDaGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJv
b2wgbXV0ZWQpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5n
ZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBtdXRlZCwg
Ym9vbCBpbnRlcnJ1cHRlZCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQo
aWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fc291cmNlcy5lbmQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbbXV0ZWRdKFJlZjxS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+c291
cmNlTXV0ZWRDaGFuZ2VkKG11dGVkKTsKLSAgICB9LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFu
Z2VkKG11dGVkKTsKLSAgICB9LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQp
OworICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgW211dGVkLCBpbnRlcnJ1cHRlZF0oUmVm
PFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5z
b3VyY2VNdXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsKKyAgICB9LCBbbXV0ZWQsIGlu
dGVycnVwdGVkXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgeworICAg
ICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCwgaW50ZXJydXB0ZWQpOworICAg
IH0sIFttdXRlZCwgaW50ZXJydXB0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+
JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQsIGlu
dGVycnVwdGVkKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaAppbmRleCA4Y2M1YjRmOTI2OWIyNDRkYjU5OTViN2I3NDQ0YjkxNTk3ZjE2YTgyLi5k
OGZiODBiNGZlOGRhZTc2OTk1NDgyYTIzOTE3ZDJmZWE1OTIwZTFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aApAQCAtMTI2LDcgKzEyNiw4IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyCiAgICAgdm9pZCBjYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFu
Z2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIG11dGVkKTsK
KyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCk7CisKICAgICB2b2lkIHNv
dXJjZVNldHRpbmdzQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBw
bHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQg
YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgU3RyaW5nJiYsIFN0cmluZyYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdl
cy5pbgppbmRleCBhMDVmNmRkMmVhODdmOTBiY2VjZTVjNzY0Y2NjZGMxNTViNDQzZGU0Li45Nzlj
Y2UyNTg5NjAwNTNmZTE0ZjcwZTZkMjM2MjAxOTBiMTZhZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw3IEBACiBtZXNzYWdlcyAtPiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICBDYXB0dXJlRmFpbGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAgIFNvdXJjZVN0b3BwZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCi0gICAgU291cmNlTXV0
ZWRDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBib29s
IG11dGVkKQorICAgIFNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKICAgICBTb3Vy
Y2VTZXR0aW5nc0NoYW5nZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKICAgICBB
cHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3Mp
CiAgICAgQXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZCwgU3RyaW5nIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyBtZXNzYWdlKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE1YmMw
NGNhNzQxMmRlNjkwZGFmZGNkOGM1NjhiZjI4ODNkNDQ5MjMuLmFiZDllNzViZGZjNTZhNzE2ZTM1
OTQ5MzkyYmM1MjY5ODgxNDZkYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRl
IHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAg
ICAgICA8cmRhcjovLzc4NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpbnRlcnJ1cHQgbW9jayBtaWNyb3Bob25l
IGRldmljZXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorCiAy
MDIyLTAzLTA2ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtG
bGF0cGFrIFNES10gRml4IGtleSBleHBpcmVkIHRyZWF0bWVudCB3aXRoIFB5dGhvbjMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGRkMzk3NjNhYzUxMjVhYWJlNjA0OTYyOTQ3ODBmMjA2
YjEwYzI4NzYuLmU1ZDE0OGFmN2VlZGIwMjRmOWZmOWZjNmY4N2EwODE0ZWM5MGE5N2UgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzg3LDcgKzM4Nyw3IEBAIGludGVyZmFjZSBUZXN0
UnVubmVyIHsKICAgICB1bmRlZmluZWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7CiAgICAgdW5k
ZWZpbmVkIHNldE1vY2tDYW1lcmFPcmllbnRhdGlvbih1bnNpZ25lZCBsb25nIG9yaWVudGF0aW9u
KTsKICAgICBib29sZWFuIGlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCk7
Ci0gICAgdW5kZWZpbmVkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2xlYW4gaXNJbnRl
cnJ1cHRlZCk7CisgICAgdW5kZWZpbmVkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVk
KGJvb2xlYW4gaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbGVhbiBpc01pY3JvcGhvbmVJbnRlcnJ1
cHRlZCk7CiAKICAgICBib29sZWFuIGhhc0FwcEJvdW5kU2Vzc2lvbigpOwogICAgIHVuZGVmaW5l
ZCBjbGVhckFwcEJvdW5kU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggMjkwMTRjMGRkNGYwOGUzNzY5
OTkxNTliNjNiMGE5Y2E3M2ZlZTMzMy4uNDYyOWNmNzIzZWEyYjM5MWZkOTQ5YzUzOWIyODFlYWJl
ZTkzNGU0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xODMyLDkgKzE4MzIsMTIgQEAgYm9vbCBUZXN0UnVubmVy
Ojppc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpCiAgICAgcmV0dXJuIHBv
c3RTeW5jaHJvbm91c01lc3NhZ2VSZXR1cm5pbmdCb29sZWFuKCJJc01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyRW5hYmxlZCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tDYW1l
cmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0
TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBi
b29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIHBvc3RTeW5jaHJvbm91c01lc3Nh
Z2UoIlNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkIiwgaXNJbnRlcnJ1cHRlZCk7CisgICAgcG9z
dFN5bmNocm9ub3VzTWVzc2FnZSgiU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQiLCBj
cmVhdGVXS0RpY3Rpb25hcnkoeworICAgICAgICB7ICJjYW1lcmEiLCBhZG9wdFdLKFdLQm9vbGVh
bkNyZWF0ZShpc0NhbWVyYUludGVycnVwdGVkKSkgfSwKKyAgICAgICAgeyAibWljcm9waG9uZSIs
IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzTWljcm9waG9uZUludGVycnVwdGVkKSkgfSwKKyAg
ICB9KSk7CiB9CiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggOTBmNWVlNDgxZjQ1MTAw
ZTM3YWM0YmNkNWEyZDRhNzA1MmYxNGMxNi4uN2Y2OTE2NjI4YmNhMjhkZmQ4YWY2MTkzMzY0YzRk
NGQzNzllMDIxNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQ5OSw3ICs0OTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZXNldE1vY2tNZWRpYURldmljZXMoKTsKICAgICB2b2lkIHNldE1vY2tDYW1lcmFPcmllbnRhdGlv
bih1bnNpZ25lZCk7CiAgICAgYm9vbCBpc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5h
YmxlZCgpOwotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7CisgICAg
dm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJy
dXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogCiAgICAgYm9vbCBoYXNBcHBC
b3VuZFNlc3Npb24oKTsKICAgICB2b2lkIGNsZWFyQXBwQm91bmRTZXNzaW9uKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGZhNmI2OTFjNzRjODY1Zjll
MWRlMzliNzRlM2MxYmNlODQ1OGRlZWQuLjVmMDJiMGVlOGM4NTRmMzZlNzBlZTUyNjkzZWVmODBm
NTQ3ZWU1NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0zNjIwLDkgKzM2MjAsOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIFdLUGFnZUlzTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKG1fbWFpbldlYlZpZXctPnBhZ2UoKSk7CiB9
CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wg
aXNJbnRlcnJ1cHRlZCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldE1vY2tDYXB0dXJlRGV2aWNl
c0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJ
bnRlcnJ1cHRlZCkKIHsKLSAgICBXS1BhZ2VTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChtX21h
aW5XZWJWaWV3LT5wYWdlKCksIGlzSW50ZXJydXB0ZWQpOworICAgIFdLUGFnZVNldE1vY2tDYXB0
dXJlRGV2aWNlc0ludGVycnVwdGVkKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgaXNDYW1lcmFJbnRl
cnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogfQogCiBzdHJ1Y3QgSW5BcHBCcm93
c2VyUHJpdmFjeUNhbGxiYWNrQ29udGV4dCB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKaW5kZXggZTI0YWMzMjAzNGFkYjQ1YzJlOTc1OWQ4OThjMjgwYTVjNWQzNmU2ZC4u
YThhMjQ5N2Q2ZjY1YjQwODE2ZWRkODYxNjkyNTJmZTdiOWQyYjAzNCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzEyLDcgKzMxMiw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgc2V0TW9ja0NhbWVyYU9y
aWVudGF0aW9uKHVpbnQ2NF90KTsKICAgICBib29sIGlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJFbmFibGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRl
ZChib29sKTsKKyAgICB2b2lkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wg
aXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAgICAg
Ym9vbCBoYXNBcHBCb3VuZFNlc3Npb24oKTsKIAogICAgIHZvaWQgaW5qZWN0VXNlclNjcmlwdChX
S1N0cmluZ1JlZik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmlu
ZGV4IDk0YTA0NmIyMDJlMjZkYmRiYTk5ZmFkNDgyZTQxYjMyOTQ5NDc3MzMuLmQ5ZTA2MGRhYzJh
Yjk5NDc3NjQ4YzUyNTU3NzhmZTAzYzVjNTY3NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCkBAIC05NzMsOCArOTczLDExIEBAIFdLUmV0YWluUHRyPFdLVHlw
ZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5q
ZWN0ZWRCCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCIpKQogICAgICAgICByZXR1
cm4gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmlz
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCkpKTsKICAgICAKLSAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldE1vY2tDYW1lcmFJ
c0ludGVycnVwdGVkIikpIHsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNl
dE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOworICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0TW9ja0Nh
cHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQiKSkgeworICAgICAgICBhdXRvIG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSA9IGRpY3Rpb25hcnlWYWx1ZShtZXNzYWdlQm9keSk7CisgICAgICAgIGJvb2wgaXND
YW1lcmFJbnRlcnJ1cHRlZCA9IGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keURpY3Rpb25hcnksICJj
YW1lcmEiKTsKKyAgICAgICAgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCA9IGJvb2xlYW5W
YWx1ZShtZXNzYWdlQm9keURpY3Rpb25hcnksICJtaWNyb3Bob25lIik7CisgICAgICAgIFRlc3RD
b250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChp
c0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNlMjc2MGMwNzM4NzVhOGJmMzAxN2Q3MzEz
YzAxYTA3ZmIzNWI1YjEuLmZmYjY5YTg1NDAzZGEwZTdhNzg0OTg5NzZiOWU1ZWMyMjk2YjVmZmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNh
cHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8cmRh
cjovLzc4NDIxMjgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJy
dXB0ZWQtZnJvbS1hdWRpby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8u
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlk
ZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbDogTWlncmF0ZWQgdG8gdGVzdFJ1bm5lciBBUEkuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS90cmFjay1lbmRlZC13aGlsZS1tdXRlZC5odG1sOgor
ICAgICAgICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0wNSAg
QWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5vbi1zdGFu
ZGFyZCBkaXNwbGF5OmJsb2NrIFVBIHN0eWxlc2hlZXQgcnVsZSBmb3IgPGxheWVyPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50
ZXJydXB0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFt
LXRyYWNrLWludGVycnVwdGVkLmh0bWwKaW5kZXggOTBhM2VmYmNjNWM1YmZlMWY3OTIzZGNiOWI1
NTU1MmFiNjdmOGI0Yy4uMDhkY2IzNTM1Mjk5MmFlNDhmNjVjNmU2NmI2M2E5YmQ4OWUxODQ1NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJh
Y2staW50ZXJydXB0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21l
ZGlhLXN0cmVhbS10cmFjay1pbnRlcnJ1cHRlZC5odG1sCkBAIC0xLDUgKzEsNCBAQAotPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDYXB0dXJlQXVkaW9JbkdQVVByb2Nl
c3NFbmFibGVkPWZhbHNlIENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZD1mYWxzZSBdIC0t
PgotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBDYXB0dXJlVmlkZW9JbkdQ
VVByb2Nlc3NFbmFibGVkPXRydWUgTXV0ZUNhbWVyYU9uTWljcm9waG9uZUludGVycnVwdGlvbkVu
YWJsZWQ9ZmFsc2UgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiAgICAgPG1ldGEgY2hhcnNldD0idXRm
LTgiPgpAQCAtMTIsMTggKzExLDE4IEBACiAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9
PiB7CiAgICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOwogICAgICAgICBjb25zdCB0cmFjayA9IHN0cmVh
bS5nZXRBdWRpb1RyYWNrcygpWzBdOwotICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRy
YWNrLm9ubXV0ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiks
IDUwMDApIH0pOwotICAgICAgICBpbnRlcm5hbHMuc2V0TWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1
cHRlZCh0cmFjaywgdHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZp
Y2VzSW50ZXJydXB0ZWQoZmFsc2UsIHRydWUpOwogICAgICAgICBhd2FpdCBwcm9taXNlOwogCiAg
ICAgICAgIGFzc2VydF90cnVlKHRyYWNrLm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKICAgICAg
ICAgYXNzZXJ0X3RydWUoaW50ZXJuYWxzLmlzTWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1cHRlZCh0
cmFjayksICJzb3VyY2UgaXMgaW50ZXJydXB0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3
IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7
IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAg
IGludGVybmFscy5zZXRNZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKHRyYWNrLCBmYWxzZSk7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFs
c2UsIGZhbHNlKTsKICAgICAgICAgYXdhaXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfZmFs
c2UodHJhY2subXV0ZWQsICJ0cmFjayBpcyBubyBsb25nZXIgbXV0ZWQiKTsKQEAgLTc0LDE0ICs3
MywxNCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHBhZ2VNZWRp
YVN0YXRlLmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlJyA6
ICdIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UnKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2ZhbHNlKHBhZ2VNZWRpYVN0YXRlLmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFz
QWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlJyA6ICdIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2Un
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVN0YXRlID0gaW50ZXJuYWxzLnBh
Z2VNZWRpYVN0YXRlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNl
dE1lZGlhU3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJhY2ssIGZhbHNlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0
ZWQoZmFsc2UsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICAgICAgICAgICAgICBwYWdlU3RhdGUgPSBpbnRlcm5hbHMucGFnZU1lZGlhU3Rh
dGUoKTsKLSAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNl
SW50ZXJydXB0ZWQodHJhY2ssIHRydWUpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzVmlkZW8sICFpc1ZpZGVvKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3Qo
Ik11dGVkIHN0YXRlIGRpZCBub3QgY2hhbmdlIGluIDEgc2Vjb25kIiksIDEwMDApOwogICAgICAg
ICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlh
LXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9tLWF1ZGlvLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWlu
dGVycnVwdGVkLWZyb20tYXVkaW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMTMzMDY4MmUx
MmViMTA4MTcwMDFkNDUxNjE0OTI0MTY1MTlmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRl
ZC1mcm9tLWF1ZGlvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBNdXRlL3Vu
bXV0ZSB2aWRlbyB0cmFjayBpZiBhdWRpbyBnZXRzIGludGVycnVwdGVkCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWlu
dGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
bWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYmZlYzVmZDE4M2UwNjY1NTg2NmIxYWZjNWE0M2E1NjQ3MDIzN2NhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlk
ZW8tdHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ2FwdHVyZUF1ZGlvSW5HUFVQ
cm9jZXNzRW5hYmxlZD10cnVlIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBN
dXRlQ2FtZXJhT25NaWNyb3Bob25lSW50ZXJydXB0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+VmlkZW8g
Y2FwdHVyZSBzb3VyY2UgaW50ZXJydXB0aW9uIGJhc2VkIG9uIGF1ZGlvIGludGVycnVwdGlvbjwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisgPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICBw
cm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdh
aXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRl
bzogdHJ1ZX0pOworICAgICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRWaWRlb1RyYWNrcygp
WzBdOworICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkg
PT4geyB0cmFjay5vbm11dGUgPSByZXNvbHZlOyBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgibm8g
bXV0ZSIpLCA1MDAwKSB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVyZURldmlj
ZXNJbnRlcnJ1cHRlZChmYWxzZSwgdHJ1ZSk7CisgICAgICAgIGF3YWl0IHByb21pc2U7CisKKyAg
ICAgICAgYXNzZXJ0X3RydWUodHJhY2subXV0ZWQsICJ0cmFjayBpcyBtdXRlZCIpOworCisgICAg
ICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9u
dW5tdXRlID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIHVubXV0ZSIpLCA1
MDAwKSB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1
cHRlZChmYWxzZSwgZmFsc2UpOworICAgICAgICBhd2FpdCBwcm9taXNlOworCisgICAgICAgIGFz
c2VydF9mYWxzZSh0cmFjay5tdXRlZCwgInRyYWNrIGlzIG5vdCBtdXRlZCIpOworCisgICAgICAg
IHRyYWNrLnN0b3AoKTsKKyAgICB9LCAiTXV0ZS91bm11dGUgdmlkZW8gdHJhY2sgaWYgYXVkaW8g
Z2V0cyBpbnRlcnJ1cHRlZCIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8t
dHJhY2staW50ZXJydXB0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVk
aWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLmh0bWwKaW5kZXggZWI5YTliZmViNzRh
YmZiZjMxODg2N2I1ZGE0NGZhNTNiZTg4OTZmMS4uODJlNjcyMjc5NWE5MTZlZDQwZDYwZWMyZTc5
M2E2MGM1NWEyZGZkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9t
ZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC5o
dG1sCkBAIC0xNSwxMyArMTUsMTMgQEAKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBs
ZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25t
dXRlID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkg
fSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQodHJ1ZSk7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQodHJ1
ZSwgZmFsc2UpOwogICAgICAgICBhd2FpdCBwcm9taXNlOwogCiAgICAgICAgIGFzc2VydF90cnVl
KHRyYWNrLm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3
IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7
IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAg
IHRlc3RSdW5uZXIuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoZmFsc2UpOworICAgICAgICB0
ZXN0UnVubmVyLnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGZhbHNlLCBmYWxzZSk7
CiAgICAgICAgIGF3YWl0IHByb21pc2U7CiAKICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRyYWNrLm11
dGVkLCAidHJhY2sgaXMgbm90IG11dGVkIik7CkBAIC00NSw3ICs0NSw3IEBACiAKICAgICAgICAg
Ly8gZ2V0dGluZyBhbiBpbnRlcnJ1cHRpb24sIHRyYWNrIHNob3VsZCBiZSBtdXRlZC4KICAgICAg
ICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNr
Lm9ubXV0ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUw
MDApIH0pOwotICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKHRy
dWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVk
KHRydWUsIGZhbHNlKTsKICAgICAgICAgYXdhaXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRf
dHJ1ZSh0cmFjay5tdXRlZCwgInRyYWNrIGlzIG11dGVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL3RyYWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3RyYWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwKaW5k
ZXggOWRiNzg2MjcxOTM5ZmUzNGU1OTRiYzg2MzVlMzJlOTQzNDRlMzk2Ni4uNjI1OTk2NzM3Njdi
NDRhOGExNjAzMzBmNzkzYjZmMTM0MDBkYzZhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS90cmFjay1lbmRlZC13aGlsZS1tdXRlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vdHJhY2stZW5kZWQtd2hpbGUtbXV0ZWQuaHRtbApAQCAtMTEs
MTMgKzExLDEzIEBACiBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCBz
dHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86
IHRydWV9KTsKICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwot
ICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQog
ICAgICAgICByZXR1cm47CiAKICAgICBjb25zdCBjbG9uZSA9IHRyYWNrLmNsb25lKCk7CiAKICAg
ICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2su
b25tdXRlID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAw
MCkgfSk7Ci0gICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJh
Y2ssIHRydWUpOworICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0
ZWQoZmFsc2UsIHRydWUpOwogICAgIGF3YWl0IHByb21pc2U7CiAKICAgICB0cmFjay5zdG9wKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWQ2NDkw
MTk1OTYzMGRlODhmMGQxNWFjYjkwY2I5MGNiMTgzNjc1NS4uN2E1ZjQ4NmM3ZjBmMmM1MmIxYTNh
Mzc4NzllNzk3Nzg1M2RmMDViNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xp
Yi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNzk4LDYgKzc5OCw3IEBAIHdlYmtpdC5vcmcvYi8yMTM2OTkgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjCiB3
ZWJraXQub3JnL2IvMjMwNDE1IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNl
Y29ubmVjdGlvbnN0YXRlY2hhbmdlLWV2ZW50Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcv
Yi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHRtbCBb
IEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE4NzYwMyBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0
cmVhbS10cmFjay1zb3VyY2UtZmFpbHVyZS5odG1sIFsgVGltZW91dCBGYWlsdXJlIFBhc3MgXQor
ZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQtZnJv
bS1hdWRpby5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMjM1MDggaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1N
ZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454081</attachid>
            <date>2022-03-08 00:57:54 -0800</date>
            <delta_ts>2022-03-08 03:07:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237524-20220308095750.patch</filename>
            <type>text/plain</type>
            <size>51109</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyZGM0ODMzNTA2MzNiNWEyYzJhNjFk
ZWVkZDY3ODE5NWIxMjlhYzEuLjQ2NjE4NzVmMGY1MjIzNjFkOTY3MzZhNzgyZWRmZTM5NjQ0MjQy
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBj
YXB0dXJlIGluIGNhc2UgYXVkaW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1MjQKKyAgICAgICAgPHJk
YXI6Ly83ODQyMTI4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoK
KwogMjAyMi0wMy0wNCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgbnVsbCBjaGVjayBmb3IgcGF0aCBpbiBtYWtlQWxsRGlyZWN0b3JpZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBlMWJjNzM5Mzk0YjMxYzJlYmZkNmU0YmFjZjViZDc3M2FhZGU1ZTcwLi4yMTI2ZjA3ZmM3
Nzc0MDNkYmVlNjFjNjk2ZDU4ODgzZmFlOWUzNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMjItMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBjYXB0dXJlIGluIGNhc2UgYXVkaW8g
Y2FwdHVyZSBnZXRzIGludGVycnVwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzc1MjQKKyAgICAgICAgPHJkYXI6Ly83ODQyMTI4Mj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgSW4gY2FzZSB3ZSBkZXRl
Y3QgdGhhdCBhIG1pY3JvcGhvbmUgdHJhY2sgc291cmNlIGdldHMgbXV0ZWQgZHVlIHRvIGludGVy
cnVwdGlvbiwgd2UgbXV0ZQorICAgICAgICBjYXB0dXJlIHZpZGVvIHRyYWNrcyBiYXNlZCBpZiBh
bGxvd2VkIGJ5IHRoZSBuZXcgTXV0ZUNhbWVyYU9uTWljcm9waG9uZUludGVycnVwdGlvbkVuYWJs
ZWQgc2V0dGluZy4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbW9jayBtaWNyb3Bob25lIGlu
dGVycnVwdGlvbiBhbmQgcmVtb3ZlIHByZXZpb3VzIGluIHByb2Nlc3MgaW50ZXJuYWxzIEFQSS4K
KworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFj
ay1pbnRlcnJ1cHRlZC1mcm9tLWF1ZGlvLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6c2V0SXNJbnRlcnJ1cHRlZCk6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVw
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
ZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgorCiAyMDIyLTAzLTA2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFB1c2ggSFRNTE1l
ZGlhRWxlbWVudCByZW5kZXJlcidzIGNvbnRlbnRCb3ggcmVjdCB0byBHUFUgcHJvY2VzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA4ZWNkMWU2MmQxYjNlZDQ1MDhhNTM3MDlkY2Y2MDc2OGY5ZDZlODg4Li5jM2YwMTIx
YzI3NGFiYjQ5NTAyNGZjNjljNmI3YmVhYWE1NTNlZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDIyLTAzLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgYSBwcmVmZXJlbmNlIHRvIG11dGUgdmlkZW8gY2FwdHVyZSBpbiBjYXNlIGF1ZGlv
IGNhcHR1cmUgZ2V0cyBpbnRlcnJ1cHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTI0CisgICAgICAgIDxyZGFyOi8vNzg0MjEyODI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBpbnRlcnJ1cHQgbW9jayBtaWNyb3Bob25lIGRldmljZXMuCisgICAgICAgIFNlbmQgdG8gV2Vi
UHJvY2VzcyBzb3VyY2VzIHdoZXRoZXIgc291cmNlcyBhcmUgaW50ZXJydXB0ZWQgZWFjaCB0aW1l
IHRoZSBzb3VyY2UgbXV0ZWQgdmFsdWUgY2hhbmdlcy4KKyAgICAgICAgU3RvcmUgdGhhdCB2YWx1
ZSBpbiByZW1vdGUgc291cmNlcy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5j
cHA6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOgorCiAyMDIyLTAzLTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIExheWVy
IHRyZWUgY2FuIGdldCBpbmRlZmluaXRlbHkgZnJvemVuIGlmIFdLV2ViVmlldyBpcyB1bnBhcmVu
dGVkIHVuZGVybmVhdGggLVtVSVdpbmRvdyBkZWFsbG9jXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1NvdXJj
ZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKaW5k
ZXggODNiZWExZjdkZjZkNThkNjcwNzk3YTVhZjNhNjIyNjU4ZmNhOTVkMS4uMzk5ZDUwODlmM2Uz
ZjM4M2RjNWNlY2NkNDUwN2Y4NTUwZGRjZmNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBAIC02
NDAsNiArNjQwLDE4IEBAIE1vdXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQ6CiAgICAgV2ViS2l0
OgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorTXV0ZUNhbWVyYU9uTWljcm9waG9uZUludGVycnVw
dGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDog
ZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWSkiOiB0cnVlCisg
ICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQor
CiBOUEFQSVBsdWdJbnNFbmFibGVkRm9yVGVzdGluZ0luV2ViS2l0TGVnYWN5OgogICB0eXBlOiBi
b29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiTlBBUEkgUGx1Zy1JbnMgRW5hYmxlZCBJbiBXZWJL
aXRMZWdhY3kiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCBhNDVkMTllNTQ3Mzk5NTZkYjc4MDYzYzdjYWJl
OGE4ZTBmMTA0ZDRkLi4zZTM5NDRiY2Q1MDE3ZGIyMjdmOTI4ZWFhN2FiNDk2OTQ3MTJhYmNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAKQEAgLTkxLDYgKzkxLDcgQEAgTWVkaWFTdHJlYW1UcmFjazo6TWVkaWFT
dHJlYW1UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVkaWFTdHIK
ICAgICBpZiAoIWlzQ2FwdHVyZVRyYWNrKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1faXNJ
bnRlcnJ1cHRlZCA9IG1fcHJpdmF0ZS0+c291cmNlKCkuaW50ZXJydXB0ZWQoKTsKICAgICBhbGxD
YXB0dXJlVHJhY2tzKCkuYWRkKHRoaXMpOwogCiAgICAgaWYgKG1fcHJpdmF0ZS0+aGFzQXVkaW8o
KSkKQEAgLTUwOSw2ICs1MTAsMTggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0
dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKICNlbmRpZgogfQog
CitzdGF0aWMgdm9pZCB1cGRhdGVWaWRlb0NhcHR1cmVBY2NvcmRpbmdNaWNyb3Bob25lSW50ZXJy
dXB0aW9uKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCkK
K3sKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGZvciAoYXV0byogY2Fw
dHVyZVRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7CisgICAgICAgIGlmICghY2FwdHVyZVRy
YWNrLT5kb2N1bWVudCgpIHx8IGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKS0+cGFnZSgpICE9IHBh
Z2UpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgc291cmNlID0gY2FwdHVy
ZVRyYWNrLT5zb3VyY2UoKTsKKyAgICAgICAgaWYgKCFzb3VyY2UuaXNFbmRlZCgpICYmIHNvdXJj
ZS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pCisgICAgICAgICAg
ICBzb3VyY2Uuc2V0TXV0ZWQoaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOworICAgIH0KK30KKwog
dm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKIHsKICAgICBB
U1NFUlQoaXNDYXB0dXJlVHJhY2soKSk7CkBAIC02MTIsNyArNjI1LDggQEAgdm9pZCBNZWRpYVN0
cmVhbVRyYWNrOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKICAgICAKIHZv
aWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKQogewotICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFjdGl2ZURPTU9i
amVjdHNBcmVTdG9wcGVkKCkgfHwgbV9lbmRlZCkKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMt
PmRvY3VtZW50KCk7CisgICAgaWYgKGRvY3VtZW50LT5hY3RpdmVET01PYmplY3RzQXJlU3RvcHBl
ZCgpIHx8IG1fZW5kZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIHF1ZXVlVGFza0tlZXBpbmdP
YmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIG11dGVkID0g
bV9wcml2YXRlLT5tdXRlZCgpXSB7CkBAIC02MjIsNiArNjM2LDExIEBAIHZvaWQgTWVkaWFTdHJl
YW1UcmFjazo6dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogICAg
ICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUobXV0ZWQgPyBldmVudE5hbWVzKCkubXV0
ZUV2ZW50IDogZXZlbnROYW1lcygpLnVubXV0ZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICB9KTsKICAgICBjb25maWd1cmVUcmFja1Jl
bmRlcmluZygpOworCisgICAgYm9vbCB3YXNJbnRlcnJ1cHRlZCA9IG1faXNJbnRlcnJ1cHRlZDsK
KyAgICBtX2lzSW50ZXJydXB0ZWQgPSBtX3ByaXZhdGUtPnNvdXJjZSgpLmludGVycnVwdGVkKCk7
CisgICAgaWYgKHdhc0ludGVycnVwdGVkICE9IG1faXNJbnRlcnJ1cHRlZCAmJiBtX3ByaXZhdGUt
PnNvdXJjZSgpLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAmJiBk
b2N1bWVudC0+c2V0dGluZ3MoKS5tdXRlQ2FtZXJhT25NaWNyb3Bob25lSW50ZXJydXB0aW9uRW5h
YmxlZCgpKQorICAgICAgICB1cGRhdGVWaWRlb0NhcHR1cmVBY2NvcmRpbmdNaWNyb3Bob25lSW50
ZXJydXB0aW9uKCpkb2N1bWVudCwgbV9pc0ludGVycnVwdGVkKTsKIH0KIAogdm9pZCBNZWRpYVN0
cmVhbVRyYWNrOjp0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5oCmluZGV4IGM5YTQzODU5MzU5YWE0ZDhmNzBmYmY0NTUyOWIxYTZlNTdmYjFiOTAu
LjA3MGY3ZGMwOTA2YzU0OTk5YjJjYmVmNmVkZDM2ZWYzZTkwZWYwYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBA
IC0yMDgsNiArMjA4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9lbmRlZCB7IGZhbHNlIH07CiAgICAgY29uc3QgYm9vbCBtX2lzQ2FwdHVyZVRy
YWNrIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNJbnRlcnJ1cHRlZCB7IGZhbHNlIH07CiB9Owog
CiB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+IE1lZGlhU3RyZWFtVHJh
Y2tWZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggOWEwYjI5
ZWRiMWQxNzgxNTY1NDUwZjU4ZGU5MDlmNjhjODczZWEwMy4uZTYzMGM0YzVjMDI5ZTI2MjY5NGZl
NGMwNzU2YTc4OTgxMTZjMmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNw
cApAQCAtNzAyLDE1ICs3MDIsNiBAQCBjb25zdCBCYXNlQXVkaW9TaGFyZWRVbml0JiBDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjp1bml0KCkgY29uc3QKICAgICByZXR1cm4gbV9vdmVycmlkZVVuaXQg
PyAqbV9vdmVycmlkZVVuaXQgOiBDb3JlQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKTsKIH0K
IAotdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXRJbnRlcnJ1cHRlZEZvclRlc3Rpbmco
Ym9vbCBpc0ludGVycnVwdGVkKQotewotICAgIGlmIChpc0ludGVycnVwdGVkKSB7Ci0gICAgICAg
IHVuaXQoKS5zdXNwZW5kKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgdW5pdCgpLnJl
c3VtZSgpOwotfQotCiB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpiZWdpbklu
dGVycnVwdGlvbigpCiB7CiAgICAgZW5zdXJlT25NYWluVGhyZWFkKFtdIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDMzMDM2ZTk5NmY2NzNlNTI3MDIzODViNDFlMGE5M2Yx
ODAzNTFmOTkuLjZlMTc5MWNlOTgxNGZhZDk0YTEzMzM2ZWQ1NGFhZDBmMTBjZThiNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNzQsNyArNzQsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKIAogICAgIHZvaWQgZGVsYXlTYW1w
bGVzKFNlY29uZHMpIGZpbmFsOwotICAgIHZvaWQgc2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJv
b2wpIGZpbmFsOwogCiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8aW50Pj4gZGlzY3JldGVTYW1w
bGVSYXRlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgeyA4MDAwLCAxNjAwMCwgMzIwMDAsIDQ0
MTAwLCA0ODAwMCwgOTYwMDAgfSB9OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggZDA4OTRkNWQ0
ZmU4MjVmOGIwNmQ2YzkyOGFhZjA5ODYzNzdjYzRiMi4uMmFhZTE5MWMxN2VmM2VjYTdhYTAwN2Ez
YTI4YjVhMTFhZWFjY2E1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQyLDYgKzQyLDEwIEBACiAj
aW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL1VV
SUQuaD4KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk1vY2tBdWRpb1NoYXJlZFVu
aXQuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVVTRShHU1RSRUFNRVIpCkBAIC0xODAsNiAr
MTg0LDE3IEBAIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmRlbGF5U2FtcGxlcyhTZWNv
bmRzIGRlbHRhKQogICAgIG1fZGVsYXlVbnRpbCA9IE1vbm90b25pY1RpbWU6Om5vdygpICsgZGVs
dGE7CiB9CiAKK3ZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQo
Ym9vbCBpc0ludGVycnVwdGVkKQoreworICAgIFVOVVNFRF9QQVJBTShpc0ludGVycnVwdGVkKTsK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoaXNJbnRlcnJ1cHRlZCkKKyAgICAgICAgTW9j
a0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCkuc3VzcGVuZCgpOworICAgIGVsc2UKKyAgICAg
ICAgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCkucmVzdW1lKCk7CisjZW5kaWYKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuaAppbmRleCBmMGRhZGY3MWQyZDAzNTM1YTY4MmU1MGM3OWI5NDI0MmQwODY4
ZmY4Li41NWY5ZWQyYTZjMjg5NDhkNDBjZTgwNjQ4ZjUwZGQ4NzdjZTM2OWUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZS5oCkBAIC00NSw2ICs0NSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogICAgIHZpcnR1YWwgfk1vY2tSZWFs
dGltZUF1ZGlvU291cmNlKCk7CiAKKyAgICBzdGF0aWMgdm9pZCBzZXRJc0ludGVycnVwdGVkKGJv
b2wpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDaGFubmVsQ291bnQodW5zaWduZWQp
OwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IDA5MmQyZmU2
MTE5MzQ4Zjk4NjVhODhmYjI3OTFlM2EyZDcxNGE0MDEuLmMzOWZhN2JjZTQzYzM3ZWIzZGViNzEz
ZTk3ZDllOTIwOWNiMmZiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0zMTcs
OSArMzE3LDEwIEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnJlc2V0RGV2
aWNlcygpCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuY2FwdHVy
ZURldmljZXNDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQg
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVy
cnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1
cHRlZCkKIHsKLSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0SXNJbnRlcnJ1cHRlZChp
c0ludGVycnVwdGVkKTsKKyAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0SXNJbnRlcnJ1
cHRlZChpc0NhbWVyYUludGVycnVwdGVkKTsKKyAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6
c2V0SXNJbnRlcnJ1cHRlZChpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiB9CiAKIHZvaWQgTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldERldmljZXMoVmVjdG9yPE1vY2tNZWRpYURl
dmljZT4mJiBuZXdNb2NrRGV2aWNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAppbmRleCA3ZmFj
ODk5NGVkM2FiODAzZDhhNmFiNWM1NDcwOTVhYjkxMjEyYjYzLi42OTk4ODRmMzExOWMyYjRmMWNm
ODI5MDYzMDBhZGM1NmYzM2QyNWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCkBAIC00Nyw3
ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBhZGREZXZp
Y2UoY29uc3QgTW9ja01lZGlhRGV2aWNlJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgcmVtb3ZlRGV2aWNlKGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElkKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCByZXNldERldmljZXMoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29s
IGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogCiAg
ICAgdm9pZCBzZXRNb2NrQXVkaW9DYXB0dXJlRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lz
TW9ja0F1ZGlvQ2FwdHVyZUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICB2b2lkIHNldE1vY2tW
aWRlb0NhcHR1cmVFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNNb2NrVmlkZW9DYXB0dXJl
RW5hYmxlZCA9IGlzRW5hYmxlZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
Y3BwCmluZGV4IGZmZTBhY2Q4MTIzMjZhM2EwN2IyYTUyMzc4YmE3ZjYxZWEwMDBkODQuLjkzODYw
MDkyNmY4NzVlODMzZDE3MGE4MzBjZTBiMGE1ODZhNDhhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5jcHAKQEAgLTM1MSw5ICszNTEsOSBAQCB2b2lkIEdQVVByb2Nlc3M6
OnJlc2V0TW9ja01lZGlhRGV2aWNlcygpCiAgICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnJlc2V0RGV2aWNlcygpOwogfQogCi12b2lkIEdQVVByb2Nlc3M6OnNldE1vY2tDYW1lcmFJ
c0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3ZvaWQgR1BVUHJvY2Vzczo6c2V0TW9j
a0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29s
IGlzTWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChpc0ludGVycnVwdGVkKTsKKyAgICBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJy
dXB0ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogfQog
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
UHJvY2Vzcy5oCmluZGV4IDkxMGE4YjhhMmU5YmMxNDI4NGI3YmZkN2M2ZjBhODM1MDZmMzdkNTEu
LjUzYmU1ZDg3NGJhMGY2NDkwOGE0YzRiOGMyM2RhNDNiNDNiYWYyOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVVByb2Nlc3MuaApAQCAtMTUyLDcgKzE1Miw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBjbGVhck1vY2tNZWRpYURldmljZXMoKTsKICAgICB2b2lkIHJlbW92ZU1vY2tNZWRpYURl
dmljZShjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJZCk7CiAgICAgdm9pZCByZXNldE1vY2tNZWRp
YURldmljZXMoKTsKLSAgICB2b2lkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wpOwor
ICAgIHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUlu
dGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKICAgICBib29sIHNldENh
cHR1cmVBdHRyaWJ1dGlvblN0cmluZyhjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogI2lmIEhBVkUo
U0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDhlOTkyOWE1MzViNDFlMmQxNjdmMjFlNWIz
ZWYzMjViZDVjODIzY2QuLmE2MzE3ZmJkNDYwZTc4ZDU4NzUyMTNmMTc0N2M2Njk2ZWFjZWQzYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmlu
CkBAIC0zOSwxMSArMzksMTEgQEAgbWVzc2FnZXMgLT4gR1BVUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgVXBkYXRlU2FuZGJveEFjY2VzcyhWZWN0b3I8V2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+IGV4dGVuc2lvbnMpOwogICAgIFVwZGF0ZUNhcHR1cmVBY2Nlc3MoYm9vbCBh
bGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGVvQ2FwdHVyZSwgYm9vbCBhbGxvd0Rpc3Bs
YXlDYXB0dXJlLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSUQpIC0+ICgpIEFz
eW5jCiAgICAgVXBkYXRlQ2FwdHVyZU9yaWdpbihzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIG9yaWdpbkRhdGEsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJRCkK
LSAgICBBZGRNb2NrTWVkaWFEZXZpY2Uoc3RydWN0IFdlYkNvcmU6Ok1vY2tNZWRpYURldmljZSBk
ZXZpY2UpOwotICAgIENsZWFyTW9ja01lZGlhRGV2aWNlcygpOwotICAgIFJlbW92ZU1vY2tNZWRp
YURldmljZShTdHJpbmcgcGVyc2lzdGVudElkKTsKLSAgICBSZXNldE1vY2tNZWRpYURldmljZXMo
KTsKLSAgICBTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sIGlzSW50ZXJydXB0ZWQpOwor
ICAgIEFkZE1vY2tNZWRpYURldmljZShzdHJ1Y3QgV2ViQ29yZTo6TW9ja01lZGlhRGV2aWNlIGRl
dmljZSkKKyAgICBDbGVhck1vY2tNZWRpYURldmljZXMoKQorICAgIFJlbW92ZU1vY2tNZWRpYURl
dmljZShTdHJpbmcgcGVyc2lzdGVudElkKQorICAgIFJlc2V0TW9ja01lZGlhRGV2aWNlcygpCisg
ICAgU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVw
dGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKQogI2VuZGlmCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIERpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVjdERpc3BsYXlJRCBk
aXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDg5YjFlYmZjMjMxZjBiNzIyZDMwMTE4
YzkwNmE5Njk0OGM4YThmNWYuLmUyNTQ5MjZkYzUxYTQ5YWViYTQ5OGQ3OTQ5YWFmYzgwN2E0Yjcy
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMzEzOSwx
NSArMzEzOSwxNSBAQCBib29sIFdLUGFnZUlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJF
bmFibGVkKFdLUGFnZVJlZikKICNlbmRpZgogfQogCi12b2lkIFdLUGFnZVNldE1vY2tDYW1lcmFJ
c0ludGVycnVwdGVkKFdLUGFnZVJlZiBwYWdlUmVmLCBib29sIGlzSW50ZXJydXB0ZWQpCit2b2lk
IFdLUGFnZVNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKFdLUGFnZVJlZiBwYWdlUmVm
LCBib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQp
CiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBhdXRvJiBncHVQcm9jZXNzID0gdG9JbXBsKHBhZ2VS
ZWYpLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5lbnN1cmVHUFVQcm9jZXNzKCk7Ci0gICAgZ3B1
UHJvY2Vzcy5zZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChpc0ludGVycnVwdGVkKTsKKyAgICBn
cHVQcm9jZXNzLnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzQ2FtZXJhSW50ZXJy
dXB0ZWQsIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKICNlbmRpZgogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pICYmIFVTRShHU1RSRUFNRVIpCi0gICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRNb2Nr
Q2FtZXJhSXNJbnRlcnJ1cHRlZChpc0ludGVycnVwdGVkKTsKKyAgICB0b0ltcGwocGFnZVJlZikt
PnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGlz
TWljcm9waG9uZUludGVycnVwdGVkKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5kZXggMmRjNDliNGMyMTE1ZmVhYWE5ZWU0
YTQwYjA5ZDEwMDg3OWI3YWI2Zi4uMGY3MGQ3ZTA4MWExMGY4NzkzMDRhMzRiOWMxZjU2M2IyZmIy
MjViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aApAQCAtMjAxLDcgKzIwMSw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdLUGFnZVJlZiBwCiAKIFdLX0VYUE9S
VCB2b2lkIFdLUGFnZVNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihXS1BhZ2VSZWYgcGFnZSwgdWlu
dDY0X3Qgb3JpZW50YXRpb24pOwogV0tfRVhQT1JUIGJvb2wgV0tQYWdlSXNNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoV0tQYWdlUmVmIHBhZ2UpOwotV0tfRVhQT1JUIHZvaWQg
V0tQYWdlU2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgaXNJ
bnRlcnJ1cHRlZCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FwdHVyZURldmljZXNJ
bnRlcnJ1cHRlZChXS1BhZ2VSZWYgcGFnZSwgYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29s
IGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKIAogdHlwZWRlZiB2b2lkICgqV0tQYWdlTG9hZGVk
U3VicmVzb3VyY2VEb21haW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYgZG9tYWlucywgdm9pZCogZnVu
Y3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUxvYWRlZFN1YnJlc291cmNlRG9t
YWlucyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zRnVuY3Rp
b24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IGFkMDc1ODIxNzUxMDEzNTdlMDU1YjExNDI2ODg5MmZhN2M3M2M5NDYuLjc4
N2JiMTIxZTc0YzY2OTY1ODE4YjYyMDQ5YjIxZmU5Yjk1ZTcyZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2
b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlTXV0ZWRDaGFuZ2Vk
KG1faWQsIG1fc291cmNlLT5tdXRlZCgpKSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZU11dGVkQ2hhbmdlZCht
X2lkLCBtX3NvdXJjZS0+bXV0ZWQoKSwgbV9zb3VyY2UtPmludGVycnVwdGVkKCkpLCAwKTsKICAg
ICB9CiAKICAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKaW5kZXggMjMyYzU3
MjY1MTEzOTQ1Nzg1NjgwNmM1NDc5ZDYyN2M0ODQ0MTA1OC4uNmY4MjMyODUxMDdkOTI3YTg0Y2Rl
MTVkN2M4YmE5OGU1NDVhNzI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTM1MCw5ICszNTAsOSBAQCB2b2lkIEdQVVByb2Nlc3NQ
cm94eTo6cmVzZXRNb2NrTWVkaWFEZXZpY2VzKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9j
ZXNzOjpSZXNldE1vY2tNZWRpYURldmljZXMgeyB9LCAwKTsKIH0KIAotdm9pZCBHUFVQcm9jZXNz
UHJveHk6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3Zv
aWQgR1BVUHJvY2Vzc1Byb3h5OjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29s
IGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0g
ICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQg
eyBpc0ludGVycnVwdGVkIH0sIDApOworICAgIHNlbmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlNl
dE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkIHsgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgaXNN
aWNyb3Bob25lSW50ZXJydXB0ZWQgfSwgMCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5o
CmluZGV4IDAwNjI1NWQxZjY2NmU4YzQyNGQwY2NiNmVmY2RlY2ExYzgyYzc5YWEuLjQ0M2U5Yjdh
NDY2YWZlNTFlODg0YjRmOTQzOGM0Y2M2NWQ3M2I4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgY2xlYXJNb2NrTWVkaWFEZXZpY2VzKCk7CiAgICAgdm9pZCByZW1vdmVNb2NrTWVk
aWFEZXZpY2UoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZXNldE1vY2tNZWRpYURldmljZXMo
KTsKLSAgICB2b2lkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wpOworICAgIHZvaWQg
c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVk
LCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKICAgICB2b2lkIHVwZGF0ZVNhbmRib3hB
Y2Nlc3MoYm9vbCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGVvQ2FwdHVyZSwgYm9v
bCBhbGxvd0Rpc3BsYXlDYXB0dXJlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCAyZmRkYjg0OTUyZDA4ODlhODgyNTRlNDc3YmZmMjMyMGI2
MGYwMWRjLi43NWUyNDY2NTc2MzFiZmZkMjAxN2Q2NmViY2ZhZDVmMzYyMzdiZjNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwODgyLDkgKzEwODgyLDkg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2
NF90IG9yaWVudGF0aW9uKQogfQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEdT
VFJFQU1FUikKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChi
b29sIGlzSW50ZXJydXB0ZWQpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TW9ja0NhcHR1cmVEZXZp
Y2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9u
ZUludGVycnVwdGVkKQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1vY2tDYW1l
cmFJc0ludGVycnVwdGVkKGlzSW50ZXJydXB0ZWQpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpTZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChpc0NhbWVyYUludGVycnVwdGVk
LCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzhkNTRkODFkZjFiNTg3MDBiMWI0MDVlYWY1N2I5
MGEwZWZjY2U4Yi4uODg5YTFhOTY4MDIzMzY3ODZmZjk5MTkyMmM5YjkyOWMzZjJhNmEzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE4OTIsNyArMTg5Miw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90
KTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShHU1RSRUFNRVIpCi0gICAgdm9p
ZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sKTsKKyAgICB2b2lkIHNldE1vY2tDYXB0
dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01p
Y3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAjZW5kaWYKIAogICAgIGJvb2wgaXNIYW5kbGluZ1ByZXZl
bnRhYmxlVG91Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxpbmdQcmV2ZW50YWJsZVRv
dWNoU3RhcnRDb3VudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCAwOWRiYWU4ZTMxMDU0MjE2ZmU5ODhmNjBiOWY0NjRjY2M3ZGI5ZjY5Li4z
MmZmOWMzNmEyNjNjODcxODEyYzYyYzVmMDg5NzI0YjgwYmIyMGQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDkxNCw5ICs0OTE0LDkgQEAg
dm9pZCBXZWJQYWdlOjpzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVyZSh1aW50NjRfdCByb3Rh
dGlvbikKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1
cHRlZChib29sIGlzSW50ZXJydXB0ZWQpCit2b2lkIFdlYlBhZ2U6OnNldE1vY2tDYXB0dXJlRGV2
aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhv
bmVJbnRlcnJ1cHRlZCkKIHsKLSAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0
TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzQ2Ft
ZXJhSW50ZXJydXB0ZWQsIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKIH0KICNlbmRpZiAvLyBV
U0UoR1NUUkVBTUVSKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKaW5kZXggYTVlYmFlYzQ1YmEwMjRhZDRiZjJmMmI5ZTYxZTJjNGQ1YWNlZGQ5Ny4uMWUxNDc1
MjUwNGZhZDU0MGI5ODc1ZTVkYzcyMmJlNGQ0Y2U4ZGI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI0NCw3ICsxMjQ0LDcgQEAgcHVibGljOgog
I2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEdTVFJFQU1FUikKICAgICB2
b2lkIHNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90IHJvdGF0aW9uKTsKLSAg
ICB2b2lkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wpOworICAgIHZvaWQgc2V0TW9j
a0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29s
IGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKICNlbmRpZgogCiAgICAgdm9pZCBhZGRVc2VyU2Ny
aXB0KFN0cmluZyYmIHNvdXJjZSwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCYsIFdlYkNvcmU6
OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMsIFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25U
aW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IDZmNTI2ZTQ5OTU4YzI2YmU4ZDcxMjI3MDBmOGI1MzVhYzA4NDYz
MDAuLmJlYTY0MzhhOTdlOTA3NmM5Njg4NGE2ZTk0MmUzZTFlZjM5NzA5NGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtNDA3LDcgKzQwNyw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1
aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgQ2FwdHVyZURl
dmljZXNDaGFuZ2VkKCkKICNpZiBVU0UoR1NUUkVBTUVSKQogICAgIFNldE9yaWVudGF0aW9uRm9y
TWVkaWFDYXB0dXJlKGludCByb3RhdGlvbikKLSAgICBTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRl
ZChib29sIGlzSW50ZXJydXB0ZWQpCisgICAgU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0
ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVk
KQogI2VuZGlmCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggYTNjNDFkYzA0YWFj
ZTVkZDRlYTczOWE2MGYyYTUzMGU1ZTNkMDc1ZS4uMmEzM2Y5NzY4MDMwYTA2YTc4ZTQ4ZjMwZDdh
Y2M2M2JlYjZkM2JjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgcmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHNpemVfdCk7Ci0gICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3Rp
ZnlNdXRlZENoYW5nZSh2YWx1ZSk7IH0KKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29s
IHZhbHVlLCBib29sIGludGVycnVwdGVkKTsKIAogcHJpdmF0ZToKICAgICBSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CkBAIC04NSw2ICs4NSw3IEBA
IHByaXZhdGU6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KICAg
ICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJh
Y2spIGZpbmFsIHsgbV9wcm94eS53aGVuUmVhZHkoV1RGTW92ZShjYWxsYmFjaykpOyB9CiAgICAg
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9wcm94eS5kZXZpY2VUeXBlKCk7IH0KKyAgICBib29sIGludGVycnVwdGVk
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5pbnRlcnJ1cHRlZCgpOyB9CiAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudApA
QCAtMTAxLDYgKzEwMiwxMiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwogfTsKIAoraW5saW5lIHZvaWQgUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQsIGJvb2wgaW50ZXJy
dXB0ZWQpCit7CisgICAgbV9wcm94eS5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCk7CisgICAg
bm90aWZ5TXV0ZWRDaGFuZ2UobXV0ZWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKaW5kZXggNTJmNTM1YjNkNzNkNjg5Nzc4Yjk1
ZjE5NDdmOGU3MmQ4Mjk4ZDZhMS4uZjljOTIyNDVhMjI0Y2Y1MmQ0NTgyNjVlYTQ2NjgzMmUxYmNi
ZTI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CiAKICAgICB2b2lkIHJlbW90ZVZpZGVv
U2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBzYW1wbGUsIFdlYkNvcmU6OlZp
ZGVvU2FtcGxlTWV0YWRhdGEgbWV0YWRhdGEpIHsgdmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxl
LCBtZXRhZGF0YSk7IH0KLSAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7
IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQorICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2Vk
KGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0ZWQpOwogCiBwcml2YXRlOgogICAgIFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwpAQCAtNzksNiArNzksNyBAQCBwcml2YXRl
OgogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNh
cGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CiAgICAgdm9pZCB3
aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKSBmaW5h
bCB7IG1fcHJveHkud2hlblJlYWR5KFdURk1vdmUoY2FsbGJhY2spKTsgfQogICAgIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fcHJveHkuZGV2aWNlVHlwZSgpOyB9CisgICAgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fcHJveHkuaW50ZXJydXB0ZWQoKTsgfQogCiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQogICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKQEAgLTk1LDYg
Kzk2LDEyIEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIG1fc2V0dGluZ3M7CiB9OwogCitpbmxpbmUgdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZChib29sIG11dGVkLCBib29sIGludGVycnVwdGVkKQor
eworICAgIG1fcHJveHkuc2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQpOworICAgIG5vdGlmeU11
dGVkQ2hhbmdlKG11dGVkKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA0YTI5NGQ4YzU0MTcxZTZlMTAw
NWIzYTQwNjY1NmIyNmMxNTljMDRkLi4yNDQ2ZTM5OGU4YzM2ODc4ZDQxNDQyMGNhNWRiYzdiYjVl
ODQ1MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNjAsMTEgKzYw
LDEzIEBAIElQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojpj
b25uZWN0aW9uKCkKIAogdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OnN0YXJ0
UHJvZHVjaW5nRGF0YSgpCiB7CisgICAgbV9pbnRlcnJ1cHRlZCA9IGZhbHNlOwogICAgIGNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3Rh
cnRQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCiB2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEoKQogeworICAgIG1faW50
ZXJydXB0ZWQgPSBmYWxzZTsKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVy
IH0sIDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKaW5kZXggMDNjMWQ3MTIy
MjdjZDViNTFhODA0MTk4ZjQ5NTljMjI5OGZkYTM2Mi4uNTllMmMyODM0NWM5MGY3ZDJjNGVhN2Yz
MDZiYTQ1MGY1YTEyNTc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaApAQCAtNzEs
NiArNzEsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNz
YWdlKTsKIAorICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVw
dGVkOyB9CisgICAgdm9pZCBzZXRJbnRlcnJ1cHRlZChib29sIGludGVycnVwdGVkKSB7IG1faW50
ZXJydXB0ZWQgPSBpbnRlcnJ1cHRlZDsgfQorCiBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlIG1fZGV2aWNlOwpAQCAtODEsNiArODQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc1JlYWR5IHsgZmFsc2UgfTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+
IG1fY2FsbGJhY2s7CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOworICAgIGJvb2wgbV9pbnRl
cnJ1cHRlZCB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYgZGV2aWNlLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKaW5k
ZXggMzJhOGExMTU0NjRiMGI2NWI3ZWFmM2JmMGRiODE3ZmUxYjhmOWE5Ny4uNWI0NjUxMWY0MTg3
MzI0ODZiMzI2ZTBkYjlhMWVlOTcxODlhYTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC02
Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKIAog
ICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmLCBXZWJD
b3JlOjpJbnRTaXplLCBXZWJDb3JlOjpWaWRlb1NhbXBsZU1ldGFkYXRhKTsKLSAgICB2b2lkIHNv
dXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsg
fQorICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0
ZWQpOwogCiBwcml2YXRlOgogICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKTsKQEAgLTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3Jl
OjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBzYW1wbGVSb3RhdGlvbigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fc2FtcGxlUm90YXRpb247IH0KICAgICB2b2lkIHNldEZyYW1lUmF0ZVdpdGhQ
cmVzZXQoZG91YmxlLCBSZWZQdHI8V2ViQ29yZTo6VmlkZW9QcmVzZXQ+KSBmaW5hbDsKICAgICBi
b29sIHByZWZlcnNQcmVzZXQoV2ViQ29yZTo6VmlkZW9QcmVzZXQmKSBmaW5hbDsKKyAgICBib29s
IGludGVycnVwdGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5pbnRlcnJ1cHRlZCgp
OyB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rp
b246OkNsaWVudApAQCAtMTEwLDYgKzExMSwxMiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fc2FtcGxlUm90YXRpb24geyBXZWJDb3JlOjpNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwogfTsKIAoraW5saW5lIHZvaWQgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQsIGJvb2wg
aW50ZXJydXB0ZWQpCit7CisgICAgbV9wcm94eS5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCk7
CisgICAgbm90aWZ5TXV0ZWRDaGFuZ2UobXV0ZWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCBmNjg3ZDhkOWZiZTAzMDIzN2Y0
ZmNhNDA3MzBhMWE0NWJkNGMwNGMzLi40Y2EyNTRmNDZkZWJhZDlhMmM1ZDYxZDdlNWM4ZDhhMmVi
YzE2NTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTE1NCwxOCArMTU0LDE4IEBAIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcHR1cmVGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpCiAgICAgfSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAK
LXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVkQ2hhbmdlZChSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIG11dGVkKQordm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbXV0ZWQsIGJvb2wgaW50ZXJydXB0ZWQpCiB7
CiAgICAgYXV0byBpdGVyYXRvciA9IG1fc291cmNlcy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlm
IChpdGVyYXRvciA9PSBtX3NvdXJjZXMuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN3
aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgW211dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRl
ZCk7Ci0gICAgfSwgW211dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJj
ZSkgewotICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCk7Ci0gICAgfSwg
W211dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7Ci0gICAg
ICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkKTsKKyAgICBzd2l0Y2hPbihpdGVy
YXRvci0+dmFsdWUsIFttdXRlZCwgaW50ZXJydXB0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlPiYgc291cmNlKSB7CisgICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11
dGVkLCBpbnRlcnJ1cHRlZCk7CisgICAgfSwgW211dGVkLCBpbnRlcnJ1cHRlZF0oUmVmPFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5zb3VyY2VN
dXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsKKyAgICB9LCBbbXV0ZWQsIGludGVycnVw
dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7CisgICAgICAg
IHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkLCBpbnRlcnJ1cHRlZCk7CiAgICAgfSwg
W10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggOGNjNWI0
ZjkyNjliMjQ0ZGI1OTk1YjdiNzQ0NGI5MTU5N2YxNmE4Mi4uZDhmYjgwYjRmZThkYWU3Njk5NTQ4
MmEyMzkxN2QyZmVhNTkyMGUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTEyNiw3ICsxMjYsOCBA
QCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcgogICAg
IHZvaWQgY2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKLSAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgYm9vbCBtdXRlZCk7CisgICAgdm9pZCBzb3VyY2VNdXRl
ZENoYW5nZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGJvb2wgbXV0
ZWQsIGJvb2wgaW50ZXJydXB0ZWQpOworCiAgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVk
ZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWls
ZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyYmLCBTdHJp
bmcmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTA1ZjZkZDJl
YTg3ZjkwYmNlY2U1Yzc2NGNjY2RjMTU1YjQ0M2RlNC4uOTc5Y2NlMjU4OTYwMDUzZmUxNGY3MGU2
ZDIzNjIwMTkwYjE2YWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpA
QCAtMjYsNyArMjYsNyBAQAogbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgTm90
UmVmQ291bnRlZCB7CiAgICAgQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZCkKICAgICBTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkKQotICAgIFNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlZCkKKyAgICBTb3VyY2VN
dXRlZENoYW5nZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGJv
b2wgbXV0ZWQsIGJvb2wgaW50ZXJydXB0ZWQpCiAgICAgU291cmNlU2V0dGluZ3NDaGFuZ2VkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAgQXBwbHlDb25zdHJhaW50c1N1Y2Nl
ZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQogICAgIEFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFN0cmlu
ZyBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNWJjMDRjYTc0MTJkZTY5MGRhZmRjZDhj
NTY4YmYyODgzZDQ0OTIzLi4zMWJiNTIyYzdlMDg5MzdiMDI1NDMxN2NhYTYxZWJhZWExYTE1Mjc4
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjItMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBjYXB0dXJlIGluIGNh
c2UgYXVkaW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1MjQKKyAgICAgICAgPHJkYXI6Ly83ODQyMTI4
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIGludGVycnVwdCBtb2NrIG1pY3JvcGhvbmUgZGV2aWNlcy4KKworICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisKIDIwMjItMDMtMDYgIExhdXJvIE1vdXJh
ICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0ZsYXRwYWsgU0RLXSBGaXgga2V5IGV4
cGlyZWQgdHJlYXRtZW50IHdpdGggUHl0aG9uMwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5k
ZXggZGQzOTc2M2FjNTEyNWFhYmU2MDQ5NjI5NDc4MGYyMDZiMTBjMjg3Ni4uZTVkMTQ4YWY3ZWVk
YjAyNGY5ZmY5ZmM2Zjg3YTA4MTRlYzkwYTk3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CkBAIC0zODcsNyArMzg3LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5l
ZCByZXNldE1vY2tNZWRpYURldmljZXMoKTsKICAgICB1bmRlZmluZWQgc2V0TW9ja0NhbWVyYU9y
aWVudGF0aW9uKHVuc2lnbmVkIGxvbmcgb3JpZW50YXRpb24pOwogICAgIGJvb2xlYW4gaXNNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoKTsKLSAgICB1bmRlZmluZWQgc2V0TW9j
a0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbGVhbiBpc0ludGVycnVwdGVkKTsKKyAgICB1bmRlZmlu
ZWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbGVhbiBpc0NhbWVyYUludGVy
cnVwdGVkLCBib29sZWFuIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKIAogICAgIGJvb2xlYW4g
aGFzQXBwQm91bmRTZXNzaW9uKCk7CiAgICAgdW5kZWZpbmVkIGNsZWFyQXBwQm91bmRTZXNzaW9u
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAppbmRleCAyOTAxNGMwZGQ0ZjA4ZTM3Njk5OTE1OWI2M2IwYTljYTczZmVlMzMz
Li40NjI5Y2Y3MjNlYTJiMzkxZmQ5NDljNTM5YjI4MWVhYmVlOTM0ZTRlIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAg
LTE4MzIsOSArMTgzMiwxMiBAQCBib29sIFRlc3RSdW5uZXI6OmlzTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJFbmFibGVkKCkKICAgICByZXR1cm4gcG9zdFN5bmNocm9ub3VzTWVzc2FnZVJl
dHVybmluZ0Jvb2xlYW4oIklzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkIik7
CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBp
c0ludGVycnVwdGVkKQordm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRl
cnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJy
dXB0ZWQpCiB7Ci0gICAgcG9zdFN5bmNocm9ub3VzTWVzc2FnZSgiU2V0TW9ja0NhbWVyYUlzSW50
ZXJydXB0ZWQiLCBpc0ludGVycnVwdGVkKTsKKyAgICBwb3N0U3luY2hyb25vdXNNZXNzYWdlKCJT
ZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZCIsIGNyZWF0ZVdLRGljdGlvbmFyeSh7Cisg
ICAgICAgIHsgImNhbWVyYSIsIGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzQ2FtZXJhSW50ZXJy
dXB0ZWQpKSB9LAorICAgICAgICB7ICJtaWNyb3Bob25lIiwgYWRvcHRXSyhXS0Jvb2xlYW5DcmVh
dGUoaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpKSB9LAorICAgIH0pKTsKIH0KIAogI2lmIEVOQUJM
RShHQU1FUEFEKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCA5MGY1ZWU0ODFmNDUxMDBlMzdhYzRiY2Q1YTJkNGE3MDUyZjE0
YzE2Li43ZjY5MTY2MjhiY2EyOGRmZDhhZjYxOTMzNjRjNGQ0ZDM3OWUwMjE3IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAt
NDk5LDcgKzQ5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0TW9ja01lZGlhRGV2aWNlcygp
OwogICAgIHZvaWQgc2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKHVuc2lnbmVkKTsKICAgICBib29s
IGlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCk7Ci0gICAgdm9pZCBzZXRN
b2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sKTsKKyAgICB2b2lkIHNldE1vY2tDYXB0dXJlRGV2
aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhv
bmVJbnRlcnJ1cHRlZCk7CiAKICAgICBib29sIGhhc0FwcEJvdW5kU2Vzc2lvbigpOwogICAgIHZv
aWQgY2xlYXJBcHBCb3VuZFNlc3Npb24oKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggZmE2YjY5MWM3NGM4NjVmOWUxZGUzOWI3NGUzYzFiY2U4NDU4ZGVl
ZC4uNWYwMmIwZWU4Yzg1NGYzNmU3MGVlNTI2OTNlZWY4MGY1NDdlZTU2ZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTM2MjAsOSArMzYyMCw5IEBAIGJv
b2wgVGVzdENvbnRyb2xsZXI6OmlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVk
KCkgY29uc3QKICAgICByZXR1cm4gV0tQYWdlSXNNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ckVuYWJsZWQobV9tYWluV2ViVmlldy0+cGFnZSgpKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxl
cjo6c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQordm9pZCBU
ZXN0Q29udHJvbGxlcjo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0Nh
bWVyYUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIFdL
UGFnZVNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgaXNJ
bnRlcnJ1cHRlZCk7CisgICAgV0tQYWdlU2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQo
bV9tYWluV2ViVmlldy0+cGFnZSgpLCBpc0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJ
bnRlcnJ1cHRlZCk7CiB9CiAKIHN0cnVjdCBJbkFwcEJyb3dzZXJQcml2YWN5Q2FsbGJhY2tDb250
ZXh0IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBlMjRhYzMy
MDM0YWRiNDVjMmU5NzU5ZDg5OGMyODBhNWM1ZDM2ZTZkLi5hOGEyNDk3ZDZmNjViNDA4MTZlZGQ4
NjE2OTI1MmZlN2I5ZDJiMDM0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCkBAIC0zMTIsNyArMzEyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRNb2NrTWVkaWFE
ZXZpY2VzKCk7CiAgICAgdm9pZCBzZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24odWludDY0X3QpOwog
ICAgIGJvb2wgaXNNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoKSBjb25zdDsK
LSAgICB2b2lkIHNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wpOworICAgIHZvaWQgc2V0
TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBi
b29sIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsKICAgICBib29sIGhhc0FwcEJvdW5kU2Vzc2lv
bigpOwogCiAgICAgdm9pZCBpbmplY3RVc2VyU2NyaXB0KFdLU3RyaW5nUmVmKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggOTRhMDQ2YjIwMmUyNmRiZGJh
OTlmYWQ0ODJlNDFiMzI5NDk0NzczMy4uZDllMDYwZGFjMmFiOTk0Nzc2NDhjNTI1NTc3OGZlMDNj
NWM1Njc1YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAg
LTk3Myw4ICs5NzMsMTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIklzTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJFbmFibGVkIikpCiAgICAgICAgIHJldHVybiBhZG9wdFdLKFdLQm9vbGVhbkNy
ZWF0ZShUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaXNNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlckVuYWJsZWQoKSkpOwogICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQiKSkgewotICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0
ZWQoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRl
ZCIpKSB7CisgICAgICAgIGF1dG8gbWVzc2FnZUJvZHlEaWN0aW9uYXJ5ID0gZGljdGlvbmFyeVZh
bHVlKG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgYm9vbCBpc0NhbWVyYUludGVycnVwdGVkID0gYm9v
bGVhblZhbHVlKG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgImNhbWVyYSIpOworICAgICAgICBib29s
IGlzTWljcm9waG9uZUludGVycnVwdGVkID0gYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5RGljdGlv
bmFyeSwgIm1pY3JvcGhvbmUiKTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
LnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGlz
TWljcm9waG9uZUludGVycnVwdGVkKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggM2UyNzYwYzA3Mzg3NWE4YmYzMDE3ZDczMTNjMDFhMDdmYjM1YjViMS4uMGMyYmNl
MDIwNzI5ZjNkYWNhZWZhMzk2ZTA2OWI0ZWQyODQzNGE2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIyLTAzLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgYSBwcmVmZXJlbmNlIHRvIG11dGUgdmlkZW8gY2FwdHVyZSBpbiBjYXNlIGF1ZGlvIGNh
cHR1cmUgZ2V0cyBpbnRlcnJ1cHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM3NTI0CisgICAgICAgIDxyZGFyOi8vNzg0MjEyODI+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZp
ZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRt
bDogTWlncmF0ZWQgdG8gdGVzdFJ1bm5lciBBUEkuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS90cmFjay1lbmRlZC13aGlsZS1tdXRlZC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIv
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0wNSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5vbi1zdGFuZGFyZCBkaXNwbGF5OmJsb2NrIFVBIHN0
eWxlc2hlZXQgcnVsZSBmb3IgPGxheWVyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50ZXJydXB0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLWludGVycnVwdGVkLmh0bWwK
aW5kZXggOTBhM2VmYmNjNWM1YmZlMWY3OTIzZGNiOWI1NTU1MmFiNjdmOGI0Yy4uMDhkY2IzNTM1
Mjk5MmFlNDhmNjVjNmU2NmI2M2E5YmQ4OWUxODQ1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50ZXJydXB0ZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1pbnRlcnJ1
cHRlZC5odG1sCkBAIC0xLDUgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkPWZhbHNlIENhcHR1cmVB
dWRpb0luVUlQcm9jZXNzRW5hYmxlZD1mYWxzZSBdIC0tPgotPCFET0NUWVBFIGh0bWw+Cis8IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIENhcHR1cmVBdWRpb0luR1BVUHJv
Y2Vzc0VuYWJsZWQ9dHJ1ZSBDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkPXRydWUgTXV0
ZUNhbWVyYU9uTWljcm9waG9uZUludGVycnVwdGlvbkVuYWJsZWQ9ZmFsc2UgXSAtLT4KIDxodG1s
PgogPGhlYWQ+CiAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgpAQCAtMTIsMTggKzExLDE4IEBA
CiAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgICAgIGNvbnN0IHN0cmVh
bSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1
ZX0pOwogICAgICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwot
ICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlmICghd2luZG93LnRlc3RS
dW5uZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbGV0IHByb21pc2UgPSBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9ubXV0ZSA9IHJlc29sdmU7IHNl
dFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUwMDApIH0pOwotICAgICAgICBpbnRl
cm5hbHMuc2V0TWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1cHRlZCh0cmFjaywgdHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFsc2UsIHRy
dWUpOwogICAgICAgICBhd2FpdCBwcm9taXNlOwogCiAgICAgICAgIGFzc2VydF90cnVlKHRyYWNr
Lm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKICAgICAgICAgYXNzZXJ0X3RydWUoaW50ZXJuYWxz
LmlzTWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1cHRlZCh0cmFjayksICJzb3VyY2UgaXMgaW50ZXJy
dXB0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0
KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAgIGludGVybmFscy5zZXRNZWRpYVN0cmVh
bVNvdXJjZUludGVycnVwdGVkKHRyYWNrLCBmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFsc2UsIGZhbHNlKTsKICAgICAgICAgYXdh
aXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfZmFsc2UodHJhY2subXV0ZWQsICJ0cmFjayBp
cyBubyBsb25nZXIgbXV0ZWQiKTsKQEAgLTc0LDE0ICs3MywxNCBAQAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF90cnVlKHBhZ2VNZWRpYVN0YXRlLmluY2x1ZGVzKGlzVmlkZW8g
PyAnSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlJyA6ICdIYXNBY3RpdmVWaWRlb0NhcHR1cmVE
ZXZpY2UnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHBhZ2VN
ZWRpYVN0YXRlLmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNl
JyA6ICdIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UnKSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFnZVN0YXRlID0gaW50ZXJuYWxzLnBhZ2VNZWRpYVN0YXRlKCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNlSW50ZXJy
dXB0ZWQodHJhY2ssIGZhbHNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFsc2UsIGZhbHNlKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICAgICAgICBw
YWdlU3RhdGUgPSBpbnRlcm5hbHMucGFnZU1lZGlhU3RhdGUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJhY2ssIHRydWUp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYXB0dXJlRGV2aWNlc0lu
dGVycnVwdGVkKGlzVmlkZW8sICFpc1ZpZGVvKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIk11dGVkIHN0YXRlIGRpZCBub3QgY2hh
bmdlIGluIDEgc2Vjb25kIiksIDEwMDApOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRl
cnJ1cHRlZC1mcm9tLWF1ZGlvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMTMzMDY4MmUxMmViMTA4MTcwMDFkNDUxNjE0OTI0MTY1
MTlmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21l
ZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9tLWF1ZGlvLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBNdXRlL3VubXV0ZSB2aWRlbyB0cmFjayBpZiBhdWRp
byBnZXRzIGludGVycnVwdGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNr
LWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYmZlYzVmZDE4M2UwNjY1
NTg2NmIxYWZjNWE0M2E1NjQ3MDIzN2NhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQtZnJv
bS1hdWRpby5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZD10cnVlIENhcHR1
cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBNdXRlQ2FtZXJhT25NaWNyb3Bob25lSW50
ZXJydXB0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+VmlkZW8gY2FwdHVyZSBzb3VyY2UgaW50ZXJydXB0
aW9uIGJhc2VkIG9uIGF1ZGlvIGludGVycnVwdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgPC9o
ZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3Qp
ID0+IHsKKyAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pOworICAgICAgICBjb25z
dCB0cmFjayA9IHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOworICAgICAgICBpZiAoIXdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBwcm9taXNl
ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbm11dGUgPSByZXNv
bHZlOyBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgibm8gbXV0ZSIpLCA1MDAwKSB9KTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChmYWxzZSwgdHJ1
ZSk7CisgICAgICAgIGF3YWl0IHByb21pc2U7CisKKyAgICAgICAgYXNzZXJ0X3RydWUodHJhY2su
bXV0ZWQsICJ0cmFjayBpcyBtdXRlZCIpOworCisgICAgICAgIHByb21pc2UgPSBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9udW5tdXRlID0gcmVzb2x2ZTsgc2V0VGlt
ZW91dCgoKSA9PiByZWplY3QoIm5vIHVubXV0ZSIpLCA1MDAwKSB9KTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChmYWxzZSwgZmFsc2UpOworICAg
ICAgICBhd2FpdCBwcm9taXNlOworCisgICAgICAgIGFzc2VydF9mYWxzZSh0cmFjay5tdXRlZCwg
InRyYWNrIGlzIG5vdCBtdXRlZCIpOworCisgICAgICAgIHRyYWNrLnN0b3AoKTsKKyAgICB9LCAi
TXV0ZS91bm11dGUgdmlkZW8gdHJhY2sgaWYgYXVkaW8gZ2V0cyBpbnRlcnJ1cHRlZCIpOworICAg
IDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWlu
dGVycnVwdGVkLmh0bWwKaW5kZXggZWI5YTliZmViNzRhYmZiZjMxODg2N2I1ZGE0NGZhNTNiZTg4
OTZmMS4uODJlNjcyMjc5NWE5MTZlZDQwZDYwZWMyZTc5M2E2MGM1NWEyZGZkOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2st
aW50ZXJydXB0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlh
LXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC5odG1sCkBAIC0xNSwxMyArMTUsMTMgQEAK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25tdXRlID0gcmVzb2x2ZTsgc2V0VGltZW91
dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAgIHRlc3RSdW5uZXIu
c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQodHJ1ZSwgZmFsc2UpOwogICAgICAgICBhd2Fp
dCBwcm9taXNlOwogCiAgICAgICAgIGFzc2VydF90cnVlKHRyYWNrLm11dGVkLCAidHJhY2sgaXMg
bXV0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0
KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhbWVy
YUlzSW50ZXJydXB0ZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYXB0dXJl
RGV2aWNlc0ludGVycnVwdGVkKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIGF3YWl0IHByb21pc2U7
CiAKICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRyYWNrLm11dGVkLCAidHJhY2sgaXMgbm90IG11dGVk
Iik7CkBAIC00NSw3ICs0NSw3IEBACiAKICAgICAgICAgLy8gZ2V0dGluZyBhbiBpbnRlcnJ1cHRp
b24sIHRyYWNrIHNob3VsZCBiZSBtdXRlZC4KICAgICAgICAgbGV0IHByb21pc2UgPSBuZXcgUHJv
bWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9ubXV0ZSA9IHJlc29sdmU7IHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUwMDApIH0pOwotICAgICAgICB0ZXN0UnVu
bmVyLnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVy
LnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKHRydWUsIGZhbHNlKTsKICAgICAgICAg
YXdhaXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSh0cmFjay5tdXRlZCwgInRyYWNr
IGlzIG11dGVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Ry
YWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3RyYWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwKaW5kZXggOWRiNzg2MjcxOTM5ZmUzNGU1OTRi
Yzg2MzVlMzJlOTQzNDRlMzk2Ni4uNjI1OTk2NzM3NjdiNDRhOGExNjAzMzBmNzkzYjZmMTM0MDBk
YzZhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS90cmFjay1lbmRl
ZC13aGlsZS1tdXRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vdHJh
Y2stZW5kZWQtd2hpbGUtbXV0ZWQuaHRtbApAQCAtMTEsMTMgKzExLDEzIEBACiBwcm9taXNlX3Rl
c3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKICAgICBjb25zdCB0cmFj
ayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwotICAgIGlmICghd2luZG93LmludGVybmFs
cykKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICByZXR1cm47CiAKICAgICBj
b25zdCBjbG9uZSA9IHRyYWNrLmNsb25lKCk7CiAKICAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9t
aXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25tdXRlID0gcmVzb2x2ZTsgc2V0VGlt
ZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkgfSk7Ci0gICAgaW50ZXJuYWxzLnNl
dE1lZGlhU3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJhY2ssIHRydWUpOworICAgIHRlc3RSdW5u
ZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFsc2UsIHRydWUpOwogICAgIGF3
YWl0IHByb21pc2U7CiAKICAgICB0cmFjay5zdG9wKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWQ2NDkwMTk1OTYzMGRlODhmMGQxNWFjYjkwY2I5
MGNiMTgzNjc1NS4uZDk0ZGRmNjE2ZWUxYzcxMDg2MjBmY2NhOWQ1ZDRkMDliNTMwNmE4YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzk4LDYgKzc5
OCw4IEBAIHdlYmtpdC5vcmcvYi8yMTM2OTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjCiB3ZWJraXQub3JnL2IvMjMwNDE1IGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlLWV2
ZW50Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFt
L1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9i
LzE4NzYwMyBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1zb3VyY2UtZmFpbHVy
ZS5odG1sIFsgVGltZW91dCBGYWlsdXJlIFBhc3MgXQorZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1z
dHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby5odG1sIFsgRmFpbHVyZSBd
CitmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1pbnRlcnJ1cHRlZC5odG1sIFsg
RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMjM1MDggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3Jj
T2JqZWN0Lmh0dHBzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454092</attachid>
            <date>2022-03-08 03:07:47 -0800</date>
            <delta_ts>2022-03-08 04:25:40 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237524-20220308120745.patch</filename>
            <type>text/plain</type>
            <size>51129</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZhZWU2NDJjMThjMTc1MWE4MjRhOWU1
MDExYzUyNWE2MzI4Y2VmMDEuLmYzMjdiMGRkNTU0ZTdhZGU3OGQ2MGU2MWIxOWE3ZGIwMjlmMmRh
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBj
YXB0dXJlIGluIGNhc2UgYXVkaW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1MjQKKyAgICAgICAgPHJk
YXI6Ly83ODQyMTI4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoK
KwogMjAyMi0wMy0wOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgZWFybHkgcmV0dXJuIGZvciBlbXB0eSBwYXRoIGluIG1ha2VBbGxEaXJlY3Rvcmllcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDZjNGFkNWE1N2JjYzE0NWY2NzkzMDg5YWFmNTk2MTcyNWQ1MTY1NGIuLmZm
MjEzMjkzYTI2OGY4OWY2OTI3NTRiMWRiM2E2NDg2M2U3Yzk3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMi0wMy0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2Fz
ZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUyNAorICAgICAgICA8cmRhcjovLzc4NDIxMjgy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBjYXNl
IHdlIGRldGVjdCB0aGF0IGEgbWljcm9waG9uZSB0cmFjayBzb3VyY2UgZ2V0cyBtdXRlZCBkdWUg
dG8gaW50ZXJydXB0aW9uLCB3ZSBtdXRlCisgICAgICAgIGNhcHR1cmUgdmlkZW8gdHJhY2tzIGJh
c2VkIGlmIGFsbG93ZWQgYnkgdGhlIG5ldyBNdXRlQ2FtZXJhT25NaWNyb3Bob25lSW50ZXJydXB0
aW9uRW5hYmxlZCBzZXR0aW5nLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBtb2NrIG1pY3Jv
cGhvbmUgaW50ZXJydXB0aW9uIGFuZCByZW1vdmUgcHJldmlvdXMgaW4gcHJvY2VzcyBpbnRlcm5h
bHMgQVBJLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZp
ZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbAorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXRJc0ludGVycnVwdGVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja0NhcHR1cmVEZXZpY2Vz
SW50ZXJydXB0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisKIDIwMjItMDMt
MDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFBERi5qcyBjb250ZW50IHNjcmlwdCBpcyBhZGRpbmcgY3VzdG9tIGNvY29hIHN0eWxlIHVuY29u
ZGl0aW9uYWxseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMTI4MTdlYzY4ZWM5YmE0NjZhNTBjYTU1NWRkMzYzMTQx
ZmJhMDhkLi41NzEwOWRiMDdhNTc5OTdlZmZkZDU2NWQwNDkwOWRkMDYxZDg5N2ZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTAzLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIHRvIG11dGUgdmlkZW8gY2FwdHVy
ZSBpbiBjYXNlIGF1ZGlvIGNhcHR1cmUgZ2V0cyBpbnRlcnJ1cHRlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTI0CisgICAgICAgIDxyZGFyOi8v
Nzg0MjEyODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBpbnRlcnJ1cHQgbW9jayBtaWNyb3Bob25lIGRldmljZXMuCisgICAg
ICAgIFNlbmQgdG8gV2ViUHJvY2VzcyBzb3VyY2VzIHdoZXRoZXIgc291cmNlcyBhcmUgaW50ZXJy
dXB0ZWQgZWFjaCB0aW1lIHRoZSBzb3VyY2UgbXV0ZWQgdmFsdWUgY2hhbmdlcy4KKyAgICAgICAg
U3RvcmUgdGhhdCB2YWx1ZSBpbiByZW1vdGUgc291cmNlcy4KKworICAgICAgICAqIEdQVVByb2Nl
c3MvR1BVUHJvY2Vzcy5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOgorCiAy
MDIyLTAzLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbmFtZSBWb2xhdGlsaXR5U3RhdGUgdG8gU2V0Tm9uVm9sYXRpbGVSZXN1bHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sCmluZGV4IDgzYmVhMWY3ZGY2ZDU4ZDY3MDc5N2E1YWYzYTYyMjY1OGZjYTk1
ZDEuLjM5OWQ1MDg5ZjNlM2YzODNkYzVjZWNjZDQ1MDdmODU1MGRkY2ZjZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlh
bWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50
ZXJuYWwueWFtbApAQCAtNjQwLDYgKzY0MCwxOCBAQCBNb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFi
bGVkOgogICAgIFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK011dGVDYW1lcmFPbk1p
Y3JvcGhvbmVJbnRlcnJ1cHRpb25FbmFibGVkOgorICB0eXBlOiBib29sCisgIGNvbmRpdGlvbjog
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToK
KyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgIlBMQVRGT1JNKElPU19G
QU1JTFkpIjogdHJ1ZQorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKwogTlBBUElQbHVnSW5zRW5hYmxlZEZvclRlc3RpbmdJbldlYktpdExl
Z2FjeToKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIk5QQVBJIFBsdWctSW5z
IEVuYWJsZWQgSW4gV2ViS2l0TGVnYWN5IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggYTQ1ZDE5ZTU0NzM5
OTU2ZGI3ODA2M2M3Y2FiZThhOGUwZjEwNGQ0ZC4uM2UzOTQ0YmNkNTAxN2RiMjI3ZjkyOGVhYTdh
YjQ5Njk0NzEyYWJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC05MSw2ICs5MSw3IEBAIE1lZGlhU3Ry
ZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgUmVmPE1lZGlhU3RyCiAgICAgaWYgKCFpc0NhcHR1cmVUcmFjaygpKQogICAgICAgICByZXR1
cm47CiAKKyAgICBtX2lzSW50ZXJydXB0ZWQgPSBtX3ByaXZhdGUtPnNvdXJjZSgpLmludGVycnVw
dGVkKCk7CiAgICAgYWxsQ2FwdHVyZVRyYWNrcygpLmFkZCh0aGlzKTsKIAogICAgIGlmIChtX3By
aXZhdGUtPmhhc0F1ZGlvKCkpCkBAIC01MDksNiArNTEwLDE4IEBAIHZvaWQgTWVkaWFTdHJlYW1U
cmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCiAjZW5kaWYKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlVmlkZW9DYXB0dXJlQWNjb3JkaW5n
TWljcm9waG9uZUludGVycnVwdGlvbihEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgaXNNaWNyb3Bo
b25lSW50ZXJydXB0ZWQpCit7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAg
ICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgeworICAgICAg
ICBpZiAoIWNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKSB8fCBjYXB0dXJlVHJhY2stPmRvY3VtZW50
KCktPnBhZ2UoKSAhPSBwYWdlKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGF1dG8m
IHNvdXJjZSA9IGNhcHR1cmVUcmFjay0+c291cmNlKCk7CisgICAgICAgIGlmICghc291cmNlLmlz
RW5kZWQoKSAmJiBzb3VyY2UudHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZp
ZGVvKQorICAgICAgICAgICAgc291cmNlLnNldE11dGVkKGlzTWljcm9waG9uZUludGVycnVwdGVk
KTsKKyAgICB9Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9QYWdlTXV0ZWRT
dGF0ZSgpCiB7CiAgICAgQVNTRVJUKGlzQ2FwdHVyZVRyYWNrKCkpOwpAQCAtNjEyLDcgKzYyNSw4
IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYpCiAgICAgCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrTXV0ZWRDaGFuZ2VkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIHsKLSAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5hY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpIHx8IG1fZW5kZWQpCisgICAgYXV0byog
ZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmIChkb2N1bWVudC0+YWN0aXZlRE9N
T2JqZWN0c0FyZVN0b3BwZWQoKSB8fCBtX2VuZGVkKQogICAgICAgICByZXR1cm47CiAKICAgICBx
dWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcs
IFt0aGlzLCBtdXRlZCA9IG1fcHJpdmF0ZS0+bXV0ZWQoKV0gewpAQCAtNjIyLDYgKzYzNiwxMSBA
QCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikKICAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKG11dGVkID8g
ZXZlbnROYW1lcygpLm11dGVFdmVudCA6IGV2ZW50TmFtZXMoKS51bm11dGVFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAgICAgfSk7CiAgICAg
Y29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKKworICAgIGJvb2wgd2FzSW50ZXJydXB0ZWQgPSBt
X2lzSW50ZXJydXB0ZWQ7CisgICAgbV9pc0ludGVycnVwdGVkID0gbV9wcml2YXRlLT5zb3VyY2Uo
KS5pbnRlcnJ1cHRlZCgpOworICAgIGlmICh3YXNJbnRlcnJ1cHRlZCAhPSBtX2lzSW50ZXJydXB0
ZWQgJiYgbV9wcml2YXRlLT5zb3VyY2UoKS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8gJiYgZG9jdW1lbnQtPnNldHRpbmdzKCkubXV0ZUNhbWVyYU9uTWljcm9waG9u
ZUludGVycnVwdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgdXBkYXRlVmlkZW9DYXB0dXJlQWNjb3Jk
aW5nTWljcm9waG9uZUludGVycnVwdGlvbigqZG9jdW1lbnQsIG1faXNJbnRlcnJ1cHRlZCk7CiB9
CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAppbmRleCBjOWE0Mzg1OTM1OWFhNGQ4ZjcwZmJmNDU1
MjliMWE2ZTU3ZmIxYjkwLi4wNzBmN2RjMDkwNmM1NDk5OWIyY2JlZjZlZGQzNmVmM2U5MGVmMGFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaApAQCAtMjA4LDYgKzIwOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211
dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5kZWQgeyBmYWxzZSB9OwogICAgIGNvbnN0IGJv
b2wgbV9pc0NhcHR1cmVUcmFjayB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzSW50ZXJydXB0ZWQg
eyBmYWxzZSB9OwogfTsKIAogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
Y3BwCmluZGV4IDlhMGIyOWVkYjFkMTc4MTU2NTQ1MGY1OGRlOTA5ZjY4Yzg3M2VhMDMuLmU2MzBj
NGM1YzAyOWUyNjI2OTRmZTRjMDc1NmE3ODk4MTE2YzJmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKQEAgLTcwMiwxNSArNzAyLDYgQEAgY29uc3QgQmFzZUF1ZGlvU2hh
cmVkVW5pdCYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6dW5pdCgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fb3ZlcnJpZGVVbml0ID8gKm1fb3ZlcnJpZGVVbml0IDogQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c2luZ2xldG9uKCk7CiB9CiAKLXZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0SW50ZXJy
dXB0ZWRGb3JUZXN0aW5nKGJvb2wgaXNJbnRlcnJ1cHRlZCkKLXsKLSAgICBpZiAoaXNJbnRlcnJ1
cHRlZCkgewotICAgICAgICB1bml0KCkuc3VzcGVuZCgpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotICAgIHVuaXQoKS5yZXN1bWUoKTsKLX0KLQogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNl
RmFjdG9yeTo6YmVnaW5JbnRlcnJ1cHRpb24oKQogewogICAgIGVuc3VyZU9uTWFpblRocmVhZChb
XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCAzMzAzNmU5OTZmNjczZTUy
NzAyMzg1YjQxZTBhOTNmMTgwMzUxZjk5Li42ZTE3OTFjZTk4MTRmYWQ5NGExMzMzNmVkNTRhYWQw
ZjEwY2U4YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTc0LDcgKzc0
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAKICAg
ICB2b2lkIGRlbGF5U2FtcGxlcyhTZWNvbmRzKSBmaW5hbDsKLSAgICB2b2lkIHNldEludGVycnVw
dGVkRm9yVGVzdGluZyhib29sKSBmaW5hbDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPGlu
dD4+IGRpc2NyZXRlU2FtcGxlUmF0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB7IHsgODAwMCwg
MTYwMDAsIDMyMDAwLCA0NDEwMCwgNDgwMDAsIDk2MDAwIH0gfTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3Bw
CmluZGV4IGQwODk0ZDVkNGZlODI1ZjhiMDZkNmM5MjhhYWYwOTg2Mzc3Y2M0YjIuLjJhYWUxOTFj
MTdlZjNlY2E3YWEwMDdhM2EyOGI1YTExYWVhY2NhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00
Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgog
I2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJN
b2NrQXVkaW9TaGFyZWRVbml0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAj
aWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYmICFVU0UoR1NUUkVB
TUVSKQpAQCAtMTgwLDYgKzE4NCwxNyBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpk
ZWxheVNhbXBsZXMoU2Vjb25kcyBkZWx0YSkKICAgICBtX2RlbGF5VW50aWwgPSBNb25vdG9uaWNU
aW1lOjpub3coKSArIGRlbHRhOwogfQogCit2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpz
ZXRJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkKK3sKKyAgICBVTlVTRURfUEFSQU0o
aXNJbnRlcnJ1cHRlZCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGlzSW50ZXJydXB0
ZWQpCisgICAgICAgIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnN1c3BlbmQoKTsK
KyAgICBlbHNlCisgICAgICAgIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnJlc3Vt
ZSgpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggZjBkYWRmNzFkMmQwMzUzNWE2ODJl
NTBjNzliOTQyNDJkMDg2OGZmOC4uNTVmOWVkMmE2YzI4OTQ4ZDQwY2U4MDY0OGY1MGRkODc3Y2Uz
NjllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICB2
aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpOwogCisgICAgc3RhdGljIHZvaWQgc2V0
SXNJbnRlcnJ1cHRlZChib29sKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhbm5l
bENvdW50KHVuc2lnbmVkKTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAppbmRleCAwOTJkMmZlNjExOTM0OGY5ODY1YTg4ZmIyNzkxZTNhMmQ3MTRhNDAxLi5jMzlmYTdi
Y2U0M2MzN2ViM2RlYjcxM2U5N2Q5ZTkyMDljYjJmYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcApAQCAtMzE3LDkgKzMxNywxMCBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpyZXNldERldmljZXMoKQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogfQogCi12b2lkIE1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sIGlzSW50
ZXJydXB0ZWQpCit2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2Fw
dHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wgaXNN
aWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNl
dElzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OnNldElzSW50ZXJydXB0ZWQoaXNDYW1lcmFJbnRlcnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6OnNldElzSW50ZXJydXB0ZWQoaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQp
OwogfQogCiB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXREZXZpY2VzKFZl
Y3RvcjxNb2NrTWVkaWFEZXZpY2U+JiYgbmV3TW9ja0RldmljZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmgKaW5kZXggN2ZhYzg5OTRlZDNhYjgwM2Q4YTZhYjVjNTQ3MDk1YWI5MTIxMmI2My4uNjk5
ODg0ZjMxMTljMmI0ZjFjZjgyOTA2MzAwYWRjNTZmMzNkMjViMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgYWRkRGV2aWNlKGNvbnN0IE1vY2tNZWRpYURldmljZSYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIHJlbW92ZURldmljZShjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJ
ZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVzZXREZXZpY2VzKCk7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9v
bCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2Vz
SW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUlu
dGVycnVwdGVkKTsKIAogICAgIHZvaWQgc2V0TW9ja0F1ZGlvQ2FwdHVyZUVuYWJsZWQoYm9vbCBp
c0VuYWJsZWQpIHsgbV9pc01vY2tBdWRpb0NhcHR1cmVFbmFibGVkID0gaXNFbmFibGVkOyB9CiAg
ICAgdm9pZCBzZXRNb2NrVmlkZW9DYXB0dXJlRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lz
TW9ja1ZpZGVvQ2FwdHVyZUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmNwcAppbmRleCBmZmUwYWNkODEyMzI2YTNhMDdiMmE1MjM3OGJhN2Y2
MWVhMDAwZDg0Li45Mzg2MDA5MjZmODc1ZTgzM2QxNzBhODMwY2UwYjBhNTg2YTQ4YWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC0zNTEsOSArMzUxLDkgQEAg
dm9pZCBHUFVQcm9jZXNzOjpyZXNldE1vY2tNZWRpYURldmljZXMoKQogICAgIE1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpyZXNldERldmljZXMoKTsKIH0KIAotdm9pZCBHUFVQcm9jZXNz
OjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sIGlzSW50ZXJydXB0ZWQpCit2b2lkIEdQ
VVByb2Nlc3M6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJ
bnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCkKIHsKLSAgICBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoaXNJbnRl
cnJ1cHRlZCk7CisgICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tDYXB0
dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGlzTWljcm9waG9uZUlu
dGVycnVwdGVkKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAppbmRleCA5MTBhOGI4YTJlOWJjMTQyODRiN2JmZDdj
NmYwYTgzNTA2ZjM3ZDUxLi41M2JlNWQ4NzRiYTBmNjQ5MDhhNGM0YjhjMjNkYTQzYjQzYmFmMjk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTE1Miw3ICsxNTIsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJNb2NrTWVkaWFEZXZpY2VzKCk7CiAgICAgdm9pZCBy
ZW1vdmVNb2NrTWVkaWFEZXZpY2UoY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50SWQpOwogICAgIHZv
aWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7Ci0gICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRl
cnJ1cHRlZChib29sKTsKKyAgICB2b2lkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVk
KGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7
CiAgICAgYm9vbCBzZXRDYXB0dXJlQXR0cmlidXRpb25TdHJpbmcoY29uc3QgU3RyaW5nJik7CiAj
ZW5kaWYKICNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklOR19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAwOTYxZTliZTAy
YmE0MGY0Y2Y3ZWVjNDliZWY5NGI1Zjc4OGZlNWViLi5mYjAzNTBjNTVkY2NiOTYwOGVlOWFhOGMz
NjkyMzI1MzBkMWQzYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzksMTEgKzM5LDExIEBAIG1lc3NhZ2VzIC0+IEdQVVByb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFVwZGF0ZVNhbmRib3hBY2Nlc3MoVmVjdG9yPFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBleHRlbnNpb25zKTsKICAgICBVcGRhdGVDYXB0
dXJlQWNjZXNzKGJvb2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlb0NhcHR1cmUs
IGJvb2wgYWxsb3dEaXNwbGF5Q2FwdHVyZSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJv
Y2Vzc0lEKSAtPiAoKQogICAgIFVwZGF0ZUNhcHR1cmVPcmlnaW4oc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBw
cm9jZXNzSUQpCi0gICAgQWRkTW9ja01lZGlhRGV2aWNlKHN0cnVjdCBXZWJDb3JlOjpNb2NrTWVk
aWFEZXZpY2UgZGV2aWNlKTsKLSAgICBDbGVhck1vY2tNZWRpYURldmljZXMoKTsKLSAgICBSZW1v
dmVNb2NrTWVkaWFEZXZpY2UoU3RyaW5nIHBlcnNpc3RlbnRJZCk7Ci0gICAgUmVzZXRNb2NrTWVk
aWFEZXZpY2VzKCk7Ci0gICAgU2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBpc0ludGVy
cnVwdGVkKTsKKyAgICBBZGRNb2NrTWVkaWFEZXZpY2Uoc3RydWN0IFdlYkNvcmU6Ok1vY2tNZWRp
YURldmljZSBkZXZpY2UpCisgICAgQ2xlYXJNb2NrTWVkaWFEZXZpY2VzKCkKKyAgICBSZW1vdmVN
b2NrTWVkaWFEZXZpY2UoU3RyaW5nIHBlcnNpc3RlbnRJZCkKKyAgICBSZXNldE1vY2tNZWRpYURl
dmljZXMoKQorICAgIFNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1l
cmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCkKICNlbmRpZgogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBEaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoQ0dEaXJlY3RE
aXNwbGF5SUQgZGlzcGxheUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA4OWIxZWJmYzIzMWYw
YjcyMmQzMDExOGM5MDZhOTY5NDhjOGE4ZjVmLi5lMjU0OTI2ZGM1MWE0OWFlYmE0OThkNzk0OWFh
ZmM4MDdhNGI3MjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
QEAgLTMxMzksMTUgKzMxMzksMTUgQEAgYm9vbCBXS1BhZ2VJc01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYpCiAjZW5kaWYKIH0KIAotdm9pZCBXS1BhZ2VTZXRN
b2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCBpc0ludGVycnVw
dGVkKQordm9pZCBXS1BhZ2VTZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChXS1BhZ2VS
ZWYgcGFnZVJlZiwgYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUlu
dGVycnVwdGVkKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgYXV0byYgZ3B1UHJvY2VzcyA9IHRv
SW1wbChwYWdlUmVmKS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuZW5zdXJlR1BVUHJvY2Vzcygp
OwotICAgIGdwdVByb2Nlc3Muc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1cHRl
ZCk7CisgICAgZ3B1UHJvY2Vzcy5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChpc0Nh
bWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAjZW5kaWYKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoR1NUUkVBTUVSKQotICAgIHRvSW1wbChwYWdlUmVm
KS0+c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoaXNJbnRlcnJ1cHRlZCk7CisgICAgdG9JbXBs
KHBhZ2VSZWYpLT5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChpc0NhbWVyYUludGVy
cnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IDJkYzQ5YjRjMjEx
NWZlYWFhOWVlNGE0MGIwOWQxMDA4NzliN2FiNmYuLjBmNzBkN2UwODFhMTBmODc5MzA0YTM0Yjlj
MWY1NjNiMmZiMjI1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VQcml2YXRlLmgKQEAgLTIwMSw3ICsyMDEsNyBAQCBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXS1BhZ2VSZWYgcAog
CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24oV0tQYWdlUmVm
IHBhZ2UsIHVpbnQ2NF90IG9yaWVudGF0aW9uKTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKFdLUGFnZVJlZiBwYWdlKTsKLVdLX0VY
UE9SVCB2b2lkIFdLUGFnZVNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKFdLUGFnZVJlZiBwYWdl
LCBib29sIGlzSW50ZXJydXB0ZWQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0TW9ja0NhcHR1
cmVEZXZpY2VzSW50ZXJydXB0ZWQoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgaXNDYW1lcmFJbnRlcnJ1
cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAKIHR5cGVkZWYgdm9pZCAoKldL
UGFnZUxvYWRlZFN1YnJlc291cmNlRG9tYWluc0Z1bmN0aW9uKShXS0FycmF5UmVmIGRvbWFpbnMs
IHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VMb2FkZWRTdWJy
ZXNvdXJjZURvbWFpbnMoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZUxvYWRlZFN1YnJlc291cmNlRG9t
YWluc0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcAppbmRleCBhZDA3NTgyMTc1MTAxMzU3ZTA1NWIxMTQyNjg4OTJmYTdj
NzNjOTQ2Li43ODdiYjEyMWU3NGM2Njk2NTgxOGI2MjA0OWIyMWZlOWI5NWU3MmY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHByaXZhdGU6CiAgICAg
fQogCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbCB7Ci0gICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZU11
dGVkQ2hhbmdlZChtX2lkLCBtX3NvdXJjZS0+bXV0ZWQoKSksIDApOworICAgICAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VNdXRl
ZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPm11dGVkKCksIG1fc291cmNlLT5pbnRlcnJ1cHRlZCgp
KSwgMCk7CiAgICAgfQogCiAgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKSBmaW5hbCB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDIzMmM1NzI2NTExMzk0NTc4NTY4MDZjNTQ3OWQ2MjdjNDg0NDEwNTguLjZmODIzMjg1MTA3
ZDkyN2E4NGNkZTE1ZDdjOGJhOThlNTQ1YTcyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCkBAIC0zNTAsOSArMzUwLDkgQEAgdm9pZCBH
UFVQcm9jZXNzUHJveHk6OnJlc2V0TW9ja01lZGlhRGV2aWNlcygpCiAgICAgc2VuZChNZXNzYWdl
czo6R1BVUHJvY2Vzczo6UmVzZXRNb2NrTWVkaWFEZXZpY2VzIHsgfSwgMCk7CiB9CiAKLXZvaWQg
R1BVUHJvY2Vzc1Byb3h5OjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sIGlzSW50ZXJy
dXB0ZWQpCit2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJy
dXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVw
dGVkKQogewotICAgIHNlbmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlNldE1vY2tDYW1lcmFJc0lu
dGVycnVwdGVkIHsgaXNJbnRlcnJ1cHRlZCB9LCAwKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQ
cm9jZXNzOjpTZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZCB7IGlzQ2FtZXJhSW50ZXJy
dXB0ZWQsIGlzTWljcm9waG9uZUludGVycnVwdGVkIH0sIDApOwogfQogI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuaAppbmRleCAwMDYyNTVkMWY2NjZlOGM0MjRkMGNjYjZlZmNkZWNhMWM4MmM3OWFh
Li40NDNlOWI3YTQ2NmFmZTUxZTg4NGI0Zjk0MzhjNGNjNjVkNzNiOGRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCkBAIC04Niw3ICs4Niw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyTW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgcmVt
b3ZlTW9ja01lZGlhRGV2aWNlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVzZXRNb2NrTWVk
aWFEZXZpY2VzKCk7Ci0gICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sKTsK
KyAgICB2b2lkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJ
bnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAgICAgdm9pZCB1cGRh
dGVTYW5kYm94QWNjZXNzKGJvb2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlb0Nh
cHR1cmUsIGJvb2wgYWxsb3dEaXNwbGF5Q2FwdHVyZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggODIyODZkMmZlMGQ1YzVkY2E2YzlkNjdh
ZGFmODYwMTJiODdkOTMxYS4uOTlkZjQ3NTU0NDI2NDg4NjQyZjBhYjhkZTgxMzY5ZTI3OGI2N2Jl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDg4Miw5
ICsxMDg4Miw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2Fw
dHVyZSh1aW50NjRfdCBvcmllbnRhdGlvbikKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
ICYmIFVTRShHU1RSRUFNRVIpCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0TW9ja0NhbWVyYUlzSW50
ZXJydXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQordm9pZCBXZWJQYWdlUHJveHk6OnNldE1vY2tD
YXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBp
c01pY3JvcGhvbmVJbnRlcnJ1cHRlZCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpT
ZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChpc0ludGVycnVwdGVkKSk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6U2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoaXNDYW1lcmFJ
bnRlcnJ1cHRlZCwgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDc4ZDU0ZDgxZGYxYjU4NzAwYjFi
NDA1ZWFmNTdiOTBhMGVmY2NlOGIuLjg4OWExYTk2ODAyMzM2Nzg2ZmY5OTE5MjJjOWI5MjljM2Yy
YTZhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xODkyLDcg
KzE4OTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVy
ZSh1aW50NjRfdCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoR1NUUkVBTUVS
KQotICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7CisgICAgdm9pZCBz
ZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQs
IGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpOwogI2VuZGlmCiAKICAgICBib29sIGlzSGFu
ZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsaW5nUHJl
dmVudGFibGVUb3VjaFN0YXJ0Q291bnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMDlkYmFlOGUzMTA1NDIxNmZlOTg4ZjYwYjlmNDY0Y2Nj
N2RiOWY2OS4uMzJmZjljMzZhMjYzYzg3MTgxMmM2MmM1ZjA4OTcyNGI4MGJiMjBkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ5MTQsOSAr
NDkxNCw5IEBAIHZvaWQgV2ViUGFnZTo6c2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWlu
dDY0X3Qgcm90YXRpb24pCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0TW9ja0NhbWVy
YUlzSW50ZXJydXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQordm9pZCBXZWJQYWdlOjpzZXRNb2Nr
Q2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGJvb2wg
aXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlzSW50ZXJydXB0ZWQpOworICAgIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1
cHRlZChpc0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiB9CiAj
ZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IGE1ZWJhZWM0NWJhMDI0YWQ0YmYyZjJiOWU2MWUyYzRkNWFjZWRk
OTcuLjFlMTQ3NTI1MDRmYWQ1NDBiOTg3NWU1ZGM3MjJiZTRkNGNlOGRiNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEyNDQsNyArMTI0NCw3IEBA
IHB1YmxpYzoKICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShHU1RSRUFN
RVIpCiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVyZSh1aW50NjRfdCByb3Rh
dGlvbik7Ci0gICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sKTsKKyAgICB2
b2lkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1
cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAjZW5kaWYKIAogICAgIHZvaWQg
YWRkVXNlclNjcmlwdChTdHJpbmcmJiBzb3VyY2UsIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQm
LCBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLCBXZWJDb3JlOjpVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBmYzJkNWMyMjU0NTU4OTZlMGU3YjJlMDI5MzYx
ZDI0YjZmZWYyY2U0Li5jZmYwYWE5MWEwYmMyZjRhZmVlNmVjZjE0ZGE3ZDJlMTExYTNhNDU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KQEAgLTQwNyw3ICs0MDcsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAg
IENhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICBTZXRPcmll
bnRhdGlvbkZvck1lZGlhQ2FwdHVyZShpbnQgcm90YXRpb24pCi0gICAgU2V0TW9ja0NhbWVyYUlz
SW50ZXJydXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQorICAgIFNldE1vY2tDYXB0dXJlRGV2aWNl
c0ludGVycnVwdGVkKGJvb2wgaXNDYW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJ
bnRlcnJ1cHRlZCkKICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCmluZGV4IGEz
YzQxZGMwNGFhY2U1ZGQ0ZWE3MzlhNjBmMmE1MzBlNWUzZDA3NWUuLjJhMzNmOTc2ODAzMGEwNmE3
OGU0OGYzMGQ3YWNjNjNiZWI2ZDNiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNjgsNyAr
NjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CiAKICAgICB2
b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBX
ZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpOwotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFs
dWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CisgICAgdm9pZCBzb3VyY2VNdXRlZENo
YW5nZWQoYm9vbCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKIHByaXZhdGU6CiAgICAgUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwpAQCAtODUs
NiArODUsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0
aWVzOyB9CiAgICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcp
PiYmIGNhbGxiYWNrKSBmaW5hbCB7IG1fcHJveHkud2hlblJlYWR5KFdURk1vdmUoY2FsbGJhY2sp
KTsgfQogICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJveHkuZGV2aWNlVHlwZSgpOyB9CisgICAgYm9vbCBp
bnRlcnJ1cHRlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJveHkuaW50ZXJydXB0ZWQoKTsg
fQogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9u
OjpDbGllbnQKQEAgLTEwMSw2ICsxMDIsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKIH07CiAKK2lubGluZSB2b2lkIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZChib29sIG11dGVkLCBi
b29sIGludGVycnVwdGVkKQoreworICAgIG1fcHJveHkuc2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0
ZWQpOworICAgIG5vdGlmeU11dGVkQ2hhbmdlKG11dGVkKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCmluZGV4IDUyZjUzNWIzZDcz
ZDY4OTc3OGI5NWYxOTQ3ZjhlNzJkODI5OGQ2YTEuLmY5YzkyMjQ1YTIyNGNmNTJkNDU4MjY1ZWE0
NjY4MzJlMWJjYmUyN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKQEAgLTYyLDcgKzYyLDcg
QEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOwogCiAgICAgdm9pZCBy
ZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYgc2FtcGxlLCBX
ZWJDb3JlOjpWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFkYXRhKSB7IHZpZGVvU2FtcGxlQXZhaWxh
YmxlKHNhbXBsZSwgbWV0YWRhdGEpOyB9Ci0gICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9v
bCB2YWx1ZSkgeyBub3RpZnlNdXRlZENoYW5nZSh2YWx1ZSk7IH0KKyAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZChib29sIHZhbHVlLCBib29sIGludGVycnVwdGVkKTsKIAogcHJpdmF0ZToKICAg
ICBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKQEAgLTc5LDYgKzc5LDcg
QEAgcHJpdmF0ZToKICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQog
ICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxs
YmFjaykgZmluYWwgeyBtX3Byb3h5LndoZW5SZWFkeShXVEZNb3ZlKGNhbGxiYWNrKSk7IH0KICAg
ICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3Byb3h5LmRldmljZVR5cGUoKTsgfQorICAgIGJvb2wgaW50ZXJydXB0
ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmludGVycnVwdGVkKCk7IH0KIAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50
CkBAIC05NSw2ICs5NiwxMiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwogfTsKIAoraW5saW5lIHZvaWQgUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCBtdXRlZCwgYm9vbCBpbnRl
cnJ1cHRlZCkKK3sKKyAgICBtX3Byb3h5LnNldEludGVycnVwdGVkKGludGVycnVwdGVkKTsKKyAg
ICBub3RpZnlNdXRlZENoYW5nZShtdXRlZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXggNGEyOTRkOGM1
NDE3MWU2ZTEwMDViM2E0MDY2NTZiMjZjMTU5YzA0ZC4uMjQ0NmUzOThlOGMzNjg3OGQ0MTQ0MjBj
YTVkYmM3YmI1ZTg0NTE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKQEAg
LTYwLDExICs2MCwxMyBAQCBJUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6Y29ubmVjdGlvbigpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5OjpzdGFydFByb2R1Y2luZ0RhdGEoKQogeworICAgIG1faW50ZXJydXB0ZWQgPSBmYWxzZTsK
ICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlN0YXJ0UHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKIH0KIAogdm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKCkKIHsK
KyAgICBtX2ludGVycnVwdGVkID0gZmFsc2U7CiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5nRGF0YSB7IG1f
aWRlbnRpZmllciB9LCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCmluZGV4
IDAzYzFkNzEyMjI3Y2Q1YjUxYTgwNDE5OGY0OTU5YzIyOThmZGEzNjIuLjU5ZTJjMjgzNDVjOTBm
N2QyYzRlYTdmMzA2YmE0NTBmNWExMjU3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
LmgKQEAgLTcxLDYgKzcxLDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRGYWlsKFN0cmluZyYm
IGVycm9yTWVzc2FnZSk7CiAKKyAgICBib29sIGludGVycnVwdGVkKCkgY29uc3QgeyByZXR1cm4g
bV9pbnRlcnJ1cHRlZDsgfQorICAgIHZvaWQgc2V0SW50ZXJydXB0ZWQoYm9vbCBpbnRlcnJ1cHRl
ZCkgeyBtX2ludGVycnVwdGVkID0gaW50ZXJydXB0ZWQ7IH0KKwogcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBtX2RldmljZTsKQEAgLTgxLDYgKzg0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07CiAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcpPiBtX2NhbGxiYWNrOwogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAgICBi
b29sIG1faW50ZXJydXB0ZWQgeyBmYWxzZSB9OwogfTsKIAogaW5saW5lIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oCmluZGV4IDMyYThhMTE1NDY0YjBiNjViN2VhZjNiZjBkYjgxN2ZlMWI4ZjlhOTcuLjVi
NDY1MTFmNDE4NzMyNDg2YjMyNmUwZGI5YTFlZTk3MTg5YWEyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkg
ZmluYWw7CiAKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlJiwgV2ViQ29yZTo6SW50U2l6ZSwgV2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSk7Ci0g
ICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3RpZnlNdXRlZENoYW5n
ZSh2YWx1ZSk7IH0KKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlLCBib29s
IGludGVycnVwdGVkKTsKIAogcHJpdmF0ZToKICAgICBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAg
ICAgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gc2FtcGxlUm90YXRpb24oKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3NhbXBsZVJvdGF0aW9uOyB9CiAgICAgdm9pZCBzZXRGcmFt
ZVJhdGVXaXRoUHJlc2V0KGRvdWJsZSwgUmVmUHRyPFdlYkNvcmU6OlZpZGVvUHJlc2V0PikgZmlu
YWw7CiAgICAgYm9vbCBwcmVmZXJzUHJlc2V0KFdlYkNvcmU6OlZpZGVvUHJlc2V0JikgZmluYWw7
CisgICAgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJveHkuaW50
ZXJydXB0ZWQoKTsgfQogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIC8vIEdQVVByb2Nl
c3NDb25uZWN0aW9uOjpDbGllbnQKQEAgLTExMCw2ICsxMTEsMTIgQEAgcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3NhbXBsZVJvdGF0aW9uIHsgV2Vi
Q29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUgfTsKIH07CiAKK2lubGluZSB2
b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZChib29sIG11
dGVkLCBib29sIGludGVycnVwdGVkKQoreworICAgIG1fcHJveHkuc2V0SW50ZXJydXB0ZWQoaW50
ZXJydXB0ZWQpOworICAgIG5vdGlmeU11dGVkQ2hhbmdlKG11dGVkKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggZjY4N2Q4ZDlm
YmUwMzAyMzdmNGZjYTQwNzMwYTFhNDViZDRjMDRjMy4uNGNhMjU0ZjQ2ZGViYWQ5YTJjNWQ2MWQ3
ZTVjOGQ4YTJlYmMxNjU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0xNTQsMTggKzE1NCwx
OCBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjYXB0dXJlRmFpbGVkKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aQogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7
IH0pOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5n
ZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBtdXRlZCkK
K3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVkQ2hhbmdlZChSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIG11dGVkLCBib29sIGludGVy
cnVwdGVkKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMuZmluZChpZGVudGlmaWVy
KTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9zb3VyY2VzLmVuZCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFttdXRlZF0oUmVmPFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENo
YW5nZWQobXV0ZWQpOwotICAgIH0sIFttdXRlZF0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQp
OwotICAgIH0sIFttdXRlZF0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJj
ZSkgewotICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCk7CisgICAgc3dp
dGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbbXV0ZWQsIGludGVycnVwdGVkXShSZWY8UmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVk
Q2hhbmdlZChtdXRlZCwgaW50ZXJydXB0ZWQpOworICAgIH0sIFttdXRlZCwgaW50ZXJydXB0ZWRd
KFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7CisgICAgICAgIHNvdXJj
ZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkLCBpbnRlcnJ1cHRlZCk7CisgICAgfSwgW211dGVk
LCBpbnRlcnJ1cHRlZF0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkg
eworICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCwgaW50ZXJydXB0ZWQp
OwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmlu
ZGV4IDhjYzViNGY5MjY5YjI0NGRiNTk5NWI3Yjc0NDRiOTE1OTdmMTZhODIuLmQ4ZmI4MGI0ZmU4
ZGFlNzY5OTU0ODJhMjM5MTdkMmZlYTU5MjBlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC0xMjYs
NyArMTI2LDggQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIKICAgICB2b2lkIGNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGJvb2wgbXV0ZWQpOworICAgIHZvaWQg
c291cmNlTXV0ZWRDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBib29sIG11dGVkLCBib29sIGludGVycnVwdGVkKTsKKwogICAgIHZvaWQgc291cmNlU2V0dGlu
Z3NDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFp
bnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CiAgICAgdm9pZCBhcHBseUNvbnN0
cmFpbnRzRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTdHJp
bmcmJiwgU3RyaW5nJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4
IGEwNWY2ZGQyZWE4N2Y5MGJjZWNlNWM3NjRjY2NkYzE1NWI0NDNkZTQuLjk3OWNjZTI1ODk2MDA1
M2ZlMTRmNzBlNmQyMzYyMDE5MGIxNmFkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTI2LDcgKzI2LDcgQEAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyIE5vdFJlZkNvdW50ZWQgewogICAgIENhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgU291cmNlU3RvcHBlZChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKLSAgICBTb3VyY2VNdXRlZENoYW5nZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZWQpCisg
ICAgU291cmNlTXV0ZWRDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkLCBib29sIG11dGVkLCBib29sIGludGVycnVwdGVkKQogICAgIFNvdXJjZVNldHRpbmdz
Q2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQogICAgIEFwcGx5Q29uc3Ry
YWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKICAgICBBcHBs
eUNvbnN0cmFpbnRzRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkLCBTdHJpbmcgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nIG1lc3NhZ2UpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTFjMTQyZmMzNzg2OTY2
ODM5NmRlOTc4NGRhN2ZjYzc3YzY5YjJkNy4uNmNkODcyMzc3YzQyOTA2NzY5ZTkwMTlmZGQ4YmZj
ZWNjNGRlNWJkOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAzLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIHRvIG11dGUgdmlkZW8gY2Fw
dHVyZSBpbiBjYXNlIGF1ZGlvIGNhcHR1cmUgZ2V0cyBpbnRlcnJ1cHRlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTI0CisgICAgICAgIDxyZGFy
Oi8vNzg0MjEyODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBpbnRlcnJ1cHQgbW9jayBtaWNyb3Bob25lIGRldmljZXMuCisK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorCiAyMDIyLTAzLTA4ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XVtXUEVdIERvIG5vdCBhZGQgbmV3IG1vZHVsZXMgdW5kZXIgVGhpcmRQYXJ0eSB0byB0aGUgdGFy
YmFsbApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZGQzOTc2M2FjNTEyNWFhYmU2MDQ5
NjI5NDc4MGYyMDZiMTBjMjg3Ni4uZTVkMTQ4YWY3ZWVkYjAyNGY5ZmY5ZmM2Zjg3YTA4MTRlYzkw
YTk3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zODcsNyArMzg3LDcgQEAgaW50
ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCByZXNldE1vY2tNZWRpYURldmljZXMo
KTsKICAgICB1bmRlZmluZWQgc2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKHVuc2lnbmVkIGxvbmcg
b3JpZW50YXRpb24pOwogICAgIGJvb2xlYW4gaXNNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ckVuYWJsZWQoKTsKLSAgICB1bmRlZmluZWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9v
bGVhbiBpc0ludGVycnVwdGVkKTsKKyAgICB1bmRlZmluZWQgc2V0TW9ja0NhcHR1cmVEZXZpY2Vz
SW50ZXJydXB0ZWQoYm9vbGVhbiBpc0NhbWVyYUludGVycnVwdGVkLCBib29sZWFuIGlzTWljcm9w
aG9uZUludGVycnVwdGVkKTsKIAogICAgIGJvb2xlYW4gaGFzQXBwQm91bmRTZXNzaW9uKCk7CiAg
ICAgdW5kZWZpbmVkIGNsZWFyQXBwQm91bmRTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAyOTAxNGMw
ZGQ0ZjA4ZTM3Njk5OTE1OWI2M2IwYTljYTczZmVlMzMzLi40NjI5Y2Y3MjNlYTJiMzkxZmQ5NDlj
NTM5YjI4MWVhYmVlOTM0ZTRlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTE4MzIsOSArMTgzMiwxMiBAQCBib29s
IFRlc3RSdW5uZXI6OmlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCkKICAg
ICByZXR1cm4gcG9zdFN5bmNocm9ub3VzTWVzc2FnZVJldHVybmluZ0Jvb2xlYW4oIklzTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkIik7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQordm9pZCBUZXN0
UnVubmVyOjpzZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChib29sIGlzQ2FtZXJhSW50
ZXJydXB0ZWQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCiB7Ci0gICAgcG9zdFN5bmNo
cm9ub3VzTWVzc2FnZSgiU2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQiLCBpc0ludGVycnVwdGVk
KTsKKyAgICBwb3N0U3luY2hyb25vdXNNZXNzYWdlKCJTZXRNb2NrQ2FwdHVyZURldmljZXNJbnRl
cnJ1cHRlZCIsIGNyZWF0ZVdLRGljdGlvbmFyeSh7CisgICAgICAgIHsgImNhbWVyYSIsIGFkb3B0
V0soV0tCb29sZWFuQ3JlYXRlKGlzQ2FtZXJhSW50ZXJydXB0ZWQpKSB9LAorICAgICAgICB7ICJt
aWNyb3Bob25lIiwgYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUoaXNNaWNyb3Bob25lSW50ZXJydXB0
ZWQpKSB9LAorICAgIH0pKTsKIH0KIAogI2lmIEVOQUJMRShHQU1FUEFEKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA5MGY1
ZWU0ODFmNDUxMDBlMzdhYzRiY2Q1YTJkNGE3MDUyZjE0YzE2Li43ZjY5MTY2MjhiY2EyOGRmZDhh
ZjYxOTMzNjRjNGQ0ZDM3OWUwMjE3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDk5LDcgKzQ5OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgc2V0TW9ja0NhbWVy
YU9yaWVudGF0aW9uKHVuc2lnbmVkKTsKICAgICBib29sIGlzTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJFbmFibGVkKCk7Ci0gICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChi
b29sKTsKKyAgICB2b2lkIHNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGJvb2wgaXND
YW1lcmFJbnRlcnJ1cHRlZCwgYm9vbCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiAKICAgICBi
b29sIGhhc0FwcEJvdW5kU2Vzc2lvbigpOwogICAgIHZvaWQgY2xlYXJBcHBCb3VuZFNlc3Npb24o
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZmE2YjY5
MWM3NGM4NjVmOWUxZGUzOWI3NGUzYzFiY2U4NDU4ZGVlZC4uNWYwMmIwZWU4Yzg1NGYzNmU3MGVl
NTI2OTNlZWY4MGY1NDdlZTU2ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKQEAgLTM2MjAsOSArMzYyMCw5IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gV0tQ
YWdlSXNNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQobV9tYWluV2ViVmlldy0+
cGFnZSgpKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0NhbWVyYUlzSW50ZXJy
dXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0Nh
cHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlz
TWljcm9waG9uZUludGVycnVwdGVkKQogewotICAgIFdLUGFnZVNldE1vY2tDYW1lcmFJc0ludGVy
cnVwdGVkKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgaXNJbnRlcnJ1cHRlZCk7CisgICAgV0tQYWdl
U2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQobV9tYWluV2ViVmlldy0+cGFnZSgpLCBp
c0NhbWVyYUludGVycnVwdGVkLCBpc01pY3JvcGhvbmVJbnRlcnJ1cHRlZCk7CiB9CiAKIHN0cnVj
dCBJbkFwcEJyb3dzZXJQcml2YWN5Q2FsbGJhY2tDb250ZXh0IHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBlMjRhYzMyMDM0YWRiNDVjMmU5NzU5ZDg5OGMyODBh
NWM1ZDM2ZTZkLi5hOGEyNDk3ZDZmNjViNDA4MTZlZGQ4NjE2OTI1MmZlN2I5ZDJiMDM0IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zMTIsNyArMzEyLDcgQEAg
cHVibGljOgogICAgIHZvaWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7CiAgICAgdm9pZCBzZXRN
b2NrQ2FtZXJhT3JpZW50YXRpb24odWludDY0X3QpOwogICAgIGJvb2wgaXNNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldE1vY2tDYW1lcmFJ
c0ludGVycnVwdGVkKGJvb2wpOworICAgIHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJy
dXB0ZWQoYm9vbCBpc0NhbWVyYUludGVycnVwdGVkLCBib29sIGlzTWljcm9waG9uZUludGVycnVw
dGVkKTsKICAgICBib29sIGhhc0FwcEJvdW5kU2Vzc2lvbigpOwogCiAgICAgdm9pZCBpbmplY3RV
c2VyU2NyaXB0KFdLU3RyaW5nUmVmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKaW5kZXggOTRhMDQ2YjIwMmUyNmRiZGJhOTlmYWQ0ODJlNDFiMzI5NDk0NzczMy4u
ZDllMDYwZGFjMmFiOTk0Nzc2NDhjNTI1NTc3OGZlMDNjNWM1Njc1YyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTk3Myw4ICs5NzMsMTEgQEAgV0tSZXRh
aW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVz
c2FnZUZyb21JbmplY3RlZEIKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIklzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkIikpCiAg
ICAgICAgIHJldHVybiBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuaXNNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoKSkpOwogICAg
IAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0
TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQiKSkgewotICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbGVhblZhbHVlKG1lc3NhZ2VC
b2R5KSk7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJTZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZCIpKSB7CisgICAgICAgIGF1dG8gbWVz
c2FnZUJvZHlEaWN0aW9uYXJ5ID0gZGljdGlvbmFyeVZhbHVlKG1lc3NhZ2VCb2R5KTsKKyAgICAg
ICAgYm9vbCBpc0NhbWVyYUludGVycnVwdGVkID0gYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSwgImNhbWVyYSIpOworICAgICAgICBib29sIGlzTWljcm9waG9uZUludGVycnVwdGVk
ID0gYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgIm1pY3JvcGhvbmUiKTsKKyAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldE1vY2tDYXB0dXJlRGV2aWNlc0lu
dGVycnVwdGVkKGlzQ2FtZXJhSW50ZXJydXB0ZWQsIGlzTWljcm9waG9uZUludGVycnVwdGVkKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDhjNjA3ZmE4MzkzYzFl
ZmZiMDY2NmIyYzZhYjcxZGEzNWY3YWI0OC4uZDMzNGRhNDIyMjE0ZDE0YjFmNjhjOTRmMDZjMjE4
ZDE4ZjhiNDViOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTA4ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIHRvIG11
dGUgdmlkZW8gY2FwdHVyZSBpbiBjYXNlIGF1ZGlvIGNhcHR1cmUgZ2V0cyBpbnRlcnJ1cHRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTI0Cisg
ICAgICAgIDxyZGFyOi8vNzg0MjEyODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJh
Y2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZy
b20tYXVkaW8uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1z
dHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbDogTWlncmF0ZWQgdG8gdGVzdFJ1bm5l
ciBBUEkuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS90cmFjay1lbmRlZC13aGlsZS1tdXRl
ZC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAy
Mi0wMy0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1w
cm92ZSBXZWJSVEMgVlBYIG1lZGlhIGNhcGFiaWxpdGllcyBhY2N1cmFjeQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50ZXJydXB0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNr
LWludGVycnVwdGVkLmh0bWwKaW5kZXggOTBhM2VmYmNjNWM1YmZlMWY3OTIzZGNiOWI1NTU1MmFi
NjdmOGI0Yy4uMDhkY2IzNTM1Mjk5MmFlNDhmNjVjNmU2NmI2M2E5YmQ4OWUxODQ1NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50
ZXJydXB0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0
cmVhbS10cmFjay1pbnRlcnJ1cHRlZC5odG1sCkBAIC0xLDUgKzEsNCBAQAotPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFi
bGVkPWZhbHNlIENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZD1mYWxzZSBdIC0tPgotPCFE
T0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIENh
cHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBDYXB0dXJlVmlkZW9JbkdQVVByb2Nl
c3NFbmFibGVkPXRydWUgTXV0ZUNhbWVyYU9uTWljcm9waG9uZUludGVycnVwdGlvbkVuYWJsZWQ9
ZmFsc2UgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgpA
QCAtMTIsMTggKzExLDE4IEBACiAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAg
ICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHthdWRpbzogdHJ1ZX0pOwogICAgICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpWzBdOwotICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
bGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9u
bXV0ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUwMDAp
IH0pOwotICAgICAgICBpbnRlcm5hbHMuc2V0TWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1cHRlZCh0
cmFjaywgdHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50
ZXJydXB0ZWQoZmFsc2UsIHRydWUpOwogICAgICAgICBhd2FpdCBwcm9taXNlOwogCiAgICAgICAg
IGFzc2VydF90cnVlKHRyYWNrLm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKICAgICAgICAgYXNz
ZXJ0X3RydWUoaW50ZXJuYWxzLmlzTWVkaWFTdHJlYW1Tb3VyY2VJbnRlcnJ1cHRlZCh0cmFjayks
ICJzb3VyY2UgaXMgaW50ZXJydXB0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7IHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAgIGludGVy
bmFscy5zZXRNZWRpYVN0cmVhbVNvdXJjZUludGVycnVwdGVkKHRyYWNrLCBmYWxzZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFsc2UsIGZh
bHNlKTsKICAgICAgICAgYXdhaXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfZmFsc2UodHJh
Y2subXV0ZWQsICJ0cmFjayBpcyBubyBsb25nZXIgbXV0ZWQiKTsKQEAgLTc0LDE0ICs3MywxNCBA
QAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHBhZ2VNZWRpYVN0YXRl
LmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlJyA6ICdIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2ZhbHNlKHBhZ2VNZWRpYVN0YXRlLmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFzQWN0aXZl
VmlkZW9DYXB0dXJlRGV2aWNlJyA6ICdIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UnKSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVN0YXRlID0gaW50ZXJuYWxzLnBhZ2VNZWRp
YVN0YXRlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1lZGlh
U3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJhY2ssIGZhbHNlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFs
c2UsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgfSkKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICAgICAgICAgICAgICAgICBwYWdlU3RhdGUgPSBpbnRlcm5hbHMucGFnZU1lZGlhU3RhdGUoKTsK
LSAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNlSW50ZXJy
dXB0ZWQodHJhY2ssIHRydWUpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldE1v
Y2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGlzVmlkZW8sICFpc1ZpZGVvKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIk11dGVk
IHN0YXRlIGRpZCBub3QgY2hhbmdlIGluIDEgc2Vjb25kIiksIDEwMDApOwogICAgICAgICAgICAg
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVh
bS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9tLWF1ZGlvLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVw
dGVkLWZyb20tYXVkaW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMTMzMDY4MmUxMmViMTA4
MTcwMDFkNDUxNjE0OTI0MTY1MTlmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC1mcm9t
LWF1ZGlvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBNdXRlL3VubXV0ZSB2
aWRlbyB0cmFjayBpZiBhdWRpbyBnZXRzIGludGVycnVwdGVkCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVw
dGVkLWZyb20tYXVkaW8uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEt
c3RyZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLWZyb20tYXVkaW8uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lYmZlYzVmZDE4M2UwNjY1NTg2NmIxYWZjNWE0M2E1NjQ3MDIzN2NhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJh
Y2staW50ZXJydXB0ZWQtZnJvbS1hdWRpby5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQ
RSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNz
RW5hYmxlZD10cnVlIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ9dHJ1ZSBNdXRlQ2Ft
ZXJhT25NaWNyb3Bob25lSW50ZXJydXB0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+VmlkZW8gY2FwdHVy
ZSBzb3VyY2UgaW50ZXJydXB0aW9uIGJhc2VkIG9uIGF1ZGlvIGludGVycnVwdGlvbjwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1
ZX0pOworICAgICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOwor
ICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0
cmFjay5vbm11dGUgPSByZXNvbHZlOyBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgibm8gbXV0ZSIp
LCA1MDAwKSB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRl
cnJ1cHRlZChmYWxzZSwgdHJ1ZSk7CisgICAgICAgIGF3YWl0IHByb21pc2U7CisKKyAgICAgICAg
YXNzZXJ0X3RydWUodHJhY2subXV0ZWQsICJ0cmFjayBpcyBtdXRlZCIpOworCisgICAgICAgIHBy
b21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9udW5tdXRl
ID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIHVubXV0ZSIpLCA1MDAwKSB9
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrQ2FwdHVyZURldmljZXNJbnRlcnJ1cHRlZChm
YWxzZSwgZmFsc2UpOworICAgICAgICBhd2FpdCBwcm9taXNlOworCisgICAgICAgIGFzc2VydF9m
YWxzZSh0cmFjay5tdXRlZCwgInRyYWNrIGlzIG5vdCBtdXRlZCIpOworCisgICAgICAgIHRyYWNr
LnN0b3AoKTsKKyAgICB9LCAiTXV0ZS91bm11dGUgdmlkZW8gdHJhY2sgaWYgYXVkaW8gZ2V0cyBp
bnRlcnJ1cHRlZCIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2st
aW50ZXJydXB0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3Ry
ZWFtLXZpZGVvLXRyYWNrLWludGVycnVwdGVkLmh0bWwKaW5kZXggZWI5YTliZmViNzRhYmZiZjMx
ODg2N2I1ZGE0NGZhNTNiZTg4OTZmMS4uODJlNjcyMjc5NWE5MTZlZDQwZDYwZWMyZTc5M2E2MGM1
NWEyZGZkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1z
dHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC5odG1sCkBA
IC0xNSwxMyArMTUsMTMgQEAKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsZXQgcHJv
bWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25tdXRlID0g
cmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkgfSk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQodHJ1ZSwgZmFs
c2UpOwogICAgICAgICBhd2FpdCBwcm9taXNlOwogCiAgICAgICAgIGFzc2VydF90cnVlKHRyYWNr
Lm11dGVkLCAidHJhY2sgaXMgbXV0ZWQiKTsKIAogICAgICAgICBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbnVubXV0ZSA9IHJlc29sdmU7IHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJubyB1bm11dGUiKSwgNTAwMCkgfSk7Ci0gICAgICAgIHRlc3RS
dW5uZXIuc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKGZhbHNlLCBmYWxzZSk7CiAgICAg
ICAgIGF3YWl0IHByb21pc2U7CiAKICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRyYWNrLm11dGVkLCAi
dHJhY2sgaXMgbm90IG11dGVkIik7CkBAIC00NSw3ICs0NSw3IEBACiAKICAgICAgICAgLy8gZ2V0
dGluZyBhbiBpbnRlcnJ1cHRpb24sIHRyYWNrIHNob3VsZCBiZSBtdXRlZC4KICAgICAgICAgbGV0
IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRyYWNrLm9ubXV0
ZSA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJubyBtdXRlIiksIDUwMDApIH0p
OwotICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYXB0dXJlRGV2aWNlc0ludGVycnVwdGVkKHRydWUs
IGZhbHNlKTsKICAgICAgICAgYXdhaXQgcHJvbWlzZTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSh0
cmFjay5tdXRlZCwgInRyYWNrIGlzIG11dGVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL3RyYWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3RyYWNrLWVuZGVkLXdoaWxlLW11dGVkLmh0bWwKaW5kZXggOWRi
Nzg2MjcxOTM5ZmUzNGU1OTRiYzg2MzVlMzJlOTQzNDRlMzk2Ni4uNjI1OTk2NzM3NjdiNDRhOGEx
NjAzMzBmNzkzYjZmMTM0MDBkYzZhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS90cmFjay1lbmRlZC13aGlsZS1tdXRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vdHJhY2stZW5kZWQtd2hpbGUtbXV0ZWQuaHRtbApAQCAtMTEsMTMgKzEx
LDEzIEBACiBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCBzdHJlYW0g
PSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9
KTsKICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwotICAgIGlm
ICghd2luZG93LmludGVybmFscykKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAg
ICByZXR1cm47CiAKICAgICBjb25zdCBjbG9uZSA9IHRyYWNrLmNsb25lKCk7CiAKICAgICBsZXQg
cHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsgdHJhY2sub25tdXRl
ID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIm5vIG11dGUiKSwgNTAwMCkgfSk7
Ci0gICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtU291cmNlSW50ZXJydXB0ZWQodHJhY2ssIHRy
dWUpOworICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhcHR1cmVEZXZpY2VzSW50ZXJydXB0ZWQoZmFs
c2UsIHRydWUpOwogICAgIGF3YWl0IHByb21pc2U7CiAKICAgICB0cmFjay5zdG9wKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWQ2NDkwMTk1OTYz
MGRlODhmMGQxNWFjYjkwY2I5MGNiMTgzNjc1NS4uOGQzNmU3NzA2OTNiMGY1YTg0NzgzNTg5NTRj
ZmE1ZTAwNzNhYWI1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNzk4LDYgKzc5OCw5IEBAIHdlYmtpdC5vcmcvYi8yMTM2OTkgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjCiB3ZWJraXQu
b3JnL2IvMjMwNDE1IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY29ubmVj
dGlvbnN0YXRlY2hhbmdlLWV2ZW50Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHRtbCBbIEZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzE4NzYwMyBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10
cmFjay1zb3VyY2UtZmFpbHVyZS5odG1sIFsgVGltZW91dCBGYWlsdXJlIFBhc3MgXQorZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQtZnJvbS1hdWRp
by5odG1sIFsgRmFpbHVyZSBdCitmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1p
bnRlcnJ1cHRlZC5odG1sIFsgRmFpbHVyZSBdCitmYXN0L21lZGlhc3RyZWFtL3RyYWNrLWVuZGVk
LXdoaWxlLW11dGVkLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIyMzUwOCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3Ry
ZWFtLU1lZGlhRWxlbWVudC1zcmNPYmplY3QuaHR0cHMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>