<?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>225227</bug_id>
          
          <creation_ts>2021-04-30 05:29:12 -0700</creation_ts>
          <short_desc>Use OptionSet for MediaProducer::MediaStateFlags</short_desc>
          <delta_ts>2021-05-04 03:05:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</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>1755655</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-30 05:29:12 -0700</bug_when>
    <thetext>Use OptionSet for MediaProducer::MediaStateFlags</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756114</commentid>
    <comment_count>1</comment_count>
      <attachid>427543</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-05-03 01:13:42 -0700</bug_when>
    <thetext>Created attachment 427543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756184</commentid>
    <comment_count>2</comment_count>
      <attachid>427543</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-05-03 08:17:27 -0700</bug_when>
    <thetext>Comment on attachment 427543
Patch

bot failure is unrelated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756202</commentid>
    <comment_count>3</comment_count>
      <attachid>427543</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-05-03 09:15:27 -0700</bug_when>
    <thetext>Comment on attachment 427543
Patch

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

&gt; Source/WebCore/Modules/airplay/WebMediaSessionManager.cpp:278
&gt; +    MediaProducer::MediaStateFlags updateConfigurationFlags { MediaProducer::MediaState::RequiresPlaybackTargetMonitoring, MediaProducer::MediaState::HasPlaybackTargetAvailabilityListener, MediaProducer::MediaState::HasAudioOrVideo };

Not new to this refactoring, but this could be `static constexpr`

&gt; Source/WebCore/Modules/airplay/WebMediaSessionManager.cpp:282
&gt; +    MediaProducer::MediaStateFlags playingToTargetFlags { MediaProducer::MediaState::IsPlayingToExternalDevice, MediaProducer::MediaState::IsPlayingVideo };

Ditto

&gt; Source/WebCore/html/HTMLMediaElement.cpp:7696
&gt; +        if (hasMediaStreamSrcObject() &amp;&amp; mediaState().containsAny(MediaProducer::MediaState::IsPlayingAudio) &amp;&amp; document().mediaState().containsAny(MediaProducer::MediaState::HasActiveAudioCaptureDevice)) {

Nit: although `OptionSet::contains()` and `OptionSet::constainsAny()` are the same, it is slightly odd all throughout this patch you sometimes use `constainsAny` and other times use &apos;contains` to test for just one value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756470</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-05-04 01:28:38 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 427543 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427543&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/airplay/WebMediaSessionManager.cpp:278
&gt; &gt; +    MediaProducer::MediaStateFlags updateConfigurationFlags { MediaProducer::MediaState::RequiresPlaybackTargetMonitoring, MediaProducer::MediaState::HasPlaybackTargetAvailabilityListener, MediaProducer::MediaState::HasAudioOrVideo };
&gt; 
&gt; Not new to this refactoring, but this could be `static constexpr`

Will fix.

&gt; &gt; Source/WebCore/Modules/airplay/WebMediaSessionManager.cpp:282
&gt; &gt; +    MediaProducer::MediaStateFlags playingToTargetFlags { MediaProducer::MediaState::IsPlayingToExternalDevice, MediaProducer::MediaState::IsPlayingVideo };
&gt; 
&gt; Ditto

OK

&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:7696
&gt; &gt; +        if (hasMediaStreamSrcObject() &amp;&amp; mediaState().containsAny(MediaProducer::MediaState::IsPlayingAudio) &amp;&amp; document().mediaState().containsAny(MediaProducer::MediaState::HasActiveAudioCaptureDevice)) {
&gt; 
&gt; Nit: although `OptionSet::contains()` and `OptionSet::constainsAny()` are
&gt; the same, it is slightly odd all throughout this patch you sometimes use
&gt; `constainsAny` and other times use &apos;contains` to test for just one value.

contains take a MediaState, containsAny takes a MediaStateFlags. I try to follow the pattern here.

containsAny can also take a MediaState since a MediaStateFlags can be implicitly constructed so we could go with containsAny all over the place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756471</commentid>
    <comment_count>5</comment_count>
      <attachid>427642</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-05-04 01:30:56 -0700</bug_when>
    <thetext>Created attachment 427642
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756483</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-04 03:04:39 -0700</bug_when>
    <thetext>Committed r276952 (237285@main): &lt;https://commits.webkit.org/237285@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427642.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756484</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-04 03:05:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/77496454&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427543</attachid>
            <date>2021-05-03 01:13:42 -0700</date>
            <delta_ts>2021-05-04 01:30:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225227-20210503101339.patch</filename>
            <type>text/plain</type>
            <size>56879</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc5MDhiZTMyZTU0NmU5
MTRmOGZmYTMxM2EyN2QyODY3YzE2ODNiOS4uN2NlMjFiMzM1Zjg2M2VkNjVmYjA3YTFjM2E4MTE2
ZjRhNzI1NGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIxLTA1LTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgT3B0aW9uU2V0IGZv
ciBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTIyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIHRvIHVzZSBhIHNhZmVyIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyB0eXBlLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBi
ZWhhdmlvciwgdGhpcyBpcyBhIHJlZmFjdG9yaW5nLgorCisgICAgICAgICogTW9kdWxlcy9haXJw
bGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmxhZ3NB
cmVTZXQpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGll
bnRTdGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5h
Z2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRNb25pdG9yaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVdh
dGNoZG9nVGltZXIpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06Om1lZGlhU3RhdGUgY29uc3QpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c291cmNlQ2FwdHVyZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2s6OmNhcHR1cmVTdGF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdl
ZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojp3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTdGF0ZSBj
b25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVu
dFNlc3Npb246OnBsYXliYWNrU3RhdGVDaGFuZ2VQZXJtaXR0ZWQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
aXNDYXB0dXJpbmcpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjpwYWdlTWVkaWFTdGF0ZSk6CisKIDIwMjEtMDQtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBPcHRpb25TZXQgZm9yIE1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGVGbGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNDIzMTZkZjc0Njg5NzUzZmNhYjg5NWY2YWEw
ZTdhZTFmNTMxMTRjLi5kNWFiZWM4MjY3ODc2N2NkNTM0ZWI4ZDk4ZGQ5NTFjYTc0YzZjODEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA1LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgT3B0aW9uU2V0IGZvciBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNTIyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVwZGF0ZSBjb2RlIGFjY29yZGluZyBzYWZlciBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgdHlwZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBjYW1lcmFDYXB0dXJl
U3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1pY3JvcGhvbmVDYXB0dXJlU3RhdGVdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW06CisgICAgICAgIChX
ZWJLaXQ6OnRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjptZWRpYVN0YXRlIGNv
bnN0KToKKwogMjAyMS0wNC0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVXNlIE9wdGlvblNldCBmb3IgTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggZDViNTk1YTRhYzQ5ZmYwZWZmZTYyYjQ1MmVjMzQyYjdk
MzgzMDQ4NC4uMmY0NjE4YmZlNGE2M2RiZmE1ODI2YWU3MzAxNzhiNTY0ZjcyZTM3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcApAQCAtNTgsMzYgKzU4LDM2IEBAIHN0cnVjdCBDbGllbnRTdGF0ZSB7CiAK
ICAgICBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQ7CiAgICAgUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQ7Ci0gICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzIHsgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6SXNOb3RQbGF5aW5nIH07CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAgICBi
b29sIHByZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uZmln
dXJhdGlvblJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxzZSB9
OwogfTsKIAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIHZhbHVlLCB1bnNpZ25lZCBmbGFncykKK3N0YXRpYyBib29sIGZsYWdzQXJlU2V0KE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyB2YWx1ZSwgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIGZsYWdzKQogewotICAgIHJldHVybiB2YWx1ZSAmIGZsYWdzOworICAgIHJldHVy
biB2YWx1ZS5jb250YWluc0FueShmbGFncyk7CiB9CiAKIFN0cmluZyBtZWRpYVByb2R1Y2VyU3Rh
dGVTdHJpbmcoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIFN0
cmluZ0J1aWxkZXIgc3RyaW5nOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6OklzUGxh
eWluZ0F1ZGlvKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdBdWRpbysiKTsK
LSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdWaWRlbykKKyAgICBpZiAo
ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8rIik7Ci0gICAgaWYgKGZsYWdzICYgTWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkKKyAgICBpZiAoZmxhZ3MgJiBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQogICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwotICAgIGlm
IChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlz
dGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzUGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcikKICAgICAgICAgc3RyaW5nLmFwcGVuZCgi
SGFzVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIrIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlcjo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpCisgICAgaWYgKGZsYWdz
ICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0
b3JpbmcpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIlJlcXVpcmVzVGFyZ2V0TW9uaXRvcmluZysi
KTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpFeHRlcm5hbERldmljZUF1dG9QbGF5
Q2FuZGlkYXRlKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUrIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlcjo6RGlkUGxheVRvRW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiRGlkUGxheVRv
RW5kKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykK
KyAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlk
ZW8pCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbysiKTsKICAgICBpZiAo
c3RyaW5nLmlzRW1wdHkoKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNOb3RQbGF5aW5nIik7
CkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWUKIAogICAgIEFMV0FZ
U19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgbV9jbGllbnRTdGF0ZVtpbmRleF0u
Z2V0KCkpOwogCi0gICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSA9IGZsYWdzQXJlU2V0KG1fY2xpZW50
U3RhdGVbaW5kZXhdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERl
dmljZSk7CisgICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSA9IGZsYWdzQXJlU2V0KG1fY2xpZW50U3Rh
dGVbaW5kZXhdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSk7CiAgICAgdGFyZ2V0UGlja2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKGNsaWVudC5wbGF0Zm9ybVZpZXcoKSwgRmxvYXRSZWN0KHJlY3QpLCBoYXNBY3RpdmVSb3V0
ZSwgdXNlRGFya0FwcGVhcmFuY2UsIGNsaWVudC51c2VpVHVuZXNBVk91dHB1dENvbnRleHQoKSk7
CiB9CiAKQEAgLTI3NSwxOCArMjc1LDE4IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6
Y2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKIAogICAg
IGNoYW5nZWRDbGllbnRTdGF0ZS0+ZmxhZ3MgPSBuZXdGbGFnczsKIAotICAgIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyB1cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgPSBNZWRpYVByb2R1
Y2VyOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyB8IE1lZGlhUHJvZHVjZXI6Okhh
c1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIgfCBNZWRpYVByb2R1Y2VyOjpIYXNB
dWRpb09yVmlkZW87CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNv
bmZpZ3VyYXRpb25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxh
eWJhY2tUYXJnZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBdWRpb09yVmlkZW8gfTsKICAgICBpZiAoKG9sZEZsYWdzICYgdXBkYXRlQ29uZmlndXJh
dGlvbkZsYWdzKSAhPSAobmV3RmxhZ3MgJiB1cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MpKQogICAg
ICAgICBzY2hlZHVsZURlbGF5ZWRUYXNrKFRhcmdldE1vbml0b3JpbmdDb25maWd1cmF0aW9uVGFz
ayk7CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ1RvVGFyZ2V0
RmxhZ3MgPSBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlIHwgTWVkaWFQ
cm9kdWNlcjo6SXNQbGF5aW5nVmlkZW87CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIHBsYXlpbmdUb1RhcmdldEZsYWdzIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nVG9FeHRlcm5hbERldmljZSwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8gfTsKICAgICBpZiAoKG9sZEZsYWdzICYgcGxheWluZ1RvVGFyZ2V0RmxhZ3MpICE9
IChuZXdGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSkgewotICAgICAgICBpZiAoZmxhZ3NB
cmVTZXQob2xkRmxhZ3MsIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NB
cmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKSAmJiBmbGFnc0Fy
ZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlcjo6RGlkUGxheVRvRW5kKSkKKyAgICAgICAgaWYg
KGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlp
bmdWaWRlbykgJiYgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkpCiAgICAgICAgICAgICBjaGFuZ2VkQ2xpZW50
U3RhdGUtPnBsYXllZFRvRW5kID0gdHJ1ZTsKICAgICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhX
YXRjaGRvZ1RpbWVyQ29uZmlndXJhdGlvblRhc2spOwogICAgIH0KIAotICAgIGlmICghbV9wbGF5
YmFja1RhcmdldCB8fCAhbV9wbGF5YmFja1RhcmdldC0+aGFzQWN0aXZlUm91dGUoKSB8fCAhZmxh
Z3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlD
YW5kaWRhdGUpKQorICAgIGlmICghbV9wbGF5YmFja1RhcmdldCB8fCAhbV9wbGF5YmFja1Rhcmdl
dC0+aGFzQWN0aXZlUm91dGUoKSB8fCAhZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpKQogICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBEbyBub3QgaW50ZXJydXB0IGFub3RoZXIgZWxlbWVudCBhbHJl
YWR5IHBsYXlpbmcgdG8gYSBkZXZpY2UuCkBAIC0yOTQsMTQgKzI5NCwxNCBAQCB2b2lkIFdlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmCiAgICAgICAgIGlmIChzdGF0ZSA9PSBjaGFuZ2VkQ2xpZW50U3RhdGUpCiAg
ICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoZmxhZ3NBcmVTZXQoc3RhdGUtPmZs
YWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0Fy
ZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKSkgeworICAg
ICAgICBpZiAoZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkgewogICAgICAg
ICAgICAgQUxXQVlTX0xPR19NRURJQVNFU1NJT05NQU5BR0VSKF9fZnVuY19fLCBzdGF0ZS5nZXQo
KSwgIiByZXR1cm5pbmcgZWFybHkiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KIAogICAgIC8vIERvIG5vdCBiZWdpbiBwbGF5aW5nIHRvIHRoZSBkZXZpY2UgdW5sZXNz
IHBsYXliYWNrIGhhcyBqdXN0IHN0YXJ0ZWQuCi0gICAgaWYgKCFmbGFnc0FyZVNldChuZXdGbGFn
cywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlkZW8pIHx8IGZsYWdzQXJlU2V0KG9sZEZsYWdz
LCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdWaWRlbykpIHsKKyAgICBpZiAoIWZsYWdzQXJlU2V0
KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgfHwg
ZmxhZ3NBcmVTZXQob2xkRmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5j
X18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0IHN0YXJ0Iik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Np
b25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMoKQogICAgICAgICBpZiAo
KG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc2VkKSAmJiBz
dGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhPZkNsaWVudFRoYXRSZXF1
ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rh
cmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgICAgICBpZiAoaW5kZXhPZkNsaWVu
dFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdz
LCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSkK
ICAgICAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gaTsKIAogICAgICAg
ICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgaGF2ZUFj
dGl2ZVJvdXRlICYmIHN0YXRlLT5wcmV2aW91c2x5UmVxdWVzdGVkUGlja2VyKQpAQCAtMzg3LDcg
KzM4Nyw3IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tU
YXJnZXRDbGllbnRzKCkKICAgICAgICAgaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPSBp
bmRleE9mQ2xpZW50VGhhdFJlcXVlc3RlZFBpY2tlcjsKICAgICBpZiAoaW5kZXhPZkNsaWVudFdp
bGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgaW5kZXhPZkxhc3RDbGllbnRUb1JlcXVlc3RQ
aWNrZXIgIT0gbm90Rm91bmQpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0
ID0gaW5kZXhPZkxhc3RDbGllbnRUb1JlcXVlc3RQaWNrZXI7Ci0gICAgaWYgKGluZGV4T2ZDbGll
bnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBmbGFn
c0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6RXh0ZXJuYWxE
ZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkgJiYgIWZsYWdzQXJlU2V0KG1fY2xpZW50U3RhdGVbMF0t
PmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdWaWRlbykpCisgICAgaWYgKGluZGV4T2ZD
bGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBm
bGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkgJiYgIWZsYWdzQXJlU2V0KG1f
Y2xpZW50U3RhdGVbMF0tPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlp
bmdWaWRlbykpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpA
QCAtNDEzLDcgKzQxMyw3IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJl
UGxheWJhY2tUYXJnZXRDbGllbnRzKCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5k
ZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYg
c3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAg
ICAgICAgaWYgKCFmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6OklzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUt
PmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2
aWNlKSkgewogICAgICAgICAgICAgQUxXQVlTX0xPR19NRURJQVNFU1NJT05NQU5BR0VSKF9fZnVu
Y19fLCBzdGF0ZS5nZXQoKSwgIiBjYWxsaW5nIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0
KHRydWUpIik7CiAgICAgICAgICAgICBzdGF0ZS0+Y2xpZW50LnNldFNob3VsZFBsYXlUb1BsYXli
YWNrVGFyZ2V0KHN0YXRlLT5jb250ZXh0SWQsIHRydWUpOwogICAgICAgICB9CkBAIC00MzAsMTMg
KzQzMCwxMyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNr
VGFyZ2V0TW9uaXRvcmluZygpCiAgICAgYm9vbCBoYXZlQ2xpZW50V2l0aE1lZGlhID0gZmFsc2U7
CiAgICAgZm9yIChhdXRvJiBzdGF0ZSA6IG1fY2xpZW50U3RhdGUpIHsKICAgICAgICAgQUxXQVlT
X0xPR19NRURJQVNFU1NJT05NQU5BR0VSKF9fZnVuY19fLCBzdGF0ZS5nZXQoKSk7Ci0gICAgICAg
IGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZykgeworICAgICAgICBpZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpIHsKICAgICAgICAg
ICAgIG1vbml0b3JpbmdSZXF1aXJlZCA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQotICAgICAgICBpZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6SGFzUGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcikKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5
TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlMaXN0ZW5lciA9IHRydWU7Ci0g
ICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpIYXNBdWRpb09yVmlkZW8p
CisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNBdWRpb09yVmlkZW8pCiAgICAgICAgICAgICBoYXZlQ2xpZW50V2l0aE1lZGlhID0gdHJ1ZTsK
ICAgICB9CiAKQEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6
OmNvbmZpZ3VyZVdhdGNoZG9nVGltZXIoKQogCiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNT
SU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgcGxheWVkVG9FbmQgPSAiLCBzdGF0
ZS0+cGxheWVkVG9FbmQpOwogCi0gICAgICAgIGlmIChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3Ms
IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0
KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlkZW8pKQorICAgICAgICBp
ZiAoZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJ
c1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0
b3BUaW1lciA9IHRydWU7CiAgICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAg
ICAgICBkaWRQbGF5VG9FbmQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCBmNzA1ZDdmMDMyMzRkMjQxOGMzYWEx
ZWI4OTE5ZGMyNjlhOWI2YzdiLi5jYTIwYTZlMWJjMGJmMTNhYzFhNDA3OWFmMTVkMzk1YTA0MjE2
ZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLmNwcApAQCAtMjc5LDEzICsyNzksMTMgQEAgdm9pZCBNZWRpYVN0cmVhbTo6c3RvcFBy
b2R1Y2luZ0RhdGEoKQogCiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJl
YW06Om1lZGlhU3RhdGUoKSBjb25zdAogewotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBzdGF0ZSA9IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZzsKKyAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CiAKICAgICBpZiAoIW1faXNBY3RpdmUgfHwgIWRv
Y3VtZW50KCkgfHwgIWRvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIHN0YXRlOwog
CiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCi0gICAg
ICAgIHN0YXRlIHw9IHRyYWNrLT5tZWRpYVN0YXRlKCk7CisgICAgICAgIHN0YXRlLmFkZCh0cmFj
ay0+bWVkaWFTdGF0ZSgpKTsKIAogICAgIHJldHVybiBzdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAppbmRleCBiNGU1MTU4N2Iz
MzdlZDJjNzI2YWE5MmNmOTc3NTZkNmM4YjRiZTk2Li5jYTI5ZTRkMGJlZGFjODdlOWU1YmNiZTM1
NDgwMjg0NWNmYzk3Njc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5oCkBAIC0xNDAsNyArMTQwLDcgQEAgcHJpdmF0ZToKIAogICAgIEhh
c2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+IG1fdHJhY2tTZXQ7CiAKLSAg
ICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9zdGF0ZSB7IE1lZGlhUHJvZHVjZXI6
OklzTm90UGxheWluZyB9OworICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX3N0
YXRlOwogCiAgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9k
dWNpbmdEYXRhIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDQyMjRkOWUyOTU4MDgyMjZk
YWQ2ZDVhYmIwYjkxM2Y4OGI5MmJmMTUuLjc2Y2M1ODVhNzA1NmI5ODc5YjJkYzllMTA5YWY1NzA1
ZWJhN2Q2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDE4LDI4ICs0MTgsMjggQEAgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNhcHR1cmVTdGF0ZShSZWFsdGltZU1lZGlhU291
cmNlJiBzb3VyY2UpCiAgICAgc3dpdGNoIChzb3VyY2UuZGV2aWNlVHlwZSgpKSB7CiAgICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgogICAgICAgICBpZiAoc291
cmNlLm11dGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRB
dWRpb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2Uu
aW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpIYXNJbnRl
cnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKICAgICAg
ICAgaWYgKHNvdXJjZS5pc1Byb2R1Y2luZ0RhdGEoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRp
YVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1
cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNl
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNh
bWVyYToKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJuIE1l
ZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0
dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNl
OwogICAgICAgICBpZiAoc291cmNlLmludGVycnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4g
TWVkaWFQcm9kdWNlcjo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAg
ICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRl
b0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0g
ICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZVZpZGVvQ2FwdHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpXaW5kb3c6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQoKSkKLSAgICAgICAgICAg
IHJldHVybiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAg
ICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxh
eUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAgICAg
ICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJl
RGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQ
cm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SGFzQWN0
aXZlRGlzcGxheUNhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKICAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CkBAIC00NTEsMTEgKzQ1MSwx
MSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJl
YWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKIAogTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIE1lZGlhU3RyZWFtVHJhY2s6OmNhcHR1cmVTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlID0gTWVkaWFQcm9kdWNl
cjo6SXNOb3RQbGF5aW5nOworICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewog
ICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0
dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgc3RhdGUg
fD0gc291cmNlQ2FwdHVyZVN0YXRlKGNhcHR1cmVUcmFjay0+c291cmNlKCkpOworICAgICAgICBz
dGF0ZS5hZGQoc291cmNlQ2FwdHVyZVN0YXRlKGNhcHR1cmVUcmFjay0+c291cmNlKCkpKTsKICAg
ICB9CiAgICAgcmV0dXJuIHN0YXRlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDdhNWNiOGNhOTkxMTQyNzc2NGY0YWE5MTc2
MDgxOTUxNzkyNWEzN2YuLjhkNjBhMzllNjViZGZjYzc3MDg1MDA1NTJkMmU4MDRhZmM4OTJhZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5j
cHAKQEAgLTM0OCw3ICszNDgsNyBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJh
Y2soKQogTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlz
UGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdB
dWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvOwogCiAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZzsKIH0KQEAg
LTQwNiw3ICs0MDYsNyBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbEJlZ2luUGxheWJhY2soKQog
dm9pZCBBdWRpb0NvbnRleHQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogewogICAgIC8vIERv
IG5vdCBzdXNwZW5kIGlmIGF1ZGlvIGlzIGF1ZGlibGUuCi0gICAgaWYgKCFkb2N1bWVudCgpIHx8
IG1lZGlhU3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbyB8fCBpc1N0b3Bw
ZWQoKSkKKyAgICBpZiAoIWRvY3VtZW50KCkgfHwgbWVkaWFTdGF0ZSgpID09IE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvIHx8IGlzU3RvcHBlZCgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoZG9jdW1lbnQoKS0+aGlkZGVuKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDJhZTNjM2RlYjkxMGExN2NmYjg5N2ZlZTBmNzRkYmYxOWVhYWE2N2MuLjBi
ZDAxMzcxOGM2NWZiYzQxN2U5OTExZjhkMzgxNDdjNTQwZDZlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtMjY0OSw3ICsyNjQ5LDcgQEAgdm9pZCBEb2N1bWVudDo6d2lsbEJlUmVtb3Zl
ZEZyb21GcmFtZSgpCiAKICAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5zdG9wVW51c2VkUHJl
bG9hZHNUaW1lcigpOwogCi0gICAgaWYgKHBhZ2UoKSAmJiBtX21lZGlhU3RhdGUgIT0gTWVkaWFQ
cm9kdWNlcjo6SXNOb3RQbGF5aW5nKSB7CisgICAgaWYgKHBhZ2UoKSAmJiAhbV9tZWRpYVN0YXRl
LmlzRW1wdHkoKSkgewogICAgICAgICBtX21lZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyOjpJc05v
dFBsYXlpbmc7CiAgICAgICAgIHBhZ2UoKS0+dXBkYXRlSXNQbGF5aW5nTWVkaWEoSFRNTE1lZGlh
RWxlbWVudEludmFsaWRJRCk7CiAgICAgfQpAQCAtNDMyMCwxOCArNDMyMCwxOCBAQCB2b2lkIERv
Y3VtZW50Ojpub3RlVXNlckludGVyYWN0aW9uV2l0aE1lZGlhRWxlbWVudCgpCiB2b2lkIERvY3Vt
ZW50Ojp1cGRhdGVJc1BsYXlpbmdNZWRpYSh1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCiB7CiAg
ICAgQVNTRVJUKCFtX2F1ZGlvUHJvZHVjZXJzLmhhc051bGxSZWZlcmVuY2VzKCkpOwotICAgIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IE1lZGlhUHJvZHVjZXI6OklzTm90
UGxheWluZzsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CiAgICAg
Zm9yIChhdXRvJiBhdWRpb1Byb2R1Y2VyIDogbV9hdWRpb1Byb2R1Y2VycykKLSAgICAgICAgc3Rh
dGUgfD0gYXVkaW9Qcm9kdWNlci5tZWRpYVN0YXRlKCk7CisgICAgICAgIHN0YXRlLmFkZChhdWRp
b1Byb2R1Y2VyLm1lZGlhU3RhdGUoKSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAg
IHN0YXRlIHw9IE1lZGlhU3RyZWFtVHJhY2s6OmNhcHR1cmVTdGF0ZSgqdGhpcyk7CisgICAgc3Rh
dGUuYWRkKE1lZGlhU3RyZWFtVHJhY2s6OmNhcHR1cmVTdGF0ZSgqdGhpcykpOwogICAgIGlmICht
X2FjdGl2ZVNwZWVjaFJlY29nbml0aW9uKQotICAgICAgICBzdGF0ZSB8PSBNZWRpYVByb2R1Y2Vy
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpOwogI2VuZGlm
CiAKICAgICBpZiAobV91c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpCi0gICAgICAg
IHN0YXRlIHw9IE1lZGlhUHJvZHVjZXI6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVu
dDsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJ
bnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCk7CiAKICAgICBpZiAoc3RhdGUgPT0gbV9tZWRpYVN0
YXRlKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDA4ZjBhMDU2ZDE4
NTE0MWRhZDM2YjY1Y2Q5YmQzY2I0NmUwOTczM2MuLjFhZjc0MDE4NjJiMTkzNTk0MWVlYTQ2ODZh
YmVlNTFiNDA2YTFiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMDQzLDcgKzIwNDMsNyBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fd3JpdGVSZWN1cnNpb25EZXB0aCB7IDAgfTsKIAog
ICAgIEluaGVyaXRlZEJvb2wgbV9kZXNpZ25Nb2RlIHsgaW5oZXJpdCB9OwotICAgIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05v
dFBsYXlpbmcgfTsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0
YXRlOwogICAgIGJvb2wgbV91c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgeyBmYWxz
ZSB9OwogICAgIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7
IE5vdEluQmFja0ZvcndhcmRDYWNoZSB9OwogICAgIE9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBt
X3JlZmVycmVyUG9saWN5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
aW5kZXggYzk0MGM1ZjM2YTk2NmEyOThmNGRjNGNhYjgzNmNkNDZiMjVjZTM4NS4uNzFlZDAzNGFi
OWJmN2VjYjM5Y2Y3ZGRhZjYxZDNiNDZmNzM4NDJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03NjkzLDcgKzc2OTMsNyBAQCBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZv
cm1NZWRpYQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRp
YVN0YXRlKCkgJiBJc1BsYXlpbmdBdWRpbyAmJiBkb2N1bWVudCgpLm1lZGlhU3RhdGUoKSAmIE1l
ZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkgeworICAgICAgICBpZiAo
aGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVk
aWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJ
RVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIHBsYXlpbmcgYW4gYXVkaW8gTWVkaWFTdHJlYW1U
cmFjayIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTc3MDgsNyAr
NzcwOCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5k
UGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgICAgIGlmIChoYXNN
ZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1lZGlhU3RhdGUoKSAmIElzUGxheWluZ0F1ZGlvICYm
IGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlKSB7CisgICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYm
IG1lZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdBdWRpbykgJiYgZG9jdW1lbnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkgewogICAg
ICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJldHVybmluZyB0cnVlIGJlY2F1c2Ug
cGxheWluZyBhbiBhdWRpbyBNZWRpYVN0cmVhbVRyYWNrIik7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQpAQCAtNzc2OCwyOSArNzc2OCwyOSBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnVwZGF0ZU1lZGlhU3RhdGUoKQogCiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgTWVkaWFTdGF0
ZUZsYWdzIHN0YXRlID0gSXNOb3RQbGF5aW5nOworICAgIE1lZGlhU3RhdGVGbGFncyBzdGF0ZTsK
IAogICAgIGJvb2wgaGFzQWN0aXZlVmlkZW8gPSBpc1ZpZGVvKCkgJiYgaGFzVmlkZW8oKTsKICAg
ICBib29sIGhhc0F1ZGlvID0gdGhpcy0+aGFzQXVkaW8oKTsKICAgICBpZiAoaXNQbGF5aW5nVG9F
eHRlcm5hbFRhcmdldCgpKQotICAgICAgICBzdGF0ZSB8PSBJc1BsYXlpbmdUb0V4dGVybmFsRGV2
aWNlOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVG9FeHRlcm5hbERldmljZSk7CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKQogICAgIGlmIChtX2hhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKSB7
Ci0gICAgICAgIHN0YXRlIHw9IEhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXI7
CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKTsKICAgICAgICAgaWYgKCFtZWRpYVNlc3Npb24o
KS53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpKQotICAgICAgICAgICAgc3RhdGUgfD0g
UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3Jpbmc7CisgICAgICAgICAgICBzdGF0ZS5hZGQo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3Jp
bmcpOwogICAgIH0KIAogICAgIGJvb2wgcmVxdWlyZVVzZXJHZXN0dXJlID0gbWVkaWFTZXNzaW9u
KCkuaGFzQmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNl
ckdlc3R1cmVUb0F1dG9wbGF5VG9FeHRlcm5hbERldmljZSk7CiAgICAgaWYgKG1fcmVhZHlTdGF0
ZSA+PSBIQVZFX01FVEFEQVRBICYmICFyZXF1aXJlVXNlckdlc3R1cmUgJiYgIW1fZmFpbGVkVG9Q
bGF5VG9XaXJlbGVzc1RhcmdldCkKLSAgICAgICAgc3RhdGUgfD0gRXh0ZXJuYWxEZXZpY2VBdXRv
UGxheUNhbmRpZGF0ZTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpOwogCiAgICAgaWYgKGhhc0FjdGl2
ZVZpZGVvIHx8IGhhc0F1ZGlvKQotICAgICAgICBzdGF0ZSB8PSBIYXNBdWRpb09yVmlkZW87Cisg
ICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlk
ZW8pOwogCiAgICAgaWYgKGhhc0FjdGl2ZVZpZGVvICYmIGVuZGVkUGxheWJhY2soKSkKLSAgICAg
ICAgc3RhdGUgfD0gRGlkUGxheVRvRW5kOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKTsKICNlbmRpZgogCiAgICAgaWYgKCFpc1BsYXlp
bmcoKSkKQEAgLTc4MDQsMTAgKzc4MDQsMTAgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIGlzUGxheWluZ0F1
ZGlvID0gaXNQbGF5aW5nQXVkaW8gJiYgIW11dGVkKCk7CiAjZW5kaWYKICAgICBpZiAoaXNQbGF5
aW5nQXVkaW8pCi0gICAgICAgIHN0YXRlIHw9IElzUGxheWluZ0F1ZGlvOworICAgICAgICBzdGF0
ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOwogCiAgICAg
aWYgKGhhc0FjdGl2ZVZpZGVvKQotICAgICAgICBzdGF0ZSB8PSBJc1BsYXlpbmdWaWRlbzsKKyAg
ICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
KTsKIAogICAgIHJldHVybiBzdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKaW5kZXggNWYwYmJmMTZlMTgxNWQ0ZjFjY2UzZjhmMDNiMDgyNTcxY2EzNTJkNS4uNDU2
OTgzMDQzZjU3ZGRkOGFiYTNkMDE1MGQ5NGI4Y2U5N2JhZmM1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTExODcsNyArMTE4Nyw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCi0gICAgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZSB7IE1lZGlhUHJvZHVjZXI6OklzTm90
UGxheWluZyB9OworICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3Rh
dGU7CiAgICAgTW9ub3RvbmljVGltZSBtX2N1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NF
dmVudEZpcmVkVGltZTsKICAgICBib29sIG1faGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlM
aXN0ZW5lcnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9mYWlsZWRUb1BsYXlUb1dpcmVsZXNzVGFy
Z2V0IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24u
Y3BwCmluZGV4IDVhY2Y3ODQ3NjViMmU5Yzg1NDVmYTQ0MDQzZTgzN2JjYjQ4MWE1OGEuLjQxNWFl
MzE1YzZhZTQwMjY3NTkwM2UwZGY2YmFjNDBkMWViM2ZjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApAQCAtMzU5LDcgKzM1OSw3IEBAIFN1Y2Nlc3NP
cjxNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFj
a1N0YXRlQ2hhbmdlUGVyCiAgICAgaWYgKG1fZWxlbWVudC5oYXNNZWRpYVN0cmVhbVNyY09iamVj
dCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVudC5pc0NhcHR1cmluZygpKQogICAgICAgICAgICAg
cmV0dXJuIHsgfTsKLSAgICAgICAgaWYgKGRvY3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJv
ZHVjZXI6OklzUGxheWluZ0F1ZGlvKQorICAgICAgICBpZiAoZG9jdW1lbnQubWVkaWFTdGF0ZSgp
ICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtMzc0LDcgKzM3NCw3IEBAIFN1Y2Nlc3NP
cjxNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFj
a1N0YXRlQ2hhbmdlUGVyCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29u
OjpVc2VyR2VzdHVyZVJlcXVpcmVkOwogICAgIH0KIAotICAgIGlmICh0b3BEb2N1bWVudC5tZWRp
YVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1l
bnQgJiYgdG9wRG9jdW1lbnQucXVpcmtzKCkubmVlZHNQZXJEb2N1bWVudEF1dG9wbGF5QmVoYXZp
b3IoKSkKKyAgICBpZiAodG9wRG9jdW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ICYmIHRvcERvY3Vt
ZW50LnF1aXJrcygpLm5lZWRzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yKCkpCiAgICAgICAg
IHJldHVybiB7IH07CiAKICAgICBpZiAodG9wRG9jdW1lbnQuaGFzSGFkVXNlckludGVyYWN0aW9u
KCkgJiYgZG9jdW1lbnQucXVpcmtzKCkuc2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2Vz
dHVyZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaAppbmRleCAyNDAzMjc2NTcyYzkx
MGZlZTA2NzE5NGI2NDVkMjFkOGFhOTVmMGMwLi44MGFkNWFlZWZhZGY5ZWNiODM2YjkxMjNjMzhj
NTQwZTZmNGMxNTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVj
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaApAQCAtMzMsOCAr
MzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhUHJvZHVjZXIgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQcm9kdWNlcj4gewogcHVibGljOgotICAgIGVudW0gTWVk
aWFTdGF0ZSB7Ci0gICAgICAgIElzTm90UGxheWluZyA9IDAsCisgICAgZW51bSBjbGFzcyBNZWRp
YVN0YXRlIHsKICAgICAgICAgSXNQbGF5aW5nQXVkaW8gPSAxIDw8IDAsCiAgICAgICAgIElzUGxh
eWluZ1ZpZGVvID0gMSA8PCAxLAogICAgICAgICBJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlID0g
MSA8PCAyLApAQCAtNTYsMTcgKzU1LDE3IEBAIHB1YmxpYzoKICAgICAgICAgSGFzQWN0aXZlRGlz
cGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDE4LAogICAgICAgICBIYXNNdXRlZERpc3BsYXlDYXB0
dXJlRGV2aWNlID0gMSA8PCAxOSwKICAgICAgICAgSGFzSW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVy
ZURldmljZSA9IDEgPDwgMjAsCi0KLSAgICAgICAgQXVkaW9DYXB0dXJlTWFzayA9IEhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZSB8IEhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlIHwgSGFzSW50
ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFZpZGVvQ2FwdHVyZU1hc2sgPSBI
YXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfCBIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSB8
IEhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBEaXNwbGF5Q2FwdHVy
ZU1hc2sgPSBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSB8IEhhc011dGVkRGlzcGxheUNh
cHR1cmVEZXZpY2UgfCBIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLAotICAgICAg
ICBBY3RpdmVDYXB0dXJlTWFzayA9IEhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSB8IEhhc0Fj
dGl2ZVZpZGVvQ2FwdHVyZURldmljZSB8IEhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLAot
ICAgICAgICBNdXRlZENhcHR1cmVNYXNrID0gIEhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlIHwg
SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgfCBIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNl
LAotICAgICAgICBNZWRpYUNhcHR1cmVNYXNrID0gQXVkaW9DYXB0dXJlTWFzayB8IFZpZGVvQ2Fw
dHVyZU1hc2sgfCBEaXNwbGF5Q2FwdHVyZU1hc2ssCiAgICAgfTsKLSAgICB0eXBlZGVmIHVuc2ln
bmVkIE1lZGlhU3RhdGVGbGFnczsKKyAgICB1c2luZyBNZWRpYVN0YXRlRmxhZ3MgPSBPcHRpb25T
ZXQ8TWVkaWFTdGF0ZT47CisgICAgc3RhdGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3MgSXNO
b3RQbGF5aW5nID0geyB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIEF1
ZGlvQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmlj
ZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhh
c0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBN
ZWRpYVN0YXRlRmxhZ3MgVmlkZW9DYXB0dXJlTWFzayA9IHsgTWVkaWFTdGF0ZTo6SGFzQWN0aXZl
VmlkZW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmlj
ZSwgTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgfTsKKyAgICBz
dGF0aWMgY29uc3RleHByIE1lZGlhU3RhdGVGbGFncyBEaXNwbGF5Q2FwdHVyZU1hc2sgPSB7IE1l
ZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNN
dXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3Bs
YXlDYXB0dXJlRGV2aWNlIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3Mg
QWN0aXZlQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZSwgTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRl
OjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSB9OworICAgIHN0YXRpYyBjb25zdGV4cHIg
TWVkaWFTdGF0ZUZsYWdzIE11dGVkQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3RhdGU6Okhhc011dGVk
QXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmlj
ZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSB9OworICAgIHN0YXRp
YyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIE1lZGlhQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3Rh
dGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRp
b0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2
aWNlLCBNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6
Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZFZp
ZGVvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZp
Y2UsIE1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6
Okhhc0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgfTsKIAotICAgIHN0YXRpYyBib29s
IGlzQ2FwdHVyaW5nKE1lZGlhU3RhdGVGbGFncyBzdGF0ZSkgeyByZXR1cm4gKHN0YXRlICYgQWN0
aXZlQ2FwdHVyZU1hc2spIHx8IChzdGF0ZSAmIE11dGVkQ2FwdHVyZU1hc2spOyB9CisgICAgc3Rh
dGljIGJvb2wgaXNDYXB0dXJpbmcoTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKSB7IHJldHVybiBzdGF0
ZS5jb250YWluc0FueShBY3RpdmVDYXB0dXJlTWFzaykgfHwgc3RhdGUuY29udGFpbnNBbnkoTXV0
ZWRDYXB0dXJlTWFzayk7IH0KIAogICAgIHZpcnR1YWwgTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3Rh
dGUoKSBjb25zdCA9IDA7CiAKQEAgLTEwNiw2ICsxMDUsMzMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kPiB7CiAg
ICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGUsCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbywKKyAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5h
bERldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVx
dWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsCisgICAg
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCwKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50
UGxheWluZywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNO
ZXh0VHJhY2tDb250cm9sRW5hYmxlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmls
aXR5TGlzdGVuZXIsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0F1ZGlvT3JWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsCisgICAg
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0
dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCisgICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9D
YXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsCisgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLAor
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3Bs
YXlDYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlCisgICAgPjsKK307CisKIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA3OWJhYTgz
YjQ5NzdkMmE3ZDhmODk0YTI3YzJmYjZhZDIzYjIwODRhLi44ZmU3Mzk0NWUwMjFiZTUxNmNlMGY5
OTM4NDkwNmE3MjUzZGM0ZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIxMTYsOSArMjExNiw5
IEBAIHZvaWQgUGFnZTo6c3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkKIAogdm9pZCBQYWdl
Ojp1cGRhdGVJc1BsYXlpbmdNZWRpYSh1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCiB7Ci0gICAg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlID0gTWVkaWFQcm9kdWNlcjo6SXNO
b3RQbGF5aW5nOwotICAgIGZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkg
ewotICAgICAgICBzdGF0ZSB8PSBkb2N1bWVudC5tZWRpYVN0YXRlKCk7CisgICAgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlOworICAgIGZvckVhY2hEb2N1bWVudChbJl0oYXV0
byYgZG9jdW1lbnQpIHsKKyAgICAgICAgc3RhdGUuYWRkKGRvY3VtZW50Lm1lZGlhU3RhdGUoKSk7
CiAgICAgfSk7CiAKICAgICBpZiAoc3RhdGUgPT0gbV9tZWRpYVN0YXRlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApp
bmRleCBiMzY0ODFmMjEyNWJkMzY2Mzc0NGRjNzJkZjY3MjEwOTBjMDlkZDc1Li4xNThhMjU2MmNh
MjBlOGY1NzA0MTJlYTBjZDQ3NjA0YWVhZmNkNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTA3MSw3
ICsxMDcxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNDbG9zaW5nIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNSZXN0b3JpbmdDYWNoZWRQYWdlIHsgZmFsc2UgfTsKIAotICAgIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05v
dFBsYXlpbmcgfTsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0
YXRlOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIFRpbWVyIG1fcGxheWJhY2tDb250cm9sc01h
bmFnZXJVcGRhdGVUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBi
OTM4MjI3NDhmNjg5MjFhNTQ4NTkxNzkzZDRhYmNhMTE3NWQ5NTA2Li42ZjNlM2U4MzBmNjEzODRl
OTIzZTY5ZjgxZjhhYjU5ZDNjM2UyNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC00NjA2LDQ1ICs0NjA2LDQ1IEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhZ2VNZWRpYVN0
YXRlKCkKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQogICAgICAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZSA9IGRvY3VtZW50LT5wYWdlKCktPm1lZGlhU3RhdGUoKTsKKyAgICBh
dXRvIHN0YXRlID0gZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFTdGF0ZSgpOwogICAgIFN0cmluZ0J1
aWxkZXIgc3RyaW5nOwotICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1
ZGlvKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbykpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ0F1ZGlv
LCIpOwotICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKQorICAg
IGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlp
bmdWaWRlbykpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1ZpZGVvLCIpOwotICAg
IGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpCisg
ICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlLCIpOwotICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OlJlcXVp
cmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmlu
ZykpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nLCIpOwotICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkV4dGVybmFsRGV2aWNlQXV0
b1BsYXlDYW5kaWRhdGUpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlLCIpOwotICAgIGlm
IChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkRpZFBsYXlUb0VuZCkKKyAgICBpZiAoc3RhdGUuY29u
dGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKSkKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiRGlkUGxheVRvRW5kLCIpOwotICAgIGlmIChzdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6OklzU291cmNlRWxlbWVudFBsYXlpbmcpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzU291cmNlRWxlbWVudFBsYXlpbmcpKQog
ICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLCIpOwogCi0gICAg
aWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCkKKyAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNOZXh0
VHJhY2tDb250cm9sRW5hYmxlZCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzTmV4dFRyYWNr
Q29udHJvbEVuYWJsZWQsIik7Ci0gICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNQcmV2
aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkKSkKICAg
ICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAK
LSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eUxpc3RlbmVyKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKSkKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwi
KTsKLSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBdWRpb09yVmlkZW8pCisgICAg
aWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlv
T3JWaWRlbykpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbywiKTsKLSAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2Up
CisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0Fj
dGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKLSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2Vy
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsK
LSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmlj
ZSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNN
dXRlZEF1ZGlvQ2FwdHVyZURldmljZSwiKTsKLSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2Vy
OjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnko
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpKQog
ICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwiKTsKLSAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVs
ZW1lbnQpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkpCiAgICAgICAgIHN0cmluZy5h
cHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCwiKTsKLSAgICBpZiAoc3Rh
dGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkKKyAgICBp
ZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZl
RGlzcGxheUNhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVE
aXNwbGF5Q2FwdHVyZURldmljZSwiKTsKLSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpI
YXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlKSkK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSwiKTsK
IAogICAgIGlmIChzdHJpbmcuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKaW5kZXggZjJlNzc3MWNiOGQxMjVmODYzM2E1OTBiZDk1ZjlkMmRlZjg5ZjY0
Mi4uNjNhZjA1Y2RmYTgwNGM1ODA2MDQ4N2YwZGNiMDE3YjU5ZTBlZDAyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0yODYyLDIxICsyODYyLDIxIEBAIFdL
TWVkaWFTdGF0ZSBXS1BhZ2VHZXRNZWRpYVN0YXRlKFdLUGFnZVJlZiBwYWdlKQogICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjb3JlU3RhdGUgPSB0b0ltcGwocGFn
ZSktPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwogICAgIFdLTWVkaWFTdGF0ZSBzdGF0ZSA9IGtXS01l
ZGlhSXNOb3RQbGF5aW5nOwogCi0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6OklzUGxheWluZ0F1ZGlvKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAgc3RhdGUgfD0g
a1dLTWVkaWFJc1BsYXlpbmdBdWRpbzsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBzdGF0
ZSB8PSBrV0tNZWRpYUlzUGxheWluZ1ZpZGVvOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNv
cmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1
ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmlj
ZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRB
dWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBz
dGF0ZSB8PSBrV0tNZWRpYUhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3Jl
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmlj
ZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlh
SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKQorICAgIGlmIChj
b3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVE
aXNwbGF5Q2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVE
aXNwbGF5Q2FwdHVyZURldmljZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2Fw
dHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZERpc3BsYXlDYXB0
dXJlRGV2aWNlOwogCiAgICAgcmV0dXJuIHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZjkzZTU3ZDgwMDg0NTVjYzBjMDA5Mjdj
NWNjYjQ4ZmQyMmI3ZWU2Mi4uNWQ2MjBlNzNkNzViOTcwNGQwZTQ1Nzk4MzRkMWM5YWFlOGYwN2I2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC05ODMsOSArOTgzLDkgQEAgc3RhdGljIFdLTWVkaWFQbGF5YmFja1N0YXRlIHRvV0tNZWRp
YVBsYXliYWNrU3RhdGUoV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgbWUKIC0gKFdLTWVkaWFD
YXB0dXJlU3RhdGUpY2FtZXJhQ2FwdHVyZVN0YXRlCiB7CiAgICAgYXV0byBzdGF0ZSA9IF9wYWdl
LT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlKQogICAgICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKLSAgICBpZiAo
c3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmlj
ZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJl
U3RhdGVNdXRlZDsKICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CiB9CkBAIC05
OTMsOSArOTkzLDkgQEAgc3RhdGljIFdLTWVkaWFQbGF5YmFja1N0YXRlIHRvV0tNZWRpYVBsYXli
YWNrU3RhdGUoV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgbWUKIC0gKFdLTWVkaWFDYXB0dXJl
U3RhdGUpbWljcm9waG9uZUNhcHR1cmVTdGF0ZQogewogICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+
cmVwb3J0ZWRNZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmlj
ZSkKICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7Ci0gICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2Up
CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0
YXRlTXV0ZWQ7CiAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQppbmRleCA3MmMx
YWI4YTQzZDdkMDg2OWY1NjYwYjYyN2IwYzIwZjIyNDg5NGRiLi41M2JiZjQyMDE0NzFkOWQ4YTRm
NjZlNzAxZjY0Mzg4ZWVlZDVkMTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbQpAQCAtMzEsMTMgKzMxLDEzIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIHRvV0tNZWRpYUNhcHR1cmVTdGF0
ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRl
KQogewogICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBtZWRpYUNhcHR1cmVTdGF0
ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmU7Ci0gICAgaWYgKHN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVk
aWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisg
ICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0
aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmE7Ci0gICAgaWYgKHN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAg
aWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRB
dWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlh
Q2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZp
ZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRDYW1lcmE7CiAKICAgICByZXR1cm4gbWVkaWFDYXB0
dXJlU3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggMWFmZDkx
YThiYzdjNjllOGUyODgxMGZiNjBmYjIxYjcyM2RiM2ZhMC4uNzRkMmUxMWU1NzZiYTc4YmMzODk3
MGM1OTcxMTlmOWQ4NDVkMzY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLXN0YXRpYyBjb25zdCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgYWN0aXZlQ2FwdHVyZU1hc2sgPSBNZWRpYVByb2R1Y2Vy
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UgfCBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVW
aWRlb0NhcHR1cmVEZXZpY2U7CitzdGF0aWMgY29uc3QgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIGFjdGl2ZUNhcHR1cmVNYXNrIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
QWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfTsKIAogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUmVx
dWVzdElEKCkKIHsKQEAgLTg3OCw3ICs4NzgsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlU3RhdGVDaGFuZ2VkKE1lZGlhUHJvZHVjZXI6Ogog
ICAgIGlmIChtX2NhcHR1cmVTdGF0ZSA9PSAobmV3U3RhdGUgJiBhY3RpdmVDYXB0dXJlTWFzaykp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInN0YXRl
IHdhczogIiwgbV9jYXB0dXJlU3RhdGUsICIsIGlzIG5vdzogIiwgbmV3U3RhdGUgJiBhY3RpdmVD
YXB0dXJlTWFzayk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAic3RhdGUgd2FzOiAi
LCBtX2NhcHR1cmVTdGF0ZS50b1JhdygpLCAiLCBpcyBub3c6ICIsIChuZXdTdGF0ZSAmIGFjdGl2
ZUNhcHR1cmVNYXNrKS50b1JhdygpKTsKICAgICBtX2NhcHR1cmVTdGF0ZSA9IG5ld1N0YXRlICYg
YWN0aXZlQ2FwdHVyZU1hc2s7CiAKICAgICBTZWNvbmRzIGludGVydmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggZGJlYmRlMDNiYzIwMTVjZTA0NjM1MDBjZTBhZTdkYWM4
YmIzYjU1NC4uYzE0MmUzNTViN2M2OWYwNThhOGQ5ZWRjYTcxOGQ2NjQ2Y2VlNTk1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0xNjQsNyArMTY0LDcgQEAgcHJpdmF0ZToK
IAogICAgIFZlY3RvcjxEZW5pZWRSZXF1ZXN0PiBtX2RlbmllZFJlcXVlc3RzOwogCi0gICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fY2FwdHVyZVN0YXRlIHsgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nIH07CisgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fY2FwdHVyZVN0YXRlOwogICAgIFJ1bkxvb3A6OlRp
bWVyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PiBtX3dhdGNoZG9nVGlt
ZXI7CiAgICAgU2Vjb25kcyBtX2N1cnJlbnRXYXRjaGRvZ0ludGVydmFsOwogI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggYmRiNDRlODI3NjcyYjMxMWY4ZDk5ZTMzMGQwYzE3MjhhNWE1ODc2Mi4uNjJkYzI0OTcyNmI3
M2M3NTdkZmEwMTVlZDU4ODA3ZTE1ZDMzZjNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0xOTg3LDExICsxOTg3LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlOjpGbGFnPiBmbGFn
c1RvVXBkCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNJbldp
bmRvdyk7CiAgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5
SWRsZSAmJiBwYWdlQ2xpZW50KCkuaXNWaXN1YWxseUlkbGUoKSkKICAgICAgICAgbV9hY3Rpdml0
eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSk7Ci0gICAgaWYgKGZsYWdz
VG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUgJiYgbV9tZWRpYVN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8gJiYgIShtX211dGVkU3RhdGUuY29udGFpbnMoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKSkpCisgICAgaWYgKGZsYWdzVG9V
cGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUgJiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5z
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRT
dGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpKSkK
ICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUpOwog
ICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNMb2FkaW5nICYmIG1fcGFn
ZUxvYWRTdGF0ZS5pc0xvYWRpbmcoKSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rp
dml0eVN0YXRlOjpJc0xvYWRpbmcpOwotICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlT
dGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSAmJiBtX21lZGlhU3RhdGUgJiAoTWVkaWFQcm9kdWNlcjo6
SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlIHwgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6
OklzQ2FwdHVyaW5nTWVkaWEgJiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KHsgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCAgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH0pKQogICAgICAg
ICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWEpOwog
fQogCkBAIC02MDA2LDggKzYwMDYsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbAogICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
Ci0gICAgYm9vbCBoYXNNdXRlZENhcHR1cmVTdHJlYW1zID0gbV9tZWRpYVN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRDYXB0dXJlTWFzazsKLSAgICBpZiAoaGFzTXV0ZWRDYXB0
dXJlU3RyZWFtcyAmJiAhKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdHJl
YW1DYXB0dXJlSXNNdXRlZCkpCisgICAgYm9vbCBoYXNNdXRlZENhcHR1cmVTdHJlYW1zID0gbV9t
ZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkQ2FwdHVy
ZU1hc2spOworICAgIGlmIChoYXNNdXRlZENhcHR1cmVTdHJlYW1zICYmICEoc3RhdGUuY29udGFp
bnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCkp
KQogICAgICAgICBXZWJQcm9jZXNzUHJveHk6Om11dGVDYXB0dXJlSW5QYWdlc0V4Y2VwdChtX3dl
YlBhZ2VJRCk7CiAjZW5kaWYKIApAQCAtOTE3OSwxMCArOTE3OSwxMCBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBuZQogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBu
ZXdNZWRpYUNhcHR1cmVTdGF0ZSA9IG5ld1N0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFDYXB0dXJlTWFzazsKICNlbmRpZgogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIHBsYXlpbmdNZWRpYU1hc2sgPSBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbyB8
IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvOworICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBwbGF5aW5nTWVkaWFNYXNrIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SXNQbGF5aW5nQXVkaW8sIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRp
YVN0YXRlOwogCi0gICAgYm9vbCBwbGF5aW5nQXVkaW9DaGFuZ2VzID0gKG9sZFN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pICE9IChuZXdTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6
OklzUGxheWluZ0F1ZGlvKTsKKyAgICBib29sIHBsYXlpbmdBdWRpb0NoYW5nZXMgPSAob2xkU3Rh
dGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKSAh
PSAobmV3U3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8pKTsKICAgICBpZiAocGxheWluZ0F1ZGlvQ2hhbmdlcykKICAgICAgICAgcGFnZUNsaWVu
dCgpLmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpOwogICAgIG1fbWVkaWFTdGF0ZSA9IG5ld1N0
YXRlOwpAQCAtOTIwMiwxMSArOTIwMiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZQogCiAg
ICAgYWN0aXZpdHlTdGF0ZURpZENoYW5nZSh7IEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSwgQWN0
aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSB9KTsKIAotICAgIHBsYXlpbmdNZWRpYU1hc2sg
fD0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzazsKKyAgICBwbGF5aW5n
TWVkaWFNYXNrLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrKTsK
ICAgICBpZiAoKG9sZFN0YXRlICYgcGxheWluZ01lZGlhTWFzaykgIT0gKG1fbWVkaWFTdGF0ZSAm
IHBsYXlpbmdNZWRpYU1hc2spKQogICAgICAgICBtX3VpQ2xpZW50LT5pc1BsYXlpbmdNZWRpYURp
ZENoYW5nZSgqdGhpcyk7CiAKLSAgICBpZiAoKG9sZFN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFz
QXVkaW9PclZpZGVvKSAhPSAobV9tZWRpYVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9P
clZpZGVvKSkKKyAgICBpZiAoKG9sZFN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpICE9IChtX21lZGlhU3RhdGUuY29udGFpbnNBbnko
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkpCiAgICAgICAgIHZp
ZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCk7CiAKICAgICBtX3Byb2Nlc3MtPnVwZGF0ZUF1
ZGlibGVNZWRpYUFzc2VydGlvbnMoKTsKQEAgLTkyMTgsOCArOTIxOCw4IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojp1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKCkKICAgICBpZiAobV9yZXBv
cnRlZE1lZGlhQ2FwdHVyZVN0YXRlID09IGFjdGl2ZUNhcHR1cmVTdGF0ZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYm9vbCBoYXZlUmVwb3J0ZWRDYXB0dXJlID0gbV9yZXBvcnRlZE1lZGlhQ2Fw
dHVyZVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzazsKLSAgICBib29sIHdp
bGxSZXBvcnRDYXB0dXJlID0gYWN0aXZlQ2FwdHVyZVN0YXRlOworICAgIGJvb2wgaGF2ZVJlcG9y
dGVkQ2FwdHVyZSA9IG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZS5jb250YWluc0FueShNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrKTsKKyAgICBib29sIHdpbGxSZXBvcnRDYXB0dXJl
ID0gIWFjdGl2ZUNhcHR1cmVTdGF0ZS5pc0VtcHR5KCk7CiAKICAgICBpZiAoaGF2ZVJlcG9ydGVk
Q2FwdHVyZSAmJiAhd2lsbFJlcG9ydENhcHR1cmUgJiYgbV91cGRhdGVSZXBvcnRlZE1lZGlhQ2Fw
dHVyZVN0YXRlVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTIyNyw3ICs5
MjI3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3Rh
dGUoKQogICAgIGlmICghaGF2ZVJlcG9ydGVkQ2FwdHVyZSAmJiB3aWxsUmVwb3J0Q2FwdHVyZSkK
ICAgICAgICAgbV91cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlVGltZXIuc3RhcnRPbmVT
aG90KG1fbWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkpOwogCi0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChXZWJSVEMsICJ1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlOiBmcm9tICVk
IHRvICVkIiwgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlLCBhY3RpdmVDYXB0dXJlU3RhdGUp
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoV2ViUlRDLCAidXBkYXRlUmVwb3J0ZWRNZWRp
YUNhcHR1cmVTdGF0ZTogZnJvbSAlZCB0byAlZCIsIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0
ZS50b1JhdygpLCBhY3RpdmVDYXB0dXJlU3RhdGUudG9SYXcoKSk7CiAKICAgICBib29sIG1pY3Jv
cGhvbmVDYXB0dXJlQ2hhbmdlZCA9IChtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgJiBNZWRp
YVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVNYXNrKSAhPSAoYWN0aXZlQ2FwdHVyZVN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6QXVkaW9DYXB0dXJlTWFzayk7CiAgICAgYm9vbCBjYW1lcmFDYXB0dXJlQ2hh
bmdlZCA9IChtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpWaWRl
b0NhcHR1cmVNYXNrKSAhPSAoYWN0aXZlQ2FwdHVyZVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6Vmlk
ZW9DYXB0dXJlTWFzayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDY4ODBmM2NmNzEwMWUzMWQzZjRhZWZmZjc2ZjFkZjUxMDM5ZDc2N2MuLjcxM2IyYjZjYWVhMjU0
YzI3NTllZmViYmU4ZjkxNmU5ODYyMDc0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNDczLDE3ICsxNDczLDE3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNT
aG93aW5nTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTaG93
aW5nTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDsgfQogCi0gICAgYm9vbCBpc1BsYXlpbmdBdWRp
bygpIGNvbnN0IHsgcmV0dXJuICEhKG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6OklzUGxheWluZ0F1ZGlvKTsgfQorICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8oKSBjb25zdCB7
IHJldHVybiAhIShtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpJc1BsYXlpbmdBdWRpbyk7IH0KICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywgdWludDY0X3QpOwogICAg
IHZvaWQgdXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSgpOwogCiAgICAgZW51bSBjbGFz
cyBDYW5EZWxheU5vdGlmaWNhdGlvbiB7IE5vLCBZZXMgfTsKICAgICB2b2lkIHVwZGF0ZVBsYXlp
bmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Ms
IENhbkRlbGF5Tm90aWZpY2F0aW9uID0gQ2FuRGVsYXlOb3RpZmljYXRpb246Ok5vKTsKLSAgICBi
b29sIGlzQ2FwdHVyaW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVNYXNrOyB9Ci0gICAgYm9vbCBpc0NhcHR1
cmluZ1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6VmlkZW9DYXB0dXJlTWFzazsgfQotICAgIGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJl
YW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7IH0KLSAgICBib29sIGhhc0FjdGl2ZVZpZGVv
U3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOyB9Ci0gICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHJlcG9ydGVkTWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSB8IChtX21lZGlhU3RhdGUgJiB+V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7IH0KKyAgICBib29sIGlzQ2FwdHVy
aW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9DYXB0dXJlTWFzayk7IH0KKyAgICBib29sIGlzQ2FwdHVy
aW5nVmlkZW8oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlTWFzayk7IH0KKyAgICBib29sIGhhc0FjdGl2
ZUF1ZGlvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZSk7IH0KKyAgICBib29sIGhhc0FjdGl2ZVZpZGVvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSk7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgcmVwb3J0ZWRNZWRpYVN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlIHwgKG1fbWVkaWFTdGF0ZSAtIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2spOyB9CiAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJu
IG1fbXV0ZWRTdGF0ZTsgfQogCiAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYkNvcmU6
OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KTsK
QEAgLTI4NTYsMTAgKzI4NTYsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYWN0aXZpdHlTdGF0
ZUNoYW5nZVdhbnRzU3luY2hyb25vdXNSZXBseSB7IGZhbHNlIH07CiAgICAgVmVjdG9yPENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1fbmV4dEFjdGl2aXR5U3RhdGVDaGFuZ2VDYWxsYmFja3M7
CiAKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0
YXRlIHsgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nIH07CisgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKIAogICAgIC8v
IFRvIG1ha2Ugc3VyZSBjYXB0dXJlIGluZGljYXRvcnMgYXJlIHZpc2libGUgbG9uZyBlbm91Z2gs
IG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSBpcyB0aGUgc2FtZSBhcyBtX21lZGlhU3RhdGUg
ZXhjZXB0IHRoYXQgd2UgbWlnaHQgZGVsYXkgYSBiaXQgdHJhbnNpdGlvbiBmcm9tIGNhcHR1cmlu
ZyB0byBub3QtY2FwdHVyaW5nLgotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgeyBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpJc05vdFBsYXlpbmcgfTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlOwogICAgIFJ1bkxvb3A6OlRpbWVy
PFdlYlBhZ2VQcm94eT4gbV91cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlVGltZXI7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIERlZmF1bHRNZWRpYUNhcHR1cmVSZXBvcnRpbmdE
ZWxheSB7IDNfcyB9OwogICAgIFNlY29uZHMgbV9tZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheSB7
IERlZmF1bHRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDM2ZTFmNDVlNzk2MDRk
NTY0ZTJlODg1MDVkZGQzYjM3YTQ1MzhhZTAuLjMwZWY3YjJiNmUwOGUxMDY0NTAwMTg1YWE5OGFj
ZTRmMDQ3ZTRlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTQ2MCw3ICs0NjAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3JlOjpDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogI2VuZGlmCiAKLSAgICBJc1BsYXlpbmdNZWRpYURpZENoYW5nZSh1
bnNpZ25lZCBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQorICAgIElzUGxheWluZ01l
ZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQogICAgIEhhbmRsZUF1dG9wbGF5RXZlbnQoZW51
bTp1aW50OF90IFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQgZXZlbnQsIE9wdGlvblNldDxXZWJDb3Jl
OjpBdXRvcGxheUV2ZW50RmxhZ3M+IGZsYWdzKQogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNDc5
LDcgKzQ3OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQWRkUGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQpCiAgICAgUmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQo
V2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQp
CiAgICAgU2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgcGlja2Vy
TG9jYXRpb24sIGJvb2wgaGFzVmlkZW8pCi0gICAgUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCwgdW5zaWduZWQgbWVkaWFTdGF0ZSkKKyAgICBQbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgbWVkaWFTdGF0ZSkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ckVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyU3RhdGUoU3RyaW5nIG5hbWUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNr
VGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlIHBpY2tlclN0YXRlKQogICAgIE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBmZTYxZjE1NTg0NDA5MzBiZTgyODZjOWE3NTBj
Yzg4YmJkNjAwMTAwLi44MjhkMzBhMDZlOWQ4ZmRkNzhiNTk4ZGY5MGE2NjM5MzFkYTBlOGQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0x
ODUsNyArMTg1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1lZGlhQ2FuU3RhcnQoV2ViQ29yZTo6
RG9jdW1lbnQmKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXIKLSAg
ICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fcGx1Z2luSXNQbGF5aW5nQXVkaW8gPyBNZWRpYVByb2R1Y2VyOjpJc1Bs
YXlpbmdBdWRpbyA6IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZzsgfQorICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIG92ZXJyaWRlOwogCiAgICAg
Ly8gUGx1Z2luQ29udHJvbGxlcgpAQCAtMjc1LDQgKzI3NSwxMiBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9wbHVnaW5Jc1BsYXlpbmdBdWRpbyB7IGZhbHNlIH07CiB9OwogCitpbmxpbmUgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIFBsdWdpblZpZXc6Om1lZGlhU3RhdGUo
KSBjb25zdAoreworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBt
ZWRpYVN0YXRlOworICAgIGlmIChtX3BsdWdpbklzUGxheWluZ0F1ZGlvKQorICAgICAgICBtZWRp
YVN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7Cisg
ICAgcmV0dXJuIG1lZGlhU3RhdGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427642</attachid>
            <date>2021-05-04 01:30:56 -0700</date>
            <delta_ts>2021-05-04 03:04:41 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225227-20210504103054.patch</filename>
            <type>text/plain</type>
            <size>56895</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc5MDhiZTMyZTU0NmU5
MTRmOGZmYTMxM2EyN2QyODY3YzE2ODNiOS4uMDZlMGQ5NzVlYzMwMjNlZjBhOGFiYmNiMTk2MTA4
ZTI5ZjFmODM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIxLTA1LTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgT3B0aW9uU2V0IGZv
ciBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTIyNworCisgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgQ2FybHNvbi4KKworICAgICAgICBVcGRhdGUgY29kZSB0byB1c2UgYSBzYWZlciBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgdHlwZS4KKworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVo
YXZpb3IsIHRoaXMgaXMgYSByZWZhY3RvcmluZy4KKworICAgICAgICAqIE1vZHVsZXMvYWlycGxh
eS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZsYWdzQXJl
U2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdl
cjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRj
aGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjptZWRpYVN0YXRlIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmg6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
OjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6d2lsbEJlUmVtb3ZlZEZyb21GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUgY29u
c3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
TWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRT
ZXNzaW9uOjpwbGF5YmFja1N0YXRlQ2hhbmdlUGVybWl0dGVkIGNvbnN0KToKKyAgICAgICAgKiBw
YWdlL01lZGlhUHJvZHVjZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Omlz
Q2FwdHVyaW5nKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUpOgorCiAyMDIxLTA0LTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgT3B0aW9uU2V0IGZvciBNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjQyMzE2ZGY3NDY4OTc1M2ZjYWI4OTVmNmFhMGU3
YWUxZjUzMTE0Yy4uOTI3YjdiNGQ0YzUyMTE1ODI2NDNmMmQ3MGExYTJkNDJiYzQ1Mzk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wNS0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIE9wdGlvblNldCBmb3IgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjUyMjcKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgVXBkYXRlIGNvZGUgYWNjb3JkaW5nIHNhZmVyIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyB0eXBlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6Cisg
ICAgICAgIChXS1BhZ2VHZXRNZWRpYVN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNhbWVyYUNhcHR1cmVTdGF0
ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgbWljcm9waG9uZUNhcHR1cmVTdGF0ZV0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktp
dDo6dG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCk6CisgICAgICAgICogVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVTdGF0
ZUNoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZUFjdGl2aXR5U3RhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6Om1lZGlhU3RhdGUgY29uc3Qp
OgorCiAyMDIxLTA0LTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgT3B0aW9uU2V0IGZvciBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcAppbmRleCBkNWI1OTVhNGFjNDlmZjBlZmZlNjJiNDUyZWMzNDJiN2QzODMw
NDg0Li4zZWI3YmY5Yjg3NWY0YTliZDllNTIzODFlYzk3ZjkwY2EyNTgxZTY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuY3BwCkBAIC01OCwzNiArNTgsMzYgQEAgc3RydWN0IENsaWVudFN0YXRlIHsKIAogICAg
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudDsKICAgICBQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZDsKLSAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MgeyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJ
c05vdFBsYXlpbmcgfTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgZmxhZ3M7CiAgICAgYm9vbCByZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wg
cHJldmlvdXNseVJlcXVlc3RlZFBpY2tlciB7IGZhbHNlIH07CiAgICAgYm9vbCBjb25maWd1cmF0
aW9uUmVxdWlyZWQgeyB0cnVlIH07CiAgICAgYm9vbCBwbGF5ZWRUb0VuZCB7IGZhbHNlIH07CiB9
OwogCi1zdGF0aWMgYm9vbCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgdmFsdWUsIHVuc2lnbmVkIGZsYWdzKQorc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgZmxhZ3MpCiB7Ci0gICAgcmV0dXJuIHZhbHVlICYgZmxhZ3M7CisgICAgcmV0dXJuIHZh
bHVlLmNvbnRhaW5zQW55KGZsYWdzKTsKIH0KIAogU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0ZVN0
cmluZyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCiB7CiAgICAgU3RyaW5n
QnVpbGRlciBzdHJpbmc7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5n
QXVkaW8pCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nQXVkaW8pCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ0F1ZGlvKyIpOwotICAg
IGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKQorICAgIGlmIChmbGFn
cyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChmbGFncyAmIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpCiAgICAgICAg
IHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UrIik7Ci0gICAgaWYgKGZs
YWdzICYgTWVkaWFQcm9kdWNlcjo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5l
cikKKyAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNU
YXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcisiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1
Y2VyOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykKKyAgICBpZiAoZmxhZ3MgJiBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmlu
ZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNUYXJnZXRNb25pdG9yaW5nKyIpOwot
ICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5k
aWRhdGUpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJu
YWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiRXh0ZXJu
YWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSsiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1
Y2VyOjpEaWRQbGF5VG9FbmQpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6RGlkUGxheVRvRW5kKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJEaWRQbGF5VG9FbmQr
Iik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvKQorICAg
IGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChzdHJp
bmcuaXNFbXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKQEAg
LTI1NSw3ICsyNTUsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcihXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZQogCiAgICAgQUxXQVlTX0xP
R19NRURJQVNFU1NJT05NQU5BR0VSKF9fZnVuY19fLCBtX2NsaWVudFN0YXRlW2luZGV4XS5nZXQo
KSk7CiAKLSAgICBib29sIGhhc0FjdGl2ZVJvdXRlID0gZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0
ZVtpbmRleF0tPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNl
KTsKKyAgICBib29sIGhhc0FjdGl2ZVJvdXRlID0gZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVtp
bmRleF0tPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVy
bmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
Y2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJvdXRlLCB1
c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0Q29udGV4dCgpKTsKIH0K
IApAQCAtMjc1LDE4ICsyNzUsMTggQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGll
bnRTdGF0ZURpZENoYW5nZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogCiAgICAgY2hh
bmdlZENsaWVudFN0YXRlLT5mbGFncyA9IG5ld0ZsYWdzOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNvbmZpZ3VyYXRpb25GbGFncyA9IE1lZGlhUHJvZHVjZXI6
OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nIHwgTWVkaWFQcm9kdWNlcjo6SGFzUGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciB8IE1lZGlhUHJvZHVjZXI6Okhhc0F1ZGlv
T3JWaWRlbzsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVw
ZGF0ZUNvbmZpZ3VyYXRpb25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVp
cmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpIYXNBdWRpb09yVmlkZW8gfTsKICAgICBpZiAoKG9sZEZsYWdzICYgdXBkYXRlQ29u
ZmlndXJhdGlvbkZsYWdzKSAhPSAobmV3RmxhZ3MgJiB1cGRhdGVDb25maWd1cmF0aW9uRmxhZ3Mp
KQogICAgICAgICBzY2hlZHVsZURlbGF5ZWRUYXNrKFRhcmdldE1vbml0b3JpbmdDb25maWd1cmF0
aW9uVGFzayk7CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ1Rv
VGFyZ2V0RmxhZ3MgPSBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlIHwg
TWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlkZW87CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHBsYXlpbmdU
b1RhcmdldEZsYWdzKSAhPSAobmV3RmxhZ3MgJiBwbGF5aW5nVG9UYXJnZXRGbGFncykpIHsKLSAg
ICAgICAgaWYgKGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdW
aWRlbykgJiYgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdW
aWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6OkRpZFBsYXlUb0Vu
ZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pICYmICFmbGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pICYmIGZsYWdzQXJlU2V0KG5ld0Zs
YWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICAg
ICAgY2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAgIHNjaGVk
dWxlRGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAgICB9CiAK
LSAgICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2
ZVJvdXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpFeHRlcm5h
bERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwg
IW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0Zs
YWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2Fu
ZGlkYXRlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRG8gbm90IGludGVycnVwdCBhbm90
aGVyIGVsZW1lbnQgYWxyZWFkeSBwbGF5aW5nIHRvIGEgZGV2aWNlLgpAQCAtMjk0LDE0ICsyOTQs
MTQgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5nZShX
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICBpZiAoc3RhdGUgPT0gY2hhbmdl
ZENsaWVudFN0YXRlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKGZsYWdz
QXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERl
dmljZSkgJiYgZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlp
bmdWaWRlbykpIHsKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkgJiYgZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdW
aWRlbykpIHsKICAgICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1
bmNfXywgc3RhdGUuZ2V0KCksICIgcmV0dXJuaW5nIGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0
aGUgZGV2aWNlIHVubGVzcyBwbGF5YmFjayBoYXMganVzdCBzdGFydGVkLgotICAgIGlmICghZmxh
Z3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFn
c0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAg
aWYgKCFmbGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nVmlkZW8pIHx8IGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgQUxXQVlTX0xPR19NRURJQVNFU1NJ
T05NQU5BR0VSKF9fZnVuY19fLCAicmV0dXJuaW5nIGVhcmx5LCBwbGF5YmFjayBkaWRuJ3QganVz
dCBzdGFydCIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzc2LDcgKzM3Niw3IEBAIHZv
aWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRz
KCkKICAgICAgICAgaWYgKChtX3RhcmdldENoYW5nZWQgfHwgbV9wbGF5YmFja1RhcmdldFBpY2tl
ckRpc21pc3NlZCkgJiYgc3RhdGUtPnJlcXVlc3RlZFBpY2tlcikKICAgICAgICAgICAgIGluZGV4
T2ZDbGllbnRUaGF0UmVxdWVzdGVkUGlja2VyID0gaTsKIAotICAgICAgICBpZiAoaW5kZXhPZkNs
aWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgZmxhZ3NBcmVTZXQoc3RhdGUtPmZs
YWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSkKKyAgICAgICAg
aWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGZsYWdzQXJl
U2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rhcmdl
dCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5v
dEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJlcXVlc3RlZFBp
Y2tlcikKQEAgLTM4Nyw3ICszODcsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNv
bmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxs
UGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7CiAgICAgaWYg
KGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGluZGV4T2ZMYXN0
Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRleE9mQ2xpZW50
V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyOwotICAg
IGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0
aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXI6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpICYmICFmbGFnc0FyZVNldCht
X2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlkZW8pKQor
ICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZl
QWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpICYm
ICFmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQogICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBsYXlU
b1RhcmdldCA9IDA7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2xpZW50U3RhdGUu
c2l6ZSgpOyArK2kpIHsKQEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAKICAgICBpZiAoaGF2ZUFj
dGl2ZVJvdXRlICYmIGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ICE9IG5vdEZvdW5kKSB7
CiAgICAgICAgIGF1dG8mIHN0YXRlID0gbV9jbGllbnRTdGF0ZVtpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldF07Ci0gICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRp
YVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSkgeworICAgICAgICBpZiAoIWZs
YWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVG9FeHRlcm5hbERldmljZSkpIHsKICAgICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNT
SU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldCh0cnVlKSIpOwogICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRT
aG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChzdGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAg
ICAgfQpAQCAtNDMwLDEzICs0MzAsMTMgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpj
b25maWd1cmVQbGF5YmFja1RhcmdldE1vbml0b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdp
dGhNZWRpYSA9IGZhbHNlOwogICAgIGZvciAoYXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7
CiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUu
Z2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6UmVxdWly
ZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKSB7CiAgICAgICAgICAgICBtb25pdG9yaW5nUmVxdWlyZWQgPSB0cnVlOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJv
ZHVjZXI6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCisgICAgICAgIGlm
IChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1Rh
cmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQogICAgICAgICAgICAgaGFzQXZhaWxhYmlsaXR5TGlz
dGVuZXIgPSB0cnVlOwotICAgICAgICBpZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6
SGFzQXVkaW9PclZpZGVvKQorICAgICAgICBpZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAgaGF2ZUNsaWVudFdp
dGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAogICAgICAgICBBTFdB
WVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdldCgpLCAiIHBsYXll
ZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBpZiAoZmxhZ3NBcmVT
ZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNl
KSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1Zp
ZGVvKSkKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkgJiYgZmxhZ3NBcmVTZXQo
c3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykp
CiAgICAgICAgICAgICBzdG9wVGltZXIgPSB0cnVlOwogICAgICAgICBpZiAoc3RhdGUtPnBsYXll
ZFRvRW5kKQogICAgICAgICAgICAgZGlkUGxheVRvRW5kID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKaW5kZXggZjcwNWQ3
ZjAzMjM0ZDI0MThjM2FhMWViODkxOWRjMjY5YTliNmM3Yi4uY2EyMGE2ZTFiYzBiZjEzYWMxYTQw
NzlhZjE1ZDM5NWEwNDIxNmYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKQEAgLTI3OSwxMyArMjc5LDEzIEBAIHZvaWQgTWVk
aWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKIAogTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIE1lZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7
CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwogCiAgICAgaWYgKCFt
X2lzQWN0aXZlIHx8ICFkb2N1bWVudCgpIHx8ICFkb2N1bWVudCgpLT5wYWdlKCkpCiAgICAgICAg
IHJldHVybiBzdGF0ZTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0
LnZhbHVlcygpKQotICAgICAgICBzdGF0ZSB8PSB0cmFjay0+bWVkaWFTdGF0ZSgpOworICAgICAg
ICBzdGF0ZS5hZGQodHJhY2stPm1lZGlhU3RhdGUoKSk7CiAKICAgICByZXR1cm4gc3RhdGU7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgK
aW5kZXggYjRlNTE1ODdiMzM3ZWQyYzcyNmFhOTJjZjk3NzU2ZDZjOGI0YmU5Ni4uY2EyOWU0ZDBi
ZWRhYzg3ZTllNWJjYmUzNTQ4MDI4NDVjZmM5NzY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaApAQCAtMTQwLDcgKzE0MCw3IEBAIHBy
aXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+PiBt
X3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fc3RhdGUg
eyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgbV9zdGF0ZTsKIAogICAgIGJvb2wgbV9pc0FjdGl2ZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCA0
MjI0ZDllMjk1ODA4MjI2ZGFkNmQ1YWJiMGI5MTNmODhiOTJiZjE1Li43NmNjNTg1YTcwNTZiOTg3
OWIyZGM5ZTEwOWFmNTcwNWViYTdkNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTQxOCwyOCArNDE4
LDI4IEBAIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzb3VyY2VDYXB0dXJlU3RhdGUo
UmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQogICAgIHN3aXRjaCAoc291cmNlLmRldmljZVR5
cGUoKSkgewogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToK
ICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJv
ZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlOwogICAg
ICAgICBpZiAoc291cmNlLmludGVycnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQ
cm9kdWNlcjo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1
cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAg
ICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwor
ICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1
ZGlvQ2FwdHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpDYW1lcmE6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQoKSkKLSAgICAg
ICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZTsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZp
ZGVvQ2FwdHVyZURldmljZTsKICAgICAgICAgaWYgKHNvdXJjZS5pbnRlcnJ1cHRlZCgpKQotICAg
ICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJl
RGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmlzUHJv
ZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgogICAgICAgICBpZiAoc291cmNlLm11dGVk
KCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWREaXNwbGF5Q2Fw
dHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmludGVy
cnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SGFzSW50ZXJydXB0
ZWREaXNwbGF5Q2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogICAgICAg
ICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlh
UHJvZHVjZXI6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0
dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2
aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXI6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgpA
QCAtNDUxLDExICs0NTEsMTEgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJj
ZUNhcHR1cmVTdGF0ZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCiAKIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmIGRvY3VtZW50KQogewotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZSA9IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZzsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sgOiBhbGxDYXB0
dXJlVHJhY2tzKCkpIHsKICAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1lbnQoKSAhPSAm
ZG9jdW1lbnQgfHwgY2FwdHVyZVRyYWNrLT5lbmRlZCgpKQogICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIHN0YXRlIHw9IHNvdXJjZUNhcHR1cmVTdGF0ZShjYXB0dXJlVHJhY2stPnNvdXJj
ZSgpKTsKKyAgICAgICAgc3RhdGUuYWRkKHNvdXJjZUNhcHR1cmVTdGF0ZShjYXB0dXJlVHJhY2st
PnNvdXJjZSgpKSk7CiAgICAgfQogICAgIHJldHVybiBzdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCA3YTVjYjhjYTk5
MTE0Mjc3NjRmNGFhOTE3NjA4MTk1MTc5MjVhMzdmLi44ZDYwYTM5ZTY1YmRmY2M3NzA4NTAwNTUy
ZDJlODA0YWZjODkyYWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuY3BwCkBAIC0zNDgsNyArMzQ4LDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6
OndpbGxQYXVzZVBsYXliYWNrKCkKIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBBdWRp
b0NvbnRleHQ6Om1lZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmICghaXNTdG9wcGVkKCkgJiYg
ZGVzdGluYXRpb24oKS5pc1BsYXlpbmdBdWRpbygpKQotICAgICAgICByZXR1cm4gTWVkaWFQcm9k
dWNlcjo6SXNQbGF5aW5nQXVkaW87CisgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05v
dFBsYXlpbmc7CiB9CkBAIC00MDYsNyArNDA2LDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxC
ZWdpblBsYXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2Vk
KCkKIHsKICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAgIGlm
ICghZG9jdW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5n
QXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8IG1lZGlhU3RhdGUo
KSA9PSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyB8fCBpc1N0b3Bw
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGRvY3VtZW50KCktPmhpZGRlbigpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyYWUzYzNkZWI5MTBhMTdjZmI4OTdmZWUwZjc0
ZGJmMTllYWFhNjdjLi4wYmQwMTM3MThjNjVmYmM0MTdlOTkxMWY4ZDM4MTQ3YzU0MGQ2ZWFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI2NDksNyArMjY0OSw3IEBAIHZvaWQgRG9jdW1l
bnQ6OndpbGxCZVJlbW92ZWRGcm9tRnJhbWUoKQogCiAgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRl
ci0+c3RvcFVudXNlZFByZWxvYWRzVGltZXIoKTsKIAotICAgIGlmIChwYWdlKCkgJiYgbV9tZWRp
YVN0YXRlICE9IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZykgeworICAgIGlmIChwYWdlKCkg
JiYgIW1fbWVkaWFTdGF0ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9tZWRpYVN0YXRlID0gTWVk
aWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogICAgICAgICBwYWdlKCktPnVwZGF0ZUlzUGxheWlu
Z01lZGlhKEhUTUxNZWRpYUVsZW1lbnRJbnZhbGlkSUQpOwogICAgIH0KQEAgLTQzMjAsMTggKzQz
MjAsMTggQEAgdm9pZCBEb2N1bWVudDo6bm90ZVVzZXJJbnRlcmFjdGlvbldpdGhNZWRpYUVsZW1l
bnQoKQogdm9pZCBEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEodWludDY0X3Qgc291cmNl
RWxlbWVudElEKQogewogICAgIEFTU0VSVCghbV9hdWRpb1Byb2R1Y2Vycy5oYXNOdWxsUmVmZXJl
bmNlcygpKTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBNZWRp
YVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIHN0YXRlOwogICAgIGZvciAoYXV0byYgYXVkaW9Qcm9kdWNlciA6IG1fYXVkaW9Qcm9kdWNl
cnMpCi0gICAgICAgIHN0YXRlIHw9IGF1ZGlvUHJvZHVjZXIubWVkaWFTdGF0ZSgpOworICAgICAg
ICBzdGF0ZS5hZGQoYXVkaW9Qcm9kdWNlci5tZWRpYVN0YXRlKCkpOwogCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLSAgICBzdGF0ZSB8PSBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUo
KnRoaXMpOworICAgIHN0YXRlLmFkZChNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoKnRo
aXMpKTsKICAgICBpZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbikKLSAgICAgICAgc3RhdGUg
fD0gTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOworICAgICAgICBz
dGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFF
bGVtZW50KQotICAgICAgICBzdGF0ZSB8PSBNZWRpYVByb2R1Y2VyOjpIYXNVc2VySW50ZXJhY3Rl
ZFdpdGhNZWRpYUVsZW1lbnQ7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpOwogCiAgICAgaWYgKHN0
YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCAwOGYwYTA1NmQxODUxNDFkYWQzNmI2NWNkOWJkM2NiNDZlMDk3MzNjLi4xYWY3NDAxODYy
YjE5MzU5NDFlZWE0Njg2YWJlZTUxYjQwNmExYjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
MjA0Myw3ICsyMDQzLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3dyaXRlUmVjdXJzaW9u
RGVwdGggeyAwIH07CiAKICAgICBJbmhlcml0ZWRCb29sIG1fZGVzaWduTW9kZSB7IGluaGVyaXQg
fTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlIHsgTWVk
aWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nIH07CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKICAgICBib29sIG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVk
aWFFbGVtZW50IHsgZmFsc2UgfTsKICAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgbV9iYWNrRm9y
d2FyZENhY2hlU3RhdGUgeyBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgfTsKICAgICBPcHRpb25hbDxS
ZWZlcnJlclBvbGljeT4gbV9yZWZlcnJlclBvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCmluZGV4IGM5NDBjNWYzNmE5NjZhMjk4ZjRkYzRjYWI4MzZjZDQ2YjI1
Y2UzODUuLjcxZWQwMzRhYjliZjdlY2IzOWNmN2RkYWY2MWQzYjQ2ZjczODQyYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzY5Myw3ICs3NjkzLDcgQEAg
Ym9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jl
c3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlm
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgaWYgKGhhc01lZGlhU3RyZWFtU3Jj
T2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpICYgSXNQbGF5aW5nQXVkaW8gJiYgZG9jdW1lbnQoKS5t
ZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2Up
IHsKKyAgICAgICAgaWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgp
LmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAm
JiBkb2N1bWVudCgpLm1lZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7CiAgICAgICAgICAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVzZSBwbGF5aW5nIGFuIGF1
ZGlvIE1lZGlhU3RyZWFtVHJhY2siKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CkBAIC03NzA4LDcgKzc3MDgsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92
ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
ICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkgJiBJ
c1BsYXlpbmdBdWRpbyAmJiBkb2N1bWVudCgpLm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6
Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkgeworICAgICAgICBpZiAoaGFzTWVkaWFTdHJl
YW1TcmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVy
ZURldmljZSkpIHsKICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJyZXR1cm5p
bmcgdHJ1ZSBiZWNhdXNlIHBsYXlpbmcgYW4gYXVkaW8gTWVkaWFTdHJlYW1UcmFjayIpOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTc3NjgsMjkgKzc3NjgsMjkgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKCkKIAogTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAog
ewotICAgIE1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IElzTm90UGxheWluZzsKKyAgICBNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGU7CiAKICAgICBib29sIGhhc0FjdGl2ZVZpZGVvID0gaXNWaWRlbygpICYm
IGhhc1ZpZGVvKCk7CiAgICAgYm9vbCBoYXNBdWRpbyA9IHRoaXMtPmhhc0F1ZGlvKCk7CiAgICAg
aWYgKGlzUGxheWluZ1RvRXh0ZXJuYWxUYXJnZXQoKSkKLSAgICAgICAgc3RhdGUgfD0gSXNQbGF5
aW5nVG9FeHRlcm5hbERldmljZTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpOwogCiAjaWYgRU5BQkxFKFdJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICBpZiAobV9oYXNQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eUxpc3RlbmVycykgewotICAgICAgICBzdGF0ZSB8PSBIYXNQbGF5YmFja1RhcmdldEF2YWls
YWJpbGl0eUxpc3RlbmVyOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcik7CiAgICAgICAgIGlm
ICghbWVkaWFTZXNzaW9uKCkud2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSkKLSAgICAg
ICAgICAgIHN0YXRlIHw9IFJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nOworICAgICAg
ICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJh
Y2tUYXJnZXRNb25pdG9yaW5nKTsKICAgICB9CiAKICAgICBib29sIHJlcXVpcmVVc2VyR2VzdHVy
ZSA9IG1lZGlhU2Vzc2lvbigpLmhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vz
c2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9BdXRvcGxheVRvRXh0ZXJuYWxEZXZpY2UpOwogICAg
IGlmIChtX3JlYWR5U3RhdGUgPj0gSEFWRV9NRVRBREFUQSAmJiAhcmVxdWlyZVVzZXJHZXN0dXJl
ICYmICFtX2ZhaWxlZFRvUGxheVRvV2lyZWxlc3NUYXJnZXQpCi0gICAgICAgIHN0YXRlIHw9IEV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGU7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKTsKIAog
ICAgIGlmIChoYXNBY3RpdmVWaWRlbyB8fCBoYXNBdWRpbykKLSAgICAgICAgc3RhdGUgfD0gSGFz
QXVkaW9PclZpZGVvOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvKTsKIAogICAgIGlmIChoYXNBY3RpdmVWaWRlbyAmJiBlbmRlZFBs
YXliYWNrKCkpCi0gICAgICAgIHN0YXRlIHw9IERpZFBsYXlUb0VuZDsKKyAgICAgICAgc3RhdGUu
YWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCk7CiAjZW5kaWYKIAog
ICAgIGlmICghaXNQbGF5aW5nKCkpCkBAIC03ODA0LDEwICs3ODA0LDEwIEBAIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0YXRlKCkgY29uc3QK
ICAgICBpc1BsYXlpbmdBdWRpbyA9IGlzUGxheWluZ0F1ZGlvICYmICFtdXRlZCgpOwogI2VuZGlm
CiAgICAgaWYgKGlzUGxheWluZ0F1ZGlvKQotICAgICAgICBzdGF0ZSB8PSBJc1BsYXlpbmdBdWRp
bzsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvKTsKIAogICAgIGlmIChoYXNBY3RpdmVWaWRlbykKLSAgICAgICAgc3RhdGUgfD0gSXNQ
bGF5aW5nVmlkZW87CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdWaWRlbyk7CiAKICAgICByZXR1cm4gc3RhdGU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDVmMGJiZjE2ZTE4MTVkNGYxY2NlM2Y4ZjAzYjA4
MjU3MWNhMzUyZDUuLjQ1Njk4MzA0M2Y1N2RkZDhhYmEzZDAxNTBkOTRiOGNlOTdiYWZjNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMTg3LDcgKzExODcsNyBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBNZWRp
YVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbV9tZWRpYVN0YXRlOwogICAgIE1vbm90b25pY1RpbWUgbV9jdXJyZW50UGxheWJhY2tU
YXJnZXRJc1dpcmVsZXNzRXZlbnRGaXJlZFRpbWU7CiAgICAgYm9vbCBtX2hhc1BsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmFpbGVkVG9Q
bGF5VG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCA1YWNmNzg0NzY1YjJlOWM4NTQ1ZmE0NDA0M2U4Mzdi
Y2I0ODFhNThhLi40MTVhZTMxNWM2YWU0MDI2NzU5MDNlMGRmNmJhYzQwZDFlYjNmYzJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTM1OSw3ICsz
NTksNyBAQCBTdWNjZXNzT3I8TWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50
U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcgogICAgIGlmIChtX2VsZW1lbnQuaGFzTWVk
aWFTdHJlYW1TcmNPYmplY3QoKSkgewogICAgICAgICBpZiAoZG9jdW1lbnQuaXNDYXB0dXJpbmco
KSkKICAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIGlmIChkb2N1bWVudC5tZWRpYVN0
YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbykKKyAgICAgICAgaWYgKGRvY3Vt
ZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1
ZGlvKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAjZW5kaWYKQEAgLTM3NCw3ICsz
NzQsNyBAQCBTdWNjZXNzT3I8TWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50
U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcgogICAgICAgICByZXR1cm4gTWVkaWFQbGF5
YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZDsKICAgICB9CiAKLSAgICBpZiAo
dG9wRG9jdW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6SGFzVXNlckludGVyYWN0
ZWRXaXRoTWVkaWFFbGVtZW50ICYmIHRvcERvY3VtZW50LnF1aXJrcygpLm5lZWRzUGVyRG9jdW1l
bnRBdXRvcGxheUJlaGF2aW9yKCkpCisgICAgaWYgKHRvcERvY3VtZW50Lm1lZGlhU3RhdGUoKSAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxl
bWVudCAmJiB0b3BEb2N1bWVudC5xdWlya3MoKS5uZWVkc1BlckRvY3VtZW50QXV0b3BsYXlCZWhh
dmlvcigpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKHRvcERvY3VtZW50Lmhhc0hh
ZFVzZXJJbnRlcmFjdGlvbigpICYmIGRvY3VtZW50LnF1aXJrcygpLnNob3VsZEF1dG9wbGF5Rm9y
QXJiaXRyYXJ5VXNlckdlc3R1cmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWVkaWFQcm9kdWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5k
ZXggMjQwMzI3NjU3MmM5MTBmZWUwNjcxOTRiNjQ1ZDIxZDhhYTk1ZjBjMC4uODBhZDVhZWVmYWRm
OWVjYjgzNmI5MTIzYzM4YzU0MGU2ZjRjMTUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9NZWRpYVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1
Y2VyLmgKQEAgLTMzLDggKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRp
YVByb2R1Y2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUHJvZHVjZXI+IHsKIHB1Ymxp
YzoKLSAgICBlbnVtIE1lZGlhU3RhdGUgewotICAgICAgICBJc05vdFBsYXlpbmcgPSAwLAorICAg
IGVudW0gY2xhc3MgTWVkaWFTdGF0ZSB7CiAgICAgICAgIElzUGxheWluZ0F1ZGlvID0gMSA8PCAw
LAogICAgICAgICBJc1BsYXlpbmdWaWRlbyA9IDEgPDwgMSwKICAgICAgICAgSXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSA9IDEgPDwgMiwKQEAgLTU2LDE3ICs1NSwxNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAxOCwKICAgICAgICAgSGFz
TXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTksCiAgICAgICAgIEhhc0ludGVycnVw
dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDIwLAotCi0gICAgICAgIEF1ZGlvQ2FwdHVy
ZU1hc2sgPSBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UgfCBIYXNNdXRlZEF1ZGlvQ2FwdHVy
ZURldmljZSB8IEhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBWaWRl
b0NhcHR1cmVNYXNrID0gSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIHwgSGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2UgfCBIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSwKLSAgICAg
ICAgRGlzcGxheUNhcHR1cmVNYXNrID0gSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UgfCBI
YXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlIHwgSGFzSW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVy
ZURldmljZSwKLSAgICAgICAgQWN0aXZlQ2FwdHVyZU1hc2sgPSBIYXNBY3RpdmVBdWRpb0NhcHR1
cmVEZXZpY2UgfCBIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfCBIYXNBY3RpdmVEaXNwbGF5
Q2FwdHVyZURldmljZSwKLSAgICAgICAgTXV0ZWRDYXB0dXJlTWFzayA9ICBIYXNNdXRlZEF1ZGlv
Q2FwdHVyZURldmljZSB8IEhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlIHwgSGFzTXV0ZWREaXNw
bGF5Q2FwdHVyZURldmljZSwKLSAgICAgICAgTWVkaWFDYXB0dXJlTWFzayA9IEF1ZGlvQ2FwdHVy
ZU1hc2sgfCBWaWRlb0NhcHR1cmVNYXNrIHwgRGlzcGxheUNhcHR1cmVNYXNrLAogICAgIH07Ci0g
ICAgdHlwZWRlZiB1bnNpZ25lZCBNZWRpYVN0YXRlRmxhZ3M7CisgICAgdXNpbmcgTWVkaWFTdGF0
ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhU3RhdGU+OworICAgIHN0YXRpYyBjb25zdGV4cHIgTWVk
aWFTdGF0ZUZsYWdzIElzTm90UGxheWluZyA9IHsgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIE1l
ZGlhU3RhdGVGbGFncyBBdWRpb0NhcHR1cmVNYXNrID0geyBNZWRpYVN0YXRlOjpIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNl
LCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZSB9OworICAgIHN0
YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIFZpZGVvQ2FwdHVyZU1hc2sgPSB7IE1lZGlh
U3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRW
aWRlb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJl
RGV2aWNlIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3MgRGlzcGxheUNh
cHR1cmVNYXNrID0geyBNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSwg
TWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFz
SW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVyZURldmljZSB9OworICAgIHN0YXRpYyBjb25zdGV4cHIg
TWVkaWFTdGF0ZUZsYWdzIEFjdGl2ZUNhcHR1cmVNYXNrID0geyBNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURl
dmljZSwgTWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UgfTsKKyAgICBz
dGF0aWMgY29uc3RleHByIE1lZGlhU3RhdGVGbGFncyBNdXRlZENhcHR1cmVNYXNrID0geyBNZWRp
YVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRW
aWRlb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZp
Y2UgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIE1lZGlhU3RhdGVGbGFncyBNZWRpYUNhcHR1cmVN
YXNrID0geyBNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3Rh
dGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRl
ZEF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlLCBNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0FjdGl2ZURp
c3BsYXlDYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2
aWNlLCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlIH07CiAK
LSAgICBzdGF0aWMgYm9vbCBpc0NhcHR1cmluZyhNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpIHsgcmV0
dXJuIChzdGF0ZSAmIEFjdGl2ZUNhcHR1cmVNYXNrKSB8fCAoc3RhdGUgJiBNdXRlZENhcHR1cmVN
YXNrKTsgfQorICAgIHN0YXRpYyBib29sIGlzQ2FwdHVyaW5nKE1lZGlhU3RhdGVGbGFncyBzdGF0
ZSkgeyByZXR1cm4gc3RhdGUuY29udGFpbnNBbnkoQWN0aXZlQ2FwdHVyZU1hc2spIHx8IHN0YXRl
LmNvbnRhaW5zQW55KE11dGVkQ2FwdHVyZU1hc2spOyB9CiAKICAgICB2aXJ0dWFsIE1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgPSAwOwogCkBAIC0xMDYsNiArMTA1LDMzIEBAIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZD4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdB
dWRpbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5
Q2FuZGlkYXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpE
aWRQbGF5VG9FbmQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OklzU291cmNlRWxlbWVudFBsYXlpbmcsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVk
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwKKyAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0
dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJl
RGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJ
bnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5
Q2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVyZURldmljZQor
ICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAog
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKaW5kZXggNzliYWE4M2I0OTc3ZDJhN2Q4Zjg5NGEyN2MyZmI2YWQyM2IyMDg0YS4uOGZlNzM5
NDVlMDIxYmU1MTZjZTBmOTkzODQ5MDZhNzI1M2RjNGQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBA
IC0yMTE2LDkgKzIxMTYsOSBAQCB2b2lkIFBhZ2U6OnN0b3JhZ2VCbG9ja2luZ1N0YXRlQ2hhbmdl
ZCgpCiAKIHZvaWQgUGFnZTo6dXBkYXRlSXNQbGF5aW5nTWVkaWEodWludDY0X3Qgc291cmNlRWxl
bWVudElEKQogewotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IE1l
ZGlhUHJvZHVjZXI6OklzTm90UGxheWluZzsKLSAgICBmb3JFYWNoRG9jdW1lbnQoWyZdIChEb2N1
bWVudCYgZG9jdW1lbnQpIHsKLSAgICAgICAgc3RhdGUgfD0gZG9jdW1lbnQubWVkaWFTdGF0ZSgp
OworICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZTsKKyAgICBmb3JFYWNo
RG9jdW1lbnQoWyZdKGF1dG8mIGRvY3VtZW50KSB7CisgICAgICAgIHN0YXRlLmFkZChkb2N1bWVu
dC5tZWRpYVN0YXRlKCkpOwogICAgIH0pOwogCiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggYjM2NDgxZjIxMjViZDM2NjM3NDRkYzcyZGY2NzIxMDkwYzA5
ZGQ3NS4uMTU4YTI1NjJjYTIwZThmNTcwNDEyZWEwY2Q0NzYwNGFlYWZjZDQ4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTEwNzEsNyArMTA3MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ2xvc2lu
ZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUmVzdG9yaW5nQ2FjaGVkUGFnZSB7IGZhbHNlIH07
CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlIHsgTWVk
aWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nIH07CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBUaW1lciBtX3Bs
YXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggYjkzODIyNzQ4ZjY4OTIxYTU0ODU5MTc5M2Q0YWJjYTExNzVkOTUwNi4u
NmYzZTNlODMwZjYxMzg0ZTkyM2U2OWY4MWY4YWI1OWQzYzNlMjUyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDYwNiw0NSArNDYwNiw0NSBAQCBTdHJpbmcgSW50ZXJu
YWxzOjpwYWdlTWVkaWFTdGF0ZSgpCiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBh
Z2UoKSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBkb2N1bWVudC0+cGFnZSgpLT5tZWRp
YVN0YXRlKCk7CisgICAgYXV0byBzdGF0ZSA9IGRvY3VtZW50LT5wYWdlKCktPm1lZGlhU3RhdGUo
KTsKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZzsKLSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1
Y2VyOjpJc1BsYXlpbmdBdWRpbykKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5k
KCJJc1BsYXlpbmdBdWRpbywiKTsKLSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1Bs
YXlpbmdWaWRlbykKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlp
bmdWaWRlbywiKTsKLSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4
dGVybmFsRGV2aWNlKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFw
cGVuZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwiKTsKLSAgICBpZiAoc3RhdGUgJiBNZWRp
YVByb2R1Y2VyOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykKKyAgICBpZiAoc3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFj
a1RhcmdldE1vbml0b3JpbmcpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJlc1BsYXli
YWNrVGFyZ2V0TW9uaXRvcmluZywiKTsKLSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpF
eHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKQorICAgIGlmIChzdGF0ZS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlk
YXRlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRp
ZGF0ZSwiKTsKLSAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpEaWRQbGF5VG9FbmQpCisg
ICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBs
YXlUb0VuZCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKLSAgICBp
ZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKQorICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1NvdXJjZUVs
ZW1lbnRQbGF5aW5nKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNTb3VyY2VFbGVtZW50UGxh
eWluZywiKTsKIAotICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzTmV4dFRyYWNrQ29u
dHJvbEVuYWJsZWQpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQpKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLCIpOwotICAgIGlmIChzdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkKQorICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250
cm9sRW5hYmxlZCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRy
b2xFbmFibGVkLCIpOwogCi0gICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzUGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcikKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnko
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlM
aXN0ZW5lcikpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc1BsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5TGlzdGVuZXIsIik7Ci0gICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQXVk
aW9PclZpZGVvKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBdWRp
b09yVmlkZW8sIik7Ci0gICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVk
aW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJp
bmcuYXBwZW5kKCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRl
ICYgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChz
dGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRl
b0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVWaWRlb0Nh
cHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRB
dWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRl
ICYgTWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9D
YXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzVXNlckludGVy
YWN0ZWRXaXRoTWVkaWFFbGVtZW50KQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpKQog
ICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQs
Iik7Ci0gICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlRGlzcGxheUNhcHR1
cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFw
cGVuZCgiSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkKKyAgICBpZiAoc3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5
Q2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkRGlzcGxheUNh
cHR1cmVEZXZpY2UsIik7CiAKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGYyZTc3NzFjYjhkMTI1Zjg2MzNhNTkw
YmQ5NWY5ZDJkZWY4OWY2NDIuLjYzYWYwNWNkZmE4MDRjNTgwNjA0ODdmMGRjYjAxN2I1OWUwZWQw
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjg2Miwy
MSArMjg2MiwyMSBAQCBXS01lZGlhU3RhdGUgV0tQYWdlR2V0TWVkaWFTdGF0ZShXS1BhZ2VSZWYg
cGFnZSkKICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgY29yZVN0
YXRlID0gdG9JbXBsKHBhZ2UpLT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsKICAgICBXS01lZGlhU3Rh
dGUgc3RhdGUgPSBrV0tNZWRpYUlzTm90UGxheWluZzsKIAotICAgIGlmIChjb3JlU3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbykKKyAgICBpZiAoY29yZVN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCiAg
ICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSXNQbGF5aW5nQXVkaW87Ci0gICAgaWYgKGNvcmVTdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKQorICAgIGlmIChjb3Jl
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRl
bykKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFJc1BsYXlpbmdWaWRlbzsKLSAgICBpZiAoY29y
ZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01l
ZGlhSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYg
KGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVW
aWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURl
dmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmlj
ZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRW
aWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBz
dGF0ZSB8PSBrV0tNZWRpYUhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3Jl
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURl
dmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtX
S01lZGlhSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAm
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpCisg
ICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFz
TXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZTsKIAogICAgIHJldHVybiBzdGF0ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGY5M2U1N2Q4
MDA4NDU1Y2MwYzAwOTI3YzVjY2I0OGZkMjJiN2VlNjIuLjVkNjIwZTczZDc1Yjk3MDRkMGU0NTc5
ODM0ZDFjOWFhZThmMDdiNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtOTgzLDkgKzk4Myw5IEBAIHN0YXRpYyBXS01lZGlhUGxheWJh
Y2tTdGF0ZSB0b1dLTWVkaWFQbGF5YmFja1N0YXRlKFdlYktpdDo6TWVkaWFQbGF5YmFja1N0YXRl
IG1lCiAtIChXS01lZGlhQ2FwdHVyZVN0YXRlKWNhbWVyYUNhcHR1cmVTdGF0ZQogewogICAgIGF1
dG8gc3RhdGUgPSBfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVB
Y3RpdmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRW
aWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVy
biBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQ7CiAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3Rh
dGVOb25lOwogfQpAQCAtOTkzLDkgKzk5Myw5IEBAIHN0YXRpYyBXS01lZGlhUGxheWJhY2tTdGF0
ZSB0b1dLTWVkaWFQbGF5YmFja1N0YXRlKFdlYktpdDo6TWVkaWFQbGF5YmFja1N0YXRlIG1lCiAt
IChXS01lZGlhQ2FwdHVyZVN0YXRlKW1pY3JvcGhvbmVDYXB0dXJlU3RhdGUKIHsKICAgICBhdXRv
IHN0YXRlID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwotICAgIGlmIChzdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0
aXZlOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVk
aW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4g
V0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkOwogICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRl
Tm9uZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlh
VXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRp
ZXMubW0KaW5kZXggNzJjMWFiOGE0M2Q3ZDA4NjlmNTY2MGI2MjdiMGMyMGYyMjQ4OTRkYi4uNTNi
YmY0MjAxNDcxZDlkOGE0ZjY2ZTcwMWY2NDM4OGVlZWQ1ZDE1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0KQEAgLTMxLDEzICszMSwxMyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dL
TWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQg
bWVkaWFDYXB0dXJlU3RhdGUgPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lOwot
ICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2Fw
dHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVy
ZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmU7
Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9D
YXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0
dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhOwot
ICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0
dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVT
dGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmU7Ci0g
ICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0
YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkQ2FtZXJhOwogCiAgICAg
cmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCmluZGV4IDFhZmQ5MWE4YmM3YzY5ZThlMjg4MTBmYjYwZmIyMWI3MjNkYjNmYTAuLjc0ZDJl
MTFlNTc2YmE3OGJjMzg5NzBjNTk3MTE5ZjlkODQ1ZDM2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi1zdGF0
aWMgY29uc3QgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGFjdGl2ZUNhcHR1cmVNYXNr
ID0gTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlIHwgTWVkaWFQcm9k
dWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOworc3RhdGljIGNvbnN0IE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBhY3RpdmVDYXB0dXJlTWFzayB7IE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH07CiAKIHN0YXRpYyB1aW50
NjRfdCBnZW5lcmF0ZVJlcXVlc3RJRCgpCiB7CkBAIC04NzgsNyArODc4LDcgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZVN0YXRlQ2hhbmdlZChN
ZWRpYVByb2R1Y2VyOjoKICAgICBpZiAobV9jYXB0dXJlU3RhdGUgPT0gKG5ld1N0YXRlICYgYWN0
aXZlQ2FwdHVyZU1hc2spKQogICAgICAgICByZXR1cm47CiAKLSAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsICJzdGF0ZSB3YXM6ICIsIG1fY2FwdHVyZVN0YXRlLCAiLCBpcyBub3c6ICIsIG5l
d1N0YXRlICYgYWN0aXZlQ2FwdHVyZU1hc2spOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgInN0YXRlIHdhczogIiwgbV9jYXB0dXJlU3RhdGUudG9SYXcoKSwgIiwgaXMgbm93OiAiLCAo
bmV3U3RhdGUgJiBhY3RpdmVDYXB0dXJlTWFzaykudG9SYXcoKSk7CiAgICAgbV9jYXB0dXJlU3Rh
dGUgPSBuZXdTdGF0ZSAmIGFjdGl2ZUNhcHR1cmVNYXNrOwogCiAgICAgU2Vjb25kcyBpbnRlcnZh
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGRiZWJkZTAzYmMyMDE1Y2Uw
NDYzNTAwY2UwYWU3ZGFjOGJiM2I1NTQuLmMxNDJlMzU1YjdjNjlmMDU4YThkOWVkY2E3MThkNjY0
NmNlZTU5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMTY0LDcgKzE2
NCw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8RGVuaWVkUmVxdWVzdD4gbV9kZW5pZWRSZXF1
ZXN0czsKIAotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX2Nh
cHR1cmVTdGF0ZSB7IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyB9OworICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX2NhcHR1cmVTdGF0ZTsK
ICAgICBSdW5Mb29wOjpUaW1lcjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eT4gbV93YXRjaGRvZ1RpbWVyOwogICAgIFNlY29uZHMgbV9jdXJyZW50V2F0Y2hkb2dJbnRlcnZh
bDsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IGJkYjQ0ZTgyNzY3MmIzMTFmOGQ5OWUzMzBkMGMxNzI4YTVhNTg3
NjIuLjYyZGMyNDk3MjZiNzNjNzU3ZGZhMDE1ZWQ1ODgwN2UxNWQzM2YzY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTk4NywxMSArMTk4NywxMSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlQWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlT
dGF0ZTo6RmxhZz4gZmxhZ3NUb1VwZAogICAgICAgICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2
aXR5U3RhdGU6OklzSW5XaW5kb3cpOwogICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlT
dGF0ZTo6SXNWaXN1YWxseUlkbGUgJiYgcGFnZUNsaWVudCgpLmlzVmlzdWFsbHlJZGxlKCkpCiAg
ICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUp
OwotICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlICYmIG1f
bWVkaWFTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlvICYmICEobV9tdXRlZFN0
YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCkpKQor
ICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlICYmIG1fbWVk
aWFTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRp
bykgJiYgIShtX211dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6
QXVkaW9Jc011dGVkKSkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0
ZTo6SXNBdWRpYmxlKTsKICAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6Oklz
TG9hZGluZyAmJiBtX3BhZ2VMb2FkU3RhdGUuaXNMb2FkaW5nKCkpCiAgICAgICAgIG1fYWN0aXZp
dHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNMb2FkaW5nKTsKLSAgICBpZiAoZmxhZ3NUb1Vw
ZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWEgJiYgbV9tZWRpYVN0YXRlICYg
KE1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSB8IE1lZGlhUHJvZHVj
ZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKGZsYWdzVG9VcGRhdGUg
JiBBY3Rpdml0eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhICYmIG1fbWVkaWFTdGF0ZS5jb250YWlu
c0FueSh7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZSwgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURl
dmljZSB9KSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0Nh
cHR1cmluZ01lZGlhKTsKIH0KIApAQCAtNjAwNiw4ICs2MDA2LDggQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0
ZSwgQ29tcGwKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotICAgIGJvb2wgaGFzTXV0ZWRDYXB0dXJlU3RyZWFtcyA9IG1fbWVk
aWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkQ2FwdHVyZU1hc2s7Ci0gICAg
aWYgKGhhc011dGVkQ2FwdHVyZVN0cmVhbXMgJiYgIShzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQpKQorICAgIGJvb2wgaGFzTXV0ZWRDYXB0
dXJlU3RyZWFtcyA9IG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZENhcHR1cmVNYXNrKTsKKyAgICBpZiAoaGFzTXV0ZWRDYXB0dXJlU3RyZWFtcyAm
JiAhKHN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RyZWFt
Q2FwdHVyZUlzTXV0ZWQpKSkKICAgICAgICAgV2ViUHJvY2Vzc1Byb3h5OjptdXRlQ2FwdHVyZUlu
UGFnZXNFeGNlcHQobV93ZWJQYWdlSUQpOwogI2VuZGlmCiAKQEAgLTkxNzksMTAgKzkxNzksMTAg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmUKICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgbmV3TWVkaWFDYXB0dXJlU3RhdGUgPSBuZXdTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CiAjZW5kaWYKIAotICAgIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5aW5nTWVkaWFNYXNrID0gTWVkaWFQcm9kdWNlcjo6
SXNQbGF5aW5nQXVkaW8gfCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdWaWRlbzsKKyAgICBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayB7IE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdWaWRlbyB9OwogICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBv
bGRTdGF0ZSA9IG1fbWVkaWFTdGF0ZTsKIAotICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9
IChvbGRTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlvKSAhPSAobmV3U3RhdGUg
JiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbyk7CisgICAgYm9vbCBwbGF5aW5nQXVkaW9D
aGFuZ2VzID0gKG9sZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvKSkgIT0gKG5ld1N0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzUGxheWluZ0F1ZGlvKSk7CiAgICAgaWYgKHBsYXlpbmdBdWRpb0NoYW5nZXMpCiAg
ICAgICAgIHBhZ2VDbGllbnQoKS5pc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKTsKICAgICBtX21l
ZGlhU3RhdGUgPSBuZXdTdGF0ZTsKQEAgLTkyMDIsMTEgKzkyMDIsMTEgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgbmUKIAogICAgIGFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoeyBBY3Rpdml0eVN0YXRl
OjpJc0F1ZGlibGUsIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWEgfSk7CiAKLSAgICBw
bGF5aW5nTWVkaWFNYXNrIHw9IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1h
c2s7CisgICAgcGxheWluZ01lZGlhTWFzay5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFDYXB0dXJlTWFzayk7CiAgICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spICE9
IChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKICAgICAgICAgbV91aUNsaWVudC0+
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoKnRoaXMpOwogCi0gICAgaWYgKChvbGRTdGF0ZSAmIE1l
ZGlhUHJvZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykgIT0gKG1fbWVkaWFTdGF0ZSAmIE1lZGlhUHJv
ZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykpCisgICAgaWYgKChvbGRTdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKSAhPSAobV9tZWRpYVN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRl
bykpKQogICAgICAgICB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpOwogCiAgICAgbV9w
cm9jZXNzLT51cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCk7CkBAIC05MjE4LDggKzkyMTgs
OCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSgp
CiAgICAgaWYgKG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSA9PSBhY3RpdmVDYXB0dXJlU3Rh
dGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgaGF2ZVJlcG9ydGVkQ2FwdHVyZSA9IG1f
cmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1h
c2s7Ci0gICAgYm9vbCB3aWxsUmVwb3J0Q2FwdHVyZSA9IGFjdGl2ZUNhcHR1cmVTdGF0ZTsKKyAg
ICBib29sIGhhdmVSZXBvcnRlZENhcHR1cmUgPSBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUu
Y29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7CisgICAgYm9vbCB3
aWxsUmVwb3J0Q2FwdHVyZSA9ICFhY3RpdmVDYXB0dXJlU3RhdGUuaXNFbXB0eSgpOwogCiAgICAg
aWYgKGhhdmVSZXBvcnRlZENhcHR1cmUgJiYgIXdpbGxSZXBvcnRDYXB0dXJlICYmIG1fdXBkYXRl
UmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTkyMjcsNyArOTIyNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVSZXBvcnRl
ZE1lZGlhQ2FwdHVyZVN0YXRlKCkKICAgICBpZiAoIWhhdmVSZXBvcnRlZENhcHR1cmUgJiYgd2ls
bFJlcG9ydENhcHR1cmUpCiAgICAgICAgIG1fdXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0
ZVRpbWVyLnN0YXJ0T25lU2hvdChtX21lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5KTsKIAotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoV2ViUlRDLCAidXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1
cmVTdGF0ZTogZnJvbSAlZCB0byAlZCIsIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSwgYWN0
aXZlQ2FwdHVyZVN0YXRlKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFdlYlJUQywgInVw
ZGF0ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGU6IGZyb20gJWQgdG8gJWQiLCBtX3JlcG9ydGVk
TWVkaWFDYXB0dXJlU3RhdGUudG9SYXcoKSwgYWN0aXZlQ2FwdHVyZVN0YXRlLnRvUmF3KCkpOwog
CiAgICAgYm9vbCBtaWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQgPSAobV9yZXBvcnRlZE1lZGlhQ2Fw
dHVyZVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9DYXB0dXJlTWFzaykgIT0gKGFjdGl2ZUNh
cHR1cmVTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQ2FwdHVyZU1hc2spOwogICAgIGJvb2wg
Y2FtZXJhQ2FwdHVyZUNoYW5nZWQgPSAobV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlTWFzaykgIT0gKGFjdGl2ZUNhcHR1cmVTdGF0ZSAmIE1l
ZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZU1hc2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCA2ODgwZjNjZjcxMDFlMzFkM2Y0YWVmZmY3NmYxZGY1MTAzOWQ3Njdj
Li43MTNiMmI2Y2FlYTI1NGMyNzU5ZWZlYmJlOGY5MTZlOTg2MjA3NGQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQ3MywxNyArMTQ3MywxNyBAQCBwdWJsaWM6
CiAKICAgICBib29sIGlzU2hvd2luZ05hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSBjb25zdCB7
IHJldHVybiBtX2lzU2hvd2luZ05hdmlnYXRpb25HZXN0dXJlU25hcHNob3Q7IH0KIAotICAgIGJv
b2wgaXNQbGF5aW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiAhIShtX21lZGlhU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbyk7IH0KKyAgICBib29sIGlzUGxheWlu
Z0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOyB9CiAgICAgdm9pZCBpc1BsYXlp
bmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Ms
IHVpbnQ2NF90KTsKICAgICB2b2lkIHVwZGF0ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUoKTsK
IAogICAgIGVudW0gY2xhc3MgQ2FuRGVsYXlOb3RpZmljYXRpb24geyBObywgWWVzIH07CiAgICAg
dm9pZCB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzLCBDYW5EZWxheU5vdGlmaWNhdGlvbiA9IENhbkRlbGF5Tm90aWZpY2F0
aW9uOjpObyk7Ci0gICAgYm9vbCBpc0NhcHR1cmluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9t
ZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9DYXB0dXJlTWFzazsgfQot
ICAgIGJvb2wgaXNDYXB0dXJpbmdWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZSAm
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZU1hc2s7IH0KLSAgICBib29sIGhh
c0FjdGl2ZUF1ZGlvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOyB9Ci0gICAgYm9v
bCBoYXNBY3RpdmVWaWRlb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsgfQotICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyByZXBvcnRlZE1lZGlhU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgfCAobV9tZWRp
YVN0YXRlICYgfldlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2spOyB9Cisg
ICAgYm9vbCBpc0NhcHR1cmluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNv
bnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQ2FwdHVyZU1hc2spOyB9Cisg
ICAgYm9vbCBpc0NhcHR1cmluZ1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNv
bnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZU1hc2spOyB9Cisg
ICAgYm9vbCBoYXNBY3RpdmVBdWRpb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0
ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2UpOyB9CisgICAgYm9vbCBoYXNBY3RpdmVWaWRlb1N0cmVhbSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpOyB9CisgICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHJlcG9ydGVkTWVkaWFTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSB8IChtX21lZGlh
U3RhdGUgLSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrKTsgfQogICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZFN0YXRlRmxhZ3Mo
KSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KIAogICAgIHZvaWQgaGFuZGxlQXV0b3Bs
YXlFdmVudChXZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3Bs
YXlFdmVudEZsYWdzPik7CkBAIC0yODU2LDEwICsyODU2LDEwIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VXYW50c1N5bmNocm9ub3VzUmVwbHkgeyBmYWxzZSB9Owog
ICAgIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+PiBtX25leHRBY3Rpdml0eVN0YXRl
Q2hhbmdlQ2FsbGJhY2tzOwogCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1fbWVkaWFTdGF0ZSB7IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OklzTm90UGxheWlu
ZyB9OworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlh
U3RhdGU7CiAKICAgICAvLyBUbyBtYWtlIHN1cmUgY2FwdHVyZSBpbmRpY2F0b3JzIGFyZSB2aXNp
YmxlIGxvbmcgZW5vdWdoLCBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgaXMgdGhlIHNhbWUg
YXMgbV9tZWRpYVN0YXRlIGV4Y2VwdCB0aGF0IHdlIG1pZ2h0IGRlbGF5IGEgYml0IHRyYW5zaXRp
b24gZnJvbSBjYXB0dXJpbmcgdG8gbm90LWNhcHR1cmluZy4KLSAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlIHsgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nIH07CisgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZTsKICAg
ICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlUHJveHk+IG1fdXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1
cmVTdGF0ZVRpbWVyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBEZWZhdWx0TWVkaWFD
YXB0dXJlUmVwb3J0aW5nRGVsYXkgeyAzX3MgfTsKICAgICBTZWNvbmRzIG1fbWVkaWFDYXB0dXJl
UmVwb3J0aW5nRGVsYXkgeyBEZWZhdWx0TWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCAzNmUxZjQ1ZTc5NjA0ZDU2NGUyZTg4NTA1ZGRkM2IzN2E0NTM4YWUwLi4zMGVmN2IyYjZlMDhl
MTA2NDUwMDE4NWFhOThhY2U0ZjA0N2U0ZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00NjAsNyArNDYwLDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICNlbmRpZgogCi0gICAgSXNQbGF5aW5n
TWVkaWFEaWRDaGFuZ2UodW5zaWduZWQgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkK
KyAgICBJc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKICAgICBIYW5kbGVB
dXRvcGxheUV2ZW50KGVudW06dWludDhfdCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50IGV2ZW50LCBP
cHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFncykKIAogI2lmIFBMQVRG
T1JNKE1BQykKQEAgLTQ3OSw3ICs0NzksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
ICAgIEFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogICAgIFJlbW92ZVBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIgY29udGV4dElkKQogICAgIFNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6
RmxvYXRSZWN0IHBpY2tlckxvY2F0aW9uLCBib29sIGhhc1ZpZGVvKQotICAgIFBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGll
bnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIHVuc2lnbmVkIG1lZGlhU3RhdGUpCisgICAg
UGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUpCiAgICAgU2V0TW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBTZXRNb2NrTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlclN0YXRlKFN0cmluZyBuYW1lLCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSBwaWNrZXJTdGF0ZSkKICAg
ICBNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggZmU2MWYxNTU4NDQw
OTMwYmU4Mjg2YzlhNzUwY2M4OGJiZDYwMDEwMC4uODI4ZDMwYTA2ZTlkOGZkZDc4YjU5OGRmOTBh
NjYzOTMxZGEwZThkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuaApAQCAtMTg1LDcgKzE4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtZWRpYUNh
blN0YXJ0KFdlYkNvcmU6OkRvY3VtZW50Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3Rh
dGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3BsdWdpbklzUGxheWluZ0F1ZGlvID8gTWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8gOiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7
IH0KKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKSBv
dmVycmlkZTsKIAogICAgIC8vIFBsdWdpbkNvbnRyb2xsZXIKQEAgLTI3NSw0ICsyNzUsMTIgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fcGx1Z2luSXNQbGF5aW5nQXVkaW8geyBmYWxzZSB9OwogfTsK
IAoraW5saW5lIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBQbHVnaW5W
aWV3OjptZWRpYVN0YXRlKCkgY29uc3QKK3sKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZTsKKyAgICBpZiAobV9wbHVnaW5Jc1BsYXlpbmdBdWRp
bykKKyAgICAgICAgbWVkaWFTdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8pOworICAgIHJldHVybiBtZWRpYVN0YXRlOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>