<?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>211509</bug_id>
          
          <creation_ts>2020-05-06 06:23:46 -0700</creation_ts>
          <short_desc>Video capture does not get unmuted in case of tab switch on iOS</short_desc>
          <delta_ts>2022-03-10 13:08:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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=237359</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>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1649565</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 06:23:46 -0700</bug_when>
    <thetext>Video capture does not get unmuted in case of tab switch on iOS.
This is probably a fall out of https://bugs.webkit.org/show_bug.cgi?id=208516.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649608</commentid>
    <comment_count>1</comment_count>
      <attachid>398615</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 08:03:13 -0700</bug_when>
    <thetext>Created attachment 398615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649627</commentid>
    <comment_count>2</comment_count>
      <attachid>398620</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 08:31:46 -0700</bug_when>
    <thetext>Created attachment 398620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649676</commentid>
    <comment_count>3</comment_count>
      <attachid>398620</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-05-06 10:00:26 -0700</bug_when>
    <thetext>Comment on attachment 398620
Patch

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

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:451
&gt; +static bool isSourceCapturingForDocument(RealtimeMediaSource&amp; activeSource, Document&amp; document)

This name is slightly unclear about how it works. Maybe something like `isCapturingFromSameSourceAndDocument` or `isCapturingFromSourceAndDocument`?

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:464
&gt; +void MediaStreamTrack::updateAccordingMutedState()

Nit: this name is also slightly unclear about what the method does. Maybe something like `syncToPageMutedState`, or `updateToPageMutedState`?

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:495
&gt; +        bool muted = page-&gt;mutedState() &amp; MediaProducer::AudioAndVideoCaptureIsMuted;

s/muted/pageMuted/

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:501
&gt; +        bool muted = page-&gt;mutedState() &amp; MediaProducer::AudioAndVideoCaptureIsMuted;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649685</commentid>
    <comment_count>4</comment_count>
      <attachid>398633</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 10:21:25 -0700</bug_when>
    <thetext>Created attachment 398633
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649693</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 10:31:34 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; Created attachment 398633 [details]
&gt; Patch for landing

Wrong bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649696</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 10:37:53 -0700</bug_when>
    <thetext>iOS test is failing as the ability to allow multiple cloned tracks breaks the ability to mute/unmute the active source.

I plan to temporarily disable this GPU process test and reenable it later on.
The tricky thing about fixing this test is that we do not want to resize video frames in WebProcess, so we cannot use RealtimeVideoSource/RealtimeVideoCaptureSource here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650004</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-07 01:23:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/62537166&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650005</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-07 01:30:23 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 398620 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=398620&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:451
&gt; &gt; +static bool isSourceCapturingForDocument(RealtimeMediaSource&amp; activeSource, Document&amp; document)
&gt; 
&gt; This name is slightly unclear about how it works. Maybe something like
&gt; `isCapturingFromSameSourceAndDocument` or `isCapturingFromSourceAndDocument`?

I prefer the current name, we want to know whether the source is used by a track of the given document.

&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:464
&gt; &gt; +void MediaStreamTrack::updateAccordingMutedState()
&gt; 
&gt; Nit: this name is also slightly unclear about what the method does. Maybe
&gt; something like `syncToPageMutedState`, or `updateToPageMutedState`?

I&apos;ll go with updateToPageMutedState

&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:495
&gt; &gt; +        bool muted = page-&gt;mutedState() &amp; MediaProducer::AudioAndVideoCaptureIsMuted;
&gt; 
&gt; s/muted/pageMuted/

OK

&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:501
&gt; &gt; +        bool muted = page-&gt;mutedState() &amp; MediaProducer::AudioAndVideoCaptureIsMuted;
&gt; 
&gt; Ditto.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650012</commentid>
    <comment_count>9</comment_count>
      <attachid>398713</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-07 01:54:45 -0700</bug_when>
    <thetext>Created attachment 398713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650015</commentid>
    <comment_count>10</comment_count>
      <attachid>398715</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-07 01:57:45 -0700</bug_when>
    <thetext>Created attachment 398715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650016</commentid>
    <comment_count>11</comment_count>
      <attachid>398716</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-07 02:00:52 -0700</bug_when>
    <thetext>Created attachment 398716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650037</commentid>
    <comment_count>12</comment_count>
      <attachid>398720</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-07 04:19:48 -0700</bug_when>
    <thetext>Created attachment 398720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650101</commentid>
    <comment_count>13</comment_count>
      <attachid>398620</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-05-07 08:15:35 -0700</bug_when>
    <thetext>Comment on attachment 398620
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:451
&gt;&gt;&gt; +static bool isSourceCapturingForDocument(RealtimeMediaSource&amp; activeSource, Document&amp; document)
&gt;&gt; 
&gt;&gt; This name is slightly unclear about how it works. Maybe something like `isCapturingFromSameSourceAndDocument` or `isCapturingFromSourceAndDocument`?
&gt; 
&gt; I prefer the current name, we want to know whether the source is used by a track of the given document.

`isSourceCapturingForTrackInDocument`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650110</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-07 08:33:15 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #13)
&gt; Comment on attachment 398620 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=398620&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:451
&gt; &gt;&gt;&gt; +static bool isSourceCapturingForDocument(RealtimeMediaSource&amp; activeSource, Document&amp; document)
&gt; &gt;&gt; 
&gt; &gt;&gt; This name is slightly unclear about how it works. Maybe something like `isCapturingFromSameSourceAndDocument` or `isCapturingFromSourceAndDocument`?
&gt; &gt; 
&gt; &gt; I prefer the current name, we want to know whether the source is used by a track of the given document.
&gt; 
&gt; `isSourceCapturingForTrackInDocument`?

OK, sounds good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650528</commentid>
    <comment_count>15</comment_count>
      <attachid>398843</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-08 02:25:21 -0700</bug_when>
    <thetext>Created attachment 398843
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650529</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-08 02:26:58 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WebKit/ChangeLog is not at the top of the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650552</commentid>
    <comment_count>17</comment_count>
      <attachid>398852</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-08 03:29:16 -0700</bug_when>
    <thetext>Created attachment 398852
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650553</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-08 03:54:11 -0700</bug_when>
    <thetext>Committed r261373: &lt;https://trac.webkit.org/changeset/261373&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398852.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398615</attachid>
            <date>2020-05-06 08:03:13 -0700</date>
            <delta_ts>2020-05-06 08:31:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211509-20200506170310.patch</filename>
            <type>text/plain</type>
            <size>21934</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5YWJjMjM2NTVlYTBk
NGU2NTQ2MTk5YmFjMjg0YzQwMTYzOWVkNC4uZWYzODU1ODA2MWVjOTQyNjZmZDI3YWFmMzEyMjNm
NWM3MGM5NzA1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzZXRJbnRlcnJ1
cHRlZCBhbmQgcmVsYXRlZCBjb2RlLgorICAgICAgICBJbnN0ZWFkLCBkaXJlY3RseSB1c2Ugc2V0
TXV0ZWQodHJ1ZS9mYWxzZSkgb2YgdGhlIHNvdXJjZSBvZiBjYXB0dXJlIHRyYWNrcy4KKyAgICAg
ICAgVG8gZW5zdXJlIHdlIHZhbGlkYXRlIHRoYXQgdGhlIGFjdGl2ZSBzb3VyY2UgaXMgdGllZCB0
byBhIHRyYWNrIG9mIHRoZSBkb2N1bWVudCwKKyAgICAgICAgd2UgYWRkIFJlYWx0aW1lU291cmNl
Ojppc1NhbWVBcyB3aGljaCBoYW5kbGVzIHRoZSBjYXNlIG9mIGEgUmVhbHRpbWVWaWRlb1NvdXJj
ZSB3cmFwcGluZyBhbiBBVlZpZGVvQ2FwdHVyZVNvdXJjZS4KKyAgICAgICAgVGhlcmUgbWlnaHQg
YmUgbXVsdGlwbGUgdmlkZW8gdHJhY2tzIHdpdGggZWFjaCBvbmUgaXRzIFJlYWx0aW1lVmlkZW9T
b3VyY2UgdXNpbmcgdGhlIHNhbWUgQVZWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAgICAgIFdlIG11
dGUgdGhlIEFWVmlkZW9DYXB0dXJlU291cmNlIGRpcmVjdGx5IHRvIG1ha2Ugc3VyZSBhbGwgbGlu
a2VkIHRyYWNrcyB3aWxsIGdldCBtdXRlZC91bm11dGVkIGF0IHRoZSBzYW1lIHRpbWUuCisgICAg
ICAgIFRlc3RzIHRvIGJlIGZpeGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6
Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6aXNTb3VyY2VDYXB0dXJpbmdG
b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVD
YXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisKIDIwMjAtMDUtMDYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDU0NDZiOTViMjViMDQ1MzJhMWU1NmVmOWRiYThlZmU0ZGU5Y2U2YjEuLmVlZTU5MzA5NmNi
YjI4NWUxYWI0NjAwMmM2NzA3NjA3OWZmZGYyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDUtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IFZpZGVvIGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0ZWQgaW4gY2FzZSBvZiB0YWIgc3dpdGNo
IG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExNTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgY29kZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRBY3RpdmVTb3VyY2UpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAyMC0w
NS0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2VuZGlu
ZyBXZWJSVEMgbmV0d29yayBwYWNrZXRzIHNob3VsZCBub3QgZ28gdGhyb3VnaCB0aGUgbWFpbiB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQwYjJjYjlmZDBhYTFiZDFmMjlhY2VkYzViNjA5Mzk3
NzRhMTFjYjAuLjY5MmUwY2UxNTRiZmYyODE2MGQwYTM0NzZmNTAzNjJkMjU2OGQ0NDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtOTAsNyArOTAsNyBAQCBNZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVh
bVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxNZWRpYVN0cgogCiAg
ICAgaWYgKGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChk
b2N1bWVudC0+cGFnZSgpICYmIGRvY3VtZW50LT5wYWdlKCktPm11dGVkU3RhdGUoKSkKLSAgICAg
ICAgICAgIHNldE11dGVkKHRydWUpOworICAgICAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZCh0
cnVlKTsKICAgICB9CiB9CiAKQEAgLTE5NSwyNiArMTk1LDYgQEAgYm9vbCBNZWRpYVN0cmVhbVRy
YWNrOjptdXRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bXV0ZWQoKTsKIH0KIAot
dm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
RmxhZ3Mgc3RhdGUpCi17Ci0gICAgYm9vbCB0cmFja011dGVkID0gZmFsc2U7Ci0gICAgc3dpdGNo
IChzb3VyY2UoKS5kZXZpY2VUeXBlKCkpIHsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6Ok1pY3JvcGhvbmU6Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpD
YW1lcmE6Ci0gICAgICAgIHRyYWNrTXV0ZWQgPSBzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlv
QW5kVmlkZW9DYXB0dXJlSXNNdXRlZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpXaW5kb3c6Ci0gICAgICAgIHRyYWNrTXV0ZWQgPSBzdGF0ZSAmIE1lZGlhUHJvZHVj
ZXI6OlNjcmVlbkNhcHR1cmVJc011dGVkOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBtX3ByaXZhdGUtPnNldE11dGVkKHRy
YWNrTXV0ZWQpOwotfQotCiBhdXRvIE1lZGlhU3RyZWFtVHJhY2s6OnJlYWR5U3RhdGUoKSBjb25z
dCAtPiBTdGF0ZQogewogICAgIHJldHVybiBlbmRlZCgpID8gU3RhdGU6OkVuZGVkIDogU3RhdGU6
OkxpdmU7CkBAIC00NjgsNDAgKzQ0OCw1NiBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudAogfQog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLXN0YXRpYyBNZWRpYVN0cmVhbVRyYWNrKiBmaW5k
QWN0aXZlQ2FwdHVyZVRyYWNrRm9yRG9jdW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWFsdGlt
ZU1lZGlhU291cmNlKiBhY3RpdmVTb3VyY2UsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlw
ZSkKK3N0YXRpYyBib29sIGlzU291cmNlQ2FwdHVyaW5nRm9yRG9jdW1lbnQoUmVhbHRpbWVNZWRp
YVNvdXJjZSYgYWN0aXZlU291cmNlLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgTWVkaWFT
dHJlYW1UcmFjayogc2VsZWN0ZWRUcmFjayA9IG51bGxwdHI7Ci0gICAgZm9yIChhdXRvKiBjYXB0
dXJlVHJhY2sgOiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKLSAgICAgICAgaWYgKGNhcHR1cmVUcmFj
ay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgY2FwdHVyZVRyYWNrLT5lbmRlZCgpKQorICAg
IGZvciAoYXV0byogdHJhY2sgOiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKKyAgICAgICAgaWYgKHRy
YWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCB0cmFjay0+ZW5kZWQoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmICgmY2FwdHVyZVRyYWNrLT5zb3VyY2UoKSA9PSBh
Y3RpdmVTb3VyY2UpCi0gICAgICAgICAgICByZXR1cm4gY2FwdHVyZVRyYWNrOwotCi0gICAgICAg
IC8vIElmIHRoZSBkb2N1bWVudCBoYXMgYSBsaXZlIGNhcHR1cmUgdHJhY2ssIHdoaWNoIGlzIG5v
dCB0aGUgYWN0aXZlIG9uZSwgd2UgcGljayB0aGUgZmlyc3Qgb25lLgotICAgICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHByb2JhYmx5IHN0b3JlIHBlciBwYWdlIGFjdGl2ZSBhdWRpby92aWRlbyBj
YXB0dXJlIHRyYWNrcy4KLSAgICAgICAgaWYgKCFzZWxlY3RlZFRyYWNrICYmIGNhcHR1cmVUcmFj
ay0+cHJpdmF0ZVRyYWNrKCkudHlwZSgpID09IHR5cGUpCi0gICAgICAgICAgICBzZWxlY3RlZFRy
YWNrID0gY2FwdHVyZVRyYWNrOworICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmlzU2FtZUFz
KGFjdGl2ZVNvdXJjZSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0
dXJuIHNlbGVjdGVkVHJhY2s7CisgICAgcmV0dXJuIGZhbHNlOwogfQogI2VuZGlmCiAKIHZvaWQg
TWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IHBh
Z2UtPm11dGVkU3RhdGUoKTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgYXV0byog
YWN0aXZlQXVkaW9Tb3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGF1dG8qIGF1
ZGlvQ2FwdHVyZVRyYWNrID0gZmluZEFjdGl2ZUNhcHR1cmVUcmFja0ZvckRvY3VtZW50KGRvY3Vt
ZW50LCBhY3RpdmVBdWRpb1NvdXJjZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8p
KQotICAgICAgICBhdWRpb0NhcHR1cmVUcmFjay0+c2V0TXV0ZWQoZG9jdW1lbnQucGFnZSgpLT5t
dXRlZFN0YXRlKCkpOworICAgIGlmIChhY3RpdmVBdWRpb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1
cmluZ0ZvckRvY3VtZW50KCphY3RpdmVBdWRpb1NvdXJjZSwgZG9jdW1lbnQpKSB7CisgICAgICAg
IGJvb2wgbXV0ZWQgPSBtdXRlZFN0YXRlICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0Nh
cHR1cmVJc011dGVkOworICAgICAgICBhY3RpdmVBdWRpb1NvdXJjZS0+c2V0TXV0ZWQobXV0ZWQg
fHwgKGRvY3VtZW50LmhpZGRlbigpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuaW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRW5hYmxlZCgpKSk7
CisgICAgfQogCiAgICAgYXV0byogYWN0aXZlVmlkZW9Tb3VyY2UgPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNl
KCk7Ci0gICAgaWYgKGF1dG8qIHZpZGVvQ2FwdHVyZVRyYWNrID0gZmluZEFjdGl2ZUNhcHR1cmVU
cmFja0ZvckRvY3VtZW50KGRvY3VtZW50LCBhY3RpdmVWaWRlb1NvdXJjZSwgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6VmlkZW8pKQotICAgICAgICB2aWRlb0NhcHR1cmVUcmFjay0+c2V0TXV0
ZWQoZG9jdW1lbnQucGFnZSgpLT5tdXRlZFN0YXRlKCkpOworICAgIGlmIChhY3RpdmVWaWRlb1Nv
dXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvckRvY3VtZW50KCphY3RpdmVWaWRlb1NvdXJjZSwg
ZG9jdW1lbnQpKSB7CisgICAgICAgIGJvb2wgbXV0ZWQgPSBtdXRlZFN0YXRlICYgTWVkaWFQcm9k
dWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkOworICAgICAgICBhY3RpdmVWaWRlb1Nv
dXJjZS0+c2V0TXV0ZWQobXV0ZWQgfHwgZG9jdW1lbnQuaGlkZGVuKCkpOworICAgIH0KICNlbHNl
CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sgOiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKICAg
ICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgY2FwdHVy
ZVRyYWNrLT5lbmRlZCgpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGNhcHR1cmVU
cmFjay0+c2V0TXV0ZWQoZG9jdW1lbnQucGFnZSgpLT5tdXRlZFN0YXRlKCkpOworICAgICAgICBz
d2l0Y2ggKGNhcHR1cmVUcmFjay0+c291cmNlKCkuZGV2aWNlVHlwZSgpKSB7CisgICAgICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAgY2FzZSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgICAgICAgICBjYXB0dXJlVHJh
Y2stPm1fcHJpdmF0ZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlv
QW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICAgICAgY2FwdHVyZVRyYWNrLT5t
X3ByaXZhdGUtPnNldE11dGVkKG11dGVkU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpTY3JlZW5DYXB0
dXJlSXNNdXRlZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgIH0KICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaAppbmRleCAwMmZkNDU0YjZhMWRhM2M1NGJkYTNiMjA0OWU4ZTAzZjdjYWNkYjBhLi5hMjA3
ZTgyNmYxMjM1MWRjYmJlNDc4MTRkMzc1NWUwODA4MTM4MTBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaApAQCAtODcs
NyArODcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wpOwogCiAgICAgYm9v
bCBtdXRlZCgpIGNvbnN0OwotICAgIHZvaWQgc2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzKTsKIAogICAgIGVudW0gY2xhc3MgU3RhdGUgeyBMaXZlLCBFbmRlZCB9OwogICAg
IFN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE4
NDRiZjI5YmJmN2M1YzAxMGFjY2M5OWI2OWQxN2JlMjg1M2JmOWEuLjVmYjczNDI4MGMyNmI5OTg1
MjVkNTg3ZDc1YzcyNzkyMmIyZDNiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTc0
OSwxNyArMTc0OSwxMCBAQCB2b2lkIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkK
ICAgICBmb3IgKGF1dG8qIGNsaWVudCA6IG1fdmlzaWJpbGl0eVN0YXRlQ2FsbGJhY2tDbGllbnRz
KQogICAgICAgICBjbGllbnQtPnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKTsKIAotI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0gICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAo
cGFnZSAmJiBoaWRkZW4oKSkgewotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5zZXRDYXB0dXJlUGFnZVN0YXRlKHRydWUsIHBhZ2UtPmlzTWVkaWFDYXB0dXJl
TXV0ZWQoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaXNJbnRl
cnJ1cHRlZCgpKQogICAgICAgICBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3Jk
aW5nVG9NdXRlZFN0YXRlKCp0aGlzKTsKICNlbmRpZgotI2VuZGlmCiB9CiAKIFZpc2liaWxpdHlT
dGF0ZSBEb2N1bWVudDo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKaW5kZXggNWI0NDI0NTNmMjk1N2ZkNDQ2YjA5YzM5YzkxOWI0ODQyYjUwMGZhMi4uNmU5ZjVi
OTZlMTVlMDg4YjhhMTg3ODFkOWY3MDQ0ZGRlZjZjOGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKQEAgLTg4LDE2ICs4OCw2IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2Jz
ZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQogICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOwog
fQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEludGVycnVwdGVkKGJvb2wgaW50ZXJy
dXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotewotI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAg
VU5VU0VEX1BBUkFNKHBhZ2VNdXRlZCk7Ci0jZW5kaWYKLQotICAgIEFMV0FZU19MT0dfSUYobV9s
b2dnZXIsIExPR0lERU5USUZJRVIsIGludGVycnVwdGVkLCAiLCBwYWdlIG11dGVkIDogIiwgcGFn
ZU11dGVkKTsKLSAgICBzZXRNdXRlZChpbnRlcnJ1cHRlZCk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKG1f
bG9nZ2VyLCBMT0dJREVOVElGSUVSLCBtdXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNjZh
YTM1MDRhNzIwNTE1OWI1NGU1NjQwNzk5ZWY2MzU1ZjliYTBlOS4uZjhhYmFhM2FlYmViYmU2M2Vl
ZGUxZjVkMzAyMjdkODg0ZWI0ODE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMTI3LDcgKzEy
Nyw2IEBAIHB1YmxpYzoKICAgICBib29sIGNhcHR1cmVEaWRGYWlsKCkgY29uc3QgeyByZXR1cm4g
bV9jYXB0dXJlRGlkRmFpbGVkOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJydXB0ZWQoKSBj
b25zdCB7IHJldHVybiBtX2ludGVycnVwdGVkOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEludGVy
cnVwdGVkKGJvb2wsIGJvb2wpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9uYW1lOyB9CiAgICAgdm9pZCBzZXROYW1lKFN0cmluZyYmIG5hbWUpIHsgbV9uYW1l
ID0gV1RGTW92ZShuYW1lKTsgfQpAQCAtMTkzLDYgKzE5Miw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBjYXB0dXJlRmFpbGVkKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lQXMo
UmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBjb25zdCB7IHJldHVybiB0aGlzID09ICZzb3Vy
Y2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291cmNlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ1ZpZGVvU291cmNlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAppbmRleCBkYzQ4YTc1NmY3Y2FjOWZmY2Q4ZjVmZWE0ODExZDYyYzUxNjBiYmU0Li5lNzJmNmQy
Mzg1OTUyMDMwYTc0ZjU2YThiMjAzNjkxMWU2MmI3M2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmNwcApAQCAtMjcxLDEzICsyNzEsNiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5k
bAogICAgIHZhbGlkSGFuZGxlcihXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlkZW9E
ZXZpY2VzKSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKIH0KIAotdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRDYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJy
dXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotewotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmludGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVu
YWJsZWQoKSkKLSAgICAgICAgYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNldEF1ZGlvQ2FwdHVyZVBh
Z2VTdGF0ZShpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAgICB2aWRlb0NhcHR1cmVGYWN0b3J5
KCkuc2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotfQot
CiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldEF1ZGlvQ2FwdHVyZUZhY3Rvcnko
QXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHsKICAgICBtX2F1ZGlvQ2FwdHVyZUZhY3Rv
cnlPdmVycmlkZSA9ICZmYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4
IDEwZGRiMjkwM2MxY2Q5NjIyMWZkNWRmMDFhMzliOTEwZGVhOThiNWIuLjAyODI4NjU4ZTA5ZWFk
ZTk3MjExOGFkZWNkYzE3ZjM2NGZlYTMwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmgKQEAgLTg2LDggKzg2LDYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKTsKIAotICAg
IHZvaWQgc2V0Q2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRl
ZCk7Ci0KICAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hh
bmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAppbmRleCAzMDM0NDFkNWFiODMy
YzM1NzA3ZjYxZmI1Y2VjOTgzZGI0MGM3YmM3Li5hMzI2MjhiN2ExNjA5MzVhY2I4Yjc1MzExM2Y4
Mzg1NTNhNmViOGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKQEAgLTYwLDEx
ICs2MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBk
ZWZhdWx0OwogICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopID0gMDsKICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRpb0NhcHR1
cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi0gICAgewotICAg
ICAgICBVTlVTRURfUEFSQU0oaW50ZXJydXB0ZWQpOwotICAgICAgICBVTlVTRURfUEFSQU0ocGFn
ZU11dGVkKTsKLSAgICB9CiAKIHByb3RlY3RlZDoKICAgICBBdWRpb0NhcHR1cmVGYWN0b3J5KCkg
PSBkZWZhdWx0OwpAQCAtNzksMTEgKzc0LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflZpZGVv
Q2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmlu
ZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURl
dmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBh
Z2VNdXRlZCkKLSAgICB7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShpbnRlcnJ1cHRlZCk7Ci0gICAg
ICAgIFVOVVNFRF9QQVJBTShwYWdlTXV0ZWQpOwotICAgIH0KIAogcHJvdGVjdGVkOgogICAgIFZp
ZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggYmVh
ZDNiOTVkOTU3ZThjNjEyNDE1MzczYTAzZGY3YTAyMzk5YTcyZS4uY2NjZTliOWFhMTk3MDNlMDk1
NzMzZWQyN2EyM2MzMzhmNjM4YWVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDEsNyArNDEs
NyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVmPFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlPiYmKTsKICAgICB+UmVhbHRpbWVWaWRlb1NvdXJjZSgpOwog
Ci0gICAgLy8gUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKKyAgICAvLyBSZWFsdGltZU1lZGlh
U2lvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBz
dG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNTaXplQW5kRnJhbWVS
YXRlKE9wdGlvbmFsPGludD4gd2lkdGgsIE9wdGlvbmFsPGludD4gaGVpZ2h0LCBPcHRpb25hbDxk
b3VibGU+IGZyYW1lUmF0ZSkgZmluYWw7CkBAIC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAg
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9zb3VyY2UtPmRldmljZVR5cGUoKTsgfQogICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9u
KE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVyKSBmaW5hbCB7IG1fc291cmNlLT5tb25pdG9y
T3JpZW50YXRpb24obm90aWZpZXIpOyB9CiAgICAgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fc291cmNlLT5pbnRlcnJ1cHRlZCgpOyB9CisgICAgYm9vbCBpc1NhbWVB
cyhSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRoaXMg
PT0gJnNvdXJjZSB8fCBtX3NvdXJjZS5wdHIoKSA9PSAmc291cmNlOyB9CiAKICAgICAvLyBPYnNl
cnZlcgogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlSU9TLm1tCmluZGV4IDhkOTcwNDFjMTRkM2ZhZTc1ZTY2NWI1Y2Zh
MDIyYmE1N2UyMDczMjYuLjRhMjA0N2JjNDQzYTY1NjYyNGQzMWIwNWJmYTc4MmExODdlNTI1MjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tCkBAIC0xMDIsMTIgKzEw
Miw2IEBAIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291
cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKIH0KIAot
dm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2V0QXVkaW9DYXB0dXJlUGFnZVN0
YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotewotICAgIGlmIChhdXRvKiBh
Y3RpdmVTb3VyY2UgPSB0aGlzLT5hY3RpdmVTb3VyY2UoKSkKLSAgICAgICAgYWN0aXZlU291cmNl
LT5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLX0KLQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGU0ZTg5YmYwZDhlZTUxNTNjYmE1MGI5ODgy
MzhiMTE4NTI2M2M1YTAuLjhkOTUyODI0NDAwMjY4ODFiMDQwZWMyNWNhMTVlYmRmNGUzNTlhY2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtMTE1LDEwICsxMTUsNiBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGRldmljZXNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiYpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldEF1ZGlvQ2Fw
dHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkgZmluYWw7Ci0j
ZW5kaWYKLQogcHJpdmF0ZToKICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCmluZGV4IDBiZWQ1ODlh
NDA2NWZjZGMxYTUyNzJkMTRhZjU1NjhhNGE2ZGJjNTUuLjNlM2FhNGVkODZkNWI4ZmMyMDgzZTJl
NWRmODBiZjlkZWQxYjhjMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKQEAgLTUzLDE0ICs1Myw2IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldFZpZGVvQ2FwdHVyZVBhZ2VT
dGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLSAgICB7Ci0gICAgICAgIGlm
IChhY3RpdmVTb3VyY2UoKSkKLSAgICAgICAgICAgIGFjdGl2ZVNvdXJjZSgpLT5zZXRJbnRlcnJ1
cHRlZChpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAgICB9Ci0jZW5kaWYKLQogICAgIENhcHR1
cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgeyByZXR1cm4gQVZD
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKaW5kZXggZmM0MmY2YmE3YWRlYjk1Njk0MTMwZmFiYjg2Njc4NjMyZTVjOThh
OS4uNzI0ZTE1MzhjMGQxYWNiODllZGU4NDFiNjgwNTg5NWRhNjlkNzkzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAKQEAgLTEwMiwxMyArMTAyLDYgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0VmlkZW9DYXB0
dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKSBmaW5hbAotICAg
IHsKLSAgICAgICAgaWYgKGFjdGl2ZVNvdXJjZSgpKQotICAgICAgICAgICAgYWN0aXZlU291cmNl
KCktPnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIH0KLSNlbmRp
ZgogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkg
ZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKTsgfQogfTsKIApAQCAtMTkxLDcgKzE4NCw2IEBA
IHB1YmxpYzoKICAgICB9CiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
dm9pZCBzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdl
TXV0ZWQpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigp
LnNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsgfQogICAg
IHZvaWQgc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgZmluYWwg
eyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuc2V0QWN0aXZlU291
cmNlKHNvdXJjZSk7IH0KICAgICB2b2lkIHVuc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2UmIHNvdXJjZSkgZmluYWwgeyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2lu
Z2xldG9uKCkudW5zZXRBY3RpdmVTb3VyY2Uoc291cmNlKTsgfQogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2UqIGFjdGl2ZVNvdXJjZSgpIGZpbmFsIHsgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VGYWN0b3J5OjpzaW5nbGV0b24oKS5hY3RpdmVTb3VyY2UoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKaW5kZXggMGFjMzg0MTFlOTJjODQwM2MyODA0N2Y0ZjQ1OWRlN2JjNTU1OGUwYi4uMDYxOThk
MGExZWQ3NGM4OWQ5ZWNiMzg1OGQ1NmE4ZTBlNGMzYTdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CkBAIC01MzksMjYgKzUzOSwxMCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwogfQogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlv
RmFjdG9yeTo6c2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wg
cGFnZU11dGVkKQotewotICAgIGlmIChhdXRvKiBhY3RpdmVTb3VyY2UgPSB0aGlzLT5hY3RpdmVT
b3VyY2UoKSkKLSAgICAgICAgYWN0aXZlU291cmNlLT5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRl
ZCwgcGFnZU11dGVkKTsKLX0KLQotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9G
YWN0b3J5OjpzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBw
YWdlTXV0ZWQpCi17Ci0gICAgLy8gSW4gY2FzZSBvZiBjbG9uaW5nLCB3ZSBtaWdodCBoYXZlIG1v
cmUgdGhhbiBhIHNpbmdsZSBzb3VyY2UuCi0gICAgZm9yIChhdXRvJiBzb3VyY2UgOiBtX21hbmFn
ZXIubV9zb3VyY2VzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChzb3VyY2UtPmRldmljZVR5cGUo
KSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgICAgICBzb3Vy
Y2UtPnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIH0KLX0KLQog
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRBY3RpdmVTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYpCiB7CiAgICAgLy8gTXV0aW5nIGlzIGRvbmUgYnkgR1BV
UHJvY2VzcyBmYWN0b3J5LiBXZSBkbyBub3Qgd2FudCB0byBoYW5kbGUgaXQgaGVyZSBpbiBjYXNl
IG9mIHRyYWNrIGNsb25pbmcuCiB9Ci0KICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4
IDcyNTY0OTg0NTA5ZDQ5MDg1OGM0Njk3MWQyNThmMGQ0ZTllNjRiZjAuLjNiYzUxZWFiOTFhNTRm
ZGY2MDE0ZTYwZjk2ZjQ4NzAzNTM2ZDZhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC02Nyw5ICs2
Nyw2IEBAIHByaXZhdGU6CiAgICAgcHJpdmF0ZToKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyopIGZpbmFsOwogICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVk
aW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BD
YXB0dXJlRGV2aWNlTWFuYWdlcjsgfQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAg
IHZvaWQgc2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFn
ZU11dGVkKSBmaW5hbDsKLSNlbmRpZgogCiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtX21hbmFnZXI7CiAgICAgICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsg
ZmFsc2UgfTsKQEAgLTg0LDcgKzgxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJl
dHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgICAgICB2b2lkIHNldEFjdGl2ZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlJikgZmluYWw7Ci0gICAgICAgIHZvaWQgc2V0VmlkZW9DYXB0dXJlUGFn
ZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKSBmaW5hbDsKICNlbmRpZgog
CiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398620</attachid>
            <date>2020-05-06 08:31:46 -0700</date>
            <delta_ts>2020-05-07 01:54:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211509-20200506173144.patch</filename>
            <type>text/plain</type>
            <size>23282</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5YWJjMjM2NTVlYTBk
NGU2NTQ2MTk5YmFjMjg0YzQwMTYzOWVkNC4uZWYzODU1ODA2MWVjOTQyNjZmZDI3YWFmMzEyMjNm
NWM3MGM5NzA1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzZXRJbnRlcnJ1
cHRlZCBhbmQgcmVsYXRlZCBjb2RlLgorICAgICAgICBJbnN0ZWFkLCBkaXJlY3RseSB1c2Ugc2V0
TXV0ZWQodHJ1ZS9mYWxzZSkgb2YgdGhlIHNvdXJjZSBvZiBjYXB0dXJlIHRyYWNrcy4KKyAgICAg
ICAgVG8gZW5zdXJlIHdlIHZhbGlkYXRlIHRoYXQgdGhlIGFjdGl2ZSBzb3VyY2UgaXMgdGllZCB0
byBhIHRyYWNrIG9mIHRoZSBkb2N1bWVudCwKKyAgICAgICAgd2UgYWRkIFJlYWx0aW1lU291cmNl
Ojppc1NhbWVBcyB3aGljaCBoYW5kbGVzIHRoZSBjYXNlIG9mIGEgUmVhbHRpbWVWaWRlb1NvdXJj
ZSB3cmFwcGluZyBhbiBBVlZpZGVvQ2FwdHVyZVNvdXJjZS4KKyAgICAgICAgVGhlcmUgbWlnaHQg
YmUgbXVsdGlwbGUgdmlkZW8gdHJhY2tzIHdpdGggZWFjaCBvbmUgaXRzIFJlYWx0aW1lVmlkZW9T
b3VyY2UgdXNpbmcgdGhlIHNhbWUgQVZWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAgICAgIFdlIG11
dGUgdGhlIEFWVmlkZW9DYXB0dXJlU291cmNlIGRpcmVjdGx5IHRvIG1ha2Ugc3VyZSBhbGwgbGlu
a2VkIHRyYWNrcyB3aWxsIGdldCBtdXRlZC91bm11dGVkIGF0IHRoZSBzYW1lIHRpbWUuCisgICAg
ICAgIFRlc3RzIHRvIGJlIGZpeGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6
Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6aXNTb3VyY2VDYXB0dXJpbmdG
b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVD
YXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisKIDIwMjAtMDUtMDYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDU0NDZiOTViMjViMDQ1MzJhMWU1NmVmOWRiYThlZmU0ZGU5Y2U2YjEuLmVlZTU5MzA5NmNi
YjI4NWUxYWI0NjAwMmM2NzA3NjA3OWZmZGYyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDUtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IFZpZGVvIGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0ZWQgaW4gY2FzZSBvZiB0YWIgc3dpdGNo
IG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExNTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgY29kZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRBY3RpdmVTb3VyY2UpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAyMC0w
NS0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2VuZGlu
ZyBXZWJSVEMgbmV0d29yayBwYWNrZXRzIHNob3VsZCBub3QgZ28gdGhyb3VnaCB0aGUgbWFpbiB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQwYjJjYjlmZDBhYTFiZDFmMjlhY2VkYzViNjA5Mzk3
NzRhMTFjYjAuLmExNGYwY2NhNGFjYzQ5ZTFmMzVkZTIxMDc4MzhkNGJhZGNkYzlkNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtNjgsNiAr
NjksMTAgQEAgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogewogICAgIGF1dG8gdHJhY2sgPSBhZG9w
dFJlZigqbmV3IE1lZGlhU3RyZWFtVHJhY2soY29udGV4dCwgV1RGTW92ZShwcml2YXRlVHJhY2sp
KSk7CiAgICAgdHJhY2stPnN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgaWYgKHRyYWNrLT5pc0Nh
cHR1cmVUcmFjaygpKQorICAgICAgICB0cmFjay0+dXBkYXRlQWNjb3JkaW5nTXV0ZWRTdGF0ZSgp
OworCiAgICAgcmV0dXJuIHRyYWNrOwogfQogCkBAIC04NywxMSArOTIsNiBAQCBNZWRpYVN0cmVh
bVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IFJlZjxNZWRpYVN0cgogCiAgICAgaWYgKG1fcHJpdmF0ZS0+dHlwZSgpID09IFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQogICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRBdWRpb0NhcHR1cmVTb3VyY2UoKnRoaXMpOwotCi0gICAg
aWYgKGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChkb2N1
bWVudC0+cGFnZSgpICYmIGRvY3VtZW50LT5wYWdlKCktPm11dGVkU3RhdGUoKSkKLSAgICAgICAg
ICAgIHNldE11dGVkKHRydWUpOwotICAgIH0KIH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1lZGlh
U3RyZWFtVHJhY2soKQpAQCAtMTk1LDI2ICsxOTUsNiBAQCBib29sIE1lZGlhU3RyZWFtVHJhY2s6
Om11dGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2YXRlLT5tdXRlZCgpOwogfQogCi12b2lk
IE1lZGlhU3RyZWFtVHJhY2s6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyBzdGF0ZSkKLXsKLSAgICBib29sIHRyYWNrTXV0ZWQgPSBmYWxzZTsKLSAgICBzd2l0Y2ggKHNv
dXJjZSgpLmRldmljZVR5cGUoKSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZToKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVy
YToKLSAgICAgICAgdHJhY2tNdXRlZCA9IHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRW
aWRlb0NhcHR1cmVJc011dGVkOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgdHJhY2tNdXRlZCA9IHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6
U2NyZWVuQ2FwdHVyZUlzTXV0ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQodHJhY2tN
dXRlZCk7Ci19Ci0KIGF1dG8gTWVkaWFTdHJlYW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNvbnN0IC0+
IFN0YXRlCiB7CiAgICAgcmV0dXJuIGVuZGVkKCkgPyBTdGF0ZTo6RW5kZWQgOiBTdGF0ZTo6TGl2
ZTsKQEAgLTQ2OCw0MCArNDQ4LDYzIEBAIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBN
ZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiB9CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotc3RhdGljIE1lZGlhU3RyZWFtVHJhY2sqIGZpbmRBY3Rp
dmVDYXB0dXJlVHJhY2tGb3JEb2N1bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFJlYWx0aW1lTWVk
aWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKQor
c3RhdGljIGJvb2wgaXNTb3VyY2VDYXB0dXJpbmdGb3JEb2N1bWVudChSZWFsdGltZU1lZGlhU291
cmNlJiBhY3RpdmVTb3VyY2UsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVN0cmVh
bVRyYWNrKiBzZWxlY3RlZFRyYWNrID0gbnVsbHB0cjsKLSAgICBmb3IgKGF1dG8qIGNhcHR1cmVU
cmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewotICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5k
b2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0dXJlVHJhY2stPmVuZGVkKCkpCisgICAgZm9y
IChhdXRvKiB0cmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgeworICAgICAgICBpZiAodHJhY2st
PmRvY3VtZW50KCkgIT0gJmRvY3VtZW50IHx8IHRyYWNrLT5lbmRlZCgpKQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgaWYgKCZjYXB0dXJlVHJhY2stPnNvdXJjZSgpID09IGFjdGl2
ZVNvdXJjZSkKLSAgICAgICAgICAgIHJldHVybiBjYXB0dXJlVHJhY2s7Ci0KLSAgICAgICAgLy8g
SWYgdGhlIGRvY3VtZW50IGhhcyBhIGxpdmUgY2FwdHVyZSB0cmFjaywgd2hpY2ggaXMgbm90IHRo
ZSBhY3RpdmUgb25lLCB3ZSBwaWNrIHRoZSBmaXJzdCBvbmUuCi0gICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgcHJvYmFibHkgc3RvcmUgcGVyIHBhZ2UgYWN0aXZlIGF1ZGlvL3ZpZGVvIGNhcHR1
cmUgdHJhY2tzLgotICAgICAgICBpZiAoIXNlbGVjdGVkVHJhY2sgJiYgY2FwdHVyZVRyYWNrLT5w
cml2YXRlVHJhY2soKS50eXBlKCkgPT0gdHlwZSkKLSAgICAgICAgICAgIHNlbGVjdGVkVHJhY2sg
PSBjYXB0dXJlVHJhY2s7CisgICAgICAgIGlmICh0cmFjay0+c291cmNlKCkuaXNTYW1lQXMoYWN0
aXZlU291cmNlKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4g
c2VsZWN0ZWRUcmFjazsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYKIAordm9pZCBNZWRp
YVN0cmVhbVRyYWNrOjp1cGRhdGVBY2NvcmRpbmdNdXRlZFN0YXRlKCkKK3sKKyAgICBBU1NFUlQo
aXNDYXB0dXJlVHJhY2soKSk7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKTsK
KyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaCAoc291cmNlKCku
ZGV2aWNlVHlwZSgpKSB7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNy
b3Bob25lOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAg
ICAgICBtX3ByaXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVj
ZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVkKHBh
Z2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtu
b3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011
dGVkU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKKwogICAgIGF1dG8qIGFjdGl2ZUF1ZGlvU291cmNlID0gUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNv
dXJjZSgpOwotICAgIGlmIChhdXRvKiBhdWRpb0NhcHR1cmVUcmFjayA9IGZpbmRBY3RpdmVDYXB0
dXJlVHJhY2tGb3JEb2N1bWVudChkb2N1bWVudCwgYWN0aXZlQXVkaW9Tb3VyY2UsIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSkKLSAgICAgICAgYXVkaW9DYXB0dXJlVHJhY2stPnNl
dE11dGVkKGRvY3VtZW50LnBhZ2UoKS0+bXV0ZWRTdGF0ZSgpKTsKKyAgICBpZiAoYWN0aXZlQXVk
aW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JEb2N1bWVudCgqYWN0aXZlQXVkaW9Tb3Vy
Y2UsIGRvY3VtZW50KSkgeworICAgICAgICBib29sIG11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgp
ICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkOworICAgICAgICBh
Y3RpdmVBdWRpb1NvdXJjZS0+c2V0TXV0ZWQobXV0ZWQgfHwgKGRvY3VtZW50LmhpZGRlbigpICYm
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW50ZXJydXB0QXVkaW9P
blBhZ2VWaXNpYmlsaXR5Q2hhbmdlRW5hYmxlZCgpKSk7CisgICAgfQogCiAgICAgYXV0byogYWN0
aXZlVmlkZW9Tb3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52
aWRlb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGF1dG8qIHZpZGVv
Q2FwdHVyZVRyYWNrID0gZmluZEFjdGl2ZUNhcHR1cmVUcmFja0ZvckRvY3VtZW50KGRvY3VtZW50
LCBhY3RpdmVWaWRlb1NvdXJjZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pKQot
ICAgICAgICB2aWRlb0NhcHR1cmVUcmFjay0+c2V0TXV0ZWQoZG9jdW1lbnQucGFnZSgpLT5tdXRl
ZFN0YXRlKCkpOworICAgIGlmIChhY3RpdmVWaWRlb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmlu
Z0ZvckRvY3VtZW50KCphY3RpdmVWaWRlb1NvdXJjZSwgZG9jdW1lbnQpKSB7CisgICAgICAgIGJv
b2wgbXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZp
ZGVvQ2FwdHVyZUlzTXV0ZWQ7CisgICAgICAgIGFjdGl2ZVZpZGVvU291cmNlLT5zZXRNdXRlZCht
dXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CisgICAgfQogI2Vsc2UKICAgICBmb3IgKGF1dG8q
IGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewotICAgICAgICBpZiAoY2FwdHVy
ZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0dXJlVHJhY2stPmVuZGVkKCkp
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY2FwdHVyZVRyYWNrLT5zZXRNdXRlZChk
b2N1bWVudC5wYWdlKCktPm11dGVkU3RhdGUoKSk7CisgICAgICAgIGlmIChjYXB0dXJlVHJhY2st
PmRvY3VtZW50KCkgPT0gJmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVuZGVkKCkpCisgICAg
ICAgICAgICBjYXB0dXJlVHJhY2stPnVwZGF0ZUFjY29yZGluZ011dGVkU3RhdGUoKTsKICAgICB9
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggMDJmZDQ1NGI2YTFkYTNjNTRiZGEzYjIwNDllOGUw
M2Y3Y2FjZGIwYS4uZmJhMjE3NDllODg1NzM4ZTZiM2VkMGJhZjc0NmFlZDUzOThiZTYzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmgKQEAgLTg3LDcgKzg3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RW5hYmxlZChi
b29sKTsKIAogICAgIGJvb2wgbXV0ZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldE11dGVkKE1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsgTGl2
ZSwgRW5kZWQgfTsKICAgICBTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CkBAIC0xNjksNiArMTY4
LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2smKTsKIAogICAgIHZvaWQgY29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKKyAgICB2b2lk
IHVwZGF0ZUFjY29yZGluZ011dGVkU3RhdGUoKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdCBB
UEkuCiAgICAgdm9pZCBzdG9wKCkgZmluYWwgeyBzdG9wVHJhY2soKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggMTg0NGJmMjliYmY3YzVjMDEwYWNjYzk5YjY5ZDE3YmUyODUzYmY5YS4u
NWZiNzM0MjgwYzI2Yjk5ODUyNWQ1ODdkNzVjNzI3OTIyYjJkM2JiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC0xNzQ5LDE3ICsxNzQ5LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnZpc2liaWxp
dHlTdGF0ZUNoYW5nZWQoKQogICAgIGZvciAoYXV0byogY2xpZW50IDogbV92aXNpYmlsaXR5U3Rh
dGVDYWxsYmFja0NsaWVudHMpCiAgICAgICAgIGNsaWVudC0+dmlzaWJpbGl0eVN0YXRlQ2hhbmdl
ZCgpOwogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBhdXRvKiBwYWdlID0gdGhpcy0+
cGFnZSgpOwotICAgIGlmIChwYWdlICYmIGhpZGRlbigpKSB7Ci0gICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldENhcHR1cmVQYWdlU3RhdGUodHJ1ZSwgcGFn
ZS0+aXNNZWRpYUNhcHR1cmVNdXRlZCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgaWYgKCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5pc0ludGVycnVwdGVkKCkpCiAgICAgICAgIE1lZGlhU3RyZWFtVHJhY2s6OnVw
ZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVkU3RhdGUoKnRoaXMpOwogI2VuZGlmCi0jZW5kaWYK
IH0KIAogVmlzaWJpbGl0eVN0YXRlIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmNwcAppbmRleCA1YjQ0MjQ1M2YyOTU3ZmQ0NDZiMDljMzljOTE5YjQ4
NDJiNTAwZmEyLi42ZTlmNWI5NmUxNWUwODhiOGExODc4MWQ5ZjcwNDRkZGVmNmM4ZDk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmNwcApAQCAtODgsMTYgKzg4LDYgQEAgdm9pZCBSZWFsdGltZU1lZGlh
U291cmNlOjpyZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgICAgIHN0b3BC
ZWluZ09ic2VydmVkKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0SW50ZXJy
dXB0ZWQoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0jaWYgUkVMRUFTRV9M
T0dfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0ocGFnZU11dGVkKTsKLSNlbmRpZgotCi0gICAg
QUxXQVlTX0xPR19JRihtX2xvZ2dlciwgTE9HSURFTlRJRklFUiwgaW50ZXJydXB0ZWQsICIsIHBh
Z2UgbXV0ZWQgOiAiLCBwYWdlTXV0ZWQpOwotICAgIHNldE11dGVkKGludGVycnVwdGVkKTsKLX0K
LQogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRNdXRlZChib29sIG11dGVkKQogewogICAg
IEFMV0FZU19MT0dfSUYobV9sb2dnZXIsIExPR0lERU5USUZJRVIsIG11dGVkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaAppbmRleCA2NmFhMzUwNGE3MjA1MTU5YjU0ZTU2NDA3OTllZjYzNTVmOWJhMGU5Li5m
OGFiYWEzYWViZWJiZTYzZWVkZTFmNWQzMDIyN2Q4ODRlYjQ4MTc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCkBAIC0xMjcsNyArMTI3LDYgQEAgcHVibGljOgogICAgIGJvb2wgY2FwdHVyZURpZEZhaWwo
KSBjb25zdCB7IHJldHVybiBtX2NhcHR1cmVEaWRGYWlsZWQ7IH0KIAogICAgIHZpcnR1YWwgYm9v
bCBpbnRlcnJ1cHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJydXB0ZWQ7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgc2V0SW50ZXJydXB0ZWQoYm9vbCwgYm9vbCk7CiAKICAgICBjb25zdCBTdHJpbmcm
IG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICB2b2lkIHNldE5hbWUoU3RyaW5n
JiYgbmFtZSkgeyBtX25hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9CkBAIC0xOTMsNiArMTkyLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVGYWlsZWQoKTsKIAorICAgIHZpcnR1
YWwgYm9vbCBpc1NhbWVBcyhSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGNvbnN0IHsgcmV0
dXJuIHRoaXMgPT0gJnNvdXJjZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0luY29taW5nQXVkaW9T
b3VyY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0luY29t
aW5nVmlkZW9Tb3VyY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGRjNDhhNzU2ZjdjYWM5ZmZjZDhmNWZlYTQ4MTFkNjJj
NTE2MGJiZTQuLjJkMzJiMjQzYjFhOTY2ZWRmYjBiYmFkOGYwZTQyYjZkYzQxY2M5OTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVk
ZSAiQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oIgogI2luY2x1ZGUgPHd0Zi9TSEExLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI3
MSwxMyArMjcwLDYgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJl
cXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwKICAgICB2YWxpZEhhbmRsZXIo
V1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUoZGV2
aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2V0Q2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRl
ZCkKLXsKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5p
bnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpCi0gICAgICAgIGF1
ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoaW50ZXJydXB0ZWQs
IHBhZ2VNdXRlZCk7Ci0gICAgdmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldFZpZGVvQ2FwdHVyZVBh
Z2VTdGF0ZShpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLX0KLQogdm9pZCBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzZXRBdWRpb0NhcHR1cmVGYWN0b3J5KEF1ZGlvQ2FwdHVyZUZhY3Rvcnkm
IGZhY3RvcnkpCiB7CiAgICAgbV9hdWRpb0NhcHR1cmVGYWN0b3J5T3ZlcnJpZGUgPSAmZmFjdG9y
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAppbmRleCAxMGRkYjI5MDNjMWNkOTYyMjFm
ZDVkZjAxYTM5YjkxMGRlYTk4YjViLi4wMjgyODY1OGUwOWVhZGU5NzIxMThhZGVjZGMxN2YzNjRm
ZWEzMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCkBAIC04Niw4ICs4Niw2IEBA
IHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGV2aWNlc0NoYW5nZWRPYnNl
cnZlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKLSAgICB2b2lkIHNldENhcHR1cmVQYWdl
U3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpOwotCiAgICAgdm9pZCBjYXB0
dXJlRGV2aWNlc0NoYW5nZWQoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNo
b3VsZEludGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggMzAzNDQxZDVhYjgzMmMzNTcwN2Y2MWZiNWNlYzk4M2Ri
NDBjN2JjNy4uYTMyNjI4YjdhMTYwOTM1YWNiOGI3NTMxMTNmODM4NTUzYTZlYjhhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC02MCwxMSArNjAsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+QXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFs
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CiAgICAg
dmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50
ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotICAgIHsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGlu
dGVycnVwdGVkKTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKHBhZ2VNdXRlZCk7Ci0gICAgfQogCiBw
cm90ZWN0ZWQ6CiAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKQEAgLTc5LDEx
ICs3NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBk
ZWZhdWx0OwogICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopID0gMDsKICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0NhcHR1
cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi0gICAgewotICAg
ICAgICBVTlVTRURfUEFSQU0oaW50ZXJydXB0ZWQpOwotICAgICAgICBVTlVTRURfUEFSQU0ocGFn
ZU11dGVkKTsKLSAgICB9CiAKIHByb3RlY3RlZDoKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5KCkg
PSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IGJlYWQzYjk1ZDk1N2U4YzYxMjQxNTM3
M2EwM2RmN2EwMjM5OWE3MmUuLmNjY2U5YjlhYTE5NzAzZTA5NTczM2VkMjdhMjNjMzM4ZjYzOGFl
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBSZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZT4mJik7CiAgICAgflJlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAotICAgIC8vIFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlCisgICAgLy8gUmVhbHRpbWVNZWRpYVNpb3VyY2UKICAgICB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBm
aW5hbDsKICAgICBib29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShPcHRpb25hbDxpbnQ+IHdp
ZHRoLCBPcHRpb25hbDxpbnQ+IGhlaWdodCwgT3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGUpIGZp
bmFsOwpAQCAtNTYsNiArNTYsNyBAQCBwcml2YXRlOgogICAgIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5kZXZpY2VU
eXBlKCk7IH0KICAgICB2b2lkIG1vbml0b3JPcmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlmaWVy
JiBub3RpZmllcikgZmluYWwgeyBtX3NvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG5vdGlmaWVy
KTsgfQogICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJj
ZS0+aW50ZXJydXB0ZWQoKTsgfQorICAgIGJvb2wgaXNTYW1lQXMoUmVhbHRpbWVNZWRpYVNvdXJj
ZSYgc291cmNlKSBjb25zdCBmaW5hbCB7IHJldHVybiB0aGlzID09ICZzb3VyY2UgfHwgbV9zb3Vy
Y2UucHRyKCkgPT0gJnNvdXJjZTsgfQogCiAgICAgLy8gT2JzZXJ2ZXIKICAgICB2b2lkIHNvdXJj
ZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlP
Uy5tbQppbmRleCA4ZDk3MDQxYzE0ZDNmYWU3NWU2NjViNWNmYTAyMmJhNTdlMjA3MzI2Li40YTIw
NDdiYzQ0M2E2NTY2MjRkMzFiMDViZmE3ODJhMTg3ZTUyNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQpAQCAtMTAyLDEyICsxMDIsNiBAQCBDb3JlQXVkaW9DYXB0
dXJlU291cmNlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRv
bigpCiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CiB9CiAKLXZvaWQgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3Rvcnk6OnNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVk
LCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICBpZiAoYXV0byogYWN0aXZlU291cmNlID0gdGhpcy0+
YWN0aXZlU291cmNlKCkpCi0gICAgICAgIGFjdGl2ZVNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50
ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuaAppbmRleCBlNGU4OWJmMGQ4ZWU1MTUzY2JhNTBiOTg4MjM4YjExODUyNjNjNWEwLi44ZDk1
MjgyNDQwMDI2ODgxYjA0MGVjMjVjYTE1ZWJkZjRlMzU5YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmgKQEAgLTExNSwxMCArMTE1LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBk
ZXZpY2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKIAotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBp
bnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZpbmFsOwotI2VuZGlmCi0KIHByaXZhdGU6CiAg
ICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFj
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjLmNwcAppbmRleCAwYmVkNTg5YTQwNjVmY2RjMWE1MjcyZDE0YWY1
NTY4YTRhNmRiYzU1Li4zZTNhYTRlZDg2ZDViOGZjMjA4M2UyZTVkZjgwYmY5ZGVkMWI4YzEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCkBAIC01Mywx
NCArNTMsNiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgdm9pZCBzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRl
ZCwgYm9vbCBwYWdlTXV0ZWQpCi0gICAgewotICAgICAgICBpZiAoYWN0aXZlU291cmNlKCkpCi0g
ICAgICAgICAgICBhY3RpdmVTb3VyY2UoKS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBh
Z2VNdXRlZCk7Ci0gICAgfQotI2VuZGlmCi0KICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlk
ZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6
OnNpbmdsZXRvbigpOyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGZj
NDJmNmJhN2FkZWI5NTY5NDEzMGZhYmI4NjY3ODYzMmU1Yzk4YTkuLjcyNGUxNTM4YzBkMWFjYjg5
ZWRlODQxYjY4MDU4OTVkYTY5ZDc5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBA
IC0xMDIsMTMgKzEwMiw2IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGlu
dGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkgZmluYWwKLSAgICB7Ci0gICAgICAgIGlmIChhY3Rp
dmVTb3VyY2UoKSkKLSAgICAgICAgICAgIGFjdGl2ZVNvdXJjZSgpLT5zZXRJbnRlcnJ1cHRlZChp
bnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAgICB9Ci0jZW5kaWYKICAgICBDYXB0dXJlRGV2aWNl
TWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyKCk7IH0KIH07CiAKQEAgLTE5MSw3ICsxODQsNiBAQCBwdWJsaWM6CiAgICAgfQogcHJp
dmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0QXVkaW9DYXB0dXJl
UGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKSBmaW5hbCB7IENvcmVB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBdWRpb0NhcHR1cmVQYWdl
U3RhdGUoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7IH0KICAgICB2b2lkIHNldEFjdGl2ZVNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9CiAgICAg
dm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZpbmFs
IHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnVuc2V0QWN0aXZl
U291cmNlKHNvdXJjZSk7IH0KICAgICBSZWFsdGltZU1lZGlhU291cmNlKiBhY3RpdmVTb3VyY2Uo
KSBmaW5hbCB7IHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9u
KCkuYWN0aXZlU291cmNlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDBhYzM4NDExZTky
Yzg0MDNjMjgwNDdmNGY0NTlkZTdiYzU1NThlMGIuLjA2MTk4ZDBhMWVkNzRjODlkOWVjYjM4NThk
NTZhOGUwZTRjM2E3ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtNTM5LDI2ICs1MzksMTAg
QEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFj
dG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU28KIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldEF1ZGlvQ2Fw
dHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICBp
ZiAoYXV0byogYWN0aXZlU291cmNlID0gdGhpcy0+YWN0aXZlU291cmNlKCkpCi0gICAgICAgIGFj
dGl2ZVNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci19Ci0K
LXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6c2V0VmlkZW9DYXB0
dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotewotICAgIC8v
IEluIGNhc2Ugb2YgY2xvbmluZywgd2UgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gYSBzaW5nbGUgc291
cmNlLgotICAgIGZvciAoYXV0byYgc291cmNlIDogbV9tYW5hZ2VyLm1fc291cmNlcy52YWx1ZXMo
KSkgewotICAgICAgICBpZiAoc291cmNlLT5kZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICAgICAgc291cmNlLT5zZXRJbnRlcnJ1cHRlZChp
bnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAgICB9Ci19Ci0KIHZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6c2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2UmKQogewogICAgIC8vIE11dGluZyBpcyBkb25lIGJ5IEdQVVByb2Nlc3MgZmFjdG9yeS4gV2Ug
ZG8gbm90IHdhbnQgdG8gaGFuZGxlIGl0IGhlcmUgaW4gY2FzZSBvZiB0cmFjayBjbG9uaW5nLgog
fQotCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCA3MjU2NDk4NDUwOWQ0OTA4NThj
NDY5NzFkMjU4ZjBkNGU5ZTY0YmYwLi4zYmM1MWVhYjkxYTU0ZmRmNjAxNGU2MGY5NmY0ODcwMzUz
NmQ2YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNjcsOSArNjcsNiBAQCBwcml2YXRlOgogICAg
IHByaXZhdGU6CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKICAgICAg
ICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7
IH0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICB2b2lkIHNldEF1ZGlvQ2FwdHVy
ZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkgZmluYWw7Ci0jZW5k
aWYKIAogICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwogICAgICAg
ICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CkBAIC04NCw3ICs4
MSw2IEBAIHByaXZhdGU6CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2
aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1fbm9P
cENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAg
ICAgdm9pZCBzZXRBY3RpdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSYpIGZp
bmFsOwotICAgICAgICB2b2lkIHNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVw
dGVkLCBib29sIHBhZ2VNdXRlZCkgZmluYWw7CiAjZW5kaWYKIAogICAgICAgICBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398633</attachid>
            <date>2020-05-06 10:21:25 -0700</date>
            <delta_ts>2020-05-06 10:22:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211509-20200506192123.patch</filename>
            <type>text/plain</type>
            <size>26832</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1M2QwMzE2MzQ0YjY3
NTZmY2FhYzMxM2M3ODIzYjMzMjcxZjc4Yy4uY2M1YmI0ZDM5MzZkMGZhMDFiY2M4YTM1YzhlYTAw
OTE1MjI2NTU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kaW5nIFdlYlJUQyBu
ZXR3b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjkxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmZpbHRlclNEUCBjb25zdCk6CisgICAgICAgIEZpeCBhIGNhc2Ugd2hlcmUgdGhlIFNEUCB3b3Vs
ZCBiZSBiYWRseSBmb3JtYXR0ZWQgaWYgd2UgZG8gbm90IGhhdmUgeWV0IGEgTUROUyBuYW1lIGZv
ciB0aGUgY29ycmVzcG9uZGluZyBJUCBhZGRyZXNzLgorICAgICAgICBTbWFsbCByZWZhY3Rvcmlu
ZyB0byB1c2UgZWFybHkgcmV0dXJucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2Vi
UlRDUHJvdmlkZXI6OmdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAg
QWRkIHRoZSBhYmlsaXR5IGZvciBXZWJLaXQgTGliV2ViUlRDUHJvdmlkZXIgdG8gZG8gc29tZSBw
cm9jZXNzaW5nIG9uIGNyZWF0aW9uIG9mIHRoZSBSVEMgdGhyZWFkcy4KKwogMjAyMC0wNS0wNSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHNob3VsZCB1bm9ic2VydmUgdGhlIHRyYWNrcyBmcm9t
IGl0cyBhdWRpbyBhbmQgdmlkZW8gdHJhY2sgc2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyYTFkYmI1YzE3ZWZm
MzliM2Y4N2ZmMTdhY2FiYzI0MmJkNzhkY2FkLi5jNzQwZWMyZDc5ZGQxMGEzYzU3ZWU3YTliNzM2
YzJmZDIyYWIxMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBubyBsb25nZXIg
bmVlZGVkIGNvZGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OlZpZGVvRmFjdG9yeTo6c2V0QWN0aXZlU291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKKzIwMjAtMDUtMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdvcmsg
cGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyOTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgRm9sbG93aW5nIG9uIHJlY2Vpdmlu
ZyBSVEMgcGFja2V0cyBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQsIHdlIGFsc28gc2VuZCBSVEMg
cGFja2V0cyBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQuCisgICAgICAgIENyZWF0aW9uIG9mIHRo
ZSBzb2NrZXRzIGFsc28gaGFwcGVucyBpbiBhIGJhY2tncm91bmQgdGhyZWFkLgorICAgICAgICBM
aWJXZWJSVENOZXR3b3JrIGlzIGdldHRpbmcgdGhlIGNvbm5lY3Rpb24gd2hlbmV2ZXIgYSBuZXcg
Y29ubmVjdGlvbiB0byBuZXR3b3JrIHByb2Nlc3MgaXMgY3JlYXRlZC4KKyAgICAgICAgSXQgd2ls
bCB0aGVuIGhvcCB0byB0aGUgUlRDIG5ldHdvcmsgdGhyZWFkIHRvIHNldCB0aGUgSVBDIGNvbm5l
Y3Rpb24gdG8gdGhlIGxpYndlYnJ0YyBzb2NrZXQgZmFjdG9yeS4KKworICAgICAgICBBdCBjcmVh
dGlvbiBvZiB0aGUgc29ja2V0LCB3ZSBnZXQgdGhlIElQQyBjb25uZWN0aW9uIHRvIHRoZSBuZXR3
b3JrIHByb2Nlc3MgYW5kIGtlZXAgYSByZWYgaW4gdGhlIFJUQyBzb2NrZXQuCisgICAgICAgIElu
IGNhc2UgbmV0d29yayBwcm9jZXNzIGNyYXNoZWQgYW5kIHRoZSBJUEMgY29ubmVjdGlvbiBvZiB0
aGUgUlRDIG5ldHdvcmsgaXMgbnVsbCwgd2UgaG9wIHRvIHRoZSBtYWluIHRocmVhZCB0byBjcmVh
dGUgYSBuZXcgSVBDIGNvbm5lY3Rpb24uCisgICAgICAgIFRoaXMgd2lsbCBmYWlsIHRoZSBjcmVh
dGlvbiBvZiB0aGUgc29ja2V0IChhcyB3ZWxsIGFzIG5ldyBvbmVzIGFzIHdlbGwpIGFzIGxvbmcg
YXMgdGhlIElQQyBjb25uZWN0aW9uIHRvIG5ldHdvcmsgcHJvY2VzcyBpcyBub3QgdmFsaWQgYWdh
aW4uCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6
TGliV2ViUlRDTmV0d29yazo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ05ldHdvcms6OmRpc3BhdGNoVG9UaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJS
VENOZXR3b3JrOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDTmV0d29y
azo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRl
cjo6c3RhcnRlZE5ldHdvcmtUaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Nv
Y2tldDo6U2VuZFRvKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpDbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6U2V0T3B0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OnNldENvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KToKKyAgICAg
ICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29j
a2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3
Q29ubmVjdGlvblNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OnJlbW92ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OmZvclNvY2tldEluR3JvdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOgorCiAyMDIwLTA1LTAxICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWNlaXZpbmcgV2ViUlRDIG5ldHdvcmsgcGFj
a2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAKaW5kZXggMGZiNzZmZGRmOWZmMTZiZThkNDcyNDkyMmFhNGYxOTMzMjVmYTEyYS4u
YzE0OWQyMWU4OGZhZGU2NjhmNDVkZjEyMjg0ZWVkODUyYWJlYWM2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcApAQCAtNDM5LDIzICs0MzksMzIgQEAgU3RyaW5nIFBlZXJDb25uZWN0aW9uQmFj
a2VuZDo6ZmlsdGVyU0RQKFN0cmluZyYmIHNkcCkgY29uc3QKIAogICAgIFN0cmluZ0J1aWxkZXIg
ZmlsdGVyZWRTRFA7CiAgICAgc2RwLnNwbGl0KCdcbicsIFt0aGlzLCAmZmlsdGVyZWRTRFBdKFN0
cmluZ1ZpZXcgbGluZSkgewotICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNCIp
KQotICAgICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCJjPUlOIElQNCAwLjAuMC4wXHIiKTsK
LSAgICAgICAgZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNiIpKQotICAgICAgICAg
ICAgZmlsdGVyZWRTRFAuYXBwZW5kKCJjPUlOIElQNiA6OlxyIik7Ci0gICAgICAgIGVsc2UgaWYg
KCFsaW5lLnN0YXJ0c1dpdGgoImE9Y2FuZGlkYXRlIikpCisgICAgICAgIGlmIChsaW5lLnN0YXJ0
c1dpdGgoImM9SU4gSVA0IikpIHsKKyAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgiYz1J
TiBJUDQgMC4wLjAuMFxyXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNiIpKSB7CisgICAgICAgICAgICBmaWx0
ZXJlZFNEUC5hcHBlbmQoImM9SU4gSVA2IDo6XHJcbiIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIGlmICghbGluZS5zdGFydHNXaXRoKCJhPWNhbmRpZGF0ZSIpKSB7
CiAgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQobGluZSk7Ci0gICAgICAgIGVsc2UgaWYg
KGxpbmUuZmluZCgiIGhvc3QgIiwgMTEpID09IG5vdEZvdW5kKQorICAgICAgICAgICAgZmlsdGVy
ZWRTRFAuYXBwZW5kKCdcbicpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIGlmIChsaW5lLmZpbmQoIiBob3N0ICIsIDExKSA9PSBub3RGb3VuZCkgewogICAgICAgICAg
ICAgZmlsdGVyZWRTRFAuYXBwZW5kKGZpbHRlcklDRUNhbmRpZGF0ZShsaW5lLnRvU3RyaW5nKCkp
KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGlwQWRkcmVzcyA9IGV4dHJhY3RJ
UEFkZHJlc3MobGluZSk7Ci0gICAgICAgICAgICBhdXRvIG1kbnNOYW1lID0gbV9pcEFkZHJlc3NU
b01ETlNOYW1lTWFwLmdldChpcEFkZHJlc3MpOwotICAgICAgICAgICAgaWYgKCFtZG5zTmFtZS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHNkcCA9IGxpbmUudG9TdHJpbmcoKTsK
LSAgICAgICAgICAgICAgICBzZHAucmVwbGFjZShpcEFkZHJlc3MsIG1kbnNOYW1lKTsKLSAgICAg
ICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoc2RwKTsKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQorCisgICAgICAgIGF1dG8gaXBBZGRyZXNzID0gZXh0cmFjdElQQWRkcmVzcyhsaW5l
KTsKKyAgICAgICAgYXV0byBtZG5zTmFtZSA9IG1faXBBZGRyZXNzVG9NRE5TTmFtZU1hcC5nZXQo
aXBBZGRyZXNzKTsKKyAgICAgICAgaWYgKG1kbnNOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgYXV0byBzZHAgPSBsaW5lLnRvU3RyaW5nKCk7CisgICAgICAgIHNk
cC5yZXBsYWNlKGlwQWRkcmVzcywgbWRuc05hbWUpOworICAgICAgICBmaWx0ZXJlZFNEUC5hcHBl
bmQoc2RwKTsKICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCdcbicpOwogICAgIH0pOwogICAg
IHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHAKaW5kZXggNjRkYjJiNGUxZGQ2MDBkYjcxMWExODgxNjgxNzU3MGI0MjQ5M2Rk
Ny4uZGYyZmQ3Y2NiNTQ1MWRkYmYzZjRjMjYyMzljOTk3ZDc0MGQ5Mzc1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIGlu
bGluZSBQZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBzdGF0aWNGYWN0b3J5QW5kVGhy
ZWFkcygpCiAgICAgcmV0dXJuIGZhY3RvcnlBbmRUaHJlYWRzLmdldCgpOwogfQogCi1zdGF0aWMg
aW5saW5lIFBlZXJDb25uZWN0aW9uRmFjdG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlB
bmRUaHJlYWRzKGJvb2wgdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpCitQZWVyQ29u
bmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBMaWJXZWJSVENQcm92aWRlcjo6Z2V0U3RhdGljRmFj
dG9yeUFuZFRocmVhZHMoYm9vbCB1c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlcikKIHsK
ICAgICBhdXRvJiBmYWN0b3J5QW5kVGhyZWFkcyA9IHN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCk7
CiAKQEAgLTIwMCw2ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIFBlZXJDb25uZWN0aW9uRmFjdG9y
eUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKGJvb2wgdQogICAgIGlmICgh
ZmFjdG9yeUFuZFRocmVhZHMubmV0d29ya1RocmVhZCkgewogICAgICAgICBmYWN0b3J5QW5kVGhy
ZWFkcy5uZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlciA9IHVzZU5ldHdvcmtUaHJlYWRXaXRo
U29ja2V0U2VydmVyOwogICAgICAgICBpbml0aWFsaXplUGVlckNvbm5lY3Rpb25GYWN0b3J5QW5k
VGhyZWFkcyhmYWN0b3J5QW5kVGhyZWFkcyk7CisgICAgICAgIHN0YXJ0ZWROZXR3b3JrVGhyZWFk
KCk7CiAgICAgfQogICAgIHJldHVybiBmYWN0b3J5QW5kVGhyZWFkczsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMjJiMTBkZDQ4MGM4N2Y0ZGNkMDQyZmJjODhjOTk1
NGRlMzIwZDc4Zi4uMmU5NmU2NjIzZTk0YTk2Njg1NDQ3MjY3Y2M5MWRhMTMwNTBlZjVhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xhc3Mg
UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBMaWJXZWJSVENBdWRpb01vZHVsZTsKK3N0cnVjdCBQZWVyQ29ubmVjdGlvbkZhY3RvcnlB
bmRUaHJlYWRzOwogc3RydWN0IFJUQ1J0cENhcGFiaWxpdGllczsKIAogZW51bSBjbGFzcyBNRE5T
UmVnaXN0ZXJFcnJvciB7IE5vdEltcGxlbWVudGVkLCBCYWRQYXJhbWV0ZXIsIEROU1NELCBJbnRl
cm5hbCwgVGltZW91dCB9OwpAQCAtMTM0LDYgKzEzNSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVE
ZWNvZGVyRmFjdG9yeSgpOwogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6Vmlk
ZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRlRW5jb2RlckZhY3RvcnkoKTsKIAorICAgIHZpcnR1YWwg
dm9pZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIHsgfTsKKworICAgIFBlZXJDb25uZWN0aW9uRmFj
dG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKGJvb2wgdXNlTmV0d29y
a1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpOworCiAgICAgYm9vbCBtX2VuYWJsZUVudW1lcmF0aW5n
QWxsTmV0d29ya0ludGVyZmFjZXMgeyBmYWxzZSB9OwogICAgIC8vIEZJWE1FOiBSZW1vdmUgbV91
c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlciBtZW1iZXIgdmFyaWFibGUgYW5kIG1ha2Ug
aXQgYSBnbG9iYWwuCiAgICAgYm9vbCBtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVy
IHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwCmluZGV4IDU0YjJiZDBjOWJkZTc3OTQ5
YjM4ODYyMjY2NTAzZGEzNTNlNjIwOGMuLmQ3OGQ3NTk1ODk0NTlkOTQ2MzJiNzU1MGM0MTdkMThi
ZTYzYzJmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAKQEAgLTM5LDYgKzM5LDE5IEBAIExp
YldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENOZXR3b3JrKCkKICAgICBzZXRDb25uZWN0aW9uKG51
bGxwdHIpOwogfQogCit2b2lkIExpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKCkKK3sKKyAg
ICBBU1NFUlQoIW1faXNBY3RpdmUpOworICAgIG1faXNBY3RpdmUgPSB0cnVlOworI2lmIFVTRShM
SUJXRUJSVEMpCisgICAgaWYgKG1fY29ubmVjdGlvbikgeworICAgICAgICBXZWJDb3JlOjpMaWJX
ZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDTmV0d29ya1RocmVhZChbdGhpcywgY29ubmVjdGlv
biA9IG1fY29ubmVjdGlvbl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG1fc29ja2V0RmFjdG9y
eS5zZXRDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpOworICAgICAgICB9KTsKKyAgICB9
CisjZW5kaWYKK30KKwogdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpuZXR3b3JrUHJvY2Vzc0NyYXNo
ZWQoKQogewogICAgIHNldENvbm5lY3Rpb24obnVsbHB0cik7CkBAIC01Myw2ICs2NiwxMSBAQCB2
b2lkIExpYldlYlJUQ05ldHdvcms6OnNldENvbm5lY3Rpb24oUmVmUHRyPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKG1fY29ubmVjdGlv
bikKICAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OkxpYldlYlJUQ05ldHdvcms6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgaWYg
KG1faXNBY3RpdmUpIHsKKyAgICAgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNhbGxP
bldlYlJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb25dKCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBtX3NvY2tldEZhY3Rvcnkuc2V0Q29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24p
KTsKKyAgICAgICAgfSk7CisgICAgfQogI2VuZGlmCiAgICAgbV9jb25uZWN0aW9uID0gV1RGTW92
ZShjb25uZWN0aW9uKTsKICNpZiBVU0UoTElCV0VCUlRDKQpAQCAtNjEsMTggKzc5LDkgQEAgdm9p
ZCBMaWJXZWJSVENOZXR3b3JrOjpzZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKICNlbmRpZgogfQogCi1ib29sIExpYldlYlJUQ05ldHdvcms6OmlzQWN0
aXZlKCkgY29uc3QKLXsKLSNpZiBVU0UoTElCV0VCUlRDKQotICAgIHJldHVybiBXZWJDb3JlOjpM
aWJXZWJSVENQcm92aWRlcjo6aGFzV2ViUlRDVGhyZWFkcygpOwotI2Vsc2UKLSAgICByZXR1cm4g
ZmFsc2U7Ci0jZW5kaWYKLX0KLQogdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpkaXNwYXRjaFRvVGhy
ZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAgICBpZiAoIWlzQWN0aXZlKCkp
IHsKKyAgICBpZiAoIW1faXNBY3RpdmUpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiUmVjZWl2ZWQgV2ViUlRDU29ja2V0IG1lc3NhZ2Ugd2hpbGUgbGliV2ViUlRDTmV0d29y
ayBpcyBub3QgYWN0aXZlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdv
cmsuaAppbmRleCA1Y2RmNGY3NTJjNjU2YjA1YzUwM2IwOGQ3YTBmM2NkZmE0NmEwOTIyLi4xNWJi
MTZlNzk5ZmRmZDJlODlmZDUxNTM4MmQ0YmJjZjA1ZWNmYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3Jr
LmgKQEAgLTQxLDEwICs0MSwxMiBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDTmV0d29yaygpID0g
ZGVmYXVsdDsKICAgICB+TGliV2ViUlRDTmV0d29yaygpOwogCisgICAgSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAgICAgdm9pZCBz
ZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+JiYpOworCiAgICAgdm9pZCBuZXR3
b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIAotICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKKyAgICBi
b29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjdGl2ZTsgfQogCiAjaWYgVVNFKExJ
QldFQlJUQykKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOwpAQCAtNjEsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgV2ViTUROU1JlZ2lz
dGVyJiBtZG5zUmVnaXN0ZXIoKSB7IHJldHVybiBtX21kbnNSZWdpc3RlcjsgfQogI2VuZGlmCiAK
KyAgICB2b2lkIHNldEFzQWN0aXZlKCk7CisKIHByaXZhdGU6CiAjaWYgVVNFKExJQldFQlJUQykK
ICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0d29yazo6SVBBZGRy
ZXNzJiwgdWludDE2X3QgcG9ydCwgaW50NjRfdCk7CkBAIC04MSw2ICs4NSw3IEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgV2ViTUROU1JlZ2lzdGVyIG1fbWRuc1JlZ2lzdGVy
OwogI2VuZGlmCisgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8SVBD
OjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNw
cAppbmRleCBhNjZmOTU3N2E4NjFlOTk4YThmMjk0Y2QzYWViNTY4NWNlZGY0OTY5Li44ZWMzNzY3
ODU5NTBkMzA4YzM1YmRlZjI2Mjk4MDU1N2U5ZjM4ZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHAKQEAgLTEzMSw2ICsxMzEsMTEgQEAgdm9pZCBSVENTb2NrZXRGYWN0b3J5OjpyZXN1bWUo
KQogICAgIH0pOwogfQogCit2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpzdGFydGVkTmV0d29ya1Ro
cmVhZCgpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygp
LnNldEFzQWN0aXZlKCk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRlcjo6
U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0
RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQpCiB7CiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UlRD
U29ja2V0RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdlbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
aW5kZXggNzU1ZDZjNmZmNmNjNzkzNmY4MTdkYmJlOTFlMDBmYzdiNDZhNTFlYy4uYzZiM2UwYTQ0
MTZjYTBhNTZlYzliNzBiZmNiMGQ1MzRjOTg3ZjIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
QEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVucmVnaXN0ZXJNRE5TTmFtZXMo
V2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyTURO
U05hbWUoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVz
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+JiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgZmluYWw7CisgICAgdm9p
ZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlRGVj
b2RlckZhY3RvcnkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKaW5kZXggN2FlZDY0NTdh
ODM4MTU3YjcyYjAyMzc0MGQ4ZDc1MjQ4YmE1MjY0My4uZThlZTczNDE3ZWQ5YTBmMDJkMGI4ZDRk
NjVmOThmMzQzYmE1NzU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKQEAgLTU3LDEzICs1Nyw2
IEBAIExpYldlYlJUQ1NvY2tldDo6fkxpYldlYlJUQ1NvY2tldCgpCiAgICAgbV9mYWN0b3J5LnJl
bW92ZVNvY2tldCgqdGhpcyk7CiB9CiAKLXZvaWQgTGliV2ViUlRDU29ja2V0OjpzZW5kT25NYWlu
VGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+JiYgY2FsbGJhY2spCi17Ci0g
ICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSB7Ci0g
ICAgICAgIGNhbGxiYWNrKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7Ci0gICAgfSk7Ci19Ci0KIHJ0Yzo6U29ja2V0
QWRkcmVzcyBMaWJXZWJSVENTb2NrZXQ6OkdldExvY2FsQWRkcmVzcygpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fbG9jYWxBZGRyZXNzOwpAQCAtMTM1LDMyICsxMjgsMjkgQEAgYm9vbCBMaWJXZWJS
VENTb2NrZXQ6OndpbGxTZW5kKHNpemVfdCBzaXplKQogCiBpbnQgTGliV2ViUlRDU29ja2V0OjpT
ZW5kVG8oY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGFkZHJlc3MsIGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAg
ICBpZiAoIXdpbGxTZW5kKHNpemUpKQorICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2ZhY3Rvcnku
Y29ubmVjdGlvbigpOworICAgIGlmICghY29ubmVjdGlvbiB8fCAhd2lsbFNlbmQoc2l6ZSkpCiAg
ICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChtX2lzU3VzcGVuZGVkKQogICAgICAgICByZXR1
cm4gc2l6ZTsKIAotICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVh
dGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZhbHVlKSwgc2l6ZSk7Ci0gICAgYXV0byBp
ZGVudGlmaWVyID0gdGhpcy0+aWRlbnRpZmllcigpOworICAgIElQQzo6RGF0YVJlZmVyZW5jZSBk
YXRhKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZSksIHNpemUpOworICAgIGNvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OlNlbmRUbyB7IGRhdGEsIFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MgeyBhZGRyZXNzIH0sIFJUQ1BhY2tldE9wdGlvbnMgeyBv
cHRpb25zIH0gfSwgbV9pZGVudGlmaWVyKTsKIAotICAgIHNlbmRPbk1haW5UaHJlYWQoW2lkZW50
aWZpZXIsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcywgb3B0aW9uc10oYXV0byYg
Y29ubmVjdGlvbikgewotICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YShyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+c2l6ZSgpKTsK
LSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpTZW5k
VG8geyBkYXRhLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHsgYWRkcmVzcyB9LCBSVENQYWNr
ZXRPcHRpb25zIHsgb3B0aW9ucyB9IH0sIGlkZW50aWZpZXIpOwotICAgIH0pOwogICAgIHJldHVy
biBzaXplOwogfQogCiBpbnQgTGliV2ViUlRDU29ja2V0OjpDbG9zZSgpCiB7Ci0gICAgaWYgKG1f
c3RhdGUgPT0gU1RBVEVfQ0xPU0VEKQorICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2ZhY3Rvcnku
Y29ubmVjdGlvbigpOworICAgIGlmICghY29ubmVjdGlvbiB8fCBtX3N0YXRlID09IFNUQVRFX0NM
T1NFRCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX3N0YXRlID0gU1RBVEVfQ0xPU0VEOwog
Ci0gICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IGlkZW50aWZpZXIoKV0oYXV0byYg
Y29ubmVjdGlvbikgewotICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtS
VENTb2NrZXQ6OkNsb3NlKCksIGlkZW50aWZpZXIpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlKCksIG1faWRlbnRpZmllcik7
CisKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTgwLDkgKzE3MCw5IEBAIGludCBMaWJXZWJSVENT
b2NrZXQ6OlNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uIG9wdGlvbiwgaW50IHZhbHVlKQog
CiAgICAgbV9vcHRpb25zW29wdGlvbl0gPSB2YWx1ZTsKIAotICAgIHNlbmRPbk1haW5UaHJlYWQo
W2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCksIG9wdGlvbiwgdmFsdWVdKGF1dG8mIGNvbm5lY3Rp
b24pIHsKLSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0
OjpTZXRPcHRpb24ob3B0aW9uLCB2YWx1ZSksIGlkZW50aWZpZXIpOwotICAgIH0pOworICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gbV9mYWN0b3J5LmNvbm5lY3Rpb24oKSkKKyAgICAgICAgY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6U2V0T3B0aW9uKG9wdGlv
biwgdmFsdWUpLCBtX2lkZW50aWZpZXIpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTIwNywx
MSArMTk3LDExIEBAIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKCkKICAgICBtX2lzU3Vz
cGVuZGVkID0gdHJ1ZTsKIAogICAgIC8vIE9uIHN1c3BlbmQsIHdlIGNsb3NlIFRDUCBzb2NrZXRz
IGFzIHdlIGNhbm5vdCBtYWtlIHN1cmUgcGFja2V0cyBhcmUgZGVsaXZlcmVkIHJlbGlhYmx5Lgot
ICAgIGlmIChtX3R5cGUgIT0gVHlwZTo6VURQKSB7Ci0gICAgICAgIHNlbmRPbk1haW5UaHJlYWQo
W2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCldKGF1dG8mIGNvbm5lY3Rpb24pIHsKLSAgICAgICAg
ICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6Q2xvc2UgeyB9
LCBpZGVudGlmaWVyKTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIGlmIChtX3R5cGUgPT0gVHlw
ZTo6VURQKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1f
ZmFjdG9yeS5jb25uZWN0aW9uKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlIHsgfSwgbV9pZGVudGlmaWVyKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKaW5kZXggYjJlOGVjYzc5OGY5MTNlNmM5
MjZiZDcyMzVmMzMxOTY4NWI1OWIxMC4uY2I0OGUwNTczNDhhMmU4NjZiMDkxZmY1YWM4NzI2MDVj
YTE5MmRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApAQCAtODUsOCArODUsNiBAQCBwcml2YXRlOgog
ICAgIGludCBHZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiwgaW50KikgZmluYWw7CiAgICAg
aW50IFNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uLCBpbnQpIGZpbmFsOwogCi0gICAgc3Rh
dGljIHZvaWQgc2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYp
PiYmKTsKLQogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsKICAgICBXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBUeXBlIG1f
dHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAppbmRleCBhOGRhN2NjOWFl
ODA0ZmU5YzI4OGJlZjJkNTNlNjVmMjM2YWRjODA2Li5hNjg3OTQ0YzNkZGI0Mjc3MDIzYzE4NmY0
MWRjYmI3YjM0NzllZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCisjaW5jbHVkZSAiTGliV2Vi
UlRDTmV0d29yay5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrUlRDTW9uaXRvck1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyTWVzc2FnZXMuaCIKQEAgLTQ1LDc2ICs0Nywx
MTAgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJl
c3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3Zv
aWQgTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c2V0Q29ubmVjdGlvbihSZWZQdHI8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3Ao
KSk7CisgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKK30KKworSVBDOjpD
b25uZWN0aW9uKiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpjb25uZWN0aW9uKCkKK3sKKyAgICBB
U1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLmdl
dCgpOworfQorCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5
OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgaW50IG9wdGlvbnMpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7
CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAi
Tm8gY29ubmVjdGlvbiB0byBjcmVhdGUgc2VydmVyIFRDUCBzb2NrZXQiKTsKKyAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJX
ZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpT
ZXJ2ZXJUQ1AsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKIAotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IHBy
ZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rp
b25zKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9uc10oKSB7Ci0gICAgICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlU2VydmVyVENQ
U29ja2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1p
blBvcnQsIG1heFBvcnQsIG9wdGlvbnMpLCAwKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNl
dCBlcnJvciBiYWNrIHRvIHNvY2tldAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0
ZVNlcnZlclRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyksIDApOwogCi0gICAg
fSk7CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKIHJ0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lk
KiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZf
dCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogeworICAgIEFTU0VSVCghV1RGOjppc01haW5S
dW5Mb29wKCkpOworICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIFJFTEVBU0VfTE9H
KFdlYlJUQywgIk5vIGNvbm5lY3Rpb24gdG8gY3JlYXRlIFVEUCBzb2NrZXQiKTsKKyAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxM
aWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBl
OjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKIAotICAgIGNhbGxPbk1haW5U
aHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IHByZXBh
cmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25z
KSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7Ci0gICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIs
IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQpLCAw
KSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tldAotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSk7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChzb2NrZXQt
PmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9y
dCwgbWF4UG9ydCksIDApOworCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVu
dFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVz
cywgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMm
IG9wdGlvbnMpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CisgICAgaWYg
KCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAiTm8gY29ubmVj
dGlvbiB0byBjcmVhdGUgY2xpZW50IFRDUCBzb2NrZXQiKTsKKyAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2Nr
ZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1As
IGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJX
ZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RJTkcpOwogCiAgICAgLy8gRklYTUU6IFdlIG9ubHkg
dHJhbnNmZXIgb3B0aW9ucy5vcHRzIGJ1dCBzaG91bGQgYWxzbyBoYW5kbGUgb3RoZXIgbWVtYmVy
cy4KLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVy
KCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9k
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJlcGFyZVNv
Y2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlv
bnMpLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlv
bnMgPSBvcHRpb25zLm9wdHNdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlm
aWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcyksIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcyksIHVzZXJBZ2VudCwgb3B0aW9ucyksIDApKSB7
Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KHNvY2tl
dC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRB
ZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRy
ZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCB1c2VyQWdlbnQsIG9wdGlv
bnMub3B0cyksIDApOworCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKIHJ0Yzo6
QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZU5ld0Nvbm5l
Y3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzZXJ2ZXJTb2NrZXQsIExpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKIHsKKyAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVu
TG9vcCgpKTsKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAgICBSRUxFQVNFX0xPRyhX
ZWJSVEMsICJObyBjb25uZWN0aW9uIHRvIGNyZWF0ZSBpbmNvbWluZyBUQ1Agc29ja2V0Iik7Cisg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgICAgIH0pOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBhdXRvIHNvY2tldCA9IG1ha2VV
bmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc2VydmVyU29ja2V0LnNvY2tldEdyb3VwKCks
IExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyQ29ubmVjdGlvblRDUCwgc2VydmVyU29ja2V0
LmxvY2FsQWRkcmVzcygpLCByZW1vdGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExp
YldlYlJUQ1NvY2tldDo6U1RBVEVfQ09OTkVDVEVEKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQo
W2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgbmV3Q29ubmVjdGlvblNvY2tldElk
ZW50aWZpZXJdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OldyYXBOZXdUQ1BDb25uZWN0aW9uKGlkZW50aWZpZXIsIG5ld0Nv
bm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKSwgMCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBT
ZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgIH0pOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3Zp
ZGVyOjpXcmFwTmV3VENQQ29ubmVjdGlvbihzb2NrZXQtPmlkZW50aWZpZXIoKSwgbmV3Q29ubmVj
dGlvblNvY2tldElkZW50aWZpZXIpLCAwKTsKKwogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgp
OwogfQogCiB2b2lkIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmFkZFNvY2tldChMaWJXZWJSVENT
b2NrZXQmIHNvY2tldCkKIHsKKyAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKICAg
ICBBU1NFUlQoIW1fc29ja2V0cy5jb250YWlucyhzb2NrZXQuaWRlbnRpZmllcigpKSk7CiAgICAg
bV9zb2NrZXRzLmFkZChzb2NrZXQuaWRlbnRpZmllcigpLCAmc29ja2V0KTsKIH0KIAogdm9pZCBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpyZW1vdmVTb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzb2Nr
ZXQpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1f
c29ja2V0cy5jb250YWlucyhzb2NrZXQuaWRlbnRpZmllcigpKSk7CiAgICAgbV9zb2NrZXRzLnJl
bW92ZShzb2NrZXQuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENTb2NrZXRGYWN0
b3J5Ojpmb3JTb2NrZXRJbkdyb3VwKGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBGdW5j
dGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYgY2FsbGJhY2spCiB7CisgICAgQVNTRVJUKCFX
VEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgZm9yIChhdXRvKiBzb2NrZXQgOiBtX3NvY2tldHMu
dmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHNvY2tldC0+c29ja2V0R3JvdXAoKSA9PSBzb2NrZXRH
cm91cCkKICAgICAgICAgICAgIGNhbGxiYWNrKCpzb2NrZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmgKaW5kZXggZDBhNjI3YjdjOTViNjFjMGM4MDNmY2I1OWY3MTg0MzQ3YTY4MmE5
Yy4uZGJiYWFmYzBhMTEzNDIzMDE0YTcwM2M0MDQ5ZGVlOTU1MDVhYjc3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZh
Y3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC0zNywxMSArMzcsMTIgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK2NsYXNzIExpYldlYlJUQ05ldHdvcms7CiBjbGFzcyBMaWJXZWJSVENTb2NrZXQ7
CiAKIGNsYXNzIExpYldlYlJUQ1NvY2tldEZhY3RvcnkgewogcHVibGljOgotICAgIExpYldlYlJU
Q1NvY2tldEZhY3RvcnkoKSB7IH0KKyAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgPSBkZWZh
dWx0OwogCiAgICAgdm9pZCBhZGRTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7CiAgICAgdm9pZCBy
ZW1vdmVTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7CkBAIC01OSw2ICs2MCw5IEBAIHB1YmxpYzoK
ICAgICAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNh
YmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKKyAgICB2b2lkIHNldENvbm5l
Y3Rpb24oUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uKCk7CisKIHByaXZhdGU6CiAgICAgLy8gV2UgY2Fubm90IG93biBzb2NrZXRzLCBj
bGllbnRzIG9mIHRoZSBmYWN0b3J5IGFyZSByZXNwb25zaWJsZSB0byBmcmVlIHRoZW0uCiAgICAg
SGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2Nr
ZXQqPiBtX3NvY2tldHM7CkBAIC02Niw2ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgLy8gV2UgY2Fu
IG93biByZXNvbHZlcnMgYXMgd2UgY29udHJvbCB0aGVpciBEZXN0cm95IG1ldGhvZC4KICAgICBI
YXNoTWFwPExpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPExpYldl
YlJUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7CiAgICAgYm9vbCBtX2Rpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucyB7IGZhbHNlIH07CisKKyAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398713</attachid>
            <date>2020-05-07 01:54:45 -0700</date>
            <delta_ts>2020-05-07 01:57:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211509-20200507105444.patch</filename>
            <type>text/plain</type>
            <size>29852</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M1YmI0ZDM5MzZkMGZh
MDFiY2M4YTM1YzhlYTAwOTE1MjI2NTU5Ny4uN2RjYzA4ODE1NjVjMTk1ODRiYjU5ZWJlZWUyZDg2
OGQwMjQ5NzJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzZXRJbnRlcnJ1
cHRlZCBhbmQgcmVsYXRlZCBjb2RlLgorICAgICAgICBJbnN0ZWFkLCBkaXJlY3RseSB1c2Ugc2V0
TXV0ZWQodHJ1ZS9mYWxzZSkgb2YgdGhlIHNvdXJjZSBvZiBjYXB0dXJlIHRyYWNrcy4KKyAgICAg
ICAgVG8gZW5zdXJlIHdlIHZhbGlkYXRlIHRoYXQgdGhlIGFjdGl2ZSBzb3VyY2UgaXMgdGllZCB0
byBhIHRyYWNrIG9mIHRoZSBkb2N1bWVudCwKKyAgICAgICAgd2UgYWRkIFJlYWx0aW1lU291cmNl
Ojppc1NhbWVBcyB3aGljaCBoYW5kbGVzIHRoZSBjYXNlIG9mIGEgUmVhbHRpbWVWaWRlb1NvdXJj
ZSB3cmFwcGluZyBhbiBBVlZpZGVvQ2FwdHVyZVNvdXJjZS4KKyAgICAgICAgVGhlcmUgbWlnaHQg
YmUgbXVsdGlwbGUgdmlkZW8gdHJhY2tzIHdpdGggZWFjaCBvbmUgaXRzIFJlYWx0aW1lVmlkZW9T
b3VyY2UgdXNpbmcgdGhlIHNhbWUgQVZWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAgICAgIFdlIG11
dGUgdGhlIEFWVmlkZW9DYXB0dXJlU291cmNlIGRpcmVjdGx5IHRvIG1ha2Ugc3VyZSBhbGwgbGlu
a2VkIHRyYWNrcyB3aWxsIGdldCBtdXRlZC91bm11dGVkIGF0IHRoZSBzYW1lIHRpbWUuCisgICAg
ICAgIFRlc3RzIHRvIGJlIGZpeGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6
Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6aXNTb3VyY2VDYXB0dXJpbmdG
b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVD
YXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisKIDIwMjAtMDUtMDYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAppbmRleCBkMGIyY2I5ZmQwYWExYmQxZjI5YWNlZGM1YjYwOTM5Nzc0YTExY2IwLi4yN2Nl
OTFiMjBmNzE3Yjg1NmU1MWJlZDIxODMyZjU0NGMyOTQxOGRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAg
LTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTY4LDYgKzY5LDEwIEBAIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrPiBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwKIHsKICAgICBhdXRvIHRyYWNrID0gYWRvcHRSZWYoKm5ldyBNZWRp
YVN0cmVhbVRyYWNrKGNvbnRleHQsIFdURk1vdmUocHJpdmF0ZVRyYWNrKSkpOwogICAgIHRyYWNr
LT5zdXNwZW5kSWZOZWVkZWQoKTsKKworICAgIGlmICh0cmFjay0+aXNDYXB0dXJlVHJhY2soKSkK
KyAgICAgICAgdHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsKKwogICAgIHJldHVybiB0
cmFjazsKIH0KIApAQCAtODcsMTEgKzkyLDYgQEAgTWVkaWFTdHJlYW1UcmFjazo6TWVkaWFTdHJl
YW1UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVkaWFTdHIKIAog
ICAgIGlmIChtX3ByaXZhdGUtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpB
dWRpbykKICAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2Vy
KCkuYWRkQXVkaW9DYXB0dXJlU291cmNlKCp0aGlzKTsKLQotICAgIGlmIChhdXRvIGRvY3VtZW50
ID0gdGhpcy0+ZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKSAmJiBk
b2N1bWVudC0+cGFnZSgpLT5tdXRlZFN0YXRlKCkpCi0gICAgICAgICAgICBzZXRNdXRlZCh0cnVl
KTsKLSAgICB9CiB9CiAKIE1lZGlhU3RyZWFtVHJhY2s6On5NZWRpYVN0cmVhbVRyYWNrKCkKQEAg
LTE5NSwyNiArMTk1LDYgQEAgYm9vbCBNZWRpYVN0cmVhbVRyYWNrOjptdXRlZCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+bXV0ZWQoKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVRyYWNr
OjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCi17Ci0gICAg
Ym9vbCB0cmFja011dGVkID0gZmFsc2U7Ci0gICAgc3dpdGNoIChzb3VyY2UoKS5kZXZpY2VUeXBl
KCkpIHsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6Ci0g
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6Ci0gICAgICAgIHRyYWNr
TXV0ZWQgPSBzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRl
ZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
Y3JlZW46Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAg
ICAgIHRyYWNrTXV0ZWQgPSBzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OlNjcmVlbkNhcHR1cmVJc011
dGVkOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlVua25vd246Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0KLSAgICBtX3ByaXZhdGUtPnNldE11dGVkKHRyYWNrTXV0ZWQpOwotfQotCiBhdXRv
IE1lZGlhU3RyZWFtVHJhY2s6OnJlYWR5U3RhdGUoKSBjb25zdCAtPiBTdGF0ZQogewogICAgIHJl
dHVybiBlbmRlZCgpID8gU3RhdGU6OkVuZGVkIDogU3RhdGU6OkxpdmU7CkBAIC00NjgsNDQgKzQ0
OCw2NyBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6
Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudAogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLXN0YXRpYyBNZWRpYVN0cmVhbVRyYWNrKiBmaW5kQWN0aXZlQ2FwdHVyZVRyYWNrRm9y
RG9jdW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWFsdGltZU1lZGlhU291cmNlKiBhY3RpdmVT
b3VyY2UsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSkKK3N0YXRpYyBib29sIGlzU291
cmNlQ2FwdHVyaW5nRm9yRG9jdW1lbnQoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgTWVkaWFTdHJlYW1UcmFjayogc2VsZWN0ZWRUcmFjayA9
IG51bGxwdHI7Ci0gICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sgOiBhbGxDYXB0dXJlVHJhY2tz
KCkpIHsKLSAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQg
fHwgY2FwdHVyZVRyYWNrLT5lbmRlZCgpKQorICAgIGZvciAoYXV0byogdHJhY2sgOiBhbGxDYXB0
dXJlVHJhY2tzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVu
dCB8fCB0cmFjay0+ZW5kZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
ICgmY2FwdHVyZVRyYWNrLT5zb3VyY2UoKSA9PSBhY3RpdmVTb3VyY2UpCi0gICAgICAgICAgICBy
ZXR1cm4gY2FwdHVyZVRyYWNrOwotCi0gICAgICAgIC8vIElmIHRoZSBkb2N1bWVudCBoYXMgYSBs
aXZlIGNhcHR1cmUgdHJhY2ssIHdoaWNoIGlzIG5vdCB0aGUgYWN0aXZlIG9uZSwgd2UgcGljayB0
aGUgZmlyc3Qgb25lLgotICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHN0b3Jl
IHBlciBwYWdlIGFjdGl2ZSBhdWRpby92aWRlbyBjYXB0dXJlIHRyYWNrcy4KLSAgICAgICAgaWYg
KCFzZWxlY3RlZFRyYWNrICYmIGNhcHR1cmVUcmFjay0+cHJpdmF0ZVRyYWNrKCkudHlwZSgpID09
IHR5cGUpCi0gICAgICAgICAgICBzZWxlY3RlZFRyYWNrID0gY2FwdHVyZVRyYWNrOworICAgICAg
ICBpZiAodHJhY2stPnNvdXJjZSgpLmlzU2FtZUFzKHNvdXJjZSkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIHNlbGVjdGVkVHJhY2s7CisgICAgcmV0dXJuIGZh
bHNlOwogfQogI2VuZGlmCiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFj
Y29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byogYWN0aXZlQXVkaW9Tb3VyY2UgPSBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGF1dG8qIGF1ZGlvQ2FwdHVyZVRyYWNrID0gZmlu
ZEFjdGl2ZUNhcHR1cmVUcmFja0ZvckRvY3VtZW50KGRvY3VtZW50LCBhY3RpdmVBdWRpb1NvdXJj
ZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pKQotICAgICAgICBhdWRpb0NhcHR1
cmVUcmFjay0+c2V0TXV0ZWQoZG9jdW1lbnQucGFnZSgpLT5tdXRlZFN0YXRlKCkpOworICAgIGlm
IChhY3RpdmVBdWRpb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvckRvY3VtZW50KCphY3Rp
dmVBdWRpb1NvdXJjZSwgZG9jdW1lbnQpKSB7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFn
ZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011
dGVkOworICAgICAgICBhY3RpdmVBdWRpb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IChk
b2N1bWVudC5oaWRkZW4oKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLmludGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVuYWJsZWQoKSkpOworICAg
IH0KIAogICAgIGF1dG8qIGFjdGl2ZVZpZGVvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwot
ICAgIGlmIChhdXRvKiB2aWRlb0NhcHR1cmVUcmFjayA9IGZpbmRBY3RpdmVDYXB0dXJlVHJhY2tG
b3JEb2N1bWVudChkb2N1bWVudCwgYWN0aXZlVmlkZW9Tb3VyY2UsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OlZpZGVvKSkKLSAgICAgICAgdmlkZW9DYXB0dXJlVHJhY2stPnNldE11dGVkKGRv
Y3VtZW50LnBhZ2UoKS0+bXV0ZWRTdGF0ZSgpKTsKKyAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2Ug
JiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JEb2N1bWVudCgqYWN0aXZlVmlkZW9Tb3VyY2UsIGRvY3Vt
ZW50KSkgeworICAgICAgICBib29sIHBhZ2VNdXRlZCA9IHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1l
ZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICAgICAgYWN0aXZl
VmlkZW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7Cisg
ICAgfQogI2Vsc2UKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFj
a3MoKSkgewotICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVu
dCB8fCBjYXB0dXJlVHJhY2stPmVuZGVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgY2FwdHVyZVRyYWNrLT5zZXRNdXRlZChkb2N1bWVudC5wYWdlKCktPm11dGVkU3RhdGUoKSk7
CisgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkgPT0gJmRvY3VtZW50ICYmICFj
YXB0dXJlVHJhY2stPmVuZGVkKCkpCisgICAgICAgICAgICBjYXB0dXJlVHJhY2stPnVwZGF0ZVRv
UGFnZU11dGVkU3RhdGUoKTsKICAgICB9CiAjZW5kaWYKIH0KIAordm9pZCBNZWRpYVN0cmVhbVRy
YWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKK3sKKyAgICBBU1NFUlQoaXNDYXB0dXJlVHJh
Y2soKSk7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaCAoc291cmNlKCkuZGV2aWNlVHlwZSgp
KSB7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAg
IGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgICAgICBtX3ByaXZh
dGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5k
VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6V2luZG93OgorICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3Rh
dGUoKSAmIE1lZGlhUHJvZHVjZXI6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB2b2lk
IE1lZGlhU3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAg
IGJvb2wgZGlkRW5kQ2FwdHVyZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAppbmRleCAwMmZkNDU0YjZhMWRh
M2M1NGJkYTNiMjA0OWU4ZTAzZjdjYWNkYjBhLi5iMDBmMDQ5MzMyMGRhOGU5YTUwNGVlNTZkYWY1
OGUyMDdjYzExYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaApAQCAtODcsNyArODcsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRFbmFibGVkKGJvb2wpOwogCiAgICAgYm9vbCBtdXRlZCgpIGNvbnN0OwotICAgIHZv
aWQgc2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKIAogICAgIGVudW0g
Y2xhc3MgU3RhdGUgeyBMaXZlLCBFbmRlZCB9OwogICAgIFN0YXRlIHJlYWR5U3RhdGUoKSBjb25z
dDsKQEAgLTE2OSw2ICsxNjgsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhU3RyZWFt
VHJhY2soTWVkaWFTdHJlYW1UcmFjayYpOwogCiAgICAgdm9pZCBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOworICAgIHZvaWQgdXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpOwogCiAgICAgLy8gQWN0
aXZlRE9NT2JqZWN0IEFQSS4KICAgICB2b2lkIHN0b3AoKSBmaW5hbCB7IHN0b3BUcmFjaygpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxODQ0YmYyOWJiZjdjNWMwMTBhY2NjOTliNjlk
MTdiZTI4NTNiZjlhLi41ZmI3MzQyODBjMjZiOTk4NTI1ZDU4N2Q3NWM3Mjc5MjJiMmQzYmI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE3NDksMTcgKzE3NDksMTAgQEAgdm9pZCBEb2N1
bWVudDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCgpCiAgICAgZm9yIChhdXRvKiBjbGllbnQgOiBt
X3Zpc2liaWxpdHlTdGF0ZUNhbGxiYWNrQ2xpZW50cykKICAgICAgICAgY2xpZW50LT52aXNpYmls
aXR5U3RhdGVDaGFuZ2VkKCk7CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIGF1dG8q
IHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgaWYgKHBhZ2UgJiYgaGlkZGVuKCkpIHsKLSAgICAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0Q2FwdHVyZVBhZ2VT
dGF0ZSh0cnVlLCBwYWdlLT5pc01lZGlhQ2FwdHVyZU11dGVkKCkpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmlzSW50ZXJydXB0ZWQoKSkKICAgICAgICAgTWVkaWFT
dHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSgqdGhpcyk7CiAj
ZW5kaWYKLSNlbmRpZgogfQogCiBWaXNpYmlsaXR5U3RhdGUgRG9jdW1lbnQ6OnZpc2liaWxpdHlT
dGF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDViNDQyNDUzZjI5NTdmZDQ0
NmIwOWMzOWM5MTliNDg0MmI1MDBmYTIuLjZlOWY1Yjk2ZTE1ZTA4OGI4YTE4NzgxZDlmNzA0NGRk
ZWY2YzhkOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC04OCwxNiArODgsNiBAQCB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikK
ICAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlOjpzZXRJbnRlcnJ1cHRlZChib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLXsK
LSNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShwYWdlTXV0ZWQpOwot
I2VuZGlmCi0KLSAgICBBTFdBWVNfTE9HX0lGKG1fbG9nZ2VyLCBMT0dJREVOVElGSUVSLCBpbnRl
cnJ1cHRlZCwgIiwgcGFnZSBtdXRlZCA6ICIsIHBhZ2VNdXRlZCk7Ci0gICAgc2V0TXV0ZWQoaW50
ZXJydXB0ZWQpOwotfQotCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldE11dGVkKGJvb2wg
bXV0ZWQpCiB7CiAgICAgQUxXQVlTX0xPR19JRihtX2xvZ2dlciwgTE9HSURFTlRJRklFUiwgbXV0
ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDY2YWEzNTA0YTcyMDUxNTliNTRlNTY0MDc5OWVm
NjM1NWY5YmEwZTkuLmY4YWJhYTNhZWJlYmJlNjNlZWRlMWY1ZDMwMjI3ZDg4NGViNDgxNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTEyNyw3ICsxMjcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBj
YXB0dXJlRGlkRmFpbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FwdHVyZURpZEZhaWxlZDsgfQogCiAg
ICAgdmlydHVhbCBib29sIGludGVycnVwdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcnJ1cHRl
ZDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRJbnRlcnJ1cHRlZChib29sLCBib29sKTsKIAogICAg
IGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIHZvaWQg
c2V0TmFtZShTdHJpbmcmJiBuYW1lKSB7IG1fbmFtZSA9IFdURk1vdmUobmFtZSk7IH0KQEAgLTE5
Myw2ICsxOTIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FwdHVyZUZhaWxlZCgp
OwogCisgICAgdmlydHVhbCBib29sIGlzU2FtZUFzKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJj
ZSkgY29uc3QgeyByZXR1cm4gdGhpcyA9PSAmc291cmNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
SW5jb21pbmdBdWRpb1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzSW5jb21pbmdWaWRlb1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggZGM0OGE3NTZmN2NhYzlmZmNk
OGY1ZmVhNDgxMWQ2MmM1MTYwYmJlNC4uMmQzMmIyNDNiMWE5NjZlZGZiMGJiYWQ4ZjBlNDJiNmRj
NDFjYzk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTM4LDcgKzM4
LDYgQEAKICNpbmNsdWRlICJDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlICJSdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8d3RmL1NIQTEuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMjcxLDEzICsyNzAsNiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbAogICAg
IHZhbGlkSGFuZGxlcihXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlkZW9EZXZpY2Vz
KSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKIH0KIAotdm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzZXRDYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQs
IGJvb2wgcGFnZU11dGVkKQotewotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmludGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVuYWJsZWQo
KSkKLSAgICAgICAgYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0
ZShpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAgICB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0
VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotfQotCiB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldEF1ZGlvQ2FwdHVyZUZhY3RvcnkoQXVkaW9D
YXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHsKICAgICBtX2F1ZGlvQ2FwdHVyZUZhY3RvcnlPdmVy
cmlkZSA9ICZmYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IDEwZGRi
MjkwM2MxY2Q5NjIyMWZkNWRmMDFhMzliOTEwZGVhOThiNWIuLjAyODI4NjU4ZTA5ZWFkZTk3MjEx
OGFkZWNkYzE3ZjM2NGZlYTMwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAg
LTg2LDggKzg2LDYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZXZp
Y2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKTsKIAotICAgIHZvaWQg
c2V0Q2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCk7Ci0K
ICAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAppbmRleCAzMDM0NDFkNWFiODMyYzM1NzA3
ZjYxZmI1Y2VjOTgzZGI0MGM3YmM3Li5hMzI2MjhiN2ExNjA5MzVhY2I4Yjc1MzExM2Y4Mzg1NTNh
NmViOGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKQEAgLTYwLDExICs2MCw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0
OwogICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyopID0gMDsKICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRpb0NhcHR1cmVQYWdl
U3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi0gICAgewotICAgICAgICBV
TlVTRURfUEFSQU0oaW50ZXJydXB0ZWQpOwotICAgICAgICBVTlVTRURfUEFSQU0ocGFnZU11dGVk
KTsKLSAgICB9CiAKIHByb3RlY3RlZDoKICAgICBBdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZh
dWx0OwpAQCAtNzksMTEgKzc0LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1h
bmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRl
ZCkKLSAgICB7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShpbnRlcnJ1cHRlZCk7Ci0gICAgICAgIFVO
VVNFRF9QQVJBTShwYWdlTXV0ZWQpOwotICAgIH0KIAogcHJvdGVjdGVkOgogICAgIFZpZGVvQ2Fw
dHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggYmVhZDNiOTVk
OTU3ZThjNjEyNDE1MzczYTAzZGY3YTAyMzk5YTcyZS4uY2NjZTliOWFhMTk3MDNlMDk1NzMzZWQy
N2EyM2MzMzhmNjM4YWVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDEsNyArNDEsNyBAQCBw
cml2YXRlOgogICAgIGV4cGxpY2l0IFJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVmPFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlPiYmKTsKICAgICB+UmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCi0gICAg
Ly8gUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKKyAgICAvLyBSZWFsdGltZU1lZGlhU2lvdXJj
ZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKE9w
dGlvbmFsPGludD4gd2lkdGgsIE9wdGlvbmFsPGludD4gaGVpZ2h0LCBPcHRpb25hbDxkb3VibGU+
IGZyYW1lUmF0ZSkgZmluYWw7CkBAIC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9z
b3VyY2UtPmRldmljZVR5cGUoKTsgfQogICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVu
dGF0aW9uTm90aWZpZXImIG5vdGlmaWVyKSBmaW5hbCB7IG1fc291cmNlLT5tb25pdG9yT3JpZW50
YXRpb24obm90aWZpZXIpOyB9CiAgICAgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fc291cmNlLT5pbnRlcnJ1cHRlZCgpOyB9CisgICAgYm9vbCBpc1NhbWVBcyhSZWFs
dGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRoaXMgPT0gJnNv
dXJjZSB8fCBtX3NvdXJjZS5wdHIoKSA9PSAmc291cmNlOyB9CiAKICAgICAvLyBPYnNlcnZlcgog
ICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLm1tCmluZGV4IDhkOTcwNDFjMTRkM2ZhZTc1ZTY2NWI1Y2ZhMDIyYmE1
N2UyMDczMjYuLjRhMjA0N2JjNDQzYTY1NjYyNGQzMWIwNWJmYTc4MmExODdlNTI1MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tCkBAIC0xMDIsMTIgKzEwMiw2IEBA
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFj
dG9yeTo6c2luZ2xldG9uKCkKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKIH0KIAotdm9pZCBD
b3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJv
b2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotewotICAgIGlmIChhdXRvKiBhY3RpdmVT
b3VyY2UgPSB0aGlzLT5hY3RpdmVTb3VyY2UoKSkKLSAgICAgICAgYWN0aXZlU291cmNlLT5zZXRJ
bnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLX0KLQogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGU0ZTg5YmYwZDhlZTUxNTNjYmE1MGI5ODgyMzhiMTE4
NTI2M2M1YTAuLjhkOTUyODI0NDAwMjY4ODFiMDQwZWMyNWNhMTVlYmRmNGUzNTlhY2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtMTE1LDEwICsxMTUsNiBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGRldmljZXNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYp
OwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldEF1ZGlvQ2FwdHVyZVBh
Z2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkgZmluYWw7Ci0jZW5kaWYK
LQogcHJpdmF0ZToKICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCmluZGV4IDBiZWQ1ODlhNDA2NWZj
ZGMxYTUyNzJkMTRhZjU1NjhhNGE2ZGJjNTUuLjNlM2FhNGVkODZkNWI4ZmMyMDgzZTJlNWRmODBi
ZjlkZWQxYjhjMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5jcHAKQEAgLTUzLDE0ICs1Myw2IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShi
b29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLSAgICB7Ci0gICAgICAgIGlmIChhY3Rp
dmVTb3VyY2UoKSkKLSAgICAgICAgICAgIGFjdGl2ZVNvdXJjZSgpLT5zZXRJbnRlcnJ1cHRlZChp
bnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAgICB9Ci0jZW5kaWYKLQogICAgIENhcHR1cmVEZXZp
Y2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgeyByZXR1cm4gQVZDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHAKaW5kZXggZmM0MmY2YmE3YWRlYjk1Njk0MTMwZmFiYjg2Njc4NjMyZTVjOThhOS4uNzI0
ZTE1MzhjMGQxYWNiODllZGU4NDFiNjgwNTg5NWRhNjlkNzkzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKQEAgLTEwMiwxMyArMTAyLDYgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0VmlkZW9DYXB0dXJlUGFn
ZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKSBmaW5hbAotICAgIHsKLSAg
ICAgICAgaWYgKGFjdGl2ZVNvdXJjZSgpKQotICAgICAgICAgICAgYWN0aXZlU291cmNlKCktPnNl
dEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIH0KLSNlbmRpZgogICAg
IENhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwg
eyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
Q2FwdHVyZURldmljZU1hbmFnZXIoKTsgfQogfTsKIApAQCAtMTkxLDcgKzE4NCw2IEBAIHB1Ymxp
YzoKICAgICB9CiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBz
ZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQp
IGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEF1
ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsgfQogICAgIHZvaWQg
c2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgZmluYWwgeyBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuc2V0QWN0aXZlU291cmNlKHNv
dXJjZSk7IH0KICAgICB2b2lkIHVuc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2Um
IHNvdXJjZSkgZmluYWwgeyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9u
KCkudW5zZXRBY3RpdmVTb3VyY2Uoc291cmNlKTsgfQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2Uq
IGFjdGl2ZVNvdXJjZSgpIGZpbmFsIHsgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0
b3J5OjpzaW5nbGV0b24oKS5hY3RpdmVTb3VyY2UoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5k
ZXggMGFjMzg0MTFlOTJjODQwM2MyODA0N2Y0ZjQ1OWRlN2JjNTU1OGUwYi4uMDYxOThkMGExZWQ3
NGM4OWQ5ZWNiMzg1OGQ1NmE4ZTBlNGMzYTdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC01
MzksMjYgKzUzOSwxMCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwogfQogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9y
eTo6c2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11
dGVkKQotewotICAgIGlmIChhdXRvKiBhY3RpdmVTb3VyY2UgPSB0aGlzLT5hY3RpdmVTb3VyY2Uo
KSkKLSAgICAgICAgYWN0aXZlU291cmNlLT5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCwgcGFn
ZU11dGVkKTsKLX0KLQotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5
OjpzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0
ZWQpCi17Ci0gICAgLy8gSW4gY2FzZSBvZiBjbG9uaW5nLCB3ZSBtaWdodCBoYXZlIG1vcmUgdGhh
biBhIHNpbmdsZSBzb3VyY2UuCi0gICAgZm9yIChhdXRvJiBzb3VyY2UgOiBtX21hbmFnZXIubV9z
b3VyY2VzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChzb3VyY2UtPmRldmljZVR5cGUoKSA9PSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgICAgICBzb3VyY2UtPnNl
dEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIH0KLX0KLQogdm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRBY3RpdmVTb3VyY2UoUmVh
bHRpbWVNZWRpYVNvdXJjZSYpCiB7CiAgICAgLy8gTXV0aW5nIGlzIGRvbmUgYnkgR1BVUHJvY2Vz
cyBmYWN0b3J5LiBXZSBkbyBub3Qgd2FudCB0byBoYW5kbGUgaXQgaGVyZSBpbiBjYXNlIG9mIHRy
YWNrIGNsb25pbmcuCiB9Ci0KICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDcyNTY0
OTg0NTA5ZDQ5MDg1OGM0Njk3MWQyNThmMGQ0ZTllNjRiZjAuLjNiYzUxZWFiOTFhNTRmZGY2MDE0
ZTYwZjk2ZjQ4NzAzNTM2ZDZhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC02Nyw5ICs2Nyw2IEBA
IHByaXZhdGU6CiAgICAgcHJpdmF0ZToKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyop
IGZpbmFsOwogICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJl
RGV2aWNlTWFuYWdlcjsgfQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIHZvaWQg
c2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVk
KSBmaW5hbDsKLSNlbmRpZgogCiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21h
bmFnZXI7CiAgICAgICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2Ug
fTsKQEAgLTg0LDcgKzgxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBt
X21hbmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgICAgICB2b2lkIHNldEFjdGl2ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlJikgZmluYWw7Ci0gICAgICAgIHZvaWQgc2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRl
KGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKSBmaW5hbDsKICNlbmRpZgogCiAgICAg
ICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjRiNDUzMGYx
NzUzM2Y0MmQyMDZmMDA5NmIwYmRiNTJkMDlhODg0Ni4uZWUwNDM4MjcyMDdiMzU1Njg2MWQ3YTM4
OTBjNjhmNWM5NjJmMTdkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA1LTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgIERpc2FibGUgR1BVIHByb2Nlc3MgdGVzdCBzaW5jZSB3
ZSBhcmUgbm90IGFibGUgeWV0IHRvIG11dGUvdW5tdXRlIGhhbmRsZSBtdWx0aXBsZSB2aWRlbyB0
cmFja3MKKyAgICAgICAgd2l0aCBkaWZmZXJlbnQgc291cmNlcyBhcyBjYW4gYmUgZG9uZSBpZiBj
YXB0dXJlIGlzIGRvbmUgb3V0IG9mIHByb2Nlc3MuCisgICAgICAgICogcGxhdGZvcm0vaW9zL21l
ZGlhc3RyZWFtL3ZpZGVvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLmh0bWw6CisgICAgICAgIFVw
ZGF0ZSB0ZXN0IHRvIGVuc3VyZSB0aGUgdHJhY2sgaXMgcHJvZHVjaW5nIGNvbnRlbnQuCisKIDIw
MjAtMDUtMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyBzaG91bGQgdW5vYnNlcnZlIHRoZSB0
cmFja3MgZnJvbSBpdHMgYXVkaW8gYW5kIHZpZGVvIHRyYWNrIHNldHMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDY3ZDBiMWZmYWYzM2EzYzNhNThlMzYy
OTc5ZmFlYzU1YjRkZWJlYy4uY2RlYjk5ZGQ2ZThjZjgwMTBlMmYzM2Q3YzUxMjlkMTM3OWNhMmZi
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI4OTks
NiArMjg5OSw4IEBAIGZhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLW1heC1jb25zdHJh
aW50czEuaHRtbCBbIFNraXAgXQogZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtbWF4
LWNvbnN0cmFpbnRzMi5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlN
ZWRpYS1tYXgtY29uc3RyYWludHMzLmh0bWwgWyBTa2lwIF0KIAord2Via2l0Lm9yZy9iLzIxMTUw
OSBwbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWIt
Z3B1LXByb2Nlc3MuaHRtbCBbIEZhaWx1cmUgXQorCiB3ZWJraXQub3JnL2IvMTc3NDAxIHdlYnJ0
Yy9jYXB0dXJlQ2FudmFzLXdlYnJ0Yy5odG1sIFsgUGFzcyBUaW1lb3V0IEZhaWx1cmUgXQogCiB3
ZWJraXQub3JnL2IvMjEwMTczIHdlYnJ0Yy9oMjY1Lmh0bWwgWyBTa2lwIF0KQEAgLTM1MzMsNCAr
MzUzNSw0IEBAIHdlYmtpdC5vcmcvYi8yMTAwNDYgWyBSZWxlYXNlIF0gc3RvcmFnZS9pbmRleGVk
ZGIvdmFsdWUtY3Vyc29yLWN5Y2xlLmh0bWwgWyBQYXNzCiBtZWRpYS9tZWRpYS1kb2N1bWVudC1h
dWRpby1yZXBhaW50Lmh0bWwgWyBTa2lwIF0KIG1lZGlhL2NvbnRyb2xzLXN0eWxpbmcuaHRtbCBb
IFNraXAgXQogCi13ZWJraXQub3JnL2IvMjExMjYxIGNvbXBvc2l0aW5nL2lmcmFtZXMvYm9yZGVy
LXJhZGl1cy1jb21wb3NpdGVkLWZyYW1lLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dlYmtpdC5vcmcvYi8yMTEyNjEgY29tcG9zaXRp
bmcvaWZyYW1lcy9ib3JkZXItcmFkaXVzLWNvbXBvc2l0ZWQtZnJhbWUuaHRtbCBbIFBhc3MgSW1h
Z2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVk
aWFzdHJlYW0vdmlkZW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWIuaHRtbCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92aWRlby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5o
dG1sCmluZGV4IDRjNTY2NjFkMjZhZjQ0NTA1NWRiNzA3OWY3NmMzNmQzYzA1Y2ViZDcuLjZiYTgx
MmUxMTFmOTdlOGFkMjZkMWFjNTM3OTY1YzM3ZTVmNzdiYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92aWRlby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRh
Yi5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92aWRlby1t
dXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1sCkBAIC0xMiw2ICsxMiwyMCBAQAogICAgICAgICAg
ICAgbGV0IGF1ZGlvVHJhY2s7CiAgICAgICAgICAgICBsZXQgdmlkZW9UcmFjazsKIAorICAgICAg
ICAgICAgYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVNZWRpYVN0cmVhbVRyYWNrSXNHZW5lcmF0aW5n
Q29udGVudCh0cmFjaykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoIXdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJlYW1UcmFjayh0cmFjayk7CisgICAgICAg
ICAgICAgICAgbGV0IGNvdW50ID0gMTAwOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAg
ICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29s
dmUsIDUwKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbHMudHJhY2tBdWRpb1Nh
bXBsZUNvdW50IHx8IGludGVybmFscy50cmFja1ZpZGVvU2FtcGxlQ291bnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlICgtLWNv
dW50ID4gMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQor
CiAgICAgICAgICAgICBwcm9taXNlX3Rlc3QoKHQpID0+IHsKICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
ck1lZGlhUGVybWlzc2lvbih0cnVlKTsKQEAgLTI1LDQ2ICszOSw0MCBAQAogICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFj
dGl2ZSIpOwogICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UodmlkZW9UcmFjay5tdXRl
ZCwgInZpZGVvIHRyYWNrIGlzIGFjdGl2ZSIpOwogICAgICAgICAgICAgICAgIH0pCisgICAgICAg
ICAgICB9LCAiU2V0dXAgc3RyZWFtIik7CiAKLSAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QoKCkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eShmYWxzZSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFj
dGl2ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5t
dXRlZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAgICAgICAgICAgICAgIH0sICJI
aWRlIHBhZ2UsIG9ubHkgdmlkZW8gc2hvdWxkIGJlIG11dGVkIik7Ci0gICAgICAgICAgICAgICAg
fSkKKyAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2ZSIpOworICAgICAg
ICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBt
dXRlZCIpOworICAgICAgICAgICAgfSwgIkhpZGUgcGFnZSwgb25seSB2aWRlbyBzaG91bGQgYmUg
bXV0ZWQiKTsKIAotICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dFBhZ2VWaXNpYmlsaXR5KHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBhY3RpdmUiKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJh
Y2sgaXMgYWN0aXZlIik7Ci0gICAgICAgICAgICAgICAgICAgIH0sICJTaG93IHBhZ2UsIHZpZGVv
IGFuZCBhdWRpbyBzaG91bGQgYmUgdW5tdXRlZCIpOwotICAgICAgICAgICAgICAgIH0pCisgICAg
ICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXRQYWdlVmlzaWJpbGl0eSh0cnVlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVk
aW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2ZSIpOworICAgICAgICAgICAgICAg
IGFzc2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhd2FpdCB2YWxpZGF0
ZU1lZGlhU3RyZWFtVHJhY2tJc0dlbmVyYXRpbmdDb250ZW50KGF1ZGlvVHJhY2spLCAiYXVkaW8g
dHJhY2siKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhd2FpdCB2YWxpZGF0ZU1lZGlh
U3RyZWFtVHJhY2tJc0dlbmVyYXRpbmdDb250ZW50KHZpZGVvVHJhY2spLCAidmlkZW8gdHJhY2si
KTsKKyAgICAgICAgICAgIH0sICJTaG93IHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUg
dW5tdXRlZCIpOwogCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgICAgICB0ZXN0KCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXRQYWdlVmlzaWJpbGl0eShmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zZXRQYWdlTXV0ZWQoImNhcHR1cmVkZXZpY2VzIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShh
dWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBt
dXRlZCIpOwotICAgICAgICAgICAgICAgICAgICB9LCAiSGlkZSBhbmQgbXV0ZSBwYWdlLCB2aWRl
byBhbmQgYXVkaW8gc2hvdWxkIGJlIG11dGVkIik7Ci0gICAgICAgICAgICAgICAgfSkKLQotICAg
ICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5
KHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5t
dXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAg
ICAgICAgICAgICAgICAgICAgfSwgIlNob3cgcGFnZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBy
ZW1haW4gbXV0ZWQiKTsKLSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgfSwgIlNldHVw
IHN0cmVhbSIpOworICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eShmYWxzZSk7CisgICAgICAgICAgICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZU11dGVkKCJjYXB0dXJlZGV2aWNlcyIpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNr
Lm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
dHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAg
ICAgIH0sICJIaWRlIGFuZCBtdXRlIHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgbXV0
ZWQiKTsKIAorICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkodHJ1ZSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlz
IG11dGVkIik7CisgICAgICAgICAgICB9LCAiU2hvdyBwYWdlLCB2aWRlbyBhbmQgYXVkaW8gc2hv
dWxkIHJlbWFpbiBtdXRlZCIpOwogICAgICAgICA8L3NjcmlwdD4KICAgICA8L2JvZHk+Ci08L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398715</attachid>
            <date>2020-05-07 01:57:45 -0700</date>
            <delta_ts>2020-05-07 02:00:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211509-20200507105743.patch</filename>
            <type>text/plain</type>
            <size>30664</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M1YmI0ZDM5MzZkMGZh
MDFiY2M4YTM1YzhlYTAwOTE1MjI2NTU5Ny4uN2RjYzA4ODE1NjVjMTk1ODRiYjU5ZWJlZWUyZDg2
OGQwMjQ5NzJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzZXRJbnRlcnJ1
cHRlZCBhbmQgcmVsYXRlZCBjb2RlLgorICAgICAgICBJbnN0ZWFkLCBkaXJlY3RseSB1c2Ugc2V0
TXV0ZWQodHJ1ZS9mYWxzZSkgb2YgdGhlIHNvdXJjZSBvZiBjYXB0dXJlIHRyYWNrcy4KKyAgICAg
ICAgVG8gZW5zdXJlIHdlIHZhbGlkYXRlIHRoYXQgdGhlIGFjdGl2ZSBzb3VyY2UgaXMgdGllZCB0
byBhIHRyYWNrIG9mIHRoZSBkb2N1bWVudCwKKyAgICAgICAgd2UgYWRkIFJlYWx0aW1lU291cmNl
Ojppc1NhbWVBcyB3aGljaCBoYW5kbGVzIHRoZSBjYXNlIG9mIGEgUmVhbHRpbWVWaWRlb1NvdXJj
ZSB3cmFwcGluZyBhbiBBVlZpZGVvQ2FwdHVyZVNvdXJjZS4KKyAgICAgICAgVGhlcmUgbWlnaHQg
YmUgbXVsdGlwbGUgdmlkZW8gdHJhY2tzIHdpdGggZWFjaCBvbmUgaXRzIFJlYWx0aW1lVmlkZW9T
b3VyY2UgdXNpbmcgdGhlIHNhbWUgQVZWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAgICAgIFdlIG11
dGUgdGhlIEFWVmlkZW9DYXB0dXJlU291cmNlIGRpcmVjdGx5IHRvIG1ha2Ugc3VyZSBhbGwgbGlu
a2VkIHRyYWNrcyB3aWxsIGdldCBtdXRlZC91bm11dGVkIGF0IHRoZSBzYW1lIHRpbWUuCisgICAg
ICAgIFRlc3RzIHRvIGJlIGZpeGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6
Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6aXNTb3VyY2VDYXB0dXJpbmdG
b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVD
YXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisKIDIwMjAtMDUtMDYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDIzODY2ZDZkODc3YjIyNjQ3MjYwYWM3NTg1NWNmZmEyOTIyY2JjYTcuLmM3NDBlYzJkNzlk
ZDEwYTNjNTdlZTdhOWI3MzZjMmZkMjJhYjEyNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDUtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IFZpZGVvIGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0ZWQgaW4gY2FzZSBvZiB0YWIgc3dpdGNo
IG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExNTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgY29kZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRBY3RpdmVTb3VyY2UpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAyMC0w
NS0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2VuZGlu
ZyBXZWJSVEMgbmV0d29yayBwYWNrZXRzIHNob3VsZCBub3QgZ28gdGhyb3VnaCB0aGUgbWFpbiB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQwYjJjYjlmZDBhYTFiZDFmMjlhY2VkYzViNjA5Mzk3
NzRhMTFjYjAuLjI3Y2U5MWIyMGY3MTdiODU2ZTUxYmVkMjE4MzJmNTQ0YzI5NDE4ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtNjgsNiAr
NjksMTAgQEAgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogewogICAgIGF1dG8gdHJhY2sgPSBhZG9w
dFJlZigqbmV3IE1lZGlhU3RyZWFtVHJhY2soY29udGV4dCwgV1RGTW92ZShwcml2YXRlVHJhY2sp
KSk7CiAgICAgdHJhY2stPnN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgaWYgKHRyYWNrLT5pc0Nh
cHR1cmVUcmFjaygpKQorICAgICAgICB0cmFjay0+dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpOwor
CiAgICAgcmV0dXJuIHRyYWNrOwogfQogCkBAIC04NywxMSArOTIsNiBAQCBNZWRpYVN0cmVhbVRy
YWNrOjpNZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJl
ZjxNZWRpYVN0cgogCiAgICAgaWYgKG1fcHJpdmF0ZS0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvKQogICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6
OnNoYXJlZE1hbmFnZXIoKS5hZGRBdWRpb0NhcHR1cmVTb3VyY2UoKnRoaXMpOwotCi0gICAgaWYg
KGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChkb2N1bWVu
dC0+cGFnZSgpICYmIGRvY3VtZW50LT5wYWdlKCktPm11dGVkU3RhdGUoKSkKLSAgICAgICAgICAg
IHNldE11dGVkKHRydWUpOwotICAgIH0KIH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1lZGlhU3Ry
ZWFtVHJhY2soKQpAQCAtMTk1LDI2ICsxOTUsNiBAQCBib29sIE1lZGlhU3RyZWFtVHJhY2s6Om11
dGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2YXRlLT5tdXRlZCgpOwogfQogCi12b2lkIE1l
ZGlhU3RyZWFtVHJhY2s6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBz
dGF0ZSkKLXsKLSAgICBib29sIHRyYWNrTXV0ZWQgPSBmYWxzZTsKLSAgICBzd2l0Y2ggKHNvdXJj
ZSgpLmRldmljZVR5cGUoKSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZToKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToK
LSAgICAgICAgdHJhY2tNdXRlZCA9IHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRl
b0NhcHR1cmVJc011dGVkOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKLSAgICAgICAgdHJhY2tNdXRlZCA9IHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6U2Ny
ZWVuQ2FwdHVyZUlzTXV0ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQodHJhY2tNdXRl
ZCk7Ci19Ci0KIGF1dG8gTWVkaWFTdHJlYW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNvbnN0IC0+IFN0
YXRlCiB7CiAgICAgcmV0dXJuIGVuZGVkKCkgPyBTdGF0ZTo6RW5kZWQgOiBTdGF0ZTo6TGl2ZTsK
QEAgLTQ2OCw0NCArNDQ4LDY3IEBAIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRp
YVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiB9CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotc3RhdGljIE1lZGlhU3RyZWFtVHJhY2sqIGZpbmRBY3RpdmVD
YXB0dXJlVHJhY2tGb3JEb2N1bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFJlYWx0aW1lTWVkaWFT
b3VyY2UqIGFjdGl2ZVNvdXJjZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKQorc3Rh
dGljIGJvb2wgaXNTb3VyY2VDYXB0dXJpbmdGb3JEb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNl
JiBzb3VyY2UsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVN0cmVhbVRyYWNrKiBz
ZWxlY3RlZFRyYWNrID0gbnVsbHB0cjsKLSAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFs
bENhcHR1cmVUcmFja3MoKSkgewotICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgp
ICE9ICZkb2N1bWVudCB8fCBjYXB0dXJlVHJhY2stPmVuZGVkKCkpCisgICAgZm9yIChhdXRvKiB0
cmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgeworICAgICAgICBpZiAodHJhY2stPmRvY3VtZW50
KCkgIT0gJmRvY3VtZW50IHx8IHRyYWNrLT5lbmRlZCgpKQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgaWYgKCZjYXB0dXJlVHJhY2stPnNvdXJjZSgpID09IGFjdGl2ZVNvdXJjZSkK
LSAgICAgICAgICAgIHJldHVybiBjYXB0dXJlVHJhY2s7Ci0KLSAgICAgICAgLy8gSWYgdGhlIGRv
Y3VtZW50IGhhcyBhIGxpdmUgY2FwdHVyZSB0cmFjaywgd2hpY2ggaXMgbm90IHRoZSBhY3RpdmUg
b25lLCB3ZSBwaWNrIHRoZSBmaXJzdCBvbmUuCi0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cHJvYmFibHkgc3RvcmUgcGVyIHBhZ2UgYWN0aXZlIGF1ZGlvL3ZpZGVvIGNhcHR1cmUgdHJhY2tz
LgotICAgICAgICBpZiAoIXNlbGVjdGVkVHJhY2sgJiYgY2FwdHVyZVRyYWNrLT5wcml2YXRlVHJh
Y2soKS50eXBlKCkgPT0gdHlwZSkKLSAgICAgICAgICAgIHNlbGVjdGVkVHJhY2sgPSBjYXB0dXJl
VHJhY2s7CisgICAgICAgIGlmICh0cmFjay0+c291cmNlKCkuaXNTYW1lQXMoc291cmNlKSkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gc2VsZWN0ZWRUcmFjazsK
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYKIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1
cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvKiBhY3RpdmVB
dWRpb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYXV0byogYXVkaW9DYXB0
dXJlVHJhY2sgPSBmaW5kQWN0aXZlQ2FwdHVyZVRyYWNrRm9yRG9jdW1lbnQoZG9jdW1lbnQsIGFj
dGl2ZUF1ZGlvU291cmNlLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykpCi0gICAg
ICAgIGF1ZGlvQ2FwdHVyZVRyYWNrLT5zZXRNdXRlZChkb2N1bWVudC5wYWdlKCktPm11dGVkU3Rh
dGUoKSk7CisgICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9y
RG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1bWVudCkpIHsKKyAgICAgICAgYm9vbCBw
YWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZp
ZGVvQ2FwdHVyZUlzTXV0ZWQ7CisgICAgICAgIGFjdGl2ZUF1ZGlvU291cmNlLT5zZXRNdXRlZChw
YWdlTXV0ZWQgfHwgKGRvY3VtZW50LmhpZGRlbigpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuaW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRW5h
YmxlZCgpKSk7CisgICAgfQogCiAgICAgYXV0byogYWN0aXZlVmlkZW9Tb3VyY2UgPSBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuYWN0
aXZlU291cmNlKCk7Ci0gICAgaWYgKGF1dG8qIHZpZGVvQ2FwdHVyZVRyYWNrID0gZmluZEFjdGl2
ZUNhcHR1cmVUcmFja0ZvckRvY3VtZW50KGRvY3VtZW50LCBhY3RpdmVWaWRlb1NvdXJjZSwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pKQotICAgICAgICB2aWRlb0NhcHR1cmVUcmFj
ay0+c2V0TXV0ZWQoZG9jdW1lbnQucGFnZSgpLT5tdXRlZFN0YXRlKCkpOworICAgIGlmIChhY3Rp
dmVWaWRlb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvckRvY3VtZW50KCphY3RpdmVWaWRl
b1NvdXJjZSwgZG9jdW1lbnQpKSB7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0
ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkOwor
ICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50
LmhpZGRlbigpKTsKKyAgICB9CiAjZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDog
YWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50
KCkgIT0gJmRvY3VtZW50IHx8IGNhcHR1cmVUcmFjay0+ZW5kZWQoKSkKLSAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBjYXB0dXJlVHJhY2stPnNldE11dGVkKGRvY3VtZW50LnBhZ2UoKS0+
bXV0ZWRTdGF0ZSgpKTsKKyAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKSA9PSAm
ZG9jdW1lbnQgJiYgIWNhcHR1cmVUcmFjay0+ZW5kZWQoKSkKKyAgICAgICAgICAgIGNhcHR1cmVU
cmFjay0+dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpOwogICAgIH0KICNlbmRpZgogfQogCit2b2lk
IE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKQoreworICAgIEFTU0VS
VChpc0NhcHR1cmVUcmFjaygpKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChzb3VyY2Uo
KS5kZXZpY2VUeXBlKCkpIHsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmU6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6Cisg
ICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9k
dWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQo
cGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVu
a25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICB9Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9j
dW1lbnQpCiB7CiAgICAgYm9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4
IDAyZmQ0NTRiNmExZGEzYzU0YmRhM2IyMDQ5ZThlMDNmN2NhY2RiMGEuLmIwMGYwNDkzMzIwZGE4
ZTlhNTA0ZWU1NmRhZjU4ZTIwN2NjMTFjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC04Nyw3ICs4Nyw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCk7CiAKICAgICBib29sIG11dGVkKCkg
Y29uc3Q7Ci0gICAgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mp
OwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IExpdmUsIEVuZGVkIH07CiAgICAgU3RhdGUgcmVh
ZHlTdGF0ZSgpIGNvbnN0OwpAQCAtMTY5LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNrJik7CiAKICAgICB2b2lkIGNvbmZp
Z3VyZVRyYWNrUmVuZGVyaW5nKCk7CisgICAgdm9pZCB1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCk7
CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIHZvaWQgc3RvcCgpIGZpbmFsIHsg
c3RvcFRyYWNrKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE4NDRiZjI5YmJmN2M1
YzAxMGFjY2M5OWI2OWQxN2JlMjg1M2JmOWEuLjVmYjczNDI4MGMyNmI5OTg1MjVkNTg3ZDc1Yzcy
NzkyMmIyZDNiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTc0OSwxNyArMTc0OSwx
MCBAQCB2b2lkIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKICAgICBmb3IgKGF1
dG8qIGNsaWVudCA6IG1fdmlzaWJpbGl0eVN0YXRlQ2FsbGJhY2tDbGllbnRzKQogICAgICAgICBj
bGllbnQtPnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKTsKIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0gICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiBoaWRk
ZW4oKSkgewotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5z
ZXRDYXB0dXJlUGFnZVN0YXRlKHRydWUsIHBhZ2UtPmlzTWVkaWFDYXB0dXJlTXV0ZWQoKSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICghUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaXNJbnRlcnJ1cHRlZCgpKQog
ICAgICAgICBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0
YXRlKCp0aGlzKTsKICNlbmRpZgotI2VuZGlmCiB9CiAKIFZpc2liaWxpdHlTdGF0ZSBEb2N1bWVu
dDo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNWI0
NDI0NTNmMjk1N2ZkNDQ2YjA5YzM5YzkxOWI0ODQyYjUwMGZhMi4uNmU5ZjViOTZlMTVlMDg4Yjhh
MTg3ODFkOWY3MDQ0ZGRlZjZjOGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTg4LDE2
ICs4OCw2IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImIG9ic2VydmVyKQogICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOwogfQogCi12b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OnNldEludGVycnVwdGVkKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wg
cGFnZU11dGVkKQotewotI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFN
KHBhZ2VNdXRlZCk7Ci0jZW5kaWYKLQotICAgIEFMV0FZU19MT0dfSUYobV9sb2dnZXIsIExPR0lE
RU5USUZJRVIsIGludGVycnVwdGVkLCAiLCBwYWdlIG11dGVkIDogIiwgcGFnZU11dGVkKTsKLSAg
ICBzZXRNdXRlZChpbnRlcnJ1cHRlZCk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKG1fbG9nZ2VyLCBMT0dJ
REVOVElGSUVSLCBtdXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNjZhYTM1MDRhNzIwNTE1
OWI1NGU1NjQwNzk5ZWY2MzU1ZjliYTBlOS4uZjhhYmFhM2FlYmViYmU2M2VlZGUxZjVkMzAyMjdk
ODg0ZWI0ODE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMTI3LDcgKzEyNyw2IEBAIHB1Ymxp
YzoKICAgICBib29sIGNhcHR1cmVEaWRGYWlsKCkgY29uc3QgeyByZXR1cm4gbV9jYXB0dXJlRGlk
RmFpbGVkOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCB7IHJldHVy
biBtX2ludGVycnVwdGVkOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEludGVycnVwdGVkKGJvb2ws
IGJvb2wpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1l
OyB9CiAgICAgdm9pZCBzZXROYW1lKFN0cmluZyYmIG5hbWUpIHsgbV9uYW1lID0gV1RGTW92ZShu
YW1lKTsgfQpAQCAtMTkzLDYgKzE5Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBj
YXB0dXJlRmFpbGVkKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lQXMoUmVhbHRpbWVNZWRp
YVNvdXJjZSYgc291cmNlKSBjb25zdCB7IHJldHVybiB0aGlzID09ICZzb3VyY2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ1ZpZGVvU291cmNlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBkYzQ4
YTc1NmY3Y2FjOWZmY2Q4ZjVmZWE0ODExZDYyYzUxNjBiYmU0Li4yZDMyYjI0M2IxYTk2NmVkZmIw
YmJhZDhmMGU0MmI2ZGM0MWNjOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgotI2lu
Y2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvU0hBMS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzEsMTMgKzI3MCw2IEBAIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJh
aW50c0hhbmRsCiAgICAgdmFsaWRIYW5kbGVyKFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92
ZSh2aWRlb0RldmljZXMpLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOwogfQog
Ci12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldENhcHR1cmVQYWdlU3RhdGUoYm9v
bCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5
Q2hhbmdlRW5hYmxlZCgpKQotICAgICAgICBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QXVkaW9D
YXB0dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIHZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKS5zZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoaW50ZXJydXB0ZWQsIHBhZ2VNdXRl
ZCk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9DYXB0dXJl
RmFjdG9yeShBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQogewogICAgIG1fYXVkaW9DYXB0
dXJlRmFjdG9yeU92ZXJyaWRlID0gJmZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmgKaW5kZXggMTBkZGIyOTAzYzFjZDk2MjIxZmQ1ZGYwMWEzOWI5MTBkZWE5OGI1Yi4uMDI4Mjg2
NThlMDllYWRlOTcyMTE4YWRlY2RjMTdmMzY0ZmVhMzBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuaApAQCAtODYsOCArODYsNiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYp
OwogCi0gICAgdm9pZCBzZXRDYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wg
cGFnZU11dGVkKTsKLQogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2li
aWxpdHlDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCmluZGV4IDMwMzQ0
MWQ1YWI4MzJjMzU3MDdmNjFmYjVjZWM5ODNkYjQwYzdiYzcuLmEzMjYyOGI3YTE2MDkzNWFjYjhi
NzUzMTEzZjgzODU1M2E2ZWI4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaApA
QCAtNjAsMTEgKzYwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZhY3Rv
cnkoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXIm
IGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEF1
ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLSAg
ICB7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShpbnRlcnJ1cHRlZCk7Ci0gICAgICAgIFVOVVNFRF9Q
QVJBTShwYWdlTXV0ZWQpOwotICAgIH0KIAogcHJvdGVjdGVkOgogICAgIEF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKSA9IGRlZmF1bHQ7CkBAIC03OSwxMSArNzQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+VmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CiAgICAgdmlydHVhbCBD
YXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQs
IGJvb2wgcGFnZU11dGVkKQotICAgIHsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGludGVycnVwdGVk
KTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKHBhZ2VNdXRlZCk7Ci0gICAgfQogCiBwcm90ZWN0ZWQ6
CiAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApp
bmRleCBiZWFkM2I5NWQ5NTdlOGM2MTI0MTUzNzNhMDNkZjdhMDIzOTlhNzJlLi5jY2NlOWI5YWEx
OTcwM2UwOTU3MzNlZDI3YTIzYzMzOGY2MzhhZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00
MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVhbHRpbWVWaWRlb1NvdXJjZShS
ZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYpOwogICAgIH5SZWFsdGltZVZpZGVvU291
cmNlKCk7CiAKLSAgICAvLyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgIC8vIFJlYWx0
aW1lTWVkaWFTaW91cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c1NpemVB
bmRGcmFtZVJhdGUoT3B0aW9uYWw8aW50PiB3aWR0aCwgT3B0aW9uYWw8aW50PiBoZWlnaHQsIE9w
dGlvbmFsPGRvdWJsZT4gZnJhbWVSYXRlKSBmaW5hbDsKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0
ZToKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3NvdXJjZS0+ZGV2aWNlVHlwZSgpOyB9CiAgICAgdm9pZCBtb25pdG9yT3Jp
ZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYgbm90aWZpZXIpIGZpbmFsIHsgbV9zb3VyY2Ut
Pm1vbml0b3JPcmllbnRhdGlvbihub3RpZmllcik7IH0KICAgICBib29sIGludGVycnVwdGVkKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UtPmludGVycnVwdGVkKCk7IH0KKyAgICBib29s
IGlzU2FtZUFzKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgY29uc3QgZmluYWwgeyByZXR1
cm4gdGhpcyA9PSAmc291cmNlIHx8IG1fc291cmNlLnB0cigpID09ICZzb3VyY2U7IH0KIAogICAg
IC8vIE9ic2VydmVyCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
aW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KaW5kZXggOGQ5NzA0MWMxNGQzZmFlNzVl
NjY1YjVjZmEwMjJiYTU3ZTIwNzMyNi4uNGEyMDQ3YmM0NDNhNjU2NjI0ZDMxYjA1YmZhNzgyYTE4
N2U1MjUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
aW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KQEAgLTEw
MiwxMiArMTAyLDYgQEAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKQogICAgIHJldHVybiBmYWN0b3J5LmdldCgp
OwogfQogCi12b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzZXRBdWRpb0NhcHR1
cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYg
KGF1dG8qIGFjdGl2ZVNvdXJjZSA9IHRoaXMtPmFjdGl2ZVNvdXJjZSgpKQotICAgICAgICBhY3Rp
dmVTb3VyY2UtPnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotfQotCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1NfRkFNSUxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggZTRlODliZjBkOGVlNTE1M2Ni
YTUwYjk4ODIzOGIxMTg1MjYzYzVhMC4uOGQ5NTI4MjQ0MDAyNjg4MWIwNDBlYzI1Y2ExNWViZGY0
ZTM1OWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC0xMTUsMTAgKzEx
NSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGV2aWNlc0NoYW5nZWQoY29uc3QgVmVjdG9yPENh
cHR1cmVEZXZpY2U+Jik7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0
QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKSBm
aW5hbDsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXgg
MGJlZDU4OWE0MDY1ZmNkYzFhNTI3MmQxNGFmNTU2OGE0YTZkYmM1NS4uM2UzYWE0ZWQ4NmQ1Yjhm
YzIwODNlMmU1ZGY4MGJmOWRlZDFiOGMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjLmNwcApAQCAtNTMsMTQgKzUzLDYgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0VmlkZW9DYXB0
dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotICAgIHsKLSAg
ICAgICAgaWYgKGFjdGl2ZVNvdXJjZSgpKQotICAgICAgICAgICAgYWN0aXZlU291cmNlKCktPnNl
dEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIH0KLSNlbmRpZgotCiAg
ICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSB7IHJl
dHVybiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsgfQogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBmYzQyZjZiYTdhZGViOTU2OTQxMzBmYWJiODY2Nzg2
MzJlNWM5OGE5Li43MjRlMTUzOGMwZDFhY2I4OWVkZTg0MWI2ODA1ODk1ZGE2OWQ3OTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTAyLDEzICsxMDIsNiBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRW
aWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZp
bmFsCi0gICAgewotICAgICAgICBpZiAoYWN0aXZlU291cmNlKCkpCi0gICAgICAgICAgICBhY3Rp
dmVTb3VyY2UoKS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAg
fQotI2VuZGlmCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1h
bmFnZXIoKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkudmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpOyB9CiB9OwogCkBAIC0xOTEsNyAr
MTg0LDYgQEAgcHVibGljOgogICAgIH0KIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICB2b2lkIHNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBi
b29sIHBhZ2VNdXRlZCkgZmluYWwgeyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2lu
Z2xldG9uKCkuc2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdlTXV0ZWQp
OyB9CiAgICAgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNl
KSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRB
Y3RpdmVTb3VyY2Uoc291cmNlKTsgfQogICAgIHZvaWQgdW5zZXRBY3RpdmVTb3VyY2UoUmVhbHRp
bWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0
b3J5OjpzaW5nbGV0b24oKS51bnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9CiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSogYWN0aXZlU291cmNlKCkgZmluYWwgeyByZXR1cm4gQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLmFjdGl2ZVNvdXJjZSgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAppbmRleCAwYWMzODQxMWU5MmM4NDAzYzI4MDQ3ZjRmNDU5ZGU3YmM1NTU4ZTBi
Li4wNjE5OGQwYTFlZDc0Yzg5ZDllY2IzODU4ZDU2YThlMGU0YzNhN2ZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAKQEAgLTUzOSwyNiArNTM5LDEwIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiB9
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6QXVkaW9GYWN0b3J5OjpzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRl
ZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYgKGF1dG8qIGFjdGl2ZVNvdXJjZSA9IHRoaXMt
PmFjdGl2ZVNvdXJjZSgpKQotICAgICAgICBhY3RpdmVTb3VyY2UtPnNldEludGVycnVwdGVkKGlu
dGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotfQotCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpWaWRlb0ZhY3Rvcnk6OnNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVk
LCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICAvLyBJbiBjYXNlIG9mIGNsb25pbmcsIHdlIG1pZ2h0
IGhhdmUgbW9yZSB0aGFuIGEgc2luZ2xlIHNvdXJjZS4KLSAgICBmb3IgKGF1dG8mIHNvdXJjZSA6
IG1fbWFuYWdlci5tX3NvdXJjZXMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHNvdXJjZS0+ZGV2
aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAg
ICAgIHNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAg
fQotfQotCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldEFj
dGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJikKIHsKICAgICAvLyBNdXRpbmcgaXMgZG9u
ZSBieSBHUFVQcm9jZXNzIGZhY3RvcnkuIFdlIGRvIG5vdCB3YW50IHRvIGhhbmRsZSBpdCBoZXJl
IGluIGNhc2Ugb2YgdHJhY2sgY2xvbmluZy4KIH0KLQogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmgKaW5kZXggNzI1NjQ5ODQ1MDlkNDkwODU4YzQ2OTcxZDI1OGYwZDRlOWU2NGJmMC4uM2JjNTFl
YWI5MWE1NGZkZjYwMTRlNjBmOTZmNDg3MDM1MzZkNmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAg
LTY3LDkgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBwcml2YXRlOgogICAgICAgICBXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5h
Z2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5hZ2Vy
Lm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICAgICAgdm9pZCBzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwg
Ym9vbCBwYWdlTXV0ZWQpIGZpbmFsOwotI2VuZGlmCiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1fbWFuYWdlcjsKICAgICAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MgeyBmYWxzZSB9OwpAQCAtODQsNyArODEsNiBAQCBwcml2YXRlOgogICAgICAgICBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZp
bmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIHZvaWQgc2V0QWN0aXZlU291cmNlKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBzZXRWaWRlb0Nh
cHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZpbmFsOwog
I2VuZGlmCiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmNGI0NTMwZjE3NTMzZjQyZDIwNmYwMDk2YjBiZGI1MmQwOWE4ODQ2Li5lZTA0MzgyNzIw
N2IzNTU2ODYxZDdhMzg5MGM2OGY1Yzk2MmYxN2Q0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjAtMDUtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFZp
ZGVvIGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0ZWQgaW4gY2FzZSBvZiB0YWIgc3dpdGNoIG9u
IGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEx
NTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgRGlzYWJsZSBHUFUgcHJvY2Vz
cyB0ZXN0IHNpbmNlIHdlIGFyZSBub3QgYWJsZSB5ZXQgdG8gbXV0ZS91bm11dGUgaGFuZGxlIG11
bHRpcGxlIHZpZGVvIHRyYWNrcworICAgICAgICB3aXRoIGRpZmZlcmVudCBzb3VyY2VzIGFzIGNh
biBiZSBkb25lIGlmIGNhcHR1cmUgaXMgZG9uZSBvdXQgb2YgcHJvY2Vzcy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vdmlkZW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWIuaHRt
bDoKKyAgICAgICAgVXBkYXRlIHRlc3QgdG8gZW5zdXJlIHRoZSB0cmFjayBpcyBwcm9kdWNpbmcg
Y29udGVudC4KKwogMjAyMC0wNS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHNob3VsZCB1
bm9ic2VydmUgdGhlIHRyYWNrcyBmcm9tIGl0cyBhdWRpbyBhbmQgdmlkZW8gdHJhY2sgc2V0cwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwNjdkMGIxZmZh
ZjMzYTNjM2E1OGUzNjI5NzlmYWVjNTViNGRlYmVjLi5jZGViOTlkZDZlOGNmODAxMGUyZjMzZDdj
NTEyOWQxMzc5Y2EyZmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjg5OSw2ICsyODk5LDggQEAgZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVk
aWEtbWF4LWNvbnN0cmFpbnRzMS5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlhc3RyZWFtL2dldERp
c3BsYXlNZWRpYS1tYXgtY29uc3RyYWludHMyLmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWFzdHJl
YW0vZ2V0RGlzcGxheU1lZGlhLW1heC1jb25zdHJhaW50czMuaHRtbCBbIFNraXAgXQogCit3ZWJr
aXQub3JnL2IvMjExNTA5IHBsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9hdWRpby1tdXRlZC1pbi1i
YWNrZ3JvdW5kLXRhYi1ncHUtcHJvY2Vzcy5odG1sIFsgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcv
Yi8xNzc0MDEgd2VicnRjL2NhcHR1cmVDYW52YXMtd2VicnRjLmh0bWwgWyBQYXNzIFRpbWVvdXQg
RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMTAxNzMgd2VicnRjL2gyNjUuaHRtbCBbIFNraXAg
XQpAQCAtMzUzMyw0ICszNTM1LDQgQEAgd2Via2l0Lm9yZy9iLzIxMDA0NiBbIFJlbGVhc2UgXSBz
dG9yYWdlL2luZGV4ZWRkYi92YWx1ZS1jdXJzb3ItY3ljbGUuaHRtbCBbIFBhc3MKIG1lZGlhL21l
ZGlhLWRvY3VtZW50LWF1ZGlvLXJlcGFpbnQuaHRtbCBbIFNraXAgXQogbWVkaWEvY29udHJvbHMt
c3R5bGluZy5odG1sIFsgU2tpcCBdCiAKLXdlYmtpdC5vcmcvYi8yMTEyNjEgY29tcG9zaXRpbmcv
aWZyYW1lcy9ib3JkZXItcmFkaXVzLWNvbXBvc2l0ZWQtZnJhbWUuaHRtbCBbIFBhc3MgSW1hZ2VP
bmx5RmFpbHVyZSBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0Lm9yZy9iLzIx
MTI2MSBjb21wb3NpdGluZy9pZnJhbWVzL2JvcmRlci1yYWRpdXMtY29tcG9zaXRlZC1mcmFtZS5o
dG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92aWRlby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1s
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL3ZpZGVvLW11dGVkLWluLWJh
Y2tncm91bmQtdGFiLmh0bWwKaW5kZXggNGM1NjY2MWQyNmFmNDQ1MDU1ZGI3MDc5Zjc2YzM2ZDNj
MDVjZWJkNy4uNmJhODEyZTExMWY5N2U4YWQyNmQxYWM1Mzc5NjVjMzdlNWY3N2JhMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL3ZpZGVvLW11dGVkLWlu
LWJhY2tncm91bmQtdGFiLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlh
c3RyZWFtL3ZpZGVvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLmh0bWwKQEAgLTEyLDYgKzEyLDIw
IEBACiAgICAgICAgICAgICBsZXQgYXVkaW9UcmFjazsKICAgICAgICAgICAgIGxldCB2aWRlb1Ry
YWNrOwogCisgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiB2YWxpZGF0ZU1lZGlhU3RyZWFtVHJh
Y2tJc0dlbmVyYXRpbmdDb250ZW50KHRyYWNrKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLm9ic2VydmVNZWRpYVN0cmVhbVRyYWNrKHRy
YWNrKTsKKyAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAxMDA7CisgICAgICAgICAgICAgICAg
ZG8geworICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNl
dFRpbWVvdXQocmVzb2x2ZSwgNTApKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGludGVybmFs
cy50cmFja0F1ZGlvU2FtcGxlQ291bnQgfHwgaW50ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3Vu
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAg
IH0gd2hpbGUgKC0tY291bnQgPiAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICB9CisKICAgICAgICAgICAgIHByb21pc2VfdGVzdCgodCkgPT4gewogICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwpAQCAtMjUsNDYgKzM5LDQwIEBA
CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVk
aW8gdHJhY2sgaXMgYWN0aXZlIik7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh2
aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7CiAgICAgICAgICAgICAg
ICAgfSkKKyAgICAgICAgICAgIH0sICJTZXR1cCBzdHJlYW0iKTsKIAotICAgICAgICAgICAgICAg
IC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVk
aW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1
ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAgICAgICAgICAg
ICAgICAgICAgfSwgIkhpZGUgcGFnZSwgb25seSB2aWRlbyBzaG91bGQgYmUgbXV0ZWQiKTsKLSAg
ICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkoZmFsc2UpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgYWN0
aXZlIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZp
ZGVvIHRyYWNrIGlzIG11dGVkIik7CisgICAgICAgICAgICB9LCAiSGlkZSBwYWdlLCBvbmx5IHZp
ZGVvIHNob3VsZCBiZSBtdXRlZCIpOwogCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2
ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2subXV0
ZWQsICJ2aWRlbyB0cmFjayBpcyBhY3RpdmUiKTsKLSAgICAgICAgICAgICAgICAgICAgfSwgIlNo
b3cgcGFnZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSB1bm11dGVkIik7Ci0gICAgICAgICAg
ICAgICAgfSkKKyAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KHRydWUpOworICAgICAgICAgICAgICAgIGFz
c2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgYWN0aXZlIik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFj
ayBpcyBhY3RpdmUiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGFzc2VydF90cnVl
KGF3YWl0IHZhbGlkYXRlTWVkaWFTdHJlYW1UcmFja0lzR2VuZXJhdGluZ0NvbnRlbnQoYXVkaW9U
cmFjayksICJhdWRpbyB0cmFjayIpOworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGF3YWl0
IHZhbGlkYXRlTWVkaWFTdHJlYW1UcmFja0lzR2VuZXJhdGluZ0NvbnRlbnQodmlkZW9UcmFjayks
ICJ2aWRlbyB0cmFjayIpOworICAgICAgICAgICAgfSwgIlNob3cgcGFnZSwgdmlkZW8gYW5kIGF1
ZGlvIHNob3VsZCBiZSB1bm11dGVkIik7CiAKLSAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QoKCkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VNdXRlZCgiY2FwdHVyZWRldmlj
ZXMiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZp
ZGVvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAgICAgICAgICAgICAgIH0sICJIaWRlIGFuZCBt
dXRlIHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgbXV0ZWQiKTsKLSAgICAgICAgICAg
ICAgICB9KQotCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
ICAgICB0ZXN0KCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFnZVZpc2liaWxpdHkodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBp
cyBtdXRlZCIpOwotICAgICAgICAgICAgICAgICAgICB9LCAiU2hvdyBwYWdlLCB2aWRlbyBhbmQg
YXVkaW8gc2hvdWxkIHJlbWFpbiBtdXRlZCIpOwotICAgICAgICAgICAgICAgIH0pCi0gICAgICAg
ICAgICB9LCAiU2V0dXAgc3RyZWFtIik7CisgICAgICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMg
KHQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsK
KyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlTXV0ZWQoImNhcHR1
cmVkZXZpY2VzIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFzc2VydF90
cnVlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOworICAgICAgICAg
ICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBtdXRl
ZCIpOworICAgICAgICAgICAgfSwgIkhpZGUgYW5kIG11dGUgcGFnZSwgdmlkZW8gYW5kIGF1ZGlv
IHNob3VsZCBiZSBtdXRlZCIpOwogCisgICAgICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQp
ID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAg
ICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eSh0cnVlKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMg
bXV0ZWQiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAi
dmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAgICAgIH0sICJTaG93IHBhZ2UsIHZpZGVv
IGFuZCBhdWRpbyBzaG91bGQgcmVtYWluIG11dGVkIik7CiAgICAgICAgIDwvc2NyaXB0PgogICAg
IDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398716</attachid>
            <date>2020-05-07 02:00:52 -0700</date>
            <delta_ts>2020-05-07 04:19:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211509-20200507110050.patch</filename>
            <type>text/plain</type>
            <size>30791</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M1YmI0ZDM5MzZkMGZh
MDFiY2M4YTM1YzhlYTAwOTE1MjI2NTU5Ny4uN2RjYzA4ODE1NjVjMTk1ODRiYjU5ZWJlZWUyZDg2
OGQwMjQ5NzJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzZXRJbnRlcnJ1
cHRlZCBhbmQgcmVsYXRlZCBjb2RlLgorICAgICAgICBJbnN0ZWFkLCBkaXJlY3RseSB1c2Ugc2V0
TXV0ZWQodHJ1ZS9mYWxzZSkgb2YgdGhlIHNvdXJjZSBvZiBjYXB0dXJlIHRyYWNrcy4KKyAgICAg
ICAgVG8gZW5zdXJlIHdlIHZhbGlkYXRlIHRoYXQgdGhlIGFjdGl2ZSBzb3VyY2UgaXMgdGllZCB0
byBhIHRyYWNrIG9mIHRoZSBkb2N1bWVudCwKKyAgICAgICAgd2UgYWRkIFJlYWx0aW1lU291cmNl
Ojppc1NhbWVBcyB3aGljaCBoYW5kbGVzIHRoZSBjYXNlIG9mIGEgUmVhbHRpbWVWaWRlb1NvdXJj
ZSB3cmFwcGluZyBhbiBBVlZpZGVvQ2FwdHVyZVNvdXJjZS4KKyAgICAgICAgVGhlcmUgbWlnaHQg
YmUgbXVsdGlwbGUgdmlkZW8gdHJhY2tzIHdpdGggZWFjaCBvbmUgaXRzIFJlYWx0aW1lVmlkZW9T
b3VyY2UgdXNpbmcgdGhlIHNhbWUgQVZWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAgICAgIFdlIG11
dGUgdGhlIEFWVmlkZW9DYXB0dXJlU291cmNlIGRpcmVjdGx5IHRvIG1ha2Ugc3VyZSBhbGwgbGlu
a2VkIHRyYWNrcyB3aWxsIGdldCBtdXRlZC91bm11dGVkIGF0IHRoZSBzYW1lIHRpbWUuCisgICAg
ICAgIFRlc3RzIHRvIGJlIGZpeGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6
Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6aXNTb3VyY2VDYXB0dXJpbmdG
b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVD
YXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisKIDIwMjAtMDUtMDYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDIzODY2ZDZkODc3YjIyNjQ3MjYwYWM3NTg1NWNmZmEyOTIyY2JjYTcuLmM3NDBlYzJkNzlk
ZDEwYTNjNTdlZTdhOWI3MzZjMmZkMjJhYjEyNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDUtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IFZpZGVvIGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0ZWQgaW4gY2FzZSBvZiB0YWIgc3dpdGNo
IG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExNTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgY29kZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRBY3RpdmVTb3VyY2UpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAyMC0w
NS0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2VuZGlu
ZyBXZWJSVEMgbmV0d29yayBwYWNrZXRzIHNob3VsZCBub3QgZ28gdGhyb3VnaCB0aGUgbWFpbiB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQwYjJjYjlmZDBhYTFiZDFmMjlhY2VkYzViNjA5Mzk3
NzRhMTFjYjAuLjI3Y2U5MWIyMGY3MTdiODU2ZTUxYmVkMjE4MzJmNTQ0YzI5NDE4ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtNjgsNiAr
NjksMTAgQEAgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogewogICAgIGF1dG8gdHJhY2sgPSBhZG9w
dFJlZigqbmV3IE1lZGlhU3RyZWFtVHJhY2soY29udGV4dCwgV1RGTW92ZShwcml2YXRlVHJhY2sp
KSk7CiAgICAgdHJhY2stPnN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgaWYgKHRyYWNrLT5pc0Nh
cHR1cmVUcmFjaygpKQorICAgICAgICB0cmFjay0+dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpOwor
CiAgICAgcmV0dXJuIHRyYWNrOwogfQogCkBAIC04NywxMSArOTIsNiBAQCBNZWRpYVN0cmVhbVRy
YWNrOjpNZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJl
ZjxNZWRpYVN0cgogCiAgICAgaWYgKG1fcHJpdmF0ZS0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvKQogICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6
OnNoYXJlZE1hbmFnZXIoKS5hZGRBdWRpb0NhcHR1cmVTb3VyY2UoKnRoaXMpOwotCi0gICAgaWYg
KGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChkb2N1bWVu
dC0+cGFnZSgpICYmIGRvY3VtZW50LT5wYWdlKCktPm11dGVkU3RhdGUoKSkKLSAgICAgICAgICAg
IHNldE11dGVkKHRydWUpOwotICAgIH0KIH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1lZGlhU3Ry
ZWFtVHJhY2soKQpAQCAtMTk1LDI2ICsxOTUsNiBAQCBib29sIE1lZGlhU3RyZWFtVHJhY2s6Om11
dGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2YXRlLT5tdXRlZCgpOwogfQogCi12b2lkIE1l
ZGlhU3RyZWFtVHJhY2s6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBz
dGF0ZSkKLXsKLSAgICBib29sIHRyYWNrTXV0ZWQgPSBmYWxzZTsKLSAgICBzd2l0Y2ggKHNvdXJj
ZSgpLmRldmljZVR5cGUoKSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZToKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToK
LSAgICAgICAgdHJhY2tNdXRlZCA9IHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRl
b0NhcHR1cmVJc011dGVkOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKLSAgICAgICAgdHJhY2tNdXRlZCA9IHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6U2Ny
ZWVuQ2FwdHVyZUlzTXV0ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQodHJhY2tNdXRl
ZCk7Ci19Ci0KIGF1dG8gTWVkaWFTdHJlYW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNvbnN0IC0+IFN0
YXRlCiB7CiAgICAgcmV0dXJuIGVuZGVkKCkgPyBTdGF0ZTo6RW5kZWQgOiBTdGF0ZTo6TGl2ZTsK
QEAgLTQ2OCw0NCArNDQ4LDY3IEBAIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRp
YVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiB9CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotc3RhdGljIE1lZGlhU3RyZWFtVHJhY2sqIGZpbmRBY3RpdmVD
YXB0dXJlVHJhY2tGb3JEb2N1bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFJlYWx0aW1lTWVkaWFT
b3VyY2UqIGFjdGl2ZVNvdXJjZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKQorc3Rh
dGljIGJvb2wgaXNTb3VyY2VDYXB0dXJpbmdGb3JEb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNl
JiBzb3VyY2UsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVN0cmVhbVRyYWNrKiBz
ZWxlY3RlZFRyYWNrID0gbnVsbHB0cjsKLSAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFs
bENhcHR1cmVUcmFja3MoKSkgewotICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgp
ICE9ICZkb2N1bWVudCB8fCBjYXB0dXJlVHJhY2stPmVuZGVkKCkpCisgICAgZm9yIChhdXRvKiB0
cmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgeworICAgICAgICBpZiAodHJhY2stPmRvY3VtZW50
KCkgIT0gJmRvY3VtZW50IHx8IHRyYWNrLT5lbmRlZCgpKQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgaWYgKCZjYXB0dXJlVHJhY2stPnNvdXJjZSgpID09IGFjdGl2ZVNvdXJjZSkK
LSAgICAgICAgICAgIHJldHVybiBjYXB0dXJlVHJhY2s7Ci0KLSAgICAgICAgLy8gSWYgdGhlIGRv
Y3VtZW50IGhhcyBhIGxpdmUgY2FwdHVyZSB0cmFjaywgd2hpY2ggaXMgbm90IHRoZSBhY3RpdmUg
b25lLCB3ZSBwaWNrIHRoZSBmaXJzdCBvbmUuCi0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cHJvYmFibHkgc3RvcmUgcGVyIHBhZ2UgYWN0aXZlIGF1ZGlvL3ZpZGVvIGNhcHR1cmUgdHJhY2tz
LgotICAgICAgICBpZiAoIXNlbGVjdGVkVHJhY2sgJiYgY2FwdHVyZVRyYWNrLT5wcml2YXRlVHJh
Y2soKS50eXBlKCkgPT0gdHlwZSkKLSAgICAgICAgICAgIHNlbGVjdGVkVHJhY2sgPSBjYXB0dXJl
VHJhY2s7CisgICAgICAgIGlmICh0cmFjay0+c291cmNlKCkuaXNTYW1lQXMoc291cmNlKSkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gc2VsZWN0ZWRUcmFjazsK
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYKIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1
cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvKiBhY3RpdmVB
dWRpb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYXV0byogYXVkaW9DYXB0
dXJlVHJhY2sgPSBmaW5kQWN0aXZlQ2FwdHVyZVRyYWNrRm9yRG9jdW1lbnQoZG9jdW1lbnQsIGFj
dGl2ZUF1ZGlvU291cmNlLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykpCi0gICAg
ICAgIGF1ZGlvQ2FwdHVyZVRyYWNrLT5zZXRNdXRlZChkb2N1bWVudC5wYWdlKCktPm11dGVkU3Rh
dGUoKSk7CisgICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9y
RG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1bWVudCkpIHsKKyAgICAgICAgYm9vbCBw
YWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZp
ZGVvQ2FwdHVyZUlzTXV0ZWQ7CisgICAgICAgIGFjdGl2ZUF1ZGlvU291cmNlLT5zZXRNdXRlZChw
YWdlTXV0ZWQgfHwgKGRvY3VtZW50LmhpZGRlbigpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuaW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRW5h
YmxlZCgpKSk7CisgICAgfQogCiAgICAgYXV0byogYWN0aXZlVmlkZW9Tb3VyY2UgPSBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuYWN0
aXZlU291cmNlKCk7Ci0gICAgaWYgKGF1dG8qIHZpZGVvQ2FwdHVyZVRyYWNrID0gZmluZEFjdGl2
ZUNhcHR1cmVUcmFja0ZvckRvY3VtZW50KGRvY3VtZW50LCBhY3RpdmVWaWRlb1NvdXJjZSwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pKQotICAgICAgICB2aWRlb0NhcHR1cmVUcmFj
ay0+c2V0TXV0ZWQoZG9jdW1lbnQucGFnZSgpLT5tdXRlZFN0YXRlKCkpOworICAgIGlmIChhY3Rp
dmVWaWRlb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvckRvY3VtZW50KCphY3RpdmVWaWRl
b1NvdXJjZSwgZG9jdW1lbnQpKSB7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0
ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkOwor
ICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50
LmhpZGRlbigpKTsKKyAgICB9CiAjZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDog
YWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50
KCkgIT0gJmRvY3VtZW50IHx8IGNhcHR1cmVUcmFjay0+ZW5kZWQoKSkKLSAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBjYXB0dXJlVHJhY2stPnNldE11dGVkKGRvY3VtZW50LnBhZ2UoKS0+
bXV0ZWRTdGF0ZSgpKTsKKyAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKSA9PSAm
ZG9jdW1lbnQgJiYgIWNhcHR1cmVUcmFjay0+ZW5kZWQoKSkKKyAgICAgICAgICAgIGNhcHR1cmVU
cmFjay0+dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpOwogICAgIH0KICNlbmRpZgogfQogCit2b2lk
IE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKQoreworICAgIEFTU0VS
VChpc0NhcHR1cmVUcmFjaygpKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChzb3VyY2Uo
KS5kZXZpY2VUeXBlKCkpIHsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmU6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6Cisg
ICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9k
dWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQo
cGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVu
a25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICB9Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9j
dW1lbnQpCiB7CiAgICAgYm9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4
IDAyZmQ0NTRiNmExZGEzYzU0YmRhM2IyMDQ5ZThlMDNmN2NhY2RiMGEuLmIwMGYwNDkzMzIwZGE4
ZTlhNTA0ZWU1NmRhZjU4ZTIwN2NjMTFjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC04Nyw3ICs4Nyw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCk7CiAKICAgICBib29sIG11dGVkKCkg
Y29uc3Q7Ci0gICAgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mp
OwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IExpdmUsIEVuZGVkIH07CiAgICAgU3RhdGUgcmVh
ZHlTdGF0ZSgpIGNvbnN0OwpAQCAtMTY5LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNrJik7CiAKICAgICB2b2lkIGNvbmZp
Z3VyZVRyYWNrUmVuZGVyaW5nKCk7CisgICAgdm9pZCB1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCk7
CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIHZvaWQgc3RvcCgpIGZpbmFsIHsg
c3RvcFRyYWNrKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE4NDRiZjI5YmJmN2M1
YzAxMGFjY2M5OWI2OWQxN2JlMjg1M2JmOWEuLjVmYjczNDI4MGMyNmI5OTg1MjVkNTg3ZDc1Yzcy
NzkyMmIyZDNiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTc0OSwxNyArMTc0OSwx
MCBAQCB2b2lkIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKICAgICBmb3IgKGF1
dG8qIGNsaWVudCA6IG1fdmlzaWJpbGl0eVN0YXRlQ2FsbGJhY2tDbGllbnRzKQogICAgICAgICBj
bGllbnQtPnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKTsKIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0gICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiBoaWRk
ZW4oKSkgewotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5z
ZXRDYXB0dXJlUGFnZVN0YXRlKHRydWUsIHBhZ2UtPmlzTWVkaWFDYXB0dXJlTXV0ZWQoKSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICghUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaXNJbnRlcnJ1cHRlZCgpKQog
ICAgICAgICBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0
YXRlKCp0aGlzKTsKICNlbmRpZgotI2VuZGlmCiB9CiAKIFZpc2liaWxpdHlTdGF0ZSBEb2N1bWVu
dDo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNWI0
NDI0NTNmMjk1N2ZkNDQ2YjA5YzM5YzkxOWI0ODQyYjUwMGZhMi4uNmU5ZjViOTZlMTVlMDg4Yjhh
MTg3ODFkOWY3MDQ0ZGRlZjZjOGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTg4LDE2
ICs4OCw2IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImIG9ic2VydmVyKQogICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOwogfQogCi12b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OnNldEludGVycnVwdGVkKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wg
cGFnZU11dGVkKQotewotI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFN
KHBhZ2VNdXRlZCk7Ci0jZW5kaWYKLQotICAgIEFMV0FZU19MT0dfSUYobV9sb2dnZXIsIExPR0lE
RU5USUZJRVIsIGludGVycnVwdGVkLCAiLCBwYWdlIG11dGVkIDogIiwgcGFnZU11dGVkKTsKLSAg
ICBzZXRNdXRlZChpbnRlcnJ1cHRlZCk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKG1fbG9nZ2VyLCBMT0dJ
REVOVElGSUVSLCBtdXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNjZhYTM1MDRhNzIwNTE1
OWI1NGU1NjQwNzk5ZWY2MzU1ZjliYTBlOS4uZjhhYmFhM2FlYmViYmU2M2VlZGUxZjVkMzAyMjdk
ODg0ZWI0ODE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMTI3LDcgKzEyNyw2IEBAIHB1Ymxp
YzoKICAgICBib29sIGNhcHR1cmVEaWRGYWlsKCkgY29uc3QgeyByZXR1cm4gbV9jYXB0dXJlRGlk
RmFpbGVkOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCB7IHJldHVy
biBtX2ludGVycnVwdGVkOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEludGVycnVwdGVkKGJvb2ws
IGJvb2wpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1l
OyB9CiAgICAgdm9pZCBzZXROYW1lKFN0cmluZyYmIG5hbWUpIHsgbV9uYW1lID0gV1RGTW92ZShu
YW1lKTsgfQpAQCAtMTkzLDYgKzE5Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBj
YXB0dXJlRmFpbGVkKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lQXMoUmVhbHRpbWVNZWRp
YVNvdXJjZSYgc291cmNlKSBjb25zdCB7IHJldHVybiB0aGlzID09ICZzb3VyY2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ1ZpZGVvU291cmNlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBkYzQ4
YTc1NmY3Y2FjOWZmY2Q4ZjVmZWE0ODExZDYyYzUxNjBiYmU0Li4yZDMyYjI0M2IxYTk2NmVkZmIw
YmJhZDhmMGU0MmI2ZGM0MWNjOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgotI2lu
Y2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvU0hBMS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzEsMTMgKzI3MCw2IEBAIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJh
aW50c0hhbmRsCiAgICAgdmFsaWRIYW5kbGVyKFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92
ZSh2aWRlb0RldmljZXMpLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOwogfQog
Ci12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldENhcHR1cmVQYWdlU3RhdGUoYm9v
bCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5
Q2hhbmdlRW5hYmxlZCgpKQotICAgICAgICBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QXVkaW9D
YXB0dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIHZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKS5zZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoaW50ZXJydXB0ZWQsIHBhZ2VNdXRl
ZCk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9DYXB0dXJl
RmFjdG9yeShBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQogewogICAgIG1fYXVkaW9DYXB0
dXJlRmFjdG9yeU92ZXJyaWRlID0gJmZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmgKaW5kZXggMTBkZGIyOTAzYzFjZDk2MjIxZmQ1ZGYwMWEzOWI5MTBkZWE5OGI1Yi4uMDI4Mjg2
NThlMDllYWRlOTcyMTE4YWRlY2RjMTdmMzY0ZmVhMzBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuaApAQCAtODYsOCArODYsNiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYp
OwogCi0gICAgdm9pZCBzZXRDYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wg
cGFnZU11dGVkKTsKLQogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2li
aWxpdHlDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCmluZGV4IDMwMzQ0
MWQ1YWI4MzJjMzU3MDdmNjFmYjVjZWM5ODNkYjQwYzdiYzcuLmEzMjYyOGI3YTE2MDkzNWFjYjhi
NzUzMTEzZjgzODU1M2E2ZWI4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaApA
QCAtNjAsMTEgKzYwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZhY3Rv
cnkoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXIm
IGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEF1
ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLSAg
ICB7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShpbnRlcnJ1cHRlZCk7Ci0gICAgICAgIFVOVVNFRF9Q
QVJBTShwYWdlTXV0ZWQpOwotICAgIH0KIAogcHJvdGVjdGVkOgogICAgIEF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKSA9IGRlZmF1bHQ7CkBAIC03OSwxMSArNzQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+VmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CiAgICAgdmlydHVhbCBD
YXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQs
IGJvb2wgcGFnZU11dGVkKQotICAgIHsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGludGVycnVwdGVk
KTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKHBhZ2VNdXRlZCk7Ci0gICAgfQogCiBwcm90ZWN0ZWQ6
CiAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApp
bmRleCBiZWFkM2I5NWQ5NTdlOGM2MTI0MTUzNzNhMDNkZjdhMDIzOTlhNzJlLi5jY2NlOWI5YWEx
OTcwM2UwOTU3MzNlZDI3YTIzYzMzOGY2MzhhZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00
MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVhbHRpbWVWaWRlb1NvdXJjZShS
ZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYpOwogICAgIH5SZWFsdGltZVZpZGVvU291
cmNlKCk7CiAKLSAgICAvLyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgIC8vIFJlYWx0
aW1lTWVkaWFTaW91cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c1NpemVB
bmRGcmFtZVJhdGUoT3B0aW9uYWw8aW50PiB3aWR0aCwgT3B0aW9uYWw8aW50PiBoZWlnaHQsIE9w
dGlvbmFsPGRvdWJsZT4gZnJhbWVSYXRlKSBmaW5hbDsKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0
ZToKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3NvdXJjZS0+ZGV2aWNlVHlwZSgpOyB9CiAgICAgdm9pZCBtb25pdG9yT3Jp
ZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYgbm90aWZpZXIpIGZpbmFsIHsgbV9zb3VyY2Ut
Pm1vbml0b3JPcmllbnRhdGlvbihub3RpZmllcik7IH0KICAgICBib29sIGludGVycnVwdGVkKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UtPmludGVycnVwdGVkKCk7IH0KKyAgICBib29s
IGlzU2FtZUFzKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgY29uc3QgZmluYWwgeyByZXR1
cm4gdGhpcyA9PSAmc291cmNlIHx8IG1fc291cmNlLnB0cigpID09ICZzb3VyY2U7IH0KIAogICAg
IC8vIE9ic2VydmVyCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
aW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KaW5kZXggOGQ5NzA0MWMxNGQzZmFlNzVl
NjY1YjVjZmEwMjJiYTU3ZTIwNzMyNi4uNGEyMDQ3YmM0NDNhNjU2NjI0ZDMxYjA1YmZhNzgyYTE4
N2U1MjUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
aW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KQEAgLTEw
MiwxMiArMTAyLDYgQEAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKQogICAgIHJldHVybiBmYWN0b3J5LmdldCgp
OwogfQogCi12b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzZXRBdWRpb0NhcHR1
cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYg
KGF1dG8qIGFjdGl2ZVNvdXJjZSA9IHRoaXMtPmFjdGl2ZVNvdXJjZSgpKQotICAgICAgICBhY3Rp
dmVTb3VyY2UtPnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotfQotCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1NfRkFNSUxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggZTRlODliZjBkOGVlNTE1M2Ni
YTUwYjk4ODIzOGIxMTg1MjYzYzVhMC4uOGQ5NTI4MjQ0MDAyNjg4MWIwNDBlYzI1Y2ExNWViZGY0
ZTM1OWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC0xMTUsMTAgKzEx
NSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGV2aWNlc0NoYW5nZWQoY29uc3QgVmVjdG9yPENh
cHR1cmVEZXZpY2U+Jik7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0
QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKSBm
aW5hbDsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXgg
MGJlZDU4OWE0MDY1ZmNkYzFhNTI3MmQxNGFmNTU2OGE0YTZkYmM1NS4uM2UzYWE0ZWQ4NmQ1Yjhm
YzIwODNlMmU1ZGY4MGJmOWRlZDFiOGMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjLmNwcApAQCAtNTMsMTQgKzUzLDYgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0VmlkZW9DYXB0
dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotICAgIHsKLSAg
ICAgICAgaWYgKGFjdGl2ZVNvdXJjZSgpKQotICAgICAgICAgICAgYWN0aXZlU291cmNlKCktPnNl
dEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIH0KLSNlbmRpZgotCiAg
ICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSB7IHJl
dHVybiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsgfQogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBmYzQyZjZiYTdhZGViOTU2OTQxMzBmYWJiODY2Nzg2
MzJlNWM5OGE5Li43MjRlMTUzOGMwZDFhY2I4OWVkZTg0MWI2ODA1ODk1ZGE2OWQ3OTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTAyLDEzICsxMDIsNiBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRW
aWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZp
bmFsCi0gICAgewotICAgICAgICBpZiAoYWN0aXZlU291cmNlKCkpCi0gICAgICAgICAgICBhY3Rp
dmVTb3VyY2UoKS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAg
fQotI2VuZGlmCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1h
bmFnZXIoKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkudmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpOyB9CiB9OwogCkBAIC0xOTEsNyAr
MTg0LDYgQEAgcHVibGljOgogICAgIH0KIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICB2b2lkIHNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBi
b29sIHBhZ2VNdXRlZCkgZmluYWwgeyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2lu
Z2xldG9uKCkuc2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdlTXV0ZWQp
OyB9CiAgICAgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNl
KSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRB
Y3RpdmVTb3VyY2Uoc291cmNlKTsgfQogICAgIHZvaWQgdW5zZXRBY3RpdmVTb3VyY2UoUmVhbHRp
bWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0
b3J5OjpzaW5nbGV0b24oKS51bnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9CiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSogYWN0aXZlU291cmNlKCkgZmluYWwgeyByZXR1cm4gQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLmFjdGl2ZVNvdXJjZSgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAppbmRleCAwYWMzODQxMWU5MmM4NDAzYzI4MDQ3ZjRmNDU5ZGU3YmM1NTU4ZTBi
Li4wNjE5OGQwYTFlZDc0Yzg5ZDllY2IzODU4ZDU2YThlMGU0YzNhN2ZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAKQEAgLTUzOSwyNiArNTM5LDEwIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiB9
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6QXVkaW9GYWN0b3J5OjpzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRl
ZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYgKGF1dG8qIGFjdGl2ZVNvdXJjZSA9IHRoaXMt
PmFjdGl2ZVNvdXJjZSgpKQotICAgICAgICBhY3RpdmVTb3VyY2UtPnNldEludGVycnVwdGVkKGlu
dGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotfQotCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpWaWRlb0ZhY3Rvcnk6OnNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVk
LCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICAvLyBJbiBjYXNlIG9mIGNsb25pbmcsIHdlIG1pZ2h0
IGhhdmUgbW9yZSB0aGFuIGEgc2luZ2xlIHNvdXJjZS4KLSAgICBmb3IgKGF1dG8mIHNvdXJjZSA6
IG1fbWFuYWdlci5tX3NvdXJjZXMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHNvdXJjZS0+ZGV2
aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAg
ICAgIHNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAg
fQotfQotCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldEFj
dGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJikKIHsKICAgICAvLyBNdXRpbmcgaXMgZG9u
ZSBieSBHUFVQcm9jZXNzIGZhY3RvcnkuIFdlIGRvIG5vdCB3YW50IHRvIGhhbmRsZSBpdCBoZXJl
IGluIGNhc2Ugb2YgdHJhY2sgY2xvbmluZy4KIH0KLQogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmgKaW5kZXggNzI1NjQ5ODQ1MDlkNDkwODU4YzQ2OTcxZDI1OGYwZDRlOWU2NGJmMC4uM2JjNTFl
YWI5MWE1NGZkZjYwMTRlNjBmOTZmNDg3MDM1MzZkNmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAg
LTY3LDkgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBwcml2YXRlOgogICAgICAgICBXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5h
Z2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5hZ2Vy
Lm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICAgICAgdm9pZCBzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwg
Ym9vbCBwYWdlTXV0ZWQpIGZpbmFsOwotI2VuZGlmCiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1fbWFuYWdlcjsKICAgICAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MgeyBmYWxzZSB9OwpAQCAtODQsNyArODEsNiBAQCBwcml2YXRlOgogICAgICAgICBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZp
bmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIHZvaWQgc2V0QWN0aXZlU291cmNlKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBzZXRWaWRlb0Nh
cHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZpbmFsOwog
I2VuZGlmCiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmNGI0NTMwZjE3NTMzZjQyZDIwNmYwMDk2YjBiZGI1MmQwOWE4ODQ2Li5lZTA0MzgyNzIw
N2IzNTU2ODYxZDdhMzg5MGM2OGY1Yzk2MmYxN2Q0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjAtMDUtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFZp
ZGVvIGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0ZWQgaW4gY2FzZSBvZiB0YWIgc3dpdGNoIG9u
IGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEx
NTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgRGlzYWJsZSBHUFUgcHJvY2Vz
cyB0ZXN0IHNpbmNlIHdlIGFyZSBub3QgYWJsZSB5ZXQgdG8gbXV0ZS91bm11dGUgaGFuZGxlIG11
bHRpcGxlIHZpZGVvIHRyYWNrcworICAgICAgICB3aXRoIGRpZmZlcmVudCBzb3VyY2VzIGFzIGNh
biBiZSBkb25lIGlmIGNhcHR1cmUgaXMgZG9uZSBvdXQgb2YgcHJvY2Vzcy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vdmlkZW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWIuaHRt
bDoKKyAgICAgICAgVXBkYXRlIHRlc3QgdG8gZW5zdXJlIHRoZSB0cmFjayBpcyBwcm9kdWNpbmcg
Y29udGVudC4KKwogMjAyMC0wNS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHNob3VsZCB1
bm9ic2VydmUgdGhlIHRyYWNrcyBmcm9tIGl0cyBhdWRpbyBhbmQgdmlkZW8gdHJhY2sgc2V0cwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwNjdkMGIxZmZh
ZjMzYTNjM2E1OGUzNjI5NzlmYWVjNTViNGRlYmVjLi43MzY5Zjg0NWE2ZGJlNzNiYWJlMmNhYjNl
ZjkxNzkwYTQ2ZWYxOWY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjg4MSw2ICsyODgxLDggQEAgaHR0cC90ZXN0cy9tdWx0aXBhcnQvbG9hZC1sYXN0
LW5vbi1odG1sLWZyYW1lLnBocCBbIEZhaWx1cmUgIF0KIAogd2Via2l0Lm9yZy9iLzE3NzM2NiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlvbi9zYW5kYm94LUFMTE9XRUQtdG9wLW5h
dmlnYXRpb24td2l0aC11c2VyLWdlc3R1cmUtMS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAord2Vi
a2l0Lm9yZy9iLzIxMTUwOSBwbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4t
YmFja2dyb3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbCBbIEZhaWx1cmUgXQorCiB3ZWJraXQub3Jn
L2IvMTc3Mzk1IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb3ZlcmxvYWRlZC1v
cGVyYXRpb25zLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbS12aWRlby1lbGVtZW50LXZpZGVvLXRyYWNrcy1kaXNhYmxlZC5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS13ZWJhdWRpby5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KQEAgLTM1MzMsNCArMzUzNSw0IEBAIHdlYmtpdC5vcmcvYi8yMTAwNDYg
WyBSZWxlYXNlIF0gc3RvcmFnZS9pbmRleGVkZGIvdmFsdWUtY3Vyc29yLWN5Y2xlLmh0bWwgWyBQ
YXNzCiBtZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwgWyBTa2lwIF0KIG1l
ZGlhL2NvbnRyb2xzLXN0eWxpbmcuaHRtbCBbIFNraXAgXQogCi13ZWJraXQub3JnL2IvMjExMjYx
IGNvbXBvc2l0aW5nL2lmcmFtZXMvYm9yZGVyLXJhZGl1cy1jb21wb3NpdGVkLWZyYW1lLmh0bWwg
WyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dl
YmtpdC5vcmcvYi8yMTEyNjEgY29tcG9zaXRpbmcvaWZyYW1lcy9ib3JkZXItcmFkaXVzLWNvbXBv
c2l0ZWQtZnJhbWUuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vdmlkZW8tbXV0ZWQtaW4tYmFja2dy
b3VuZC10YWIuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92aWRl
by1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1sCmluZGV4IDRjNTY2NjFkMjZhZjQ0NTA1NWRi
NzA3OWY3NmMzNmQzYzA1Y2ViZDcuLjZiYTgxMmUxMTFmOTdlOGFkMjZkMWFjNTM3OTY1YzM3ZTVm
NzdiYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92
aWRlby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9tZWRpYXN0cmVhbS92aWRlby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1sCkBA
IC0xMiw2ICsxMiwyMCBAQAogICAgICAgICAgICAgbGV0IGF1ZGlvVHJhY2s7CiAgICAgICAgICAg
ICBsZXQgdmlkZW9UcmFjazsKIAorICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVN
ZWRpYVN0cmVhbVRyYWNrSXNHZW5lcmF0aW5nQ29udGVudCh0cmFjaykKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFT
dHJlYW1UcmFjayh0cmFjayk7CisgICAgICAgICAgICAgICAgbGV0IGNvdW50ID0gMTAwOworICAg
ICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChpbnRlcm5hbHMudHJhY2tBdWRpb1NhbXBsZUNvdW50IHx8IGludGVybmFscy50cmFja1Zp
ZGVvU2FtcGxlQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICB9IHdoaWxlICgtLWNvdW50ID4gMCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBwcm9taXNlX3Rlc3QoKHQp
ID0+IHsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKQEAgLTI1
LDQ2ICszOSw0MCBAQAogICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFj
ay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2ZSIpOwogICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZmFsc2UodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIGFjdGl2ZSIpOwog
ICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICB9LCAiU2V0dXAgc3RyZWFtIik7CiAKLSAg
ICAgICAgICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QoKCkg
PT4gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0
eShmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFj
ay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2ZSIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7
Ci0gICAgICAgICAgICAgICAgICAgIH0sICJIaWRlIHBhZ2UsIG9ubHkgdmlkZW8gc2hvdWxkIGJl
IG11dGVkIik7Ci0gICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIHByb21pc2VfdGVzdChh
c3luYyAodCkgPT4geworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNl
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlv
IHRyYWNrIGlzIGFjdGl2ZSIpOworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJh
Y2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBtdXRlZCIpOworICAgICAgICAgICAgfSwgIkhpZGUg
cGFnZSwgb25seSB2aWRlbyBzaG91bGQgYmUgbXV0ZWQiKTsKIAotICAgICAgICAgICAgICAgIC50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KHRydWUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0
cmFjayBpcyBhY3RpdmUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh2
aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0gICAgICAgICAgICAg
ICAgICAgIH0sICJTaG93IHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgdW5tdXRlZCIp
OwotICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQp
ID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAg
ICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eSh0cnVlKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlz
IGFjdGl2ZSIpOworICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVk
LCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShhd2FpdCB2YWxpZGF0ZU1lZGlhU3RyZWFtVHJhY2tJc0dlbmVyYXRpbmdD
b250ZW50KGF1ZGlvVHJhY2spLCAiYXVkaW8gdHJhY2siKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShhd2FpdCB2YWxpZGF0ZU1lZGlhU3RyZWFtVHJhY2tJc0dlbmVyYXRpbmdDb250ZW50
KHZpZGVvVHJhY2spLCAidmlkZW8gdHJhY2siKTsKKyAgICAgICAgICAgIH0sICJTaG93IHBhZ2Us
IHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgdW5tdXRlZCIpOwogCi0gICAgICAgICAgICAgICAg
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eShmYWxzZSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlTXV0ZWQo
ImNhcHR1cmVkZXZpY2VzIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sg
aXMgbXV0ZWQiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJh
Y2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBtdXRlZCIpOwotICAgICAgICAgICAgICAgICAgICB9
LCAiSGlkZSBhbmQgbXV0ZSBwYWdlLCB2aWRlbyBhbmQgYXVkaW8gc2hvdWxkIGJlIG11dGVkIik7
Ci0gICAgICAgICAgICAgICAgfSkKLQotICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KHRydWUpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAi
dmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAgICAgICAgICAgICAgICAgICAgfSwgIlNob3cgcGFn
ZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCByZW1haW4gbXV0ZWQiKTsKLSAgICAgICAgICAgICAg
ICB9KQotICAgICAgICAgICAgfSwgIlNldHVwIHN0cmVhbSIpOworICAgICAgICAgICAgcHJvbWlz
ZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJp
bGl0eShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFn
ZU11dGVkKCJjYXB0dXJlZGV2aWNlcyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQi
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8g
dHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAgICAgIH0sICJIaWRlIGFuZCBtdXRlIHBhZ2UsIHZp
ZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgbXV0ZWQiKTsKIAorICAgICAgICAgICAgcHJvbWlzZV90
ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHko
dHJ1ZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRlZCwgImF1
ZGlvIHRyYWNrIGlzIG11dGVkIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9U
cmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7CisgICAgICAgICAgICB9LCAiU2hv
dyBwYWdlLCB2aWRlbyBhbmQgYXVkaW8gc2hvdWxkIHJlbWFpbiBtdXRlZCIpOwogICAgICAgICA8
L3NjcmlwdD4KICAgICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398720</attachid>
            <date>2020-05-07 04:19:48 -0700</date>
            <delta_ts>2020-05-08 02:25:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211509-20200507131946.patch</filename>
            <type>text/plain</type>
            <size>30448</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ3YzI1ZTUzNjY0ODgz
NGU1MDViNmVhMDczZDNmZWRmNWRmY2QzNS4uYzg2MDNiZTA3ODEzNTNjMjlmZTdiY2RjNjY1NzNm
ZjE2OGUxYThhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDIwLTA1LTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzZXRJbnRlcnJ1
cHRlZCBhbmQgcmVsYXRlZCBjb2RlLgorICAgICAgICBJbnN0ZWFkLCBkaXJlY3RseSB1c2Ugc2V0
TXV0ZWQodHJ1ZS9mYWxzZSkgb2YgdGhlIHNvdXJjZSBvZiBjYXB0dXJlIHRyYWNrcy4KKyAgICAg
ICAgVG8gZW5zdXJlIHdlIHZhbGlkYXRlIHRoYXQgdGhlIGFjdGl2ZSBzb3VyY2UgaXMgdGllZCB0
byBhIHRyYWNrIG9mIHRoZSBkb2N1bWVudCwKKyAgICAgICAgd2UgYWRkIFJlYWx0aW1lU291cmNl
Ojppc1NhbWVBcyB3aGljaCBoYW5kbGVzIHRoZSBjYXNlIG9mIGEgUmVhbHRpbWVWaWRlb1NvdXJj
ZSB3cmFwcGluZyBhbiBBVlZpZGVvQ2FwdHVyZVNvdXJjZS4KKyAgICAgICAgVGhlcmUgbWlnaHQg
YmUgbXVsdGlwbGUgdmlkZW8gdHJhY2tzIHdpdGggZWFjaCBvbmUgaXRzIFJlYWx0aW1lVmlkZW9T
b3VyY2UgdXNpbmcgdGhlIHNhbWUgQVZWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAgICAgIFdlIG11
dGUgdGhlIEFWVmlkZW9DYXB0dXJlU291cmNlIGRpcmVjdGx5IHRvIG1ha2Ugc3VyZSBhbGwgbGlu
a2VkIHRyYWNrcyB3aWxsIGdldCBtdXRlZC91bm11dGVkIGF0IHRoZSBzYW1lIHRpbWUuCisgICAg
ICAgIFRlc3RzIHRvIGJlIGZpeGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6
Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6aXNTb3VyY2VDYXB0dXJpbmdG
b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVD
YXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisKKzIwMjAtMDUtMDYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCiAgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyOTEKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCAxOTljNWQ5YWZlMTMwMTljZDUxYjRkYTQ0MzBmOWQyOGRiYTYyMzE1Li5kNjI4MjE3ZDcw
ZDJlOTY2ZmM4MzY4ZTkxNjZjYTRmMTc0NjExYjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMTMsNiArMTMsMTkg
QEAKIAogMjAyMC0wNS0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKKyAg
ICAgICAgVmlkZW8gY2FwdHVyZSBkb2VzIG5vdCBnZXQgdW5tdXRlZCBpbiBjYXNlIG9mIHRhYiBz
d2l0Y2ggb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTE1MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCBjb2RlLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldEFjdGl2ZVNvdXJjZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCisy
MDIwLTA1LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAgICAgICBT
ZW5kaW5nIFdlYlJUQyBuZXR3b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBt
YWluIHRocmVhZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMjkxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDA4NWU0ZmQ2ZmI4MzFlODQyNTVhODJhMDJl
YThmMTcwNDJmOWZmNDAuLmQwY2EwN2U1NjMzM2EzMjI5ZTA1MTQ1MjI4MjNhNGVhMTE4NzA2ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAt
NjgsNiArNjksMTAgQEAgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJhY2s6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogewogICAgIGF1dG8gdHJhY2sg
PSBhZG9wdFJlZigqbmV3IE1lZGlhU3RyZWFtVHJhY2soY29udGV4dCwgV1RGTW92ZShwcml2YXRl
VHJhY2spKSk7CiAgICAgdHJhY2stPnN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgaWYgKHRyYWNr
LT5pc0NhcHR1cmVUcmFjaygpKQorICAgICAgICB0cmFjay0+dXBkYXRlVG9QYWdlTXV0ZWRTdGF0
ZSgpOworCiAgICAgcmV0dXJuIHRyYWNrOwogfQogCkBAIC04NywxMSArOTIsNiBAQCBNZWRpYVN0
cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFJlZjxNZWRpYVN0cgogCiAgICAgaWYgKG1fcHJpdmF0ZS0+dHlwZSgpID09IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQogICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRBdWRpb0NhcHR1cmVTb3VyY2UoKnRoaXMpOwotCi0g
ICAgaWYgKGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChk
b2N1bWVudC0+cGFnZSgpICYmIGRvY3VtZW50LT5wYWdlKCktPm11dGVkU3RhdGUoKSkKLSAgICAg
ICAgICAgIHNldE11dGVkKHRydWUpOwotICAgIH0KIH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1l
ZGlhU3RyZWFtVHJhY2soKQpAQCAtMTk1LDI2ICsxOTUsNiBAQCBib29sIE1lZGlhU3RyZWFtVHJh
Y2s6Om11dGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2YXRlLT5tdXRlZCgpOwogfQogCi12
b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVG
bGFncyBzdGF0ZSkKLXsKLSAgICBib29sIHRyYWNrTXV0ZWQgPSBmYWxzZTsKLSAgICBzd2l0Y2gg
KHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6TWljcm9waG9uZToKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNh
bWVyYToKLSAgICAgICAgdHJhY2tNdXRlZCA9IHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9B
bmRWaWRlb0NhcHR1cmVJc011dGVkOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OldpbmRvdzoKLSAgICAgICAgdHJhY2tNdXRlZCA9IHN0YXRlICYgTWVkaWFQcm9kdWNl
cjo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQodHJh
Y2tNdXRlZCk7Ci19Ci0KIGF1dG8gTWVkaWFTdHJlYW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNvbnN0
IC0+IFN0YXRlCiB7CiAgICAgcmV0dXJuIGVuZGVkKCkgPyBTdGF0ZTo6RW5kZWQgOiBTdGF0ZTo6
TGl2ZTsKQEAgLTQ2OCw0NCArNDQ4LDY3IEBAIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiB9CiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotc3RhdGljIE1lZGlhU3RyZWFtVHJhY2sqIGZpbmRB
Y3RpdmVDYXB0dXJlVHJhY2tGb3JEb2N1bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFJlYWx0aW1l
TWVkaWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBl
KQorc3RhdGljIGJvb2wgaXNTb3VyY2VDYXB0dXJpbmdGb3JEb2N1bWVudChSZWFsdGltZU1lZGlh
U291cmNlJiBzb3VyY2UsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVN0cmVhbVRy
YWNrKiBzZWxlY3RlZFRyYWNrID0gbnVsbHB0cjsKLSAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFj
ayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewotICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1
bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0dXJlVHJhY2stPmVuZGVkKCkpCisgICAgZm9yIChh
dXRvKiB0cmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgeworICAgICAgICBpZiAodHJhY2stPmRv
Y3VtZW50KCkgIT0gJmRvY3VtZW50IHx8IHRyYWNrLT5lbmRlZCgpKQogICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgaWYgKCZjYXB0dXJlVHJhY2stPnNvdXJjZSgpID09IGFjdGl2ZVNv
dXJjZSkKLSAgICAgICAgICAgIHJldHVybiBjYXB0dXJlVHJhY2s7Ci0KLSAgICAgICAgLy8gSWYg
dGhlIGRvY3VtZW50IGhhcyBhIGxpdmUgY2FwdHVyZSB0cmFjaywgd2hpY2ggaXMgbm90IHRoZSBh
Y3RpdmUgb25lLCB3ZSBwaWNrIHRoZSBmaXJzdCBvbmUuCi0gICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgcHJvYmFibHkgc3RvcmUgcGVyIHBhZ2UgYWN0aXZlIGF1ZGlvL3ZpZGVvIGNhcHR1cmUg
dHJhY2tzLgotICAgICAgICBpZiAoIXNlbGVjdGVkVHJhY2sgJiYgY2FwdHVyZVRyYWNrLT5wcml2
YXRlVHJhY2soKS50eXBlKCkgPT0gdHlwZSkKLSAgICAgICAgICAgIHNlbGVjdGVkVHJhY2sgPSBj
YXB0dXJlVHJhY2s7CisgICAgICAgIGlmICh0cmFjay0+c291cmNlKCkuaXNTYW1lQXMoc291cmNl
KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gc2VsZWN0ZWRU
cmFjazsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYKIAogdm9pZCBNZWRpYVN0cmVhbVRy
YWNrOjp1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVu
dC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvKiBh
Y3RpdmVBdWRpb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYXV0byogYXVk
aW9DYXB0dXJlVHJhY2sgPSBmaW5kQWN0aXZlQ2FwdHVyZVRyYWNrRm9yRG9jdW1lbnQoZG9jdW1l
bnQsIGFjdGl2ZUF1ZGlvU291cmNlLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykp
Ci0gICAgICAgIGF1ZGlvQ2FwdHVyZVRyYWNrLT5zZXRNdXRlZChkb2N1bWVudC5wYWdlKCktPm11
dGVkU3RhdGUoKSk7CisgICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYmIGlzU291cmNlQ2FwdHVy
aW5nRm9yRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1bWVudCkpIHsKKyAgICAgICAg
Ym9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpBdWRp
b0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQ7CisgICAgICAgIGFjdGl2ZUF1ZGlvU291cmNlLT5zZXRN
dXRlZChwYWdlTXV0ZWQgfHwgKGRvY3VtZW50LmhpZGRlbigpICYmIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hh
bmdlRW5hYmxlZCgpKSk7CisgICAgfQogCiAgICAgYXV0byogYWN0aXZlVmlkZW9Tb3VyY2UgPSBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5
KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGF1dG8qIHZpZGVvQ2FwdHVyZVRyYWNrID0gZmlu
ZEFjdGl2ZUNhcHR1cmVUcmFja0ZvckRvY3VtZW50KGRvY3VtZW50LCBhY3RpdmVWaWRlb1NvdXJj
ZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pKQotICAgICAgICB2aWRlb0NhcHR1
cmVUcmFjay0+c2V0TXV0ZWQoZG9jdW1lbnQucGFnZSgpLT5tdXRlZFN0YXRlKCkpOworICAgIGlm
IChhY3RpdmVWaWRlb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvckRvY3VtZW50KCphY3Rp
dmVWaWRlb1NvdXJjZSwgZG9jdW1lbnQpKSB7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFn
ZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011
dGVkOworICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRv
Y3VtZW50LmhpZGRlbigpKTsKKyAgICB9CiAjZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRy
YWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRv
Y3VtZW50KCkgIT0gJmRvY3VtZW50IHx8IGNhcHR1cmVUcmFjay0+ZW5kZWQoKSkKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICBjYXB0dXJlVHJhY2stPnNldE11dGVkKGRvY3VtZW50LnBh
Z2UoKS0+bXV0ZWRTdGF0ZSgpKTsKKyAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQo
KSA9PSAmZG9jdW1lbnQgJiYgIWNhcHR1cmVUcmFjay0+ZW5kZWQoKSkKKyAgICAgICAgICAgIGNh
cHR1cmVUcmFjay0+dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpOwogICAgIH0KICNlbmRpZgogfQog
Cit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKQoreworICAg
IEFTU0VSVChpc0NhcHR1cmVUcmFjaygpKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS0+
cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChz
b3VyY2UoKS5kZXZpY2VUeXBlKCkpIHsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6Ok1pY3JvcGhvbmU6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1l
cmE6CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVk
aWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0
TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6U2NyZWVuQ2FwdHVyZUlz
TXV0ZWQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7CiAgICAgYm9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CmluZGV4IDAyZmQ0NTRiNmExZGEzYzU0YmRhM2IyMDQ5ZThlMDNmN2NhY2RiMGEuLmIwMGYwNDkz
MzIwZGE4ZTlhNTA0ZWU1NmRhZjU4ZTIwN2NjMTFjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC04Nyw3ICs4
Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCk7CiAKICAgICBib29sIG11
dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
RmxhZ3MpOwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IExpdmUsIEVuZGVkIH07CiAgICAgU3Rh
dGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwpAQCAtMTY5LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNrJik7CiAKICAgICB2b2lk
IGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7CisgICAgdm9pZCB1cGRhdGVUb1BhZ2VNdXRlZFN0
YXRlKCk7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIHZvaWQgc3RvcCgpIGZp
bmFsIHsgc3RvcFRyYWNrKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDJjYzlhODZj
Zjg5ZWVkYzg4ZDExNzFlOTFhMDg2MmQxZTM4ZWFiYTcuLmQ2YmJhN2YyMDU1ZGExYTM0NjM3MDFk
NjllZDNlMmYwMzQ2NDdmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTc0OSwxNyAr
MTc0OSwxMCBAQCB2b2lkIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKICAgICBm
b3IgKGF1dG8qIGNsaWVudCA6IG1fdmlzaWJpbGl0eVN0YXRlQ2FsbGJhY2tDbGllbnRzKQogICAg
ICAgICBjbGllbnQtPnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKTsKIAotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0gICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAocGFnZSAm
JiBoaWRkZW4oKSkgewotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5zZXRDYXB0dXJlUGFnZVN0YXRlKHRydWUsIHBhZ2UtPmlzTWVkaWFDYXB0dXJlTXV0ZWQo
KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICgh
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaXNJbnRlcnJ1cHRl
ZCgpKQogICAgICAgICBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9N
dXRlZFN0YXRlKCp0aGlzKTsKICNlbmRpZgotI2VuZGlmCiB9CiAKIFZpc2liaWxpdHlTdGF0ZSBE
b2N1bWVudDo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5k
ZXggNWI0NDI0NTNmMjk1N2ZkNDQ2YjA5YzM5YzkxOWI0ODQyYjUwMGZhMi4uNmU5ZjViOTZlMTVl
MDg4YjhhMTg3ODFkOWY3MDQ0ZGRlZjZjOGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAg
LTg4LDE2ICs4OCw2IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIo
T2JzZXJ2ZXImIG9ic2VydmVyKQogICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOwogfQogCi12
b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEludGVycnVwdGVkKGJvb2wgaW50ZXJydXB0ZWQs
IGJvb2wgcGFnZU11dGVkKQotewotI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgVU5VU0VE
X1BBUkFNKHBhZ2VNdXRlZCk7Ci0jZW5kaWYKLQotICAgIEFMV0FZU19MT0dfSUYobV9sb2dnZXIs
IExPR0lERU5USUZJRVIsIGludGVycnVwdGVkLCAiLCBwYWdlIG11dGVkIDogIiwgcGFnZU11dGVk
KTsKLSAgICBzZXRNdXRlZChpbnRlcnJ1cHRlZCk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKG1fbG9nZ2Vy
LCBMT0dJREVOVElGSUVSLCBtdXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNjZhYTM1MDRh
NzIwNTE1OWI1NGU1NjQwNzk5ZWY2MzU1ZjliYTBlOS4uZjhhYmFhM2FlYmViYmU2M2VlZGUxZjVk
MzAyMjdkODg0ZWI0ODE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMTI3LDcgKzEyNyw2IEBA
IHB1YmxpYzoKICAgICBib29sIGNhcHR1cmVEaWRGYWlsKCkgY29uc3QgeyByZXR1cm4gbV9jYXB0
dXJlRGlkRmFpbGVkOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCB7
IHJldHVybiBtX2ludGVycnVwdGVkOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEludGVycnVwdGVk
KGJvb2wsIGJvb2wpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9uYW1lOyB9CiAgICAgdm9pZCBzZXROYW1lKFN0cmluZyYmIG5hbWUpIHsgbV9uYW1lID0gV1RG
TW92ZShuYW1lKTsgfQpAQCAtMTkzLDYgKzE5Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBjYXB0dXJlRmFpbGVkKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lQXMoUmVhbHRp
bWVNZWRpYVNvdXJjZSYgc291cmNlKSBjb25zdCB7IHJldHVybiB0aGlzID09ICZzb3VyY2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291cmNlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ1ZpZGVvU291cmNlKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRl
eCBkYzQ4YTc1NmY3Y2FjOWZmY2Q4ZjVmZWE0ODExZDYyYzUxNjBiYmU0Li4yZDMyYjI0M2IxYTk2
NmVkZmIwYmJhZDhmMGU0MmI2ZGM0MWNjOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5o
IgotI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvU0hB
MS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzEsMTMgKzI3MCw2IEBAIHZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRD
b25zdHJhaW50c0hhbmRsCiAgICAgdmFsaWRIYW5kbGVyKFdURk1vdmUoYXVkaW9EZXZpY2VzKSwg
V1RGTW92ZSh2aWRlb0RldmljZXMpLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkp
OwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldENhcHR1cmVQYWdlU3Rh
dGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYgKFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW50ZXJydXB0QXVkaW9PblBhZ2VWaXNp
YmlsaXR5Q2hhbmdlRW5hYmxlZCgpKQotICAgICAgICBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0
QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIHZpZGVv
Q2FwdHVyZUZhY3RvcnkoKS5zZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoaW50ZXJydXB0ZWQsIHBh
Z2VNdXRlZCk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9D
YXB0dXJlRmFjdG9yeShBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQogewogICAgIG1fYXVk
aW9DYXB0dXJlRmFjdG9yeU92ZXJyaWRlID0gJmZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmgKaW5kZXggMTBkZGIyOTAzYzFjZDk2MjIxZmQ1ZGYwMWEzOWI5MTBkZWE5OGI1Yi4u
MDI4Mjg2NThlMDllYWRlOTcyMTE4YWRlY2RjMTdmMzY0ZmVhMzBlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaApAQCAtODYsOCArODYsNiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoc3RkOjpmdW5jdGlvbjx2b2lk
KCk+JiYpOwogCi0gICAgdm9pZCBzZXRDYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQs
IGJvb2wgcGFnZU11dGVkKTsKLQogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRBdWRpb09uUGFn
ZVZpc2liaWxpdHlDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCmluZGV4
IDMwMzQ0MWQ1YWI4MzJjMzU3MDdmNjFmYjVjZWM5ODNkYjQwYzdiYzcuLmEzMjYyOGI3YTE2MDkz
NWFjYjhiNzUzMTEzZjgzODU1M2E2ZWI4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaApAQCAtNjAsMTEgKzYwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1h
bmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRl
ZCkKLSAgICB7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShpbnRlcnJ1cHRlZCk7Ci0gICAgICAgIFVO
VVNFRF9QQVJBTShwYWdlTXV0ZWQpOwotICAgIH0KIAogcHJvdGVjdGVkOgogICAgIEF1ZGlvQ2Fw
dHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CkBAIC03OSwxMSArNzQsNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+VmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CiAgICAgdmly
dHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJy
dXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotICAgIHsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGludGVy
cnVwdGVkKTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKHBhZ2VNdXRlZCk7Ci0gICAgfQogCiBwcm90
ZWN0ZWQ6CiAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaAppbmRleCBiZWFkM2I5NWQ5NTdlOGM2MTI0MTUzNzNhMDNkZjdhMDIzOTlhNzJlLi5jY2Nl
OWI5YWExOTcwM2UwOTU3MzNlZDI3YTIzYzMzOGY2MzhhZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CkBAIC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVhbHRpbWVWaWRlb1Nv
dXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYpOwogICAgIH5SZWFsdGltZVZp
ZGVvU291cmNlKCk7CiAKLSAgICAvLyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgIC8v
IFJlYWx0aW1lTWVkaWFTaW91cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5h
bDsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0
c1NpemVBbmRGcmFtZVJhdGUoT3B0aW9uYWw8aW50PiB3aWR0aCwgT3B0aW9uYWw8aW50PiBoZWln
aHQsIE9wdGlvbmFsPGRvdWJsZT4gZnJhbWVSYXRlKSBmaW5hbDsKQEAgLTU2LDYgKzU2LDcgQEAg
cHJpdmF0ZToKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZS0+ZGV2aWNlVHlwZSgpOyB9CiAgICAgdm9pZCBtb25p
dG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYgbm90aWZpZXIpIGZpbmFsIHsgbV9z
b3VyY2UtPm1vbml0b3JPcmllbnRhdGlvbihub3RpZmllcik7IH0KICAgICBib29sIGludGVycnVw
dGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UtPmludGVycnVwdGVkKCk7IH0KKyAg
ICBib29sIGlzU2FtZUFzKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgY29uc3QgZmluYWwg
eyByZXR1cm4gdGhpcyA9PSAmc291cmNlIHx8IG1fc291cmNlLnB0cigpID09ICZzb3VyY2U7IH0K
IAogICAgIC8vIE9ic2VydmVyCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KaW5kZXggOGQ5NzA0MWMxNGQz
ZmFlNzVlNjY1YjVjZmEwMjJiYTU3ZTIwNzMyNi4uNGEyMDQ3YmM0NDNhNjU2NjI0ZDMxYjA1YmZh
NzgyYTE4N2U1MjUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0K
QEAgLTEwMiwxMiArMTAyLDYgQEAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKQogICAgIHJldHVybiBmYWN0b3J5
LmdldCgpOwogfQogCi12b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzZXRBdWRp
b0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0g
ICAgaWYgKGF1dG8qIGFjdGl2ZVNvdXJjZSA9IHRoaXMtPmFjdGl2ZVNvdXJjZSgpKQotICAgICAg
ICBhY3RpdmVTb3VyY2UtPnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwot
fQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggZTRlODliZjBkOGVl
NTE1M2NiYTUwYjk4ODIzOGIxMTg1MjYzYzVhMC4uOGQ5NTI4MjQ0MDAyNjg4MWIwNDBlYzI1Y2Ex
NWViZGY0ZTM1OWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC0xMTUs
MTAgKzExNSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGV2aWNlc0NoYW5nZWQoY29uc3QgVmVj
dG9yPENhcHR1cmVEZXZpY2U+Jik7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZv
aWQgc2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11
dGVkKSBmaW5hbDsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmlu
YWwKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAK
aW5kZXggMGJlZDU4OWE0MDY1ZmNkYzFhNTI3MmQxNGFmNTU2OGE0YTZkYmM1NS4uM2UzYWE0ZWQ4
NmQ1YjhmYzIwODNlMmU1ZGY4MGJmOWRlZDFiOGMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtNTMsMTQgKzUzLDYgQEAgcHVibGljOgogICAg
IH0KIAogcHJpdmF0ZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0Vmlk
ZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotICAg
IHsKLSAgICAgICAgaWYgKGFjdGl2ZVNvdXJjZSgpKQotICAgICAgICAgICAgYWN0aXZlU291cmNl
KCktPnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIH0KLSNlbmRp
ZgotCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIo
KSB7IHJldHVybiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsgfQogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBmYzQyZjZiYTdhZGViOTU2OTQxMzBmYWJi
ODY2Nzg2MzJlNWM5OGE5Li43MjRlMTUzOGMwZDFhY2I4OWVkZTg0MWI2ODA1ODk1ZGE2OWQ3OTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTAyLDEzICsxMDIsNiBAQCBwdWJs
aWM6CiAgICAgfQogCiBwcml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9p
ZCBzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0
ZWQpIGZpbmFsCi0gICAgewotICAgICAgICBpZiAoYWN0aXZlU291cmNlKCkpCi0gICAgICAgICAg
ICBhY3RpdmVTb3VyY2UoKS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7
Ci0gICAgfQotI2VuZGlmCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURl
dmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpOyB9CiB9OwogCkBAIC0x
OTEsNyArMTg0LDYgQEAgcHVibGljOgogICAgIH0KIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICB2b2lkIHNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVw
dGVkLCBib29sIHBhZ2VNdXRlZCkgZmluYWwgeyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9y
eTo6c2luZ2xldG9uKCkuc2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdl
TXV0ZWQpOyB9CiAgICAgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYg
c291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24o
KS5zZXRBY3RpdmVTb3VyY2Uoc291cmNlKTsgfQogICAgIHZvaWQgdW5zZXRBY3RpdmVTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VGYWN0b3J5OjpzaW5nbGV0b24oKS51bnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9CiAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0aXZlU291cmNlKCkgZmluYWwgeyByZXR1cm4gQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLmFjdGl2ZVNvdXJjZSgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcAppbmRleCAwMGNjMjNjMDEzODA3MjM0MjNkOTIxZWVlODA2MzhmZGI0
MmJhNTkwLi42MzdlZTkxODZhNjE2OWM3MmI0M2U1NzI4M2RmMTVhMTFmYTViNGM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAKQEAgLTUzMCwyNiArNTMwLDEwIEBAIENhcHR1cmVTb3VyY2VPckVycm9y
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVy
ZVNvCiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRl
cnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYgKGF1dG8qIGFjdGl2ZVNvdXJjZSA9
IHRoaXMtPmFjdGl2ZVNvdXJjZSgpKQotICAgICAgICBhY3RpdmVTb3VyY2UtPnNldEludGVycnVw
dGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotfQotCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVy
cnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICAvLyBJbiBjYXNlIG9mIGNsb25pbmcsIHdl
IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIGEgc2luZ2xlIHNvdXJjZS4KLSAgICBmb3IgKGF1dG8mIHNv
dXJjZSA6IG1fbWFuYWdlci5tX3NvdXJjZXMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHNvdXJj
ZS0+ZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAg
ICAgICAgICAgIHNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7
Ci0gICAgfQotfQotCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6
OnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJikKIHsKICAgICAvLyBNdXRpbmcg
aXMgZG9uZSBieSBHUFVQcm9jZXNzIGZhY3RvcnkuIFdlIGRvIG5vdCB3YW50IHRvIGhhbmRsZSBp
dCBoZXJlIGluIGNhc2Ugb2YgdHJhY2sgY2xvbmluZy4KIH0KLQogI2VuZGlmCiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgKaW5kZXggNzI1NjQ5ODQ1MDlkNDkwODU4YzQ2OTcxZDI1OGYwZDRlOWU2NGJmMC4u
M2JjNTFlYWI5MWE1NGZkZjYwMTRlNjBmOTZmNDg3MDM1MzZkNmE1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmgKQEAgLTY3LDkgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBwcml2YXRlOgogICAgICAgICBXZWJD
b3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9t
YW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICAgICAgdm9pZCBzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1
cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZpbmFsOwotI2VuZGlmCiAKICAgICAgICAgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKICAgICAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MgeyBmYWxzZSB9OwpAQCAtODQsNyArODEsNiBAQCBwcml2YXRlOgogICAgICAg
ICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdl
cigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsg
fQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIHZvaWQgc2V0QWN0aXZlU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBzZXRW
aWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZp
bmFsOwogI2VuZGlmCiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdl
cjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBlNDlhZjRlMDExNjY0OTcwZTE2MTk4MTc0N2ZhZWMxNjgzNTAyYmZlLi5iMGUz
OWNhZTI4M2UwNGNhOGFlZDQ5ZWYwNGNhM2RmNDQ4MGVhYjE5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjAtMDUtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIFZpZGVvIGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0ZWQgaW4gY2FzZSBvZiB0YWIgc3dp
dGNoIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExNTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgRGlzYWJsZSBHUFUg
cHJvY2VzcyB0ZXN0IHNpbmNlIHdlIGFyZSBub3QgYWJsZSB5ZXQgdG8gbXV0ZS91bm11dGUgaGFu
ZGxlIG11bHRpcGxlIHZpZGVvIHRyYWNrcworICAgICAgICB3aXRoIGRpZmZlcmVudCBzb3VyY2Vz
IGFzIGNhbiBiZSBkb25lIGlmIGNhcHR1cmUgaXMgZG9uZSBvdXQgb2YgcHJvY2Vzcy4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vdmlkZW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10
YWIuaHRtbDoKKyAgICAgICAgVXBkYXRlIHRlc3QgdG8gZW5zdXJlIHRoZSB0cmFjayBpcyBwcm9k
dWNpbmcgY29udGVudC4KKwogMjAyMC0wNS0wNyAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gR2FyZGVuaW5nLCB1cGRhdGUgdGVzdCBl
eHBlY3RhdGlvbnMgYWZ0ZXIgcjI1OTcwNQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAyMzNhOTM4ZjExNTBhZTNkNGMyYjU5NGZlYzY2ODZjNWYxZWY0MWFj
Li4xMjU3NjRlMzI3YjQ3N2Q1YzhlOTI5YWU3N2JkMDNlODAyYzQwMTIzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjg4MCw2ICsyODgwLDggQEAgaHR0
cC90ZXN0cy9tdWx0aXBhcnQvbG9hZC1sYXN0LW5vbi1odG1sLWZyYW1lLnBocCBbIEZhaWx1cmUg
IF0KIAogd2Via2l0Lm9yZy9iLzE3NzM2NiBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdh
dGlvbi9zYW5kYm94LUFMTE9XRUQtdG9wLW5hdmlnYXRpb24td2l0aC11c2VyLWdlc3R1cmUtMS5o
dG1sIFsgUGFzcyBUaW1lb3V0IF0KIAord2Via2l0Lm9yZy9iLzIxMTUwOSBwbGF0Zm9ybS9pb3Mv
bWVkaWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWItZ3B1LXByb2Nlc3MuaHRt
bCBbIEZhaWx1cmUgXQorCiB3ZWJraXQub3JnL2IvMTc3Mzk1IGZhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tb3ZlcmxvYWRlZC1vcGVyYXRpb25zLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXZpZGVvLXRyYWNr
cy1kaXNhYmxlZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L21lZGlhc3RyZWFtL2dl
dFVzZXJNZWRpYS13ZWJhdWRpby5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92aWRlby1tdXRlZC1pbi1iYWNrZ3Jv
dW5kLXRhYi5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL3ZpZGVv
LW11dGVkLWluLWJhY2tncm91bmQtdGFiLmh0bWwKaW5kZXggNGM1NjY2MWQyNmFmNDQ1MDU1ZGI3
MDc5Zjc2YzM2ZDNjMDVjZWJkNy4uNmJhODEyZTExMWY5N2U4YWQyNmQxYWM1Mzc5NjVjMzdlNWY3
N2JhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL3Zp
ZGVvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL21lZGlhc3RyZWFtL3ZpZGVvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLmh0bWwKQEAg
LTEyLDYgKzEyLDIwIEBACiAgICAgICAgICAgICBsZXQgYXVkaW9UcmFjazsKICAgICAgICAgICAg
IGxldCB2aWRlb1RyYWNrOwogCisgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiB2YWxpZGF0ZU1l
ZGlhU3RyZWFtVHJhY2tJc0dlbmVyYXRpbmdDb250ZW50KHRyYWNrKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLm9ic2VydmVNZWRpYVN0
cmVhbVRyYWNrKHRyYWNrKTsKKyAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAxMDA7CisgICAg
ICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTApKTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGludGVybmFscy50cmFja0F1ZGlvU2FtcGxlQ291bnQgfHwgaW50ZXJuYWxzLnRyYWNrVmlk
ZW9TYW1wbGVDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgICAgIH0gd2hpbGUgKC0tY291bnQgPiAwKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHByb21pc2VfdGVzdCgodCkg
PT4gewogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwpAQCAtMjUs
NDYgKzM5LDQwIEBACiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNr
Lm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgYWN0aXZlIik7CiAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7CiAg
ICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIH0sICJTZXR1cCBzdHJlYW0iKTsKIAotICAg
ICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5
KGZhbHNlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNr
Lm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsK
LSAgICAgICAgICAgICAgICAgICAgfSwgIkhpZGUgcGFnZSwgb25seSB2aWRlbyBzaG91bGQgYmUg
bXV0ZWQiKTsKLSAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFz
eW5jICh0KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkoZmFsc2Up
OworICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8g
dHJhY2sgaXMgYWN0aXZlIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFj
ay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7CisgICAgICAgICAgICB9LCAiSGlkZSBw
YWdlLCBvbmx5IHZpZGVvIHNob3VsZCBiZSBtdXRlZCIpOwogCi0gICAgICAgICAgICAgICAgLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkodHJ1ZSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRy
YWNrIGlzIGFjdGl2ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHZp
ZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBhY3RpdmUiKTsKLSAgICAgICAgICAgICAg
ICAgICAgfSwgIlNob3cgcGFnZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSB1bm11dGVkIik7
Ci0gICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3luYyAodCkg
PT4geworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAg
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KHRydWUpOworICAgICAg
ICAgICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMg
YWN0aXZlIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2subXV0ZWQs
ICJ2aWRlbyB0cmFjayBpcyBhY3RpdmUiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IGFzc2VydF90cnVlKGF3YWl0IHZhbGlkYXRlTWVkaWFTdHJlYW1UcmFja0lzR2VuZXJhdGluZ0Nv
bnRlbnQoYXVkaW9UcmFjayksICJhdWRpbyB0cmFjayIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKGF3YWl0IHZhbGlkYXRlTWVkaWFTdHJlYW1UcmFja0lzR2VuZXJhdGluZ0NvbnRlbnQo
dmlkZW9UcmFjayksICJ2aWRlbyB0cmFjayIpOworICAgICAgICAgICAgfSwgIlNob3cgcGFnZSwg
dmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSB1bm11dGVkIik7CiAKLSAgICAgICAgICAgICAgICAu
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QoKCkgPT4gewotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VNdXRlZCgi
Y2FwdHVyZWRldmljZXMiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBp
cyBtdXRlZCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFj
ay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAgICAgICAgICAgICAgIH0s
ICJIaWRlIGFuZCBtdXRlIHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgbXV0ZWQiKTsK
LSAgICAgICAgICAgICAgICB9KQotCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQsICJ2
aWRlbyB0cmFjayBpcyBtdXRlZCIpOwotICAgICAgICAgICAgICAgICAgICB9LCAiU2hvdyBwYWdl
LCB2aWRlbyBhbmQgYXVkaW8gc2hvdWxkIHJlbWFpbiBtdXRlZCIpOwotICAgICAgICAgICAgICAg
IH0pCi0gICAgICAgICAgICB9LCAiU2V0dXAgc3RyZWFtIik7CisgICAgICAgICAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmls
aXR5KGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdl
TXV0ZWQoImNhcHR1cmVkZXZpY2VzIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGFzc2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCIp
OworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0
cmFjayBpcyBtdXRlZCIpOworICAgICAgICAgICAgfSwgIkhpZGUgYW5kIG11dGUgcGFnZSwgdmlk
ZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSBtdXRlZCIpOwogCisgICAgICAgICAgICBwcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eSh0
cnVlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVk
aW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1Ry
YWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAgICAgIH0sICJTaG93
IHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgcmVtYWluIG11dGVkIik7CiAgICAgICAgIDwv
c2NyaXB0PgogICAgIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398843</attachid>
            <date>2020-05-08 02:25:21 -0700</date>
            <delta_ts>2020-05-08 03:29:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211509-20200508112519.patch</filename>
            <type>text/plain</type>
            <size>30764</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmEwMGE5ZTQ3ZDYwZDUx
YjY5OWVkMTk0N2ZhMjkwYmM0ZmM0OTAzMy4uZmVlZjgyYWQwODUyY2EzZTdkMzAwM2MyMmU0ZGJk
MDUwMmQxNDRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA1LTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBSZW1vdmUgc2V0SW50ZXJydXB0
ZWQgYW5kIHJlbGF0ZWQgY29kZS4KKyAgICAgICAgSW5zdGVhZCwgZGlyZWN0bHkgdXNlIHNldE11
dGVkKHRydWUvZmFsc2UpIG9mIHRoZSBzb3VyY2Ugb2YgY2FwdHVyZSB0cmFja3MuCisgICAgICAg
IFRvIGVuc3VyZSB3ZSB2YWxpZGF0ZSB0aGF0IHRoZSBhY3RpdmUgc291cmNlIGlzIHRpZWQgdG8g
YSB0cmFjayBvZiB0aGUgZG9jdW1lbnQsCisgICAgICAgIHdlIGFkZCBSZWFsdGltZVNvdXJjZTo6
aXNTYW1lQXMgd2hpY2ggaGFuZGxlcyB0aGUgY2FzZSBvZiBhIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
d3JhcHBpbmcgYW4gQVZWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAgICAgIFRoZXJlIG1pZ2h0IGJl
IG11bHRpcGxlIHZpZGVvIHRyYWNrcyB3aXRoIGVhY2ggb25lIGl0cyBSZWFsdGltZVZpZGVvU291
cmNlIHVzaW5nIHRoZSBzYW1lIEFWVmlkZW9DYXB0dXJlU291cmNlLgorICAgICAgICBXZSBtdXRl
IHRoZSBBVlZpZGVvQ2FwdHVyZVNvdXJjZSBkaXJlY3RseSB0byBtYWtlIHN1cmUgYWxsIGxpbmtl
ZCB0cmFja3Mgd2lsbCBnZXQgbXV0ZWQvdW5tdXRlZCBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAg
ICBUZXN0cyB0byBiZSBmaXhlZC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpN
ZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU291cmNlQ2FwdHVyaW5nRm9y
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2Fw
dHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorCiAyMDIwLTA1LTA3ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1heUJlZ2luIHdoZWVsIGV2
ZW50IGluIGEgPHNlbGVjdD4gZG9lc24ndCBmbGFzaCB0aGUgc2Nyb2xsZXJzCkBAIC01OTgsNyAr
NjMxLDcgQEAKICAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpjb21wdXRlRXZlbnRMaXN0ZW5lclJl
Z2lvblR5cGVzKToKICAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6YWRqdXN0IGNv
bnN0KToKIAotMjAyMC0wNS0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+Cisy
MDIwLTA1LTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBT
ZW5kaW5nIFdlYlJUQyBuZXR3b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBt
YWluIHRocmVhZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNhM2U0Mzg0NjhmNzQ4ZGZiYjY4MTlmYjc4MTVhNzcxN2U2
YTU0MjUuLjM3ZGNkYTg0Njk4YzhiNzY3ZWUyOWY1NTBkNDliZTMzYjgwY2I3OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC00NTMsNiArNDUzLDE5IEBACiAKIDIwMjAtMDUtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCisgICAgICAgIFZpZGVvIGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0
ZWQgaW4gY2FzZSBvZiB0YWIgc3dpdGNoIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIFJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGNvZGUuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6c2V0
QWN0aXZlU291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmg6CisKKzIwMjAtMDUtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCiAgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdvcmsgcGFja2V0cyBzaG91bGQgbm90
IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyOTEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMDg1ZTRmZDZm
YjgzMWU4NDI1NWE4MmEwMmVhOGYxNzA0MmY5ZmY0MC4uZDk3MzkyY2UxMTY5ZGFiMjkyNTcyMjk3
MjIyMDIyNDQ0YmJhNmZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgog
I2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKKyNpbmNsdWRlICJSdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CkBAIC02OCw2ICs2OSwxMCBAQCBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gTWVk
aWFTdHJlYW1UcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsCiB7
CiAgICAgYXV0byB0cmFjayA9IGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJlYW1UcmFjayhjb250ZXh0
LCBXVEZNb3ZlKHByaXZhdGVUcmFjaykpKTsKICAgICB0cmFjay0+c3VzcGVuZElmTmVlZGVkKCk7
CisKKyAgICBpZiAodHJhY2stPmlzQ2FwdHVyZVRyYWNrKCkpCisgICAgICAgIHRyYWNrLT51cGRh
dGVUb1BhZ2VNdXRlZFN0YXRlKCk7CisKICAgICByZXR1cm4gdHJhY2s7CiB9CiAKQEAgLTg3LDEx
ICs5Miw2IEBAIE1lZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPE1lZGlhU3RyCiAKICAgICBpZiAobV9wcml2YXRlLT50
eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCiAgICAgICAgIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZEF1ZGlvQ2FwdHVyZVNv
dXJjZSgqdGhpcyk7Ci0KLSAgICBpZiAoYXV0byBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkp
IHsKLSAgICAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCkgJiYgZG9jdW1lbnQtPnBhZ2UoKS0+bXV0
ZWRTdGF0ZSgpKQotICAgICAgICAgICAgc2V0TXV0ZWQodHJ1ZSk7Ci0gICAgfQogfQogCiBNZWRp
YVN0cmVhbVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCkBAIC0xOTUsMjYgKzE5NSw2IEBAIGJv
b2wgTWVkaWFTdHJlYW1UcmFjazo6bXV0ZWQoKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUt
Pm11dGVkKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c2V0TXV0ZWQoTWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQotewotICAgIGJvb2wgdHJhY2tNdXRlZCA9IGZh
bHNlOwotICAgIHN3aXRjaCAoc291cmNlKCkuZGV2aWNlVHlwZSgpKSB7Ci0gICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICB0cmFja011dGVkID0gc3RhdGUgJiBNZWRp
YVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQ7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgotICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgotICAgICAgICB0cmFja011dGVkID0gc3Rh
dGUgJiBNZWRpYVByb2R1Y2VyOjpTY3JlZW5DYXB0dXJlSXNNdXRlZDsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgbV9wcml2
YXRlLT5zZXRNdXRlZCh0cmFja011dGVkKTsKLX0KLQogYXV0byBNZWRpYVN0cmVhbVRyYWNrOjpy
ZWFkeVN0YXRlKCkgY29uc3QgLT4gU3RhdGUKIHsKICAgICByZXR1cm4gZW5kZWQoKSA/IFN0YXRl
OjpFbmRlZCA6IFN0YXRlOjpMaXZlOwpAQCAtNDY4LDQ0ICs0NDgsNjcgQEAgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJhY2s6OmNhcHR1cmVTdGF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgTWVkaWFT
dHJlYW1UcmFjayogZmluZEFjdGl2ZUNhcHR1cmVUcmFja0ZvckRvY3VtZW50KERvY3VtZW50JiBk
b2N1bWVudCwgUmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0aXZlU291cmNlLCBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlIHR5cGUpCitzdGF0aWMgYm9vbCBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNr
SW5Eb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICBNZWRpYVN0cmVhbVRyYWNrKiBzZWxlY3RlZFRyYWNrID0gbnVsbHB0cjsKLSAg
ICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewotICAgICAg
ICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0dXJlVHJh
Y2stPmVuZGVkKCkpCisgICAgZm9yIChhdXRvKiB0cmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkg
eworICAgICAgICBpZiAodHJhY2stPmRvY3VtZW50KCkgIT0gJmRvY3VtZW50IHx8IHRyYWNrLT5l
bmRlZCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKCZjYXB0dXJlVHJh
Y2stPnNvdXJjZSgpID09IGFjdGl2ZVNvdXJjZSkKLSAgICAgICAgICAgIHJldHVybiBjYXB0dXJl
VHJhY2s7Ci0KLSAgICAgICAgLy8gSWYgdGhlIGRvY3VtZW50IGhhcyBhIGxpdmUgY2FwdHVyZSB0
cmFjaywgd2hpY2ggaXMgbm90IHRoZSBhY3RpdmUgb25lLCB3ZSBwaWNrIHRoZSBmaXJzdCBvbmUu
Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgc3RvcmUgcGVyIHBhZ2UgYWN0
aXZlIGF1ZGlvL3ZpZGVvIGNhcHR1cmUgdHJhY2tzLgotICAgICAgICBpZiAoIXNlbGVjdGVkVHJh
Y2sgJiYgY2FwdHVyZVRyYWNrLT5wcml2YXRlVHJhY2soKS50eXBlKCkgPT0gdHlwZSkKLSAgICAg
ICAgICAgIHNlbGVjdGVkVHJhY2sgPSBjYXB0dXJlVHJhY2s7CisgICAgICAgIGlmICh0cmFjay0+
c291cmNlKCkuaXNTYW1lQXMoc291cmNlKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KLSAgICByZXR1cm4gc2VsZWN0ZWRUcmFjazsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5k
aWYKIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRl
ZFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICByZXR1cm47CisKICAgICBhdXRvKiBhY3RpdmVBdWRpb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3Vy
Y2UoKTsKLSAgICBpZiAoYXV0byogYXVkaW9DYXB0dXJlVHJhY2sgPSBmaW5kQWN0aXZlQ2FwdHVy
ZVRyYWNrRm9yRG9jdW1lbnQoZG9jdW1lbnQsIGFjdGl2ZUF1ZGlvU291cmNlLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbykpCi0gICAgICAgIGF1ZGlvQ2FwdHVyZVRyYWNrLT5zZXRN
dXRlZChkb2N1bWVudC5wYWdlKCktPm11dGVkU3RhdGUoKSk7CisgICAgaWYgKGFjdGl2ZUF1ZGlv
U291cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3RpdmVBdWRp
b1NvdXJjZSwgZG9jdW1lbnQpKSB7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0
ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkOwor
ICAgICAgICBhY3RpdmVBdWRpb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IChkb2N1bWVu
dC5oaWRkZW4oKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlu
dGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVuYWJsZWQoKSkpOworICAgIH0KIAog
ICAgIGF1dG8qIGFjdGl2ZVZpZGVvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwotICAgIGlm
IChhdXRvKiB2aWRlb0NhcHR1cmVUcmFjayA9IGZpbmRBY3RpdmVDYXB0dXJlVHJhY2tGb3JEb2N1
bWVudChkb2N1bWVudCwgYWN0aXZlVmlkZW9Tb3VyY2UsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OlZpZGVvKSkKLSAgICAgICAgdmlkZW9DYXB0dXJlVHJhY2stPnNldE11dGVkKGRvY3VtZW50
LnBhZ2UoKS0+bXV0ZWRTdGF0ZSgpKTsKKyAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1
bWVudCkpIHsKKyAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkgJiBN
ZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQ7CisgICAgICAgIGFjdGl2
ZVZpZGVvU291cmNlLT5zZXRNdXRlZChwYWdlTXV0ZWQgfHwgZG9jdW1lbnQuaGlkZGVuKCkpOwor
ICAgIH0KICNlbHNlCiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sgOiBhbGxDYXB0dXJlVHJh
Y2tzKCkpIHsKLSAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1l
bnQgfHwgY2FwdHVyZVRyYWNrLT5lbmRlZCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIGNhcHR1cmVUcmFjay0+c2V0TXV0ZWQoZG9jdW1lbnQucGFnZSgpLT5tdXRlZFN0YXRlKCkp
OworICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpID09ICZkb2N1bWVudCAmJiAh
Y2FwdHVyZVRyYWNrLT5lbmRlZCgpKQorICAgICAgICAgICAgY2FwdHVyZVRyYWNrLT51cGRhdGVU
b1BhZ2VNdXRlZFN0YXRlKCk7CiAgICAgfQogI2VuZGlmCiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1U
cmFjazo6dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpCit7CisgICAgQVNTRVJUKGlzQ2FwdHVyZVRy
YWNrKCkpOworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCk7CisgICAgaWYgKCFw
YWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUo
KSkgeworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgbV9wcml2
YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0Fu
ZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OldpbmRvdzoKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0
YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogdm9p
ZCBNZWRpYVN0cmVhbVRyYWNrOjplbmRDYXB0dXJlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAg
ICBib29sIGRpZEVuZENhcHR1cmUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggMDJmZDQ1NGI2YTFk
YTNjNTRiZGEzYjIwNDllOGUwM2Y3Y2FjZGIwYS4uYjAwZjA0OTMzMjBkYThlOWE1MDRlZTU2ZGFm
NThlMjA3Y2MxMWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTg3LDcgKzg3LDYgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0RW5hYmxlZChib29sKTsKIAogICAgIGJvb2wgbXV0ZWQoKSBjb25zdDsKLSAgICB2
b2lkIHNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CiAKICAgICBlbnVt
IGNsYXNzIFN0YXRlIHsgTGl2ZSwgRW5kZWQgfTsKICAgICBTdGF0ZSByZWFkeVN0YXRlKCkgY29u
c3Q7CkBAIC0xNjksNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYVN0cmVh
bVRyYWNrKE1lZGlhU3RyZWFtVHJhY2smKTsKIAogICAgIHZvaWQgY29uZmlndXJlVHJhY2tSZW5k
ZXJpbmcoKTsKKyAgICB2b2lkIHVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsKIAogICAgIC8vIEFj
dGl2ZURPTU9iamVjdCBBUEkuCiAgICAgdm9pZCBzdG9wKCkgZmluYWwgeyBzdG9wVHJhY2soKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjEzZjgzNzcyYTM2ODU2NWVkYTNmODdkNTE4
MTViZTc4ZmYxYWY2MS4uOTYwZGQ2MDM5Y2NmODA5Yjc5MDE2NDU5MWRkNDlhYjQ2ZjAxNGQ4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNzQ5LDE3ICsxNzQ5LDEwIEBAIHZvaWQgRG9j
dW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogICAgIGZvciAoYXV0byogY2xpZW50IDog
bV92aXNpYmlsaXR5U3RhdGVDYWxsYmFja0NsaWVudHMpCiAgICAgICAgIGNsaWVudC0+dmlzaWJp
bGl0eVN0YXRlQ2hhbmdlZCgpOwogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBhdXRv
KiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAgIGlmIChwYWdlICYmIGhpZGRlbigpKSB7Ci0gICAg
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldENhcHR1cmVQYWdl
U3RhdGUodHJ1ZSwgcGFnZS0+aXNNZWRpYUNhcHR1cmVNdXRlZCgpKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKCFQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5pc0ludGVycnVwdGVkKCkpCiAgICAgICAgIE1lZGlh
U3RyZWFtVHJhY2s6OnVwZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVkU3RhdGUoKnRoaXMpOwog
I2VuZGlmCi0jZW5kaWYKIH0KIAogVmlzaWJpbGl0eVN0YXRlIERvY3VtZW50Ojp2aXNpYmlsaXR5
U3RhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA1YjQ0MjQ1M2YyOTU3ZmQ0
NDZiMDljMzljOTE5YjQ4NDJiNTAwZmEyLi42ZTlmNWI5NmUxNWUwODhiOGExODc4MWQ5ZjcwNDRk
ZGVmNmM4ZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtODgsMTYgKzg4LDYgQEAgdm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIp
CiAgICAgICAgIHN0b3BCZWluZ09ic2VydmVkKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c2V0SW50ZXJydXB0ZWQoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17
Ci0jaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0ocGFnZU11dGVkKTsK
LSNlbmRpZgotCi0gICAgQUxXQVlTX0xPR19JRihtX2xvZ2dlciwgTE9HSURFTlRJRklFUiwgaW50
ZXJydXB0ZWQsICIsIHBhZ2UgbXV0ZWQgOiAiLCBwYWdlTXV0ZWQpOwotICAgIHNldE11dGVkKGlu
dGVycnVwdGVkKTsKLX0KLQogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRNdXRlZChib29s
IG11dGVkKQogewogICAgIEFMV0FZU19MT0dfSUYobV9sb2dnZXIsIExPR0lERU5USUZJRVIsIG11
dGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA2NmFhMzUwNGE3MjA1MTU5YjU0ZTU2NDA3OTll
ZjYzNTVmOWJhMGU5Li5mOGFiYWEzYWViZWJiZTYzZWVkZTFmNWQzMDIyN2Q4ODRlYjQ4MTc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0xMjcsNyArMTI3LDYgQEAgcHVibGljOgogICAgIGJvb2wg
Y2FwdHVyZURpZEZhaWwoKSBjb25zdCB7IHJldHVybiBtX2NhcHR1cmVEaWRGYWlsZWQ7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJydXB0
ZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW50ZXJydXB0ZWQoYm9vbCwgYm9vbCk7CiAKICAg
ICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICB2b2lk
IHNldE5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX25hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9CkBAIC0x
OTMsNiArMTkyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVGYWlsZWQo
KTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVBcyhSZWFsdGltZU1lZGlhU291cmNlJiBzb3Vy
Y2UpIGNvbnN0IHsgcmV0dXJuIHRoaXMgPT0gJnNvdXJjZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c0luY29taW5nQXVkaW9Tb3VyY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0luY29taW5nVmlkZW9Tb3VyY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGRjNDhhNzU2ZjdjYWM5ZmZj
ZDhmNWZlYTQ4MTFkNjJjNTE2MGJiZTQuLjJkMzJiMjQzYjFhOTY2ZWRmYjBiYmFkOGYwZTQyYjZk
YzQxY2M5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0zOCw3ICsz
OCw2IEBACiAjaW5jbHVkZSAiQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW5jbHVkZSAiUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9TSEExLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTI3MSwxMyArMjcwLDYgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwKICAg
ICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNl
cyksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CiB9CiAKLXZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0Q2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVk
LCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVk
KCkpCi0gICAgICAgIGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBdWRpb0NhcHR1cmVQYWdlU3Rh
dGUoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAgdmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNl
dFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLX0KLQogdm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRBdWRpb0NhcHR1cmVGYWN0b3J5KEF1ZGlv
Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAgICAgbV9hdWRpb0NhcHR1cmVGYWN0b3J5T3Zl
cnJpZGUgPSAmZmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAppbmRleCAxMGRk
YjI5MDNjMWNkOTYyMjFmZDVkZjAxYTM5YjkxMGRlYTk4YjViLi4wMjgyODY1OGUwOWVhZGU5NzIx
MThhZGVjZGMxN2YzNjRmZWEzMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCkBA
IC04Niw4ICs4Niw2IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGV2
aWNlc0NoYW5nZWRPYnNlcnZlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKLSAgICB2b2lk
IHNldENhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpOwot
CiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggMzAzNDQxZDVhYjgzMmMzNTcw
N2Y2MWZiNWNlYzk4M2RiNDBjN2JjNy4uYTMyNjI4YjdhMTYwOTM1YWNiOGI3NTMxMTNmODM4NTUz
YTZlYjhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC02MCwxMSArNjAs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVs
dDsKICAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqKSA9IDA7CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJl
RGV2aWNlTWFuYWdlcigpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9DYXB0dXJlUGFn
ZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotICAgIHsKLSAgICAgICAg
VU5VU0VEX1BBUkFNKGludGVycnVwdGVkKTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKHBhZ2VNdXRl
ZCk7Ci0gICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVm
YXVsdDsKQEAgLTc5LDExICs3NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0NhcHR1
cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VN
YW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0
ZWQpCi0gICAgewotICAgICAgICBVTlVTRURfUEFSQU0oaW50ZXJydXB0ZWQpOwotICAgICAgICBV
TlVTRURfUEFSQU0ocGFnZU11dGVkKTsKLSAgICB9CiAKIHByb3RlY3RlZDoKICAgICBWaWRlb0Nh
cHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IGJlYWQzYjk1
ZDk1N2U4YzYxMjQxNTM3M2EwM2RmN2EwMjM5OWE3MmUuLmNjY2U5YjlhYTE5NzAzZTA5NTczM2Vk
MjdhMjNjMzM4ZjYzOGFlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTQxLDcgKzQxLDcgQEAg
cHJpdmF0ZToKICAgICBleHBsaWNpdCBSZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZT4mJik7CiAgICAgflJlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAotICAg
IC8vIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlCisgICAgLy8gUmVhbHRpbWVNZWRpYVNpb3Vy
Y2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcFBy
b2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShP
cHRpb25hbDxpbnQ+IHdpZHRoLCBPcHRpb25hbDxpbnQ+IGhlaWdodCwgT3B0aW9uYWw8ZG91Ymxl
PiBmcmFtZVJhdGUpIGZpbmFsOwpAQCAtNTYsNiArNTYsNyBAQCBwcml2YXRlOgogICAgIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
c291cmNlLT5kZXZpY2VUeXBlKCk7IH0KICAgICB2b2lkIG1vbml0b3JPcmllbnRhdGlvbihPcmll
bnRhdGlvbk5vdGlmaWVyJiBub3RpZmllcikgZmluYWwgeyBtX3NvdXJjZS0+bW9uaXRvck9yaWVu
dGF0aW9uKG5vdGlmaWVyKTsgfQogICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NvdXJjZS0+aW50ZXJydXB0ZWQoKTsgfQorICAgIGJvb2wgaXNTYW1lQXMoUmVh
bHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBjb25zdCBmaW5hbCB7IHJldHVybiB0aGlzID09ICZz
b3VyY2UgfHwgbV9zb3VyY2UucHRyKCkgPT0gJnNvdXJjZTsgfQogCiAgICAgLy8gT2JzZXJ2ZXIK
ICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZUlPUy5tbQppbmRleCA4ZDk3MDQxYzE0ZDNmYWU3NWU2NjViNWNmYTAyMmJh
NTdlMjA3MzI2Li40YTIwNDdiYzQ0M2E2NTY2MjRkMzFiMDViZmE3ODJhMTg3ZTUyNTIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQpAQCAtMTAyLDEyICsxMDIsNiBA
QCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZh
Y3Rvcnk6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CiB9CiAKLXZvaWQg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShi
b29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICBpZiAoYXV0byogYWN0aXZl
U291cmNlID0gdGhpcy0+YWN0aXZlU291cmNlKCkpCi0gICAgICAgIGFjdGl2ZVNvdXJjZS0+c2V0
SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci19Ci0KIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCBlNGU4OWJmMGQ4ZWU1MTUzY2JhNTBiOTg4MjM4YjEx
ODUyNjNjNWEwLi44ZDk1MjgyNDQwMDI2ODgxYjA0MGVjMjVjYTE1ZWJkZjRlMzU5YWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTExNSwxMCArMTE1LDYgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBkZXZpY2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4m
KTsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRBdWRpb0NhcHR1cmVQ
YWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZpbmFsOwotI2VuZGlm
Ci0KIHByaXZhdGU6CiAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAppbmRleCAwYmVkNTg5YTQwNjVm
Y2RjMWE1MjcyZDE0YWY1NTY4YTRhNmRiYzU1Li4zZTNhYTRlZDg2ZDViOGZjMjA4M2UyZTVkZjgw
YmY5ZGVkMWI4YzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJN
YWMuY3BwCkBAIC01MywxNCArNTMsNiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUo
Ym9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi0gICAgewotICAgICAgICBpZiAoYWN0
aXZlU291cmNlKCkpCi0gICAgICAgICAgICBhY3RpdmVTb3VyY2UoKS0+c2V0SW50ZXJydXB0ZWQo
aW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAgfQotI2VuZGlmCi0KICAgICBDYXB0dXJlRGV2
aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIEFWQ2FwdHVy
ZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuY3BwCmluZGV4IGZjNDJmNmJhN2FkZWI5NTY5NDEzMGZhYmI4NjY3ODYzMmU1Yzk4YTkuLjcy
NGUxNTM4YzBkMWFjYjg5ZWRlODQxYjY4MDU4OTVkYTY5ZDc5MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwCkBAIC0xMDIsMTMgKzEwMiw2IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldFZpZGVvQ2FwdHVyZVBh
Z2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkgZmluYWwKLSAgICB7Ci0g
ICAgICAgIGlmIChhY3RpdmVTb3VyY2UoKSkKLSAgICAgICAgICAgIGFjdGl2ZVNvdXJjZSgpLT5z
ZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAgICB9Ci0jZW5kaWYKICAg
ICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFs
IHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRl
b0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7IH0KIH07CiAKQEAgLTE5MSw3ICsxODQsNiBAQCBwdWJs
aWM6CiAgICAgfQogcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQg
c2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVk
KSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRB
dWRpb0NhcHR1cmVQYWdlU3RhdGUoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7IH0KICAgICB2b2lk
IHNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZpbmFsIHsgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNvdXJjZShz
b3VyY2UpOyB9CiAgICAgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
JiBzb3VyY2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRv
bigpLnVuc2V0QWN0aXZlU291cmNlKHNvdXJjZSk7IH0KICAgICBSZWFsdGltZU1lZGlhU291cmNl
KiBhY3RpdmVTb3VyY2UoKSBmaW5hbCB7IHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFj
dG9yeTo6c2luZ2xldG9uKCkuYWN0aXZlU291cmNlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmlu
ZGV4IDAwY2MyM2MwMTM4MDcyMzQyM2Q5MjFlZWU4MDYzOGZkYjQyYmE1OTAuLjYzN2VlOTE4NmE2
MTY5YzcyYjQzZTU3MjgzZGYxNWExMWZhNWI0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAt
NTMwLDI2ICs1MzAsMTAgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU28KIH0KIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rv
cnk6OnNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VN
dXRlZCkKLXsKLSAgICBpZiAoYXV0byogYWN0aXZlU291cmNlID0gdGhpcy0+YWN0aXZlU291cmNl
KCkpCi0gICAgICAgIGFjdGl2ZVNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBh
Z2VNdXRlZCk7Ci19Ci0KLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9y
eTo6c2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11
dGVkKQotewotICAgIC8vIEluIGNhc2Ugb2YgY2xvbmluZywgd2UgbWlnaHQgaGF2ZSBtb3JlIHRo
YW4gYSBzaW5nbGUgc291cmNlLgotICAgIGZvciAoYXV0byYgc291cmNlIDogbV9tYW5hZ2VyLm1f
c291cmNlcy52YWx1ZXMoKSkgewotICAgICAgICBpZiAoc291cmNlLT5kZXZpY2VUeXBlKCkgPT0g
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICAgICAgc291cmNlLT5z
ZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAgICB9Ci19Ci0KIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6c2V0QWN0aXZlU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2UmKQogewogICAgIC8vIE11dGluZyBpcyBkb25lIGJ5IEdQVVByb2Nl
c3MgZmFjdG9yeS4gV2UgZG8gbm90IHdhbnQgdG8gaGFuZGxlIGl0IGhlcmUgaW4gY2FzZSBvZiB0
cmFjayBjbG9uaW5nLgogfQotCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCA3MjU2
NDk4NDUwOWQ0OTA4NThjNDY5NzFkMjU4ZjBkNGU5ZTY0YmYwLi4zYmM1MWVhYjkxYTU0ZmRmNjAx
NGU2MGY5NmY0ODcwMzUzNmQ2YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNjcsOSArNjcsNiBA
QCBwcml2YXRlOgogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
KSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2Fw
dHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVy
ZURldmljZU1hbmFnZXI7IH0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICB2b2lk
IHNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRl
ZCkgZmluYWw7Ci0jZW5kaWYKIAogICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9t
YW5hZ2VyOwogICAgICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNl
IH07CkBAIC04NCw3ICs4MSw2IEBAIHByaXZhdGU6CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4g
bV9tYW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICAgICAgdm9pZCBzZXRBY3RpdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZSYpIGZpbmFsOwotICAgICAgICB2b2lkIHNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0
ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkgZmluYWw7CiAjZW5kaWYKIAogICAg
ICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRkYjM2MDlk
Nzc0NGQ2MzM3ZjJmODZhNmQ4YmM0ZjhiMDU2YmIyYTAuLjFhOTg5NjkyNWIzZTFlMjU3Yjk4ZTcy
MGMwMDhjODJmNGE3YTUwZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNS0wOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVmlkZW8gY2FwdHVyZSBk
b2VzIG5vdCBnZXQgdW5tdXRlZCBpbiBjYXNlIG9mIHRhYiBzd2l0Y2ggb24gaU9TCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE1MDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgRGlzYWJsZSBHUFUgcHJvY2VzcyB0ZXN0IHNpbmNlIHdl
IGFyZSBub3QgYWJsZSB5ZXQgdG8gbXV0ZS91bm11dGUgaGFuZGxlIG11bHRpcGxlIHZpZGVvIHRy
YWNrcworICAgICAgICB3aXRoIGRpZmZlcmVudCBzb3VyY2VzIGFzIGNhbiBiZSBkb25lIGlmIGNh
cHR1cmUgaXMgZG9uZSBvdXQgb2YgcHJvY2Vzcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvbWVk
aWFzdHJlYW0vdmlkZW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWIuaHRtbDoKKyAgICAgICAgVXBk
YXRlIHRlc3QgdG8gZW5zdXJlIHRoZSB0cmFjayBpcyBwcm9kdWNpbmcgY29udGVudC4KKwogMjAy
MC0wNS0wOCAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdW1dQRV0gR2FyZGVuaW5nLCB1cGRhdGUgZXhwZWN0YXRpb25zIGFuZCBiYXNlbGluZXMg
YWZ0ZXIgcjI2MTM0MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAyMzNhOTM4ZjExNTBhZTNkNGMyYjU5NGZlYzY2ODZjNWYxZWY0MWFjLi4xMjU3NjRlMzI3
YjQ3N2Q1YzhlOTI5YWU3N2JkMDNlODAyYzQwMTIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjg4MCw2ICsyODgwLDggQEAgaHR0cC90ZXN0cy9tdWx0
aXBhcnQvbG9hZC1sYXN0LW5vbi1odG1sLWZyYW1lLnBocCBbIEZhaWx1cmUgIF0KIAogd2Via2l0
Lm9yZy9iLzE3NzM2NiBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlvbi9zYW5kYm94
LUFMTE9XRUQtdG9wLW5hdmlnYXRpb24td2l0aC11c2VyLWdlc3R1cmUtMS5odG1sIFsgUGFzcyBU
aW1lb3V0IF0KIAord2Via2l0Lm9yZy9iLzIxMTUwOSBwbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0v
YXVkaW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbCBbIEZhaWx1cmUg
XQorCiB3ZWJraXQub3JnL2IvMTc3Mzk1IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24tb3ZlcmxvYWRlZC1vcGVyYXRpb25zLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXZpZGVvLXRyYWNrcy1kaXNhYmxlZC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS13
ZWJhdWRpby5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92aWRlby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1s
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL3ZpZGVvLW11dGVkLWluLWJh
Y2tncm91bmQtdGFiLmh0bWwKaW5kZXggNGM1NjY2MWQyNmFmNDQ1MDU1ZGI3MDc5Zjc2YzM2ZDNj
MDVjZWJkNy4uYmU5NWYzMzE4MDU4ZGU1M2Y0OWY1N2ZmNTZkODc0YzFjMTBlNDc2NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL3ZpZGVvLW11dGVkLWlu
LWJhY2tncm91bmQtdGFiLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlh
c3RyZWFtL3ZpZGVvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLmh0bWwKQEAgLTEyLDYgKzEyLDIw
IEBACiAgICAgICAgICAgICBsZXQgYXVkaW9UcmFjazsKICAgICAgICAgICAgIGxldCB2aWRlb1Ry
YWNrOwogCisgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiB2YWxpZGF0ZU1lZGlhU3RyZWFtVHJh
Y2tJc0dlbmVyYXRpbmdDb250ZW50KHRyYWNrKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLm9ic2VydmVNZWRpYVN0cmVhbVRyYWNrKHRy
YWNrKTsKKyAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAxMDA7CisgICAgICAgICAgICAgICAg
ZG8geworICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNl
dFRpbWVvdXQocmVzb2x2ZSwgNTApKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGludGVybmFs
cy50cmFja0F1ZGlvU2FtcGxlQ291bnQgfHwgaW50ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3Vu
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAg
IH0gd2hpbGUgKC0tY291bnQgPiAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICB9CisKICAgICAgICAgICAgIHByb21pc2VfdGVzdCgodCkgPT4gewogICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwpAQCAtMjUsNDYgKzM5LDQwIEBA
CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVk
aW8gdHJhY2sgaXMgYWN0aXZlIik7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh2
aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7CiAgICAgICAgICAgICAg
ICAgfSkKKyAgICAgICAgICAgIH0sICJTZXR1cCBzdHJlYW0iKTsKIAotICAgICAgICAgICAgICAg
IC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVk
aW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1
ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAgICAgICAgICAg
ICAgICAgICAgfSwgIkhpZGUgcGFnZSwgb25seSB2aWRlbyBzaG91bGQgYmUgbXV0ZWQiKTsKLSAg
ICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkoZmFsc2UpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgYWN0
aXZlIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZp
ZGVvIHRyYWNrIGlzIG11dGVkIik7CisgICAgICAgICAgICB9LCAiSGlkZSBwYWdlLCBvbmx5IHZp
ZGVvIHNob3VsZCBiZSBtdXRlZCIpOwogCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2
ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2subXV0
ZWQsICJ2aWRlbyB0cmFjayBpcyBhY3RpdmUiKTsKLSAgICAgICAgICAgICAgICAgICAgfSwgIlNo
b3cgcGFnZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSB1bm11dGVkIik7Ci0gICAgICAgICAg
ICAgICAgfSkKKyAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KHRydWUpOworICAgICAgICAgICAgICAgIGFz
c2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgYWN0aXZlIik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFj
ayBpcyBhY3RpdmUiKTsKIAotICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0UGFnZVZpc2liaWxpdHkoZmFsc2UpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZU11dGVkKCJjYXB0dXJlZGV2aWNlcyIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sg
aXMgbXV0ZWQiKTsKLSAgICAgICAgICAgICAgICAgICAgfSwgIkhpZGUgYW5kIG11dGUgcGFnZSwg
dmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSBtdXRlZCIpOwotICAgICAgICAgICAgICAgIH0pCisg
ICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoYXdhaXQgdmFsaWRhdGVNZWRpYVN0cmVhbVRyYWNr
SXNHZW5lcmF0aW5nQ29udGVudChhdWRpb1RyYWNrKSwgImF1ZGlvIHRyYWNrIik7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoYXdhaXQgdmFsaWRhdGVNZWRpYVN0cmVhbVRyYWNrSXNHZW5l
cmF0aW5nQ29udGVudCh2aWRlb1RyYWNrKSwgInZpZGVvIHRyYWNrIik7CisgICAgICAgICAgICB9
LCAiU2hvdyBwYWdlLCB2aWRlbyBhbmQgYXVkaW8gc2hvdWxkIGJlIHVubXV0ZWQiKTsKIAotICAg
ICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5
KHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5t
dXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAg
ICAgICAgICAgICAgICAgICAgfSwgIlNob3cgcGFnZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBy
ZW1haW4gbXV0ZWQiKTsKLSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgfSwgIlNldHVw
IHN0cmVhbSIpOworICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eShmYWxzZSk7CisgICAgICAgICAgICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZU11dGVkKCJjYXB0dXJlZGV2aWNlcyIpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNr
Lm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
dHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAg
ICAgIH0sICJIaWRlIGFuZCBtdXRlIHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgbXV0
ZWQiKTsKIAorICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkodHJ1ZSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlz
IG11dGVkIik7CisgICAgICAgICAgICB9LCAiU2hvdyBwYWdlLCB2aWRlbyBhbmQgYXVkaW8gc2hv
dWxkIHJlbWFpbiBtdXRlZCIpOwogICAgICAgICA8L3NjcmlwdD4KICAgICA8L2JvZHk+Ci08L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398852</attachid>
            <date>2020-05-08 03:29:16 -0700</date>
            <delta_ts>2020-05-08 03:54:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211509-20200508122914.patch</filename>
            <type>text/plain</type>
            <size>30318</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmEwMGE5ZTQ3ZDYwZDUx
YjY5OWVkMTk0N2ZhMjkwYmM0ZmM0OTAzMy4uYmQzZjA0ODQ4MWU1ZWY0ODk5NmMxODRiNjJjMDQw
ZTk4ODNmNTlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA1LTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBSZW1vdmUgc2V0SW50ZXJydXB0
ZWQgYW5kIHJlbGF0ZWQgY29kZS4KKyAgICAgICAgSW5zdGVhZCwgZGlyZWN0bHkgdXNlIHNldE11
dGVkKHRydWUvZmFsc2UpIG9mIHRoZSBzb3VyY2Ugb2YgY2FwdHVyZSB0cmFja3MuCisgICAgICAg
IFRvIGVuc3VyZSB3ZSB2YWxpZGF0ZSB0aGF0IHRoZSBhY3RpdmUgc291cmNlIGlzIHRpZWQgdG8g
YSB0cmFjayBvZiB0aGUgZG9jdW1lbnQsCisgICAgICAgIHdlIGFkZCBSZWFsdGltZVNvdXJjZTo6
aXNTYW1lQXMgd2hpY2ggaGFuZGxlcyB0aGUgY2FzZSBvZiBhIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
d3JhcHBpbmcgYW4gQVZWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAgICAgIFRoZXJlIG1pZ2h0IGJl
IG11bHRpcGxlIHZpZGVvIHRyYWNrcyB3aXRoIGVhY2ggb25lIGl0cyBSZWFsdGltZVZpZGVvU291
cmNlIHVzaW5nIHRoZSBzYW1lIEFWVmlkZW9DYXB0dXJlU291cmNlLgorICAgICAgICBXZSBtdXRl
IHRoZSBBVlZpZGVvQ2FwdHVyZVNvdXJjZSBkaXJlY3RseSB0byBtYWtlIHN1cmUgYWxsIGxpbmtl
ZCB0cmFja3Mgd2lsbCBnZXQgbXV0ZWQvdW5tdXRlZCBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAg
ICBUZXN0cyB0byBiZSBmaXhlZC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpN
ZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU291cmNlQ2FwdHVyaW5nRm9y
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2Fw
dHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorCiAyMDIwLTA1LTA3ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1heUJlZ2luIHdoZWVsIGV2
ZW50IGluIGEgPHNlbGVjdD4gZG9lc24ndCBmbGFzaCB0aGUgc2Nyb2xsZXJzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGNhM2U0Mzg0NjhmNzQ4ZGZiYjY4MTlmYjc4MTVhNzcxN2U2YTU0MjUuLmI4Zjg4M2IyNTBhYjQ2
ZDk2YTdlYjkwNjgzM2ZjNDM3ODg3OGNmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjAtMDUtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFZp
ZGVvIGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0ZWQgaW4gY2FzZSBvZiB0YWIgc3dpdGNoIG9u
IGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEx
NTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFJlbW92
ZSBubyBsb25nZXIgbmVlZGVkIGNvZGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6c2V0QWN0aXZlU291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjAtMDUtMDgg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuIEZpeCBHVEs0IGJ1aWxkIGFmdGVyIHIyNjEzNzAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4
IDA4NWU0ZmQ2ZmI4MzFlODQyNTVhODJhMDJlYThmMTcwNDJmOWZmNDAuLmQ5NzM5MmNlMTE2OWRh
YjI5MjU3MjI5NzIyMjAyMjQ0NGJiYTZmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDcsNiArNDcs
NyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgiCisjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtNjgsNiArNjksMTAgQEAgUmVmPE1lZGlhU3RyZWFt
VHJhY2s+IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LAogewogICAgIGF1dG8gdHJhY2sgPSBhZG9wdFJlZigqbmV3IE1lZGlhU3RyZWFtVHJh
Y2soY29udGV4dCwgV1RGTW92ZShwcml2YXRlVHJhY2spKSk7CiAgICAgdHJhY2stPnN1c3BlbmRJ
Zk5lZWRlZCgpOworCisgICAgaWYgKHRyYWNrLT5pc0NhcHR1cmVUcmFjaygpKQorICAgICAgICB0
cmFjay0+dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpOworCiAgICAgcmV0dXJuIHRyYWNrOwogfQog
CkBAIC04NywxMSArOTIsNiBAQCBNZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxNZWRpYVN0cgogCiAgICAgaWYgKG1f
cHJpdmF0ZS0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQogICAg
ICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRBdWRp
b0NhcHR1cmVTb3VyY2UoKnRoaXMpOwotCi0gICAgaWYgKGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChkb2N1bWVudC0+cGFnZSgpICYmIGRvY3VtZW50LT5w
YWdlKCktPm11dGVkU3RhdGUoKSkKLSAgICAgICAgICAgIHNldE11dGVkKHRydWUpOwotICAgIH0K
IH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1lZGlhU3RyZWFtVHJhY2soKQpAQCAtMTk1LDI2ICsx
OTUsNiBAQCBib29sIE1lZGlhU3RyZWFtVHJhY2s6Om11dGVkKCkgY29uc3QKICAgICByZXR1cm4g
bV9wcml2YXRlLT5tdXRlZCgpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnNldE11dGVk
KE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSkKLXsKLSAgICBib29sIHRyYWNr
TXV0ZWQgPSBmYWxzZTsKLSAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewotICAg
IGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgdHJhY2tNdXRlZCA9IHN0
YXRlICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKLSAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgdHJhY2tN
dXRlZCA9IHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQ7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQot
ICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQodHJhY2tNdXRlZCk7Ci19Ci0KIGF1dG8gTWVkaWFTdHJl
YW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNvbnN0IC0+IFN0YXRlCiB7CiAgICAgcmV0dXJuIGVuZGVk
KCkgPyBTdGF0ZTo6RW5kZWQgOiBTdGF0ZTo6TGl2ZTsKQEAgLTQ2OCw0NCArNDQ4LDY3IEBAIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3Rh
dGUoRG9jdW1lbnQmIGRvY3VtZW50CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotc3Rh
dGljIE1lZGlhU3RyZWFtVHJhY2sqIGZpbmRBY3RpdmVDYXB0dXJlVHJhY2tGb3JEb2N1bWVudChE
b2N1bWVudCYgZG9jdW1lbnQsIFJlYWx0aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKQorc3RhdGljIGJvb2wgaXNTb3VyY2VDYXB0dXJp
bmdGb3JUcmFja0luRG9jdW1lbnQoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7Ci0gICAgTWVkaWFTdHJlYW1UcmFjayogc2VsZWN0ZWRUcmFjayA9IG51
bGxwdHI7Ci0gICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sgOiBhbGxDYXB0dXJlVHJhY2tzKCkp
IHsKLSAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwg
Y2FwdHVyZVRyYWNrLT5lbmRlZCgpKQorICAgIGZvciAoYXV0byogdHJhY2sgOiBhbGxDYXB0dXJl
VHJhY2tzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8
fCB0cmFjay0+ZW5kZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmICgm
Y2FwdHVyZVRyYWNrLT5zb3VyY2UoKSA9PSBhY3RpdmVTb3VyY2UpCi0gICAgICAgICAgICByZXR1
cm4gY2FwdHVyZVRyYWNrOwotCi0gICAgICAgIC8vIElmIHRoZSBkb2N1bWVudCBoYXMgYSBsaXZl
IGNhcHR1cmUgdHJhY2ssIHdoaWNoIGlzIG5vdCB0aGUgYWN0aXZlIG9uZSwgd2UgcGljayB0aGUg
Zmlyc3Qgb25lLgotICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHN0b3JlIHBl
ciBwYWdlIGFjdGl2ZSBhdWRpby92aWRlbyBjYXB0dXJlIHRyYWNrcy4KLSAgICAgICAgaWYgKCFz
ZWxlY3RlZFRyYWNrICYmIGNhcHR1cmVUcmFjay0+cHJpdmF0ZVRyYWNrKCkudHlwZSgpID09IHR5
cGUpCi0gICAgICAgICAgICBzZWxlY3RlZFRyYWNrID0gY2FwdHVyZVRyYWNrOworICAgICAgICBp
ZiAodHJhY2stPnNvdXJjZSgpLmlzU2FtZUFzKHNvdXJjZSkpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIHNlbGVjdGVkVHJhY2s7CisgICAgcmV0dXJuIGZhbHNl
OwogfQogI2VuZGlmCiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29y
ZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlmICghcGFn
ZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byogYWN0aXZlQXVkaW9Tb3VyY2UgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGF1dG8qIGF1ZGlvQ2FwdHVyZVRyYWNrID0gZmluZEFj
dGl2ZUNhcHR1cmVUcmFja0ZvckRvY3VtZW50KGRvY3VtZW50LCBhY3RpdmVBdWRpb1NvdXJjZSwg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pKQotICAgICAgICBhdWRpb0NhcHR1cmVU
cmFjay0+c2V0TXV0ZWQoZG9jdW1lbnQucGFnZSgpLT5tdXRlZFN0YXRlKCkpOworICAgIGlmIChh
Y3RpdmVBdWRpb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudCgq
YWN0aXZlQXVkaW9Tb3VyY2UsIGRvY3VtZW50KSkgeworICAgICAgICBib29sIHBhZ2VNdXRlZCA9
IHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJl
SXNNdXRlZDsKKyAgICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8
fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsK
KyAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2Uo
KTsKLSAgICBpZiAoYXV0byogdmlkZW9DYXB0dXJlVHJhY2sgPSBmaW5kQWN0aXZlQ2FwdHVyZVRy
YWNrRm9yRG9jdW1lbnQoZG9jdW1lbnQsIGFjdGl2ZVZpZGVvU291cmNlLCBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbykpCi0gICAgICAgIHZpZGVvQ2FwdHVyZVRyYWNrLT5zZXRNdXRl
ZChkb2N1bWVudC5wYWdlKCktPm11dGVkU3RhdGUoKSk7CisgICAgaWYgKGFjdGl2ZVZpZGVvU291
cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3RpdmVWaWRlb1Nv
dXJjZSwgZG9jdW1lbnQpKSB7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRT
dGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkOworICAg
ICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50Lmhp
ZGRlbigpKTsKKyAgICB9CiAjZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxs
Q2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkg
IT0gJmRvY3VtZW50IHx8IGNhcHR1cmVUcmFjay0+ZW5kZWQoKSkKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICBjYXB0dXJlVHJhY2stPnNldE11dGVkKGRvY3VtZW50LnBhZ2UoKS0+bXV0
ZWRTdGF0ZSgpKTsKKyAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKSA9PSAmZG9j
dW1lbnQgJiYgIWNhcHR1cmVUcmFjay0+ZW5kZWQoKSkKKyAgICAgICAgICAgIGNhcHR1cmVUcmFj
ay0+dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpOwogICAgIH0KICNlbmRpZgogfQogCit2b2lkIE1l
ZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKQoreworICAgIEFTU0VSVChp
c0NhcHR1cmVUcmFjaygpKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpOwor
ICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChzb3VyY2UoKS5k
ZXZpY2VUeXBlKCkpIHsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3Jv
cGhvbmU6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAg
ICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
cjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFn
ZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25v
d246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgYm9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IDAy
ZmQ0NTRiNmExZGEzYzU0YmRhM2IyMDQ5ZThlMDNmN2NhY2RiMGEuLmIwMGYwNDkzMzIwZGE4ZTlh
NTA0ZWU1NmRhZjU4ZTIwN2NjMTFjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC04Nyw3ICs4Nyw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCk7CiAKICAgICBib29sIG11dGVkKCkgY29u
c3Q7Ci0gICAgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOwog
CiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IExpdmUsIEVuZGVkIH07CiAgICAgU3RhdGUgcmVhZHlT
dGF0ZSgpIGNvbnN0OwpAQCAtMTY5LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
TWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNrJik7CiAKICAgICB2b2lkIGNvbmZpZ3Vy
ZVRyYWNrUmVuZGVyaW5nKCk7CisgICAgdm9pZCB1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCk7CiAK
ICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIHZvaWQgc3RvcCgpIGZpbmFsIHsgc3Rv
cFRyYWNrKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGYxM2Y4Mzc3MmEzNjg1NjVl
ZGEzZjg3ZDUxODE1YmU3OGZmMWFmNjEuLjk2MGRkNjAzOWNjZjgwOWI3OTAxNjQ1OTFkZDQ5YWI0
NmYwMTRkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTc0OSwxNyArMTc0OSwxMCBA
QCB2b2lkIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKICAgICBmb3IgKGF1dG8q
IGNsaWVudCA6IG1fdmlzaWJpbGl0eVN0YXRlQ2FsbGJhY2tDbGllbnRzKQogICAgICAgICBjbGll
bnQtPnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKTsKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
Ci0gICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiBoaWRkZW4o
KSkgewotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRD
YXB0dXJlUGFnZVN0YXRlKHRydWUsIHBhZ2UtPmlzTWVkaWFDYXB0dXJlTXV0ZWQoKSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICghUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaXNJbnRlcnJ1cHRlZCgpKQogICAg
ICAgICBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRl
KCp0aGlzKTsKICNlbmRpZgotI2VuZGlmCiB9CiAKIFZpc2liaWxpdHlTdGF0ZSBEb2N1bWVudDo6
dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNWI0NDI0
NTNmMjk1N2ZkNDQ2YjA5YzM5YzkxOWI0ODQyYjUwMGZhMi4uNmU5ZjViOTZlMTVlMDg4YjhhMTg3
ODFkOWY3MDQ0ZGRlZjZjOGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTg4LDE2ICs4
OCw2IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXIm
IG9ic2VydmVyKQogICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOwogfQogCi12b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldEludGVycnVwdGVkKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFn
ZU11dGVkKQotewotI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFNKHBh
Z2VNdXRlZCk7Ci0jZW5kaWYKLQotICAgIEFMV0FZU19MT0dfSUYobV9sb2dnZXIsIExPR0lERU5U
SUZJRVIsIGludGVycnVwdGVkLCAiLCBwYWdlIG11dGVkIDogIiwgcGFnZU11dGVkKTsKLSAgICBz
ZXRNdXRlZChpbnRlcnJ1cHRlZCk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0
TXV0ZWQoYm9vbCBtdXRlZCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKG1fbG9nZ2VyLCBMT0dJREVO
VElGSUVSLCBtdXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNjZhYTM1MDRhNzIwNTE1OWI1
NGU1NjQwNzk5ZWY2MzU1ZjliYTBlOS4uZjhhYmFhM2FlYmViYmU2M2VlZGUxZjVkMzAyMjdkODg0
ZWI0ODE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMTI3LDcgKzEyNyw2IEBAIHB1YmxpYzoK
ICAgICBib29sIGNhcHR1cmVEaWRGYWlsKCkgY29uc3QgeyByZXR1cm4gbV9jYXB0dXJlRGlkRmFp
bGVkOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCB7IHJldHVybiBt
X2ludGVycnVwdGVkOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEludGVycnVwdGVkKGJvb2wsIGJv
b2wpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9
CiAgICAgdm9pZCBzZXROYW1lKFN0cmluZyYmIG5hbWUpIHsgbV9uYW1lID0gV1RGTW92ZShuYW1l
KTsgfQpAQCAtMTkzLDYgKzE5Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjYXB0
dXJlRmFpbGVkKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lQXMoUmVhbHRpbWVNZWRpYVNv
dXJjZSYgc291cmNlKSBjb25zdCB7IHJldHVybiB0aGlzID09ICZzb3VyY2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ1ZpZGVvU291cmNlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBkYzQ4YTc1
NmY3Y2FjOWZmY2Q4ZjVmZWE0ODExZDYyYzUxNjBiYmU0Li4yZDMyYjI0M2IxYTk2NmVkZmIwYmJh
ZDhmMGU0MmI2ZGM0MWNjOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApA
QCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgotI2luY2x1
ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvU0hBMS5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzEsMTMgKzI3MCw2IEBAIHZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50
c0hhbmRsCiAgICAgdmFsaWRIYW5kbGVyKFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2
aWRlb0RldmljZXMpLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOwogfQogCi12
b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldENhcHR1cmVQYWdlU3RhdGUoYm9vbCBp
bnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hh
bmdlRW5hYmxlZCgpKQotICAgICAgICBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QXVkaW9DYXB0
dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIHZpZGVvQ2FwdHVyZUZh
Y3RvcnkoKS5zZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7
Ci19Ci0KIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9DYXB0dXJlRmFj
dG9yeShBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQogewogICAgIG1fYXVkaW9DYXB0dXJl
RmFjdG9yeU92ZXJyaWRlID0gJmZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgK
aW5kZXggMTBkZGIyOTAzYzFjZDk2MjIxZmQ1ZGYwMWEzOWI5MTBkZWE5OGI1Yi4uMDI4Mjg2NThl
MDllYWRlOTcyMTE4YWRlY2RjMTdmMzY0ZmVhMzBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaApAQCAtODYsOCArODYsNiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYpOwog
Ci0gICAgdm9pZCBzZXRDYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFn
ZU11dGVkKTsKLQogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxp
dHlDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCmluZGV4IDMwMzQ0MWQ1
YWI4MzJjMzU3MDdmNjFmYjVjZWM5ODNkYjQwYzdiYzcuLmEzMjYyOGI3YTE2MDkzNWFjYjhiNzUz
MTEzZjgzODU1M2E2ZWI4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaApAQCAt
NjAsMTEgKzYwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRp
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEF1ZGlv
Q2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLSAgICB7
Ci0gICAgICAgIFVOVVNFRF9QQVJBTShpbnRlcnJ1cHRlZCk7Ci0gICAgICAgIFVOVVNFRF9QQVJB
TShwYWdlTXV0ZWQpOwotICAgIH0KIAogcHJvdGVjdGVkOgogICAgIEF1ZGlvQ2FwdHVyZUZhY3Rv
cnkoKSA9IGRlZmF1bHQ7CkBAIC03OSwxMSArNzQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
VmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CiAgICAgdmlydHVhbCBDYXB0
dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJv
b2wgcGFnZU11dGVkKQotICAgIHsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGludGVycnVwdGVkKTsK
LSAgICAgICAgVU5VU0VEX1BBUkFNKHBhZ2VNdXRlZCk7Ci0gICAgfQogCiBwcm90ZWN0ZWQ6CiAg
ICAgVmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRl
eCBiZWFkM2I5NWQ5NTdlOGM2MTI0MTUzNzNhMDNkZjdhMDIzOTlhNzJlLi5jY2NlOWI5YWExOTcw
M2UwOTU3MzNlZDI3YTIzYzMzOGY2MzhhZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00MSw3
ICs0MSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYpOwogICAgIH5SZWFsdGltZVZpZGVvU291cmNl
KCk7CiAKLSAgICAvLyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgIC8vIFJlYWx0aW1l
TWVkaWFTaW91cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c1NpemVBbmRG
cmFtZVJhdGUoT3B0aW9uYWw8aW50PiB3aWR0aCwgT3B0aW9uYWw8aW50PiBoZWlnaHQsIE9wdGlv
bmFsPGRvdWJsZT4gZnJhbWVSYXRlKSBmaW5hbDsKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToK
ICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NvdXJjZS0+ZGV2aWNlVHlwZSgpOyB9CiAgICAgdm9pZCBtb25pdG9yT3JpZW50
YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYgbm90aWZpZXIpIGZpbmFsIHsgbV9zb3VyY2UtPm1v
bml0b3JPcmllbnRhdGlvbihub3RpZmllcik7IH0KICAgICBib29sIGludGVycnVwdGVkKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UtPmludGVycnVwdGVkKCk7IH0KKyAgICBib29sIGlz
U2FtZUFzKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgY29uc3QgZmluYWwgeyByZXR1cm4g
dGhpcyA9PSAmc291cmNlIHx8IG1fc291cmNlLnB0cigpID09ICZzb3VyY2U7IH0KIAogICAgIC8v
IE9ic2VydmVyCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9z
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KaW5kZXggOGQ5NzA0MWMxNGQzZmFlNzVlNjY1
YjVjZmEwMjJiYTU3ZTIwNzMyNi4uNGEyMDQ3YmM0NDNhNjU2NjI0ZDMxYjA1YmZhNzgyYTE4N2U1
MjUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9z
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KQEAgLTEwMiwx
MiArMTAyLDYgQEAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVBdWRpb0NhcHR1
cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKQogICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwog
fQogCi12b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzZXRBdWRpb0NhcHR1cmVQ
YWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYgKGF1
dG8qIGFjdGl2ZVNvdXJjZSA9IHRoaXMtPmFjdGl2ZVNvdXJjZSgpKQotICAgICAgICBhY3RpdmVT
b3VyY2UtPnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotfQotCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggZTRlODliZjBkOGVlNTE1M2NiYTUw
Yjk4ODIzOGIxMTg1MjYzYzVhMC4uOGQ5NTI4MjQ0MDAyNjg4MWIwNDBlYzI1Y2ExNWViZGY0ZTM1
OWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC0xMTUsMTAgKzExNSw2
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGV2aWNlc0NoYW5nZWQoY29uc3QgVmVjdG9yPENhcHR1
cmVEZXZpY2U+Jik7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0QXVk
aW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKSBmaW5h
bDsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKICAgICB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggMGJl
ZDU4OWE0MDY1ZmNkYzFhNTI3MmQxNGFmNTU2OGE0YTZkYmM1NS4uM2UzYWE0ZWQ4NmQ1YjhmYzIw
ODNlMmU1ZGY4MGJmOWRlZDFiOGMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyTWFjLmNwcApAQCAtNTMsMTQgKzUzLDYgQEAgcHVibGljOgogICAgIH0KIAogcHJp
dmF0ZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0VmlkZW9DYXB0dXJl
UGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQotICAgIHsKLSAgICAg
ICAgaWYgKGFjdGl2ZVNvdXJjZSgpKQotICAgICAgICAgICAgYWN0aXZlU291cmNlKCktPnNldElu
dGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwotICAgIH0KLSNlbmRpZgotCiAgICAg
Q2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSB7IHJldHVy
biBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsgfQogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcAppbmRleCBmYzQyZjZiYTdhZGViOTU2OTQxMzBmYWJiODY2Nzg2MzJl
NWM5OGE5Li43MjRlMTUzOGMwZDFhY2I4OWVkZTg0MWI2ODA1ODk1ZGE2OWQ3OTM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTAyLDEzICsxMDIsNiBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRWaWRl
b0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZpbmFs
Ci0gICAgewotICAgICAgICBpZiAoYWN0aXZlU291cmNlKCkpCi0gICAgICAgICAgICBhY3RpdmVT
b3VyY2UoKS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAgfQot
I2VuZGlmCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFn
ZXIoKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpOyB9CiB9OwogCkBAIC0xOTEsNyArMTg0
LDYgQEAgcHVibGljOgogICAgIH0KIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICB2b2lkIHNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29s
IHBhZ2VNdXRlZCkgZmluYWwgeyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xl
dG9uKCkuc2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOyB9
CiAgICAgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBm
aW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3Rp
dmVTb3VyY2Uoc291cmNlKTsgfQogICAgIHZvaWQgdW5zZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5
OjpzaW5nbGV0b24oKS51bnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9CiAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZSogYWN0aXZlU291cmNlKCkgZmluYWwgeyByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLmFjdGl2ZVNvdXJjZSgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAppbmRleCAwMGNjMjNjMDEzODA3MjM0MjNkOTIxZWVlODA2MzhmZGI0MmJhNTkwLi42
MzdlZTkxODZhNjE2OWM3MmI0M2U1NzI4M2RmMTVhMTFmYTViNGM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAKQEAgLTUzMCwyNiArNTMwLDEwIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiB9CiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
QXVkaW9GYWN0b3J5OjpzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwg
Ym9vbCBwYWdlTXV0ZWQpCi17Ci0gICAgaWYgKGF1dG8qIGFjdGl2ZVNvdXJjZSA9IHRoaXMtPmFj
dGl2ZVNvdXJjZSgpKQotICAgICAgICBhY3RpdmVTb3VyY2UtPnNldEludGVycnVwdGVkKGludGVy
cnVwdGVkLCBwYWdlTXV0ZWQpOwotfQotCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpW
aWRlb0ZhY3Rvcnk6OnNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBi
b29sIHBhZ2VNdXRlZCkKLXsKLSAgICAvLyBJbiBjYXNlIG9mIGNsb25pbmcsIHdlIG1pZ2h0IGhh
dmUgbW9yZSB0aGFuIGEgc2luZ2xlIHNvdXJjZS4KLSAgICBmb3IgKGF1dG8mIHNvdXJjZSA6IG1f
bWFuYWdlci5tX3NvdXJjZXMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHNvdXJjZS0+ZGV2aWNl
VHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgICAg
IHNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAgfQot
fQotCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldEFjdGl2
ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJikKIHsKICAgICAvLyBNdXRpbmcgaXMgZG9uZSBi
eSBHUFVQcm9jZXNzIGZhY3RvcnkuIFdlIGRvIG5vdCB3YW50IHRvIGhhbmRsZSBpdCBoZXJlIGlu
IGNhc2Ugb2YgdHJhY2sgY2xvbmluZy4KIH0KLQogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgK
aW5kZXggNzI1NjQ5ODQ1MDlkNDkwODU4YzQ2OTcxZDI1OGYwZDRlOWU2NGJmMC4uM2JjNTFlYWI5
MWE1NGZkZjYwMTRlNjBmOTZmNDg3MDM1MzZkNmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTY3
LDkgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBwcml2YXRlOgogICAgICAgICBXZWJDb3JlOjpDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
JiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1f
bm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICAgICAgdm9pZCBzZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9v
bCBwYWdlTXV0ZWQpIGZpbmFsOwotI2VuZGlmCiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImIG1fbWFuYWdlcjsKICAgICAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MgeyBmYWxzZSB9OwpAQCAtODQsNyArODEsNiBAQCBwcml2YXRlOgogICAgICAgICBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFs
IHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIHZvaWQgc2V0QWN0aXZlU291cmNlKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2UmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBzZXRWaWRlb0NhcHR1
cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpIGZpbmFsOwogI2Vu
ZGlmCiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBkZGIzNjA5ZDc3NDRkNjMzN2YyZjg2YTZkOGJjNGY4YjA1NmJiMmEwLi4yZjQxMzVmYjQxZTBm
ZjI2NmNiN2Q5YjU0ZjBjMDA1ZGUxZjEwOWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAt
MDUtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFZpZGVv
IGNhcHR1cmUgZG9lcyBub3QgZ2V0IHVubXV0ZWQgaW4gY2FzZSBvZiB0YWIgc3dpdGNoIG9uIGlP
UworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNTA5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIERpc2FibGUgR1BVIHByb2Nlc3MgdGVz
dCBzaW5jZSB3ZSBhcmUgbm90IGFibGUgeWV0IHRvIG11dGUvdW5tdXRlIGhhbmRsZSBtdWx0aXBs
ZSB2aWRlbyB0cmFja3MKKyAgICAgICAgd2l0aCBkaWZmZXJlbnQgc291cmNlcyBhcyBjYW4gYmUg
ZG9uZSBpZiBjYXB0dXJlIGlzIGRvbmUgb3V0IG9mIHByb2Nlc3MuCisgICAgICAgICogcGxhdGZv
cm0vaW9zL21lZGlhc3RyZWFtL3ZpZGVvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLmh0bWw6Cisg
ICAgICAgIFVwZGF0ZSB0ZXN0IHRvIGVuc3VyZSB0aGUgdHJhY2sgaXMgcHJvZHVjaW5nIGNvbnRl
bnQuCisKIDIwMjAtMDUtMDggIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXVtXUEVdIEdhcmRlbmluZywgdXBkYXRlIGV4cGVjdGF0aW9ucyBhbmQg
YmFzZWxpbmVzIGFmdGVyIHIyNjEzNDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggMjMzYTkzOGYxMTUwYWUzZDRjMmI1OTRmZWM2Njg2YzVmMWVmNDFhYy4u
MTI1NzY0ZTMyN2I0NzdkNWM4ZTkyOWFlNzdiZDAzZTgwMmM0MDEyMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI4ODAsNiArMjg4MCw4IEBAIGh0dHAv
dGVzdHMvbXVsdGlwYXJ0L2xvYWQtbGFzdC1ub24taHRtbC1mcmFtZS5waHAgWyBGYWlsdXJlICBd
CiAKIHdlYmtpdC5vcmcvYi8xNzczNjYgaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZU5hdmlnYXRp
b24vc2FuZGJveC1BTExPV0VELXRvcC1uYXZpZ2F0aW9uLXdpdGgtdXNlci1nZXN0dXJlLTEuaHRt
bCBbIFBhc3MgVGltZW91dCBdCiAKK3dlYmtpdC5vcmcvYi8yMTE1MDkgcGxhdGZvcm0vaW9zL21l
ZGlhc3RyZWFtL2F1ZGlvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLWdwdS1wcm9jZXNzLmh0bWwg
WyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE3NzM5NSBmYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLW92ZXJsb2FkZWQtb3BlcmF0aW9ucy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
IGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC12aWRlby10cmFja3Mt
ZGlzYWJsZWQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtd2ViYXVkaW8uaHRtbCBbIFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vdmlkZW8tbXV0ZWQtaW4tYmFja2dyb3Vu
ZC10YWIuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92aWRlby1t
dXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1sCmluZGV4IDRjNTY2NjFkMjZhZjQ0NTA1NWRiNzA3
OWY3NmMzNmQzYzA1Y2ViZDcuLmJlOTVmMzMxODA1OGRlNTNmNDlmNTdmZjU2ZDg3NGMxYzEwZTQ3
NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS92aWRl
by1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9tZWRpYXN0cmVhbS92aWRlby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1sCkBAIC0x
Miw2ICsxMiwyMCBAQAogICAgICAgICAgICAgbGV0IGF1ZGlvVHJhY2s7CiAgICAgICAgICAgICBs
ZXQgdmlkZW9UcmFjazsKIAorICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVNZWRp
YVN0cmVhbVRyYWNrSXNHZW5lcmF0aW5nQ29udGVudCh0cmFjaykKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJl
YW1UcmFjayh0cmFjayk7CisgICAgICAgICAgICAgICAgbGV0IGNvdW50ID0gMTAwOworICAgICAg
ICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CisgICAgICAgICAgICAgICAgICAgIGlm
IChpbnRlcm5hbHMudHJhY2tBdWRpb1NhbXBsZUNvdW50IHx8IGludGVybmFscy50cmFja1ZpZGVv
U2FtcGxlQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICB9IHdoaWxlICgtLWNvdW50ID4gMCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBwcm9taXNlX3Rlc3QoKHQpID0+
IHsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKQEAgLTI1LDQ2
ICszOSw0MCBAQAogICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5t
dXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2ZSIpOwogICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZmFsc2UodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIGFjdGl2ZSIpOwogICAg
ICAgICAgICAgICAgIH0pCisgICAgICAgICAgICB9LCAiU2V0dXAgc3RyZWFtIik7CiAKLSAgICAg
ICAgICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QoKCkgPT4g
ewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eShm
YWxzZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5t
dXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7Ci0g
ICAgICAgICAgICAgICAgICAgIH0sICJIaWRlIHBhZ2UsIG9ubHkgdmlkZW8gc2hvdWxkIGJlIG11
dGVkIik7Ci0gICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3lu
YyAodCkgPT4geworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRy
YWNrIGlzIGFjdGl2ZSIpOworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2su
bXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBtdXRlZCIpOworICAgICAgICAgICAgfSwgIkhpZGUgcGFn
ZSwgb25seSB2aWRlbyBzaG91bGQgYmUgbXV0ZWQiKTsKIAotICAgICAgICAgICAgICAgIC50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KHRydWUpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFj
ayBpcyBhY3RpdmUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh2aWRl
b1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0gICAgICAgICAgICAgICAg
ICAgIH0sICJTaG93IHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgdW5tdXRlZCIpOwot
ICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+
IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eSh0cnVlKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFj
dGl2ZSIpOworICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVkLCAi
dmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7CiAKLSAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QoKCkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VNdXRlZCgiY2FwdHVyZWRldmlj
ZXMiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZp
ZGVvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAgICAgICAgICAgICAgIH0sICJIaWRlIGFuZCBt
dXRlIHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgbXV0ZWQiKTsKLSAgICAgICAgICAg
ICAgICB9KQorICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGF3YWl0IHZhbGlkYXRlTWVkaWFT
dHJlYW1UcmFja0lzR2VuZXJhdGluZ0NvbnRlbnQoYXVkaW9UcmFjayksICJhdWRpbyB0cmFjayIp
OworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGF3YWl0IHZhbGlkYXRlTWVkaWFTdHJlYW1U
cmFja0lzR2VuZXJhdGluZ0NvbnRlbnQodmlkZW9UcmFjayksICJ2aWRlbyB0cmFjayIpOworICAg
ICAgICAgICAgfSwgIlNob3cgcGFnZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSB1bm11dGVk
Iik7CiAKLSAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
IHRlc3QoKCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdl
VmlzaWJpbGl0eSh0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGF1
ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11
dGVkIik7Ci0gICAgICAgICAgICAgICAgICAgIH0sICJTaG93IHBhZ2UsIHZpZGVvIGFuZCBhdWRp
byBzaG91bGQgcmVtYWluIG11dGVkIik7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAg
IH0sICJTZXR1cCBzdHJlYW0iKTsKKyAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3luYyAodCkg
PT4geworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkoZmFsc2UpOworICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VNdXRlZCgiY2FwdHVyZWRl
dmljZXMiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUo
YXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7
CisgICAgICAgICAgICB9LCAiSGlkZSBhbmQgbXV0ZSBwYWdlLCB2aWRlbyBhbmQgYXVkaW8gc2hv
dWxkIGJlIG11dGVkIik7CiAKKyAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4g
eworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KHRydWUpOworICAgICAgICAg
ICAgICAgIGFzc2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRl
ZCIpOworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRl
byB0cmFjayBpcyBtdXRlZCIpOworICAgICAgICAgICAgfSwgIlNob3cgcGFnZSwgdmlkZW8gYW5k
IGF1ZGlvIHNob3VsZCByZW1haW4gbXV0ZWQiKTsKICAgICAgICAgPC9zY3JpcHQ+CiAgICAgPC9i
b2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>