<?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>181070</bug_id>
          
          <creation_ts>2017-12-20 17:28:53 -0800</creation_ts>
          <short_desc>[MediaStream] Add screen capture IDL and stub functions</short_desc>
          <delta_ts>2018-01-08 10:30:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>Other</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fred.wang</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1383922</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-12-20 17:28:53 -0800</bug_when>
    <thetext>Add media stream screen capture IDL and stub functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383923</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-20 17:31:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/36168724&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383941</commentid>
    <comment_count>2</comment_count>
      <attachid>329979</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-12-20 17:42:57 -0800</bug_when>
    <thetext>Created attachment 329979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383951</commentid>
    <comment_count>3</comment_count>
      <attachid>329979</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-20 17:54:50 -0800</bug_when>
    <thetext>Comment on attachment 329979
Patch

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

&gt; Source/WebCore/page/RuntimeEnabledFeatures.h:270
&gt; +    bool m_isScreenCaptureEnabled {false };

s/{false/{ false/

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:323
&gt; +    case CaptureDevice::DeviceType::Browser:

I was expecting one ScreenCapture DeviceType.
What is the benefit of bringing these in finer grained types?

&gt; LayoutTests/fast/mediastream/screencapture-disabled-expected.txt:1
&gt; +PASS undefined is undefined.

strange message but I guess it is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383959</commentid>
    <comment_count>4</comment_count>
      <attachid>329979</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-12-20 18:04:05 -0800</bug_when>
    <thetext>Comment on attachment 329979
Patch

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

&gt;&gt; Source/WebCore/page/RuntimeEnabledFeatures.h:270
&gt;&gt; +    bool m_isScreenCaptureEnabled {false };
&gt; 
&gt; s/{false/{ false/

Oops, will fix.

&gt;&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:323
&gt;&gt; +    case CaptureDevice::DeviceType::Browser:
&gt; 
&gt; I was expecting one ScreenCapture DeviceType.
&gt; What is the benefit of bringing these in finer grained types?

A port may not support all types of screen capture, so WebKit will need to signal the UA so it can prompt the user with only the supported types. Further, once the user chooses a screen, application, window, or tab to share, the UA will have to pass the ID of the &quot;display surface&quot; as well as the type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383965</commentid>
    <comment_count>5</comment_count>
      <attachid>329984</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-12-20 18:12:50 -0800</bug_when>
    <thetext>Created attachment 329984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383981</commentid>
    <comment_count>6</comment_count>
      <attachid>329984</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-20 18:45:40 -0800</bug_when>
    <thetext>Comment on attachment 329984
Patch

Clearing flags on attachment: 329984

Committed r226211: &lt;https://trac.webkit.org/changeset/226211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383982</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-20 18:45:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386737</commentid>
    <comment_count>8</comment_count>
      <attachid>329984</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-01-08 08:15:35 -0800</bug_when>
    <thetext>Comment on attachment 329984
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h:107
&gt; +@property (nonatomic, setter=_setScreenCaptureEnabled:) BOOL _screenCaptureEnabled WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_MAC_TBA));

For the record, this should have been ios(WK_IOS_TBA).

I landed

https://trac.webkit.org/changeset/226513

to fix the iOS build with the public SDK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386792</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-01-08 10:30:53 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #8)
&gt; Comment on attachment 329984 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329984&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h:107
&gt; &gt; +@property (nonatomic, setter=_setScreenCaptureEnabled:) BOOL _screenCaptureEnabled WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_MAC_TBA));
&gt; 
&gt; For the record, this should have been ios(WK_IOS_TBA).
&gt; 
&gt; I landed
&gt; 
&gt; https://trac.webkit.org/changeset/226513
&gt; 
&gt; to fix the iOS build with the public SDK.

Thanks Frédéric!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329979</attachid>
            <date>2017-12-20 17:42:57 -0800</date>
            <delta_ts>2017-12-20 18:12:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181070-20171220174256.patch</filename>
            <type>text/plain</type>
            <size>45717</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMTMwNDkwYzk2ZDlh
NTI4MzhhNjE2NzYyZDYzNzM5YjgxYjg2Ny4uNTYxODllYjg1NDExMmQzOGU3YzJjMjU3ZTMxYzQy
NzNmNDc2MzE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE3LTEyLTIwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWRkIHNjcmVlbiBjYXB0dXJlIElETCBhbmQgc3R1YiBmdW5jdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTA3MAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzU1NTUxODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1kaXNh
YmxlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFtL3NjcmVlbmNhcHR1cmUt
ZW5hYmxlZC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmdldFN1cHBvcnRlZENvbnN0
cmFpbnRzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjb252ZXJ0VG9JbnRlcm5hbEZvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmg6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpV
c2VyTWVkaWFSZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0OjpkZW55KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaDoKKyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNjcmVlbkNhcHR1cmVFbmFibGVkIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFNjcmVl
bkNhcHR1cmVFbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJl
RGV2aWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcDo6c2V0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcDo6ZGlzcGxheVN1cmZh
Y2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA6
OmxvZ2ljYWxTdXJmYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXA6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1SZXF1ZXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpmaXRuZXNzRGlzdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6YXBwbHlDb25zdHJhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN1cHBvcnRzQ29uc3RyYWludCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJl
RGV2aWNlV2l0aFBlcnNpc3RlbnRJRCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3M6OnN1cHBvcnRzRGlzcGxheVN1cmZhY2UgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpkaXNwbGF5U3VyZmFj
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6
OnNldERpc3BsYXlTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5nczo6c3VwcG9ydHNMb2dpY2FsU3VyZmFjZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OmxvZ2ljYWxTdXJmYWNlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6c2V0TG9naWNh
bFN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6OnN1cHBvcnRzQ29uc3RyYWludCBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6OnN1cHBvcnRzRGlzcGxheVN1cmZhY2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
OjpzZXRTdXBwb3J0c0Rpc3BsYXlTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6c3VwcG9ydHNMb2dpY2FsU3VyZmFjZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29u
c3RyYWludHM6OnNldFN1cHBvcnRzTG9naWNhbFN1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXAp
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8p
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0U2NyZWVuQ2FwdHVyZUVu
YWJsZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMTctMTItMjAgIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiBmYWlsdXJlIGluIE1l
c3NhZ2VQb3J0Ojpjb250ZXh0RGVzdHJveWVkIGluIGh0dHAvdGVzdHMvc2VjdXJpdHkvTWVzc2Fn
ZVBvcnQvZXZlbnQtbGlzdGVuZXItY29udGV4dC5odG1sLCB1c3VhbGx5IGF0dHJpYnV0ZWQgdG8g
bGF0ZXIgdGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ4ZmZmZDU2ZTU3Y2VhMzZlMWQxNDAwNDY5MTYyYmRk
M2ZmZWQ3NzcuLjI4NzBiOWY2ZDZhZmUwMjliMjNlMjIxM2Q2NDYyMmMwZTk5MDEzZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMTItMjAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2Fy
bHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBBZGQgc2NyZWVuIGNhcHR1
cmUgSURMIGFuZCBzdHViIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMDcwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTU1NTE4
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2NyZWVuQ2FwdHVy
ZUVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0U2NyZWVuQ2FwdHVyZUVu
YWJsZWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJp
dmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6b3ZlcnJpZGVCb29sUHJl
ZmVyZW5jZUZvclRlc3RSdW5uZXIpOgorCiAyMDE3LTEyLTIwICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IHNlcnZpY2Ugd29ya2VyIGludGVyY2Vw
dGlvbiBvZiByZXF1ZXN0IHdpdGggYmxvYiBib2R5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKaW5kZXggOTI5ZDJkYmQzNzA2NDNj
YzRmMjhjNmY0MGVkMGEzZjBlNTRmMmMyNS4uZDE5YmM3N2Y1YjJkOTdmNzA0N2U1NTc0NDRkMDc5
OTlhMGZkZThjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKICNpbmNsdWRlICJNZWRpYURldmljZXNSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFU
cmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvUmFu
ZG9tTnVtYmVyLmg+CiAKQEAgLTEwOCw2ICsxMDksMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFp
bnQKICAgICByZXR1cm4geyB9OwogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYURldmljZXM6
OmdldERpc3BsYXlNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFBy
b21pc2UmJiBwcm9taXNlKSBjb25zdAoreworICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVl
c3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5
TWVkaWEsIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMuYXVkaW8pLCBjcmVhdGVN
ZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKSB9LCBXVEZNb3ZlKHByb21pc2UpKTsK
KyAgICBpZiAocmVxdWVzdCkKKyAgICAgICAgcmVxdWVzdC0+c3RhcnQoKTsKKworICAgIHJldHVy
biB7IH07Cit9CisKIHZvaWQgTWVkaWFEZXZpY2VzOjplbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0
ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9
IHRoaXMtPmRvY3VtZW50KCk7CkBAIC0xMzEsNiArMTQ1LDExIEBAIE1lZGlhVHJhY2tTdXBwb3J0
ZWRDb25zdHJhaW50cyBNZWRpYURldmljZXM6OmdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCkKICAg
ICByZXN1bHQuZWNob0NhbmNlbGxhdGlvbiA9IHN1cHBvcnRlZC5zdXBwb3J0c0VjaG9DYW5jZWxs
YXRpb24oKTsKICAgICByZXN1bHQuZGV2aWNlSWQgPSBzdXBwb3J0ZWQuc3VwcG9ydHNEZXZpY2VJ
ZCgpOwogICAgIHJlc3VsdC5ncm91cElkID0gc3VwcG9ydGVkLnN1cHBvcnRzR3JvdXBJZCgpOwor
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNjcmVlbkNh
cHR1cmVFbmFibGVkKCkpIHsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gc3VwcG9ydGVkLnN1
cHBvcnRzRGV2aWNlSWQoKTsKKyAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBzdXBwb3J0ZWQuc3Vw
cG9ydHNHcm91cElkKCk7CisgICAgfQorCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXgg
NjExMjg1MzA1Mjk3NGQ3ZWVhMjcwOWU0Y2E3OGMzYzllNGJlMDM3MS4uM2QxMzk2NDIyZDY2OGU3
NWVmNjQ5ZmI1MDE1ODA1ZTZlOWYwYzcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgVmFyaWFudDxib29sLCBNZWRpYVRyYWNrQ29uc3RyYWludHM+IGF1ZGlvOwogICAg
IH07CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZ2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0
cmFpbnRzJiwgUHJvbWlzZSYmKSBjb25zdDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBnZXREaXNw
bGF5TWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNvbnN0OwogICAg
IHZvaWQgZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKSBjb25zdDsK
ICAgICBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMgZ2V0U3VwcG9ydGVkQ29uc3RyYWlu
dHMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuaWRsCmluZGV4IGFiYWIxNzhlMTdlNjc4NDdkN2MzMTQzZDk5ZjM4MDRlN2FmODA5
OTguLjZlNDc2YmM5MGI5ZDcxZGI4Y2IxNTg5YjJiODRhMGQ5MjM5Zjk0N2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwKQEAg
LTM4LDYgKzM4LDcgQEAKIAogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cyBnZXRT
dXBwb3J0ZWRDb25zdHJhaW50cygpOwogICAgIFtQcml2YXRlSWRlbnRpZmllciwgUHVibGljSWRl
bnRpZmllcl0gUHJvbWlzZTxNZWRpYVN0cmVhbT4gZ2V0VXNlck1lZGlhKG9wdGlvbmFsIE1lZGlh
U3RyZWFtQ29uc3RyYWludHMgY29uc3RyYWludHMpOworICAgIFtFbmFibGVkQXRSdW50aW1lPVNj
cmVlbkNhcHR1cmVdIFByb21pc2U8TWVkaWFTdHJlYW0+IGdldERpc3BsYXlNZWRpYShvcHRpb25h
bCBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsKIH07CiAKIFsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFp
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0Nv
bnN0cmFpbnRzLmNwcAppbmRleCBjNGEzZmNhYjJmMWMzYmExZTBiOWYzMzY4YzliYzE2NTBiYzIw
MzE4Li45ZjEwNDgyMTk2OTQxYjBmNTI0Njg1MzFjNDA0ZjU0ZjYwYTQ3YzQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNr
Q29uc3RyYWludHMuY3BwCkBAIC0xNzEsNiArMTcxLDggQEAgc3RhdGljIE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwIGNvbnZlcnRUb0ludGVybmFsRm9ybShDb25zdHJhaW50U2V0VHlwZSBzZXRU
eXAKICAgICAvLyBGSVhNRTogYWRkIGNoYW5uZWxDb3VudAogICAgIHNldChyZXN1bHQsIHNldFR5
cGUsICJkZXZpY2VJZCIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlkLCBjb25zdHJhaW50
U2V0LmRldmljZUlkKTsKICAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZ3JvdXBJZCIsIE1lZGlh
Q29uc3RyYWludFR5cGU6Okdyb3VwSWQsIGNvbnN0cmFpbnRTZXQuZ3JvdXBJZCk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgImRpc3BsYXlTdXJmYWNlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6
RGlzcGxheVN1cmZhY2UsIGNvbnN0cmFpbnRTZXQuZGlzcGxheVN1cmZhY2UpOworICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJsb2dpY2FsU3VyZmFjZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6Okxv
Z2ljYWxTdXJmYWNlLCBjb25zdHJhaW50U2V0LmxvZ2ljYWxTdXJmYWNlKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaAppbmRleCAwMzk1NDc2MWFkODBiOWE5OGRi
ZmE4YWY0YWZiOWRkMTgyNjQ4MzkyLi43MzE0Mjg1ZWNmMjlkMjJhNWRmMTAwNDBjY2M3Y2E4NjM2
MmFiZDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhVHJhY2tDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKQEAgLTczLDYgKzczLDggQEAgc3RydWN0IE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0IHsKICAgICBzdGQ6Om9wdGlvbmFsPENvbnN0cmFpbkJvb2xl
YW4+IGVjaG9DYW5jZWxsYXRpb247CiAgICAgc3RkOjpvcHRpb25hbDxDb25zdHJhaW5ET01TdHJp
bmc+IGRldmljZUlkOwogICAgIHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluRE9NU3RyaW5nPiBncm91
cElkOworICAgIHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluRE9NU3RyaW5nPiBkaXNwbGF5U3VyZmFj
ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPENvbnN0cmFpbkJvb2xlYW4+IGxvZ2ljYWxTdXJmYWNlOwog
fTsKIAogc3RydWN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyA6IE1lZGlhVHJhY2tDb25zdHJhaW50
U2V0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFUcmFja0NvbnN0cmFpbnRzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmlkbAppbmRleCBhOTAzOTgzNjFkNGU4Yjk2NWUxMTc2
M2Q4NWI4Zjc0ZmUyNjc3MDZmLi5lZDI0NTBkZDc0ZjMzOWYzMDYyNjU3MzgyZDA1NGY4YzQxZDJi
NWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
VHJhY2tDb25zdHJhaW50cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaWRsCkBAIC00Nyw2ICs0Nyw5IEBACiAgICAgLy8g
RklYTUUgMTY5ODcxOiBhZGQgY2hhbm5lbENvdW50CiAgICAgQ29uc3RyYWluRE9NU3RyaW5nIGRl
dmljZUlkOwogICAgIENvbnN0cmFpbkRPTVN0cmluZyBncm91cElkOworICAgIENvbnN0cmFpbkRP
TVN0cmluZyBkaXNwbGF5U3VyZmFjZTsKKyAgICBDb25zdHJhaW5Cb29sZWFuIGxvZ2ljYWxTdXJm
YWNlOworCiB9OwogCiB0eXBlZGVmIChkb3VibGUgb3IgQ29uc3RyYWluRG91YmxlUmFuZ2UpIENv
bnN0cmFpbkRvdWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oCmluZGV4
IGY4NjI2Yjg5OTU2OGY4NzY0MmNiMDc5ZDc4ZDhlMTQ0MWNjODNmMjUuLmRmYzA3NWYwNjMwMzVh
ZDIwZmJmMjY2MWZmOTA4NTY0ZDdkNWY2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29u
c3RyYWludHMuaApAQCAtNDYsNiArNDYsOCBAQCBzdHJ1Y3QgTWVkaWFUcmFja1N1cHBvcnRlZENv
bnN0cmFpbnRzIHsKICAgICBib29sIGVjaG9DYW5jZWxsYXRpb247CiAgICAgYm9vbCBkZXZpY2VJ
ZDsKICAgICBib29sIGdyb3VwSWQ7CisgICAgYm9vbCBkaXNwbGF5U3VyZmFjZTsKKyAgICBib29s
IGxvZ2ljYWxTdXJmYWNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVk
Q29uc3RyYWludHMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaWRsCmluZGV4IDU4NTM3MjhiNTQ3MDUyZGZjMDk1
OWM2ZGU4YzM1M2U5OWJmNzI0MjEuLmU5Y2IxYmUwNzE2NDk0ZGI4ZmNhZTRiZDIwOWRjYjEzOTMx
ZTc2YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwKQEAgLTQ1
LDQgKzQ1LDYgQEAKICAgICAvLyBGSVhNRSAxNjk4NzE6IGFkZCBjaGFubmVsQ291bnQKICAgICBi
b29sZWFuIGRldmljZUlkID0gdHJ1ZTsKICAgICBib29sZWFuIGdyb3VwSWQgPSB0cnVlOworICAg
IGJvb2xlYW4gZGlzcGxheVN1cmZhY2UgPSB0cnVlOworICAgIGJvb2xlYW4gbG9naWNhbFN1cmZh
Y2UgPSB0cnVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDY3YTJkNGYzOTVmZjM5ZjllMGU1YWFl
NjFiNDQwMzMzYTgzODg2ZTEuLjQyNmMzZjllNDU2MjUzYzQ0NGNiODNjZmU5OTgxMTg5YWM4Mjc1
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTU5LDEwICsxNTksMjggQEAgdm9pZCBVc2VyTWVkaWFS
ZXF1ZXN0OjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CiAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsKLSAgICAgICAgZGVueShNZWRp
YUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQsIGVtcHR5U3RyaW5nKCkpOwor
ICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobV9yZXF1ZXN0LnR5cGUgPT0gTWVk
aWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEpIHsKKyAgICAgICAgLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1zY3JlZW4tc2hhcmUvI2NvbnN0cmFpbnRzCisg
ICAgICAgIC8vIDUuMiBDb25zdHJhaW5pbmcgRGlzcGxheSBTdXJmYWNlIFNlbGVjdGlvbgorICAg
ICAgICAvLyBUaGUgZ2V0RGlzcGxheU1lZGlhIGZ1bmN0aW9uIGRvZXMgbm90IHBlcm1pdCB0aGUg
dXNlIG9mIGNvbnN0cmFpbnRzIGZvciBzZWxlY3Rpb24gb2YgYSBzb3VyY2UgYXMgZGVzY3JpYmVk
CisgICAgICAgIC8vIGluIHRoZSBnZXRVc2VyTWVkaWEoKSBhbGdvcml0aG0uIFByaW9yIHRvIGlu
dm9raW5nIHRoZSBnZXRVc2VyTWVkaWEoKSBhbGdvcml0aG0sIGlmIGVpdGhlciBvZiB0aGUgdmlk
ZW8KKyAgICAgICAgLy8gYW5kIGF1ZGlvIGF0dHJpYnV0ZXMgYXJlIHNldCB0byBhIE1lZGlhVHJh
Y2tDb25zdHJhaW50cyB2YWx1ZSAoYXMgb3Bwb3NlZCB0byBiZWluZyBhYnNlbnQgb3Igc2V0IHRv
IGEKKyAgICAgICAgLy8gQm9vbGVhbiB2YWx1ZSksIHJlamVjdCB0aGUgcHJvbWlzZSB3aXRoIGEg
SW52YWxpZEFjY2Vzc0Vycm9yIGFuZCBhYm9ydC4KKyAgICAgICAgaWYgKG1fcmVxdWVzdC52aWRl
b0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgIShtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5tYW5k
YXRvcnlDb25zdHJhaW50cy5pc0VtcHR5KCkgJiYgbV9yZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMu
YWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpKSB7CisgICAgICAgICAgICBkZW55KE1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uOjpJbnZhbGlkQWNjZXNzKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChtX3JlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5pc1Zh
bGlkICYmICEobV9yZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMu
aXNFbXB0eSgpICYmIG1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWlu
dHMuaXNFbXB0eSgpKSkgeworICAgICAgICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNv
bjo6SW52YWxpZEFjY2Vzcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9
CisKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW1haW4vZ2V0dXNl
cm1lZGlhLmh0bWwjZG9tLW1lZGlhZGV2aWNlcy1nZXR1c2VybWVkaWEoKQogICAgIC8vIDEuIExl
dCBjb25zdHJhaW50cyBiZSB0aGUgbWV0aG9kJ3MgZmlyc3QgYXJndW1lbnQuCiAgICAgLy8gMi4g
TGV0IHJlcXVlc3RlZE1lZGlhVHlwZXMgYmUgdGhlIHNldCBvZiBtZWRpYSB0eXBlcyBpbiBjb25z
dHJhaW50cyB3aXRoIGVpdGhlciBhIGRpY3Rpb25hcnkKQEAgLTE3MSw3ICsxODksNyBAQCB2b2lk
IFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KCkKICAgICAvLyAgICAib3B0aW9uYWwiIG9jY3VycyBp
biB0aGUgV2ViSURMIGR1ZSB0byBXZWJJREwgcnVsZXMsIGJ1dCB0aGUgYXJndW1lbnQgbXVzdCBi
ZSBzdXBwbGllZCBpbiBvcmRlcgogICAgIC8vICAgIGZvciB0aGUgY2FsbCB0byBzdWNjZWVkLgog
ICAgIGlmICghbV9yZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiAhbV9yZXF1ZXN0
LnZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCkgewotICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgZGVueShN
ZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50cyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTE4MSw3ICsxOTksNyBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0
KCkKICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KTsKICAgICBhdXRvKiBjb250cm9sbGVyID0gVXNlck1lZGlhQ29udHJvbGxl
cjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpOwogICAgIGlmICghY29udHJvbGxlcikgewotICAgICAg
ICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCwgZW1wdHlT
dHJpbmcoKSk7CisgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRp
YURpc2FibGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkyLDcgKzIxMCw3IEBA
IHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6c3RhcnQoKQogICAgIC8vICAgICAgdGhlIHZhbHVlIE5v
dEFsbG93ZWRFcnJvci4KICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwogICAgIGlmICghY2FuQ2Fs
bEdldFVzZXJNZWRpYShkb2N1bWVudCwgbV9yZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxp
ZCwgbV9yZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCwgZXJyb3JNZXNzYWdlKSkgewot
ICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkLCBl
bXB0eVN0cmluZygpKTsKKyAgICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVy
bWlzc2lvbkRlbmllZCk7CiAgICAgICAgIGRvY3VtZW50LmRvbVdpbmRvdygpLT5wcmludEVycm9y
TWVzc2FnZShlcnJvck1lc3NhZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjA5LDE0
ICsyMjcsMTQgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyhDYXB0dXJlRGV2aWNlJiYg
YXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0QKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICBpZiAoIXByaXZhdGVTdHJlYW0pIHsKLSAgICAgICAgICAgIGRlbnkoTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb246OkhhcmR3YXJlRXJyb3IsIGVtcHR5U3RyaW5nKCkpOworICAgICAg
ICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6SGFyZHdhcmVFcnJvcik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJpdmF0ZVN0cmVhbS0+bW9uaXRv
ck9yaWVudGF0aW9uKGRvd25jYXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
LT5vcmllbnRhdGlvbk5vdGlmaWVyKCkpOwogCiAgICAgICAgIGF1dG8gc3RyZWFtID0gTWVkaWFT
dHJlYW06OmNyZWF0ZSgqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwcml2YXRlU3RyZWFtLnJl
bGVhc2VOb25OdWxsKCkpOwogICAgICAgICBpZiAoc3RyZWFtLT5nZXRUcmFja3MoKS5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OkhhcmR3YXJl
RXJyb3IsIGVtcHR5U3RyaW5nKCkpOworICAgICAgICAgICAgZGVueShNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbjo6SGFyZHdhcmVFcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IApAQCAtMjcyLDYgKzI5MCwxMCBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmRlbnkoTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIGludmFsaQogICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYVN0cmVhbSwgIlVzZXJNZWRpYVJlcXVlc3Q6OmRlbnkgLSBwZXJtaXNz
aW9uIGRlbmllZCIpOwogICAgICAgICBtX3Byb21pc2UucmVqZWN0KE5vdEFsbG93ZWRFcnJvcik7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OkludmFs
aWRBY2Nlc3M6CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhU3RyZWFtLCAiVXNlck1lZGlhUmVx
dWVzdDo6ZGVueSAtIGludmFsaWQgYWNjZXNzIik7CisgICAgICAgIG1fcHJvbWlzZS5yZWplY3Qo
SW52YWxpZEFjY2Vzc0Vycm9yKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
CmluZGV4IDhmOTU3MGI1ZGEyOWI2NzQwMTAzMjhhZDQ5ZmNhZDA2MmMwYTc5NTguLjY4MDRkYTI4
YzQ3OTNlNWRhOTY5Y2FhODE3MzVmMjFiNThjNThiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCkBAIC01Niw4ICs1
Niw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRpYURl
dmljZVVJRHMoY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRl
b0RldmljZVVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhbGxvdyhDYXB0dXJlRGV2aWNl
JiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZSwgU3RyaW5nJiYgZGV2
aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKIAotICAgIGVudW0gTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b24geyBOb0NvbnN0cmFpbnRzLCBVc2VyTWVkaWFEaXNhYmxlZCwgTm9DYXB0dXJlRGV2aWNlcywg
SW52YWxpZENvbnN0cmFpbnQsIEhhcmR3YXJlRXJyb3IsIFBlcm1pc3Npb25EZW5pZWQsIE90aGVy
RmFpbHVyZSB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVueShNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCk7CisgICAgZW51bSBNZWRp
YUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMsIFVzZXJNZWRpYURpc2FibGVkLCBO
b0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwgSGFyZHdhcmVFcnJvciwgUGVybWlz
c2lvbkRlbmllZCwgSW52YWxpZEFjY2VzcywgT3RoZXJGYWlsdXJlIH07CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJpbmcmIGlu
dmFsaWRDb25zdHJhaW50ID0gZW1wdHlTdHJpbmcoKSk7CiAKICAgICBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgYXVkaW9EZXZpY2VVSURzKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0RldmljZVVJRHM7
IH0KICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmlkZW9EZXZpY2VVSURzKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWRlb0RldmljZVVJRHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggYmUyMmY4NWQ3OGExMzRkYjVjZmU4NjA3MTA3Yzc0YmQ1
OWNhNzk0Yy4uZWY2MjI4YjliOWJlZjE4OGM4MWE4OWI0Yzg0NWNlYTU5NDExNDYwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEwNiw2ICsx
MDYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNZWRpYURldmljZXNFbmFibGVkKGJvb2wgaXNF
bmFibGVkKSB7IG1faXNNZWRpYURldmljZXNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9v
bCBtZWRpYVN0cmVhbUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzTWVkaWFTdHJlYW1FbmFi
bGVkOyB9CiAgICAgdm9pZCBzZXRNZWRpYVN0cmVhbUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsg
bV9pc01lZGlhU3RyZWFtRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgc2NyZWVuQ2Fw
dHVyZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU2NyZWVuQ2FwdHVyZUVuYWJsZWQ7IH0K
KyAgICB2b2lkIHNldFNjcmVlbkNhcHR1cmVFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNT
Y3JlZW5DYXB0dXJlRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0VCX1JUQykKQEAgLTI2NSw2ICsyNjcsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgYm9vbCBtX2lzTWVkaWFEZXZpY2VzRW5hYmxlZCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzTWVkaWFTdHJlYW1FbmFibGVkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9pc1NjcmVl
bkNhcHR1cmVFbmFibGVkIHtmYWxzZSB9OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX1JUQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVE
ZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZp
Y2UuaAppbmRleCA2MTI3N2NlOTA2ZmY2YWNkYzVkZWE1MWMyNThjMGQwN2JjMTFhMjBiLi5kY2M3
Y2UwNWZhNDBlMzMxZWU1Nzk4ZjM4MjM3YWY0ZGUzYzIyNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FwdHVyZURldmljZSB7CiBwdWJs
aWM6Ci0gICAgZW51bSBjbGFzcyBEZXZpY2VUeXBlIHsgVW5rbm93biwgTWljcm9waG9uZSwgQ2Ft
ZXJhIH07CisgICAgZW51bSBjbGFzcyBEZXZpY2VUeXBlIHsgVW5rbm93biwgTWljcm9waG9uZSwg
Q2FtZXJhLCBTY3JlZW4sIEFwcGxpY2F0aW9uLCBXaW5kb3csIEJyb3dzZXIgfTsKIAogICAgIENh
cHR1cmVEZXZpY2UoY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50SWQsIERldmljZVR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBncm91cElkID0gZW1wdHlTdHJpbmco
KSkKICAgICAgICAgOiBtX3BlcnNpc3RlbnRJZChwZXJzaXN0ZW50SWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3Bw
CmluZGV4IDAxZDI5MWViNjI3NTk4ODFkZmIyNmM4MjIwYTVmOTUzZDVjMThmYTUuLmM5MGZiYjA0
YzVlM2VhMDg2OWY4OTcxOGMyNTY0NjQyNGIxY2JhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCkBAIC0y
NDIsNiArMjQyLDggQEAgdm9pZCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcDo6c2V0KE1lZGlh
Q29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUsIHN0ZDo6b3AKICAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OkZhY2luZ01vZGU6CiAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpE
ZXZpY2VJZDoKICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6CisgICAgY2Fz
ZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZToKKyAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlOgogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFr
OwpAQCAtMjY5LDYgKzI3MSw4IEBAIHZvaWQgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA6OnNl
dChNZWRpYUNvbnN0cmFpbnRUeXBlIGNvbnN0cmFpbnRUeXBlLCBzdGQ6Om9wCiAgICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlOgogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6RGV2aWNlSWQ6CiAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkOgor
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2U6CisgICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZToKICAgICBjYXNlIE1lZGlhQ29uc3Ry
YWludFR5cGU6OlVua25vd246CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICBicmVhazsKQEAgLTI4MSw2ICsyODUsMTIgQEAgdm9pZCBNZWRpYVRyYWNrQ29uc3RyYWludFNl
dE1hcDo6c2V0KE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUsIHN0ZDo6b3AKICAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb246CiAgICAgICAgIG1f
ZWNob0NhbmNlbGxhdGlvbiA9IFdURk1vdmUoY29uc3RyYWludCk7CiAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2U6CisgICAgICAgIG1f
ZGlzcGxheVN1cmZhY2UgPSBXVEZNb3ZlKGNvbnN0cmFpbnQpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlOgorICAgICAgICBtX2xv
Z2ljYWxTdXJmYWNlID0gV1RGTW92ZShjb25zdHJhaW50KTsKKyAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoOgogICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6SGVpZ2h0OgpAQCAtMzE5LDYgKzMyOSw4IEBAIHZvaWQgTWVkaWFUcmFja0NvbnN0
cmFpbnRTZXRNYXA6OnNldChNZWRpYUNvbnN0cmFpbnRUeXBlIGNvbnN0cmFpbnRUeXBlLCBzdGQ6
Om9wCiAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGU6CiAgICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1bWU6CiAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpFY2hvQ2FuY2VsbGF0aW9uOgorICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGlzcGxh
eVN1cmZhY2U6CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZToK
ICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaAppbmRleCA0Yzk2OTY5MTVl
MTMyM2E3OTA2YjI0NjdjZmY0ZTEwNmZiMTJlNWQ3Li40MWUwZTc2OTY5MTdlNTBiNDFmMWI1ODRm
NWVhMGZmNGZlYjdhMjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCkBAIC01OTMsNiArNTkzLDggQEAgcHVibGlj
OgogICAgIHN0ZDo6b3B0aW9uYWw8RG91YmxlQ29uc3RyYWludD4gdm9sdW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV92b2x1bWU7IH0KIAogICAgIHN0ZDo6b3B0aW9uYWw8Qm9vbGVhbkNvbnN0cmFpbnQ+
IGVjaG9DYW5jZWxsYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2VjaG9DYW5jZWxsYXRpb247IH0K
KyAgICBzdGQ6Om9wdGlvbmFsPEJvb2xlYW5Db25zdHJhaW50PiBkaXNwbGF5U3VyZmFjZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGlzcGxheVN1cmZhY2U7IH0KKyAgICBzdGQ6Om9wdGlvbmFsPEJvb2xl
YW5Db25zdHJhaW50PiBsb2dpY2FsU3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFN1
cmZhY2U7IH0KIAogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nQ29uc3RyYWludD4gZmFjaW5nTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmFjaW5nTW9kZTsgfQogICAgIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nQ29uc3RyYWludD4gZGV2aWNlSWQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZUlkOyB9CkBA
IC02MTAsNiArNjEyLDggQEAgcHVibGljOgogICAgICAgICBlbmNvZGVyIDw8IG1fdm9sdW1lOwog
CiAgICAgICAgIGVuY29kZXIgPDwgbV9lY2hvQ2FuY2VsbGF0aW9uOworICAgICAgICBlbmNvZGVy
IDw8IG1fZGlzcGxheVN1cmZhY2U7CisgICAgICAgIGVuY29kZXIgPDwgbV9sb2dpY2FsU3VyZmFj
ZTsKIAogICAgICAgICBlbmNvZGVyIDw8IG1fZmFjaW5nTW9kZTsKICAgICAgICAgZW5jb2RlciA8
PCBtX2RldmljZUlkOwpAQCAtNjM3LDYgKzY0MSwxMCBAQCBwdWJsaWM6CiAKICAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShtYXAubV9lY2hvQ2FuY2VsbGF0aW9uKSkKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWFwLm1fZGlz
cGxheVN1cmZhY2UpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShtYXAubV9sb2dpY2FsU3VyZmFjZSkpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWFwLm1f
ZmFjaW5nTW9kZSkpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtNjU5LDYg
KzY2Nyw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxEb3VibGVDb25zdHJhaW50PiBt
X3ZvbHVtZTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8Qm9vbGVhbkNvbnN0cmFpbnQ+IG1fZWNob0Nh
bmNlbGxhdGlvbjsKKyAgICBzdGQ6Om9wdGlvbmFsPEJvb2xlYW5Db25zdHJhaW50PiBtX2Rpc3Bs
YXlTdXJmYWNlOworICAgIHN0ZDo6b3B0aW9uYWw8Qm9vbGVhbkNvbnN0cmFpbnQ+IG1fbG9naWNh
bFN1cmZhY2U7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZ0NvbnN0cmFpbnQ+IG1fZmFjaW5n
TW9kZTsKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZ0NvbnN0cmFpbnQ+IG1fZGV2aWNlSWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtUmVxdWVzdC5oCmluZGV4IGM1NzAyYzBkNzI1N2YyNTAwYjI4YWZmN2MxNTk1Y2MzZWE0ZGVk
NzYuLmQ0NGYxZGM1ODY2ZGUxOTAwMTFhYzEzYjkxY2Q5YWIwZDk0OTIxOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVxdWVzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVx
dWVzdC5oCkBAIC0zNCw3ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBN
ZWRpYVN0cmVhbVJlcXVlc3QgewotICAgIGVudW0gY2xhc3MgVHlwZSB7IFVzZXJNZWRpYSB9Owor
ICAgIGVudW0gY2xhc3MgVHlwZSB7IFVzZXJNZWRpYSwgRGlzcGxheU1lZGlhIH07CiAgICAgVHlw
ZSB0eXBlOwogICAgIE1lZGlhQ29uc3RyYWludHMgYXVkaW9Db25zdHJhaW50czsKICAgICBNZWRp
YUNvbnN0cmFpbnRzIHZpZGVvQ29uc3RyYWludHM7CkBAIC03Nyw3ICs3Nyw4IEBAIG5hbWVzcGFj
ZSBXVEYgewogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVN0cmVh
bVJlcXVlc3Q+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJD
b3JlOjpNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtUmVxdWVzdDo6VHlwZTo6VXNlck1lZGlhCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UmVxdWVzdDo6VHlwZTo6VXNlck1lZGlhLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVN0cmVhbVJl
cXVlc3Q6OlR5cGU6OkRpc3BsYXlNZWRpYQogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCmluZGV4IDZjMDM3NjJhZWFjZGFlMTNjZjBhMWU5MTcxMjNhZmNkZTI2MTE3YjMuLjZjMDg5
ZDAyMzQ2YWEzOTAxMjBkNzZiOWFmYzExNWQ3YWZlY2Q2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCkBAIC0zNjEsMTAgKzM2MSw5IEBAIGRvdWJsZSBSZWFsdGltZU1lZGlhU291cmNlOjpmaXRu
ZXNzRGlzdGFuY2UoY29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KQogICAgICAgICBi
cmVhazsKICAgICB9CiAKLSAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlkOiB7
CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwotICAgIH0KIAogICAgIGNhc2UgTWVkaWFD
b25zdHJhaW50VHlwZTo6R3JvdXBJZDogewogICAgICAgICBBU1NFUlQoY29uc3RyYWludC5pc1N0
cmluZygpKTsKQEAgLTM3NSw2ICszNzQsMTAgQEAgZG91YmxlIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OmZpdG5lc3NEaXN0YW5jZShjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGlzcGxh
eVN1cmZhY2U6CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZToK
KyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246
CiAgICAgICAgIC8vIFVua25vd24gKG9yIHVuc3VwcG9ydGVkKSBjb25zdHJhaW50cyBzaG91bGQg
YmUgaWdub3JlZC4KICAgICAgICAgYnJlYWs7CkBAIC01MTQsNiArNTE3LDExIEBAIHZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludCYg
Y29uc3RyYWludCkKICAgICAgICAgLy8gVGhlcmUgaXMgbm90aGluZyB0byBkbyBoZXJlLCBuZWl0
aGVyIGNhbiBiZSBjaGFuZ2VkLgogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgTWVkaWFDb25z
dHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2U6CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpMb2dpY2FsU3VyZmFjZToKKyAgICAgICAgQVNTRVJUKGNvbnN0cmFpbnQuaXNCb29sZWFuKCkp
OworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6VW5rbm93
bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzA1LDYgKzcxMywxNSBAQCBib29sIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzQ29uc3RyYWludChjb25zdCBNZWRpYUNvbnN0cmFpbnQm
IGNvbnN0cmFpbnQpCiAgICAgICAgIHJldHVybiBjYXBhYmlsaXRpZXMuc3VwcG9ydHNEZXZpY2VJ
ZCgpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGlz
cGxheVN1cmZhY2U6CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFj
ZToKKyAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3NjcmVlbi1jYXB0dXJlLyNuZXct
Y29uc3RyYWludHMtZm9yLWNhcHR1cmVkLWRpc3BsYXktc3VyZmFjZXMKKyAgICAgICAgLy8gNS4y
LjEgTmV3IENvbnN0cmFpbnRzIGZvciBDYXB0dXJlZCBEaXNwbGF5IFN1cmZhY2VzCisgICAgICAg
IC8vIFNpbmNlIHRoZSBzb3VyY2Ugb2YgbWVkaWEgY2Fubm90IGJlIGNoYW5nZWQgYWZ0ZXIgYSBN
ZWRpYVN0cmVhbVRyYWNrIGhhcyBiZWVuIHJldHVybmVkLAorICAgICAgICAvLyB0aGVzZSBjb25z
dHJhaW50cyBjYW5ub3QgYmUgY2hhbmdlZCBieSBhbiBhcHBsaWNhdGlvbi4KKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6VW5rbm93bjoKICAgICAgICAgLy8gVW5rbm93biAob3IgdW5zdXBwb3J0ZWQpIGNvbnN0cmFp
bnRzIHNob3VsZCBiZSBpZ25vcmVkLgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5jcHAKaW5kZXggYjgxYmJmZWU3ZjA4OTdjMzA3NDc5YjVjYTAyMzM3ZTQ5NTVl
NjczOC4uODQ0MzQ0NTc0NDZmYjljMGFlNjE3MTBiNzJlNDkzZTE1ZDI1MzEzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTI2Miw2ICsyNjIsMTQgQEAgdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENv
bnN0cmFpbnRzSGFuZGwKICAgICAgICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVu
ZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6QXBwbGljYXRpb246CisgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6V2luZG93OgorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkJyb3dzZXI6CisgICAgICAgICAgICBBU1NFUlQocmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFt
UmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKTsKKyAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0
LnZpZGVvQ29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuaXNFbXB0eSgpKTsKKyAgICAg
ICAgICAgIEFTU0VSVChyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50
cy5pc0VtcHR5KCkpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDksNiArMzE3LDEwIEBAIHN0ZDo6b3B0aW9u
YWw8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmlj
ZVdpdGhQZXJzaXN0CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bo
b25lOgogICAgICAgICByZXR1cm4gYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VXaXRoUGVyc2lzdGVudElEKHR5cGUsIGlkKTsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpBcHBsaWNhdGlvbjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OldpbmRvdzoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkJy
b3dzZXI6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncy5oCmluZGV4IGJlNTZmYjI2YjdkNjExMTFmOGI0ZmNiZjQzYzQ4NWIx
NmEyMmNlZmQuLmQ2OTg2MmQ0YmQ4NjZkODBiM2NiN2M2ZmMwNjc1ZmUwMzQwNjI1MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCkBAIC04OSw2ICs4OSwxNCBAQCBwdWJsaWM6
CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBncm91cElkKCkgY29uc3QgeyByZXR1cm4gbV9ncm91
cElkOyB9CiAgICAgdm9pZCBzZXRHcm91cElkKGNvbnN0IEF0b21pY1N0cmluZyYgZ3JvdXBJZCkg
eyBtX2dyb3VwSWQgPSBncm91cElkOyB9CiAKKyAgICBib29sIHN1cHBvcnRzRGlzcGxheVN1cmZh
Y2UoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzRGlzcGxh
eVN1cmZhY2UoKTsgfQorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGlzcGxheVN1cmZhY2UoKSBj
b25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdXJmYWNlOyB9CisgICAgdm9pZCBzZXREaXNwbGF5U3Vy
ZmFjZShjb25zdCBBdG9taWNTdHJpbmcmIGRpc3BsYXlTdXJmYWNlKSB7IG1fZGlzcGxheVN1cmZh
Y2UgPSBkaXNwbGF5U3VyZmFjZTsgfQorCisgICAgYm9vbCBzdXBwb3J0c0xvZ2ljYWxTdXJmYWNl
KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0c0xvZ2ljYWxT
dXJmYWNlKCk7IH0KKyAgICBib29sIGxvZ2ljYWxTdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9s
b2dpY2FsU3VyZmFjZTsgfQorICAgIHZvaWQgc2V0TG9naWNhbFN1cmZhY2UoYm9vbCBsb2dpY2Fs
U3VyZmFjZSkgeyBtX2xvZ2ljYWxTdXJmYWNlID0gbG9naWNhbFN1cmZhY2U7IH0KKwogICAgIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29u
c3RyYWludHMoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOyB9CiAgICAg
dm9pZCBzZXRTdXBwb3J0ZWRDb25zdHJhaW50cyhjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKSB7IG1fc3VwcG9ydGVkQ29u
c3RyYWludHMgPSBzdXBwb3J0ZWRDb25zdHJhaW50czsgfQogCkBAIC0xMTMsNiArMTIxLDkgQEAg
cHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9ncm91cElkOwogICAgIEF0b21pY1N0cmluZyBt
X2xhYmVsOwogCisgICAgQXRvbWljU3RyaW5nIG1fZGlzcGxheVN1cmZhY2U7CisgICAgYm9vbCBt
X2xvZ2ljYWxTdXJmYWNlIHsgMCB9OworCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcAppbmRleCA1NzE1
NmQ1ZTliMTEwNGVjNDE1Yjg1Yzg0NTE2NzM0N2RhNjViOWJiLi42MDVkMzg4N2NiNGMyZTMwNmNj
ZmY4MzEzOGRlNTNmMzBiY2QwMzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAKQEAgLTYxLDYgKzYxLDEwIEBAIGJvb2wgUmVh
bHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjpzdXBwb3J0c0NvbnN0cmFpbnQo
TWVkaWFDb25zdHJhaW50CiAgICAgICAgIHJldHVybiBzdXBwb3J0c0RldmljZUlkKCk7CiAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkOgogICAgICAgICByZXR1cm4gc3VwcG9y
dHNHcm91cElkKCk7CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFj
ZToKKyAgICAgICAgcmV0dXJuIHN1cHBvcnRzRGlzcGxheVN1cmZhY2UoKTsKKyAgICBjYXNlIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlOgorICAgICAgICByZXR1cm4gc3VwcG9y
dHNMb2dpY2FsU3VyZmFjZSgpOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaApp
bmRleCA0MDQwZTM0NTg4OTc2MWE1ODY4ZGRkOWI3N2JjNDZlMmE1Mjk2NDZmLi41M2Y4ZTI1MjJi
MzFhMTFmNTc4NGU5OGQyMGRhN2MyNTUxOTU1NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaApAQCAtNDksNyArNDksOSBAQCBlbnVt
IGNsYXNzIE1lZGlhQ29uc3RyYWludFR5cGUgewogICAgIFNhbXBsZVNpemUsCiAgICAgRWNob0Nh
bmNlbGxhdGlvbiwKICAgICBEZXZpY2VJZCwKLSAgICBHcm91cElkCisgICAgR3JvdXBJZCwKKyAg
ICBEaXNwbGF5U3VyZmFjZSwKKyAgICBMb2dpY2FsU3VyZmFjZSwKIH07CiAKIGNsYXNzIFJlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyB7CkBAIC05MSw2ICs5MywxMiBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c0dyb3VwSWQoKSBjb25zdCB7IHJldHVybiBtX3N1cHBv
cnRzR3JvdXBJZDsgfQogICAgIHZvaWQgc2V0U3VwcG9ydHNHcm91cElkKGJvb2wgdmFsdWUpIHsg
bV9zdXBwb3J0c0dyb3VwSWQgPSB2YWx1ZTsgfQogCisgICAgYm9vbCBzdXBwb3J0c0Rpc3BsYXlT
dXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c0Rpc3BsYXlTdXJmYWNlOyB9CisgICAg
dm9pZCBzZXRTdXBwb3J0c0Rpc3BsYXlTdXJmYWNlKGJvb2wgdmFsdWUpIHsgbV9zdXBwb3J0c0Rp
c3BsYXlTdXJmYWNlID0gdmFsdWU7IH0KKworICAgIGJvb2wgc3VwcG9ydHNMb2dpY2FsU3VyZmFj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNMb2dpY2FsU3VyZmFjZTsgfQorICAgIHZvaWQg
c2V0U3VwcG9ydHNMb2dpY2FsU3VyZmFjZShib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNMb2dpY2Fs
U3VyZmFjZSA9IHZhbHVlOyB9CisKICAgICBib29sIHN1cHBvcnRzQ29uc3RyYWludChNZWRpYUNv
bnN0cmFpbnRUeXBlKSBjb25zdDsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTEwOCw2ICsxMTYsOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9zdXBwb3J0c0VjaG9DYW5jZWxsYXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9z
dXBwb3J0c0RldmljZUlkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc3VwcG9ydHNHcm91cElkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fc3VwcG9ydHNEaXNwbGF5U3VyZmFjZSB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX3N1cHBvcnRzTG9naWNhbFN1cmZhY2UgeyBmYWxzZSB9OwogfTsKIAogdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KQEAgLTEyMyw3ICsxMzMsOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgICAgIDw8IG1fc3VwcG9ydHNTYW1wbGVTaXplCiAgICAgICAgIDw8IG1fc3VwcG9ydHNF
Y2hvQ2FuY2VsbGF0aW9uCiAgICAgICAgIDw8IG1fc3VwcG9ydHNEZXZpY2VJZAotICAgICAgICA8
PCBtX3N1cHBvcnRzR3JvdXBJZDsKKyAgICAgICAgPDwgbV9zdXBwb3J0c0dyb3VwSWQKKyAgICAg
ICAgPDwgbV9zdXBwb3J0c0Rpc3BsYXlTdXJmYWNlCisgICAgICAgIDw8IG1fc3VwcG9ydHNMb2dp
Y2FsU3VyZmFjZTsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTEzOSw3ICsxNTEs
OSBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFJlYWx0aW1lTQogICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShj
b25zdHJhaW50cy5tX3N1cHBvcnRzU2FtcGxlU2l6ZSkKICAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUoY29uc3RyYWludHMubV9zdXBwb3J0c0VjaG9DYW5jZWxsYXRpb24pCiAgICAgICAgICYmIGRl
Y29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLm1fc3VwcG9ydHNEZXZpY2VJZCkKLSAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c0dyb3VwSWQpOworICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRzR3JvdXBJZCkKKyAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c0Rpc3BsYXlTdXJmYWNlKQor
ICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRzTG9naWNhbFN1
cmZhY2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggMzg2Y2U1MzZhN2NjZTFiMGZhMTllNmU4
ZWIxNGRiN2NiM2QyMDc0ZS4uNWVhN2E5MzJjOWM5MjkzOTlkN2EwYjg3N2I1NmYyNWVkMTM2YmZi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAt
NTMsOCArNTMsMTMgQEAgcHVibGljOgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYToKICAgICAgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOwogICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIAogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
Ok1pY3JvcGhvbmU6Ci0gICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKKyAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46Cisg
ICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXBwbGljYXRpb246CisgICAg
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkJyb3dzZXI6CisgICAgICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjogICAgICAgIAogICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcAppbmRleCAxZWM4NmJiZWNkMzNmMTU3ZGJjNThmZDY5MzQ4MmNmMWZjYTBkZmQ4Li5kYmE1
YTEwODFkYTlkZWIyMTliMzA0ZDE1NTQ1ZDhiYzQ1NzJhYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcApA
QCAtNjAsNiArNjAsMTEgQEAgcHVibGljOgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkNhbWVyYToKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlLmxhYmVsKCksIGNvbnN0
cmFpbnRzKTsKICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkFwcGxpY2F0aW9uOgorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKKyAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpCcm93
c2VyOgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6
CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggY2RhYmI2ZmRkODYxMzk3YzFkNWNkZmM0NmNhYTRhZWVk
MjBmMDExZi4uNzAwNGYwZDMwMjM3MWRmMzYxYjY3MGI3NTlhYzY1NzgyNjkxM2Q0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0xMTIsNiArMTEy
LDkgQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXAoU2V0dGluZ3MmIHNldHRpbmdz
KQogICAgICwgbV93ZWJHUFVFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkud2ViR1BVRW5hYmxlZCgpKQogI2VuZGlmCiAgICAgLCBtX3dlYlZSRW5hYmxlZChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlZSRW5hYmxlZCgpKQor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgLCBtX3NldFNjcmVlbkNhcHR1cmVFbmFibGVk
KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2NyZWVuQ2FwdHVyZUVu
YWJsZWQoKSkKKyNlbmRpZgogICAgICwgbV9zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nl
c3NpYmlsaXR5KFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zaG91bGRNb2NrQm9sZFN5c3RlbUZv
bnRGb3JBY2Nlc3NpYmlsaXR5KCkpCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAgICAgLCBtX3No
b3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6
c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKQEAgLTIxMCw2ICsyMTMsOSBAQCB2
b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFNldHRpbmdzJiBzZXR0aW5n
cykKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYkdQ
VUVuYWJsZWQobV93ZWJHUFVFbmFibGVkKTsKICNlbmRpZgogICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0V2ViVlJFbmFibGVkKG1fd2ViVlJFbmFibGVkKTsK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQobV9zZXRTY3JlZW5DYXB0dXJl
RW5hYmxlZCk7CisjZW5kaWYKIAogI2lmIFVTRShBVURJT19TRVNTSU9OKQogICAgIERlcHJlY2F0
ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkobV9z
aG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSk7CkBAIC03NjIsNiArNzY4LDE1IEBAIHZv
aWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0V2ViVlJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlZSRW5hYmxlZChl
bmFibGVkKTsKIH0KIAordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRTY3JlZW5DYXB0dXJlRW5h
YmxlZChib29sIGVuYWJsZWQpCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNjcmVlbkNhcHR1cmVFbmFi
bGVkKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYK
K30KKwogRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbFNldHRpbmdzOjp1c2VySW50ZXJmYWNl
RGlyZWN0aW9uUG9saWN5KCkKIHsKICAgICBpZiAoIW1fcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggYWI2NDEyYjFjODczNGFkMjdhZWY1NWJlOTQ1
Y2IyY2U1N2NmODc5Mi4uN2Q3N2ZmNWE2MmQ1ODkxMzBiYmI5NjRiNDhjNDVhOTJlNmY5YjBiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEyMyw2ICsx
MjMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0V2ViR0wyRW5hYmxlZChib29sKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRXZWJHUFVFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lk
IHNldFdlYlZSRW5hYmxlZChib29sKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTY3JlZW5DYXB0dXJl
RW5hYmxlZChib29sKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbFNldHRpbmdz
KFBhZ2UqKTsKQEAgLTIwMyw2ICsyMDQsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIG1fd2Vi
R0wyRW5hYmxlZDsKICAgICAgICAgYm9vbCBtX3dlYkdQVUVuYWJsZWQ7CiAgICAgICAgIGJvb2wg
bV93ZWJWUkVuYWJsZWQ7CisgICAgICAgIGJvb2wgbV9zZXRTY3JlZW5DYXB0dXJlRW5hYmxlZDsK
ICAgICAgICAgCiAgICAgICAgIGJvb2wgbV9zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nl
c3NpYmlsaXR5OwogI2lmIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggMTFiYjljN2Q3ZGNmZjgzNDBhZWUxNzVjMjM0
Y2I0MWIwOGQ2NWQ2Ni4uZDA3ZTY2ZWI2OTdlYTJhOTkxMTkxZTNlMjVlZGVkNjU3MThiZjFiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC05Miw2
ICs5Miw3IEBAIGVudW0gRm9udExvYWRUaW1pbmdPdmVycmlkZSB7ICJCbG9jayIsICJTd2FwIiwg
IkZhaWx1cmUiIH07CiAgICAgdm9pZCBzZXRXZWJHTDJFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7
CiAgICAgdm9pZCBzZXRXZWJHUFVFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgdm9pZCBz
ZXRXZWJWUkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKyAgICB2b2lkIHNldFNjcmVlbkNhcHR1
cmVFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERP
TVN0cmluZyB1c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5KCk7CiAgICAgW01heVRocm93RXhj
ZXB0aW9uXSB2b2lkIHNldFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3koRE9NU3RyaW5nIHBv
bGljeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA1NDUy
NDM1MDgzNzU5MGI1YTkxYTYwYmVhNjdiZDg2NTMwNmUyZGI1Li45YjVmNGYyMjBlNTk3Y2VmODdk
ZWYwZGM4NTI4OTNmMjY2NTYyNzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzLnlhbWwKQEAgLTQ4Niw2ICs0ODYsMTIgQEAgTWVkaWFTdHJlYW1FbmFibGVkOgogICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25kaXRpb246IEVOQUJMRShN
RURJQV9TVFJFQU0pCiAKK1NjcmVlbkNhcHR1cmVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRl
ZmF1bHRWYWx1ZTogZmFsc2UKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCiBQZWVyQ29ubmVjdGlvbkVu
YWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiBXZWJDb3JlOjpMaWJXZWJSVENQ
cm92aWRlcjo6d2ViUlRDQXZhaWxhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggY2Y2OTJjY2QwZjk1OTcwYTFiZmM3
NTFjZWNiOTViYTgzMjhkMjg3ZS4uZjIxNWFkNmVjYmU4NDNiODg0ZGJlZGVkZGMxNTAxNDRkMGM2
YjQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW0KQEAgLTU4Miw2ICs1ODIsMTYgQEAgc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2lu
Z1BvbGljeSB0b0FQSShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG8K
ICAgICBfcHJlZmVyZW5jZXMtPnNldE1lZGlhRGV2aWNlc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAK
Ky0gKEJPT0wpX3NjcmVlbkNhcHR1cmVFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNl
cy0+c2NyZWVuQ2FwdHVyZUVuYWJsZWQoKTsKK30KKworLSAodm9pZClfc2V0U2NyZWVuQ2FwdHVy
ZUVuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0U2NyZWVuQ2Fw
dHVyZUVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIC0gKEJPT0wpX21vY2tDYXB0dXJlRGV2aWNlc0Vu
YWJsZWQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5tb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDZhMTg4MDZmMDNhYzcwZWQyOTUzOTIzMzk4ODc1
ZGE5NWVkMGRlNjAuLmMzYzBkYmEwZDJmMGJhOWE0ZTJkNTFiNjBiMjFmMDZmY2MzNWIxMGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5T
VUludGVnZXIsIF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3MpIHsKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UGVlckNvbm5lY3Rpb25FbmFibGVkOikgQk9PTCBfcGVlckNvbm5l
Y3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFEZXZpY2Vz
RW5hYmxlZDopIEJPT0wgX21lZGlhRGV2aWNlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
U2NyZWVuQ2FwdHVyZUVuYWJsZWQ6KSBCT09MIF9zY3JlZW5DYXB0dXJlRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX01BQ19UQkEpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQ6KSBCT09M
IF9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1vY2tDYXB0
dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQ6KSBCT09MIF9tb2NrQ2FwdHVyZURldmljZXNQcm9tcHRF
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uOikgQk9PTCBfbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25u
ZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwCmluZGV4IDdhNTQ3OTVlMThlMGU0YzFiOWZjNzEwZTViMWVlYjllM2YwOTFi
Y2UuLmFlYWQyNWRiODM0YWJmOWNjODkyM2FkMTNmOGUzMzdjNmFiMDZhMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcApAQCAtMjI0LDYgKzIyNCw4IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6Om92ZXJy
aWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAocHJlZmVyZW5jZSA9PSAiV2ViS2l0TWVk
aWFEZXZpY2VzRW5hYmxlZCIpCiAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2V0TWVkaWFEZXZpY2VzRW5hYmxlZChlbmFibGVkKTsKKyAgICBpZiAocHJl
ZmVyZW5jZSA9PSAiV2ViS2l0U2NyZWVuQ2FwdHVyZUVuYWJsZWQiKQorICAgICAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNjcmVlbkNhcHR1cmVFbmFibGVk
KGVuYWJsZWQpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZDY1ZTk2
MmYyM2UwZTVjY2VhOGNhOTY0NWM5YTY0Njg1ZTk1MWFiLi5mOTllYzBhYjg2Nzk0MmYwNDYyY2Nj
Yzc5YzEzZGNmM2Y3YzQwOTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTItMjAgIEVy
aWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3Ry
ZWFtXSBBZGQgc2NyZWVuIGNhcHR1cmUgSURMIGFuZCBzdHViIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMDcwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zNTU1NTE4ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1kaXNhYmxl
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyZWVu
Y2FwdHVyZS1kaXNhYmxlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L3NjcmVlbmNhcHR1cmUtZW5hYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1lbmFibGVkLmh0bWw6IEFkZGVkLgorCiAyMDE3
LTEyLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBc3Nl
cnRpb24gZmFpbHVyZSBpbiBNZXNzYWdlUG9ydDo6Y29udGV4dERlc3Ryb3llZCBpbiBodHRwL3Rl
c3RzL3NlY3VyaXR5L01lc3NhZ2VQb3J0L2V2ZW50LWxpc3RlbmVyLWNvbnRleHQuaHRtbCwgdXN1
YWxseSBhdHRyaWJ1dGVkIHRvIGxhdGVyIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0dXJlLWRpc2FibGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1kaXNhYmxlZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGQ1ZWQ1NDEzY2UxZWMwM2YyY2UyZDJkN2IzYjNiMWNkYzg4MTVm
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyZWVu
Y2FwdHVyZS1kaXNhYmxlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIHVuZGVm
aW5lZCBpcyB1bmRlZmluZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vc2NyZWVuY2FwdHVyZS1kaXNhYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9zY3JlZW5jYXB0dXJlLWRpc2FibGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI3ZWFjNGI4
NWUwNzRkMzE2YjU0MWViNjFmY2Q4NGQyY2U0MDc1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1kaXNhYmxlZC5odG1sCkBAIC0w
LDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQoZmFsc2UpOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZChuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERp
c3BsYXlNZWRpYSk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCBydW5UZXN0LCBmYWxzZSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1lbmFibGVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1lbmFibGVkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NzNkMDE4OWIyYTY1MDAwNzdkYWMzZThmNmMzNWVmMGM2ZTY2YTMwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0
dXJlLWVuYWJsZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUyBmdW5jdGlvbiBn
ZXREaXNwbGF5TWVkaWEoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSBpcyBkZWZpbmVkLgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmVlbmNhcHR1cmUtZW5h
YmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0dXJlLWVu
YWJsZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODc4OGM4YjA4ZmFhOWQ2ZWUwN2E5MTYyOWY4M2M1OTY1
YmU3OGI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9z
Y3JlZW5jYXB0dXJlLWVuYWJsZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgd2luZG93
LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQo
dHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoIXdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNob3VsZEJlRGVmaW5l
ZChuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERpc3BsYXlNZWRpYSk7CisgICAgfQorCisgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBydW5UZXN0LCBmYWxzZSk7Cis8L3Njcmlw
dD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329984</attachid>
            <date>2017-12-20 18:12:50 -0800</date>
            <delta_ts>2017-12-20 18:45:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181070-20171220181249.patch</filename>
            <type>text/plain</type>
            <size>45921</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMTMwNDkwYzk2ZDlh
NTI4MzhhNjE2NzYyZDYzNzM5YjgxYjg2Ny4uMTgxNTRiZTc1ZTVmMjhmN2NmZTU2ZjBjOTc0MmRm
OWEyZGRjYWZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE3LTEyLTIwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWRkIHNjcmVlbiBjYXB0dXJlIElETCBhbmQgc3R1YiBmdW5jdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTA3MAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzU1NTUxODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxl
dC4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0dXJlLWRpc2Fi
bGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1l
bmFibGVkLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6Z2V0RGlzcGxheU1lZGlhIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6Z2V0U3VwcG9ydGVkQ29uc3Ry
YWludHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnZlcnRUb0ludGVybmFsRm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3Q6OmFsbG93KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVl
c3Q6OmRlbnkpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oOgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAo
V2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2NyZWVuQ2FwdHVyZUVuYWJsZWQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0U2NyZWVu
Q2FwdHVyZUVuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVE
ZXZpY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwOjpzZXQp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwOjpkaXNwbGF5U3VyZmFj
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcDo6
bG9naWNhbFN1cmZhY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFUcmFja0NvbnN0
cmFpbnRTZXRNYXA6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OmZpdG5lc3NEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjphcHBseUNvbnN0cmFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3VwcG9ydHNDb25zdHJhaW50IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVE
ZXZpY2VXaXRoUGVyc2lzdGVudElEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5nczo6c3VwcG9ydHNEaXNwbGF5U3VyZmFjZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OmRpc3BsYXlTdXJmYWNl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6
c2V0RGlzcGxheVN1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzOjpzdXBwb3J0c0xvZ2ljYWxTdXJmYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6bG9naWNhbFN1cmZhY2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpzZXRMb2dpY2Fs
U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6c3VwcG9ydHNDb25zdHJhaW50IGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdXBwb3J0ZWRDb25zdHJhaW50czo6c3VwcG9ydHNEaXNwbGF5U3VyZmFjZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6
OnNldFN1cHBvcnRzRGlzcGxheVN1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjpzdXBwb3J0c0xvZ2ljYWxTdXJmYWNlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25z
dHJhaW50czo6c2V0U3VwcG9ydHNMb2dpY2FsU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRTY3JlZW5DYXB0dXJlRW5h
YmxlZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKwogMjAxNy0xMi0yMCAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUgaW4gTWVz
c2FnZVBvcnQ6OmNvbnRleHREZXN0cm95ZWQgaW4gaHR0cC90ZXN0cy9zZWN1cml0eS9NZXNzYWdl
UG9ydC9ldmVudC1saXN0ZW5lci1jb250ZXh0Lmh0bWwsIHVzdWFsbHkgYXR0cmlidXRlZCB0byBs
YXRlciB0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDhmZmZkNTZlNTdjZWEzNmUxZDE0MDA0NjkxNjJiZGQz
ZmZlZDc3Ny4uNTAzMjYxNDM5NmQwMzI3N2NjNDI0YTczZjIyOGUyMmYxMGI2N2Y0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0xMi0yMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIEFkZCBzY3JlZW4gY2FwdHVy
ZSBJREwgYW5kIHN0dWIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODEwNzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1NTU1MTg0
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NjcmVlbkNhcHR1cmVF
bmFibGVkXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldFNjcmVlbkNhcHR1cmVFbmFi
bGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZh
dGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFByZWZl
cmVuY2VGb3JUZXN0UnVubmVyKToKKwogMjAxNy0xMi0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBzZXJ2aWNlIHdvcmtlciBpbnRlcmNlcHRp
b24gb2YgcmVxdWVzdCB3aXRoIGJsb2IgYm9keQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDkyOWQyZGJkMzcwNjQzY2M0
ZjI4YzZmNDBlZDBhM2YwZTU0ZjJjMjUuLmQxOWJjNzdmNWIyZDk3ZjcwNDdlNTU3NDQ0ZDA3OTk5
YTBmZGU4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiTWVkaWFEZXZpY2VzUmVxdWVzdC5oIgogI2luY2x1ZGUgIk1lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL1JhbmRv
bU51bWJlci5oPgogCkBAIC0xMDgsNiArMTA5LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlh
RGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFEZXZpY2VzOjpn
ZXREaXNwbGF5TWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9t
aXNlJiYgcHJvbWlzZSkgY29uc3QKK3sKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3Vt
ZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0
OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1l
ZGlhLCBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKSwgY3JlYXRlTWVk
aWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52aWRlbykgfSwgV1RGTW92ZShwcm9taXNlKSk7Cisg
ICAgaWYgKHJlcXVlc3QpCisgICAgICAgIHJlcXVlc3QtPnN0YXJ0KCk7CisKKyAgICByZXR1cm4g
eyB9OworfQorCiB2b2lkIE1lZGlhRGV2aWNlczo6ZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVE
ZXZpY2VzUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSB0
aGlzLT5kb2N1bWVudCgpOwpAQCAtMTMxLDYgKzE0NSwxMSBAQCBNZWRpYVRyYWNrU3VwcG9ydGVk
Q29uc3RyYWludHMgTWVkaWFEZXZpY2VzOjpnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpCiAgICAg
cmVzdWx0LmVjaG9DYW5jZWxsYXRpb24gPSBzdXBwb3J0ZWQuc3VwcG9ydHNFY2hvQ2FuY2VsbGF0
aW9uKCk7CiAgICAgcmVzdWx0LmRldmljZUlkID0gc3VwcG9ydGVkLnN1cHBvcnRzRGV2aWNlSWQo
KTsKICAgICByZXN1bHQuZ3JvdXBJZCA9IHN1cHBvcnRlZC5zdXBwb3J0c0dyb3VwSWQoKTsKKyAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zY3JlZW5DYXB0
dXJlRW5hYmxlZCgpKSB7CisgICAgICAgIHJlc3VsdC5kZXZpY2VJZCA9IHN1cHBvcnRlZC5zdXBw
b3J0c0RldmljZUlkKCk7CisgICAgICAgIHJlc3VsdC5ncm91cElkID0gc3VwcG9ydGVkLnN1cHBv
cnRzR3JvdXBJZCgpOworICAgIH0KKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCmluZGV4IDYx
MTI4NTMwNTI5NzRkN2VlYTI3MDllNGNhNzhjM2M5ZTRiZTAzNzEuLjNkMTM5NjQyMmQ2NjhlNzVl
ZjY0OWZiNTAxNTgwNWU2ZTlmMGM3MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0NvbnN0cmFpbnRzPiBhdWRpbzsKICAgICB9
OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJh
aW50cyYsIFByb21pc2UmJikgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gZ2V0RGlzcGxh
eU1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiwgUHJvbWlzZSYmKSBjb25zdDsKICAgICB2
b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJikgY29uc3Q7CiAg
ICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdldFN1cHBvcnRlZENvbnN0cmFpbnRz
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmlkbAppbmRleCBhYmFiMTc4ZTE3ZTY3ODQ3ZDdjMzE0M2Q5OWYzODA0ZTdhZjgwOTk4
Li42ZTQ3NmJjOTBiOWQ3MWRiOGNiMTU4OWIyYjg0YTBkOTIzOWY5NDdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsCkBAIC0z
OCw2ICszOCw3IEBACiAKICAgICBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMgZ2V0U3Vw
cG9ydGVkQ29uc3RyYWludHMoKTsKICAgICBbUHJpdmF0ZUlkZW50aWZpZXIsIFB1YmxpY0lkZW50
aWZpZXJdIFByb21pc2U8TWVkaWFTdHJlYW0+IGdldFVzZXJNZWRpYShvcHRpb25hbCBNZWRpYVN0
cmVhbUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsKKyAgICBbRW5hYmxlZEF0UnVudGltZT1TY3Jl
ZW5DYXB0dXJlXSBQcm9taXNlPE1lZGlhU3RyZWFtPiBnZXREaXNwbGF5TWVkaWEob3B0aW9uYWwg
TWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cyk7CiB9OwogCiBbCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25z
dHJhaW50cy5jcHAKaW5kZXggYzRhM2ZjYWIyZjFjM2JhMWUwYjlmMzM2OGM5YmMxNjUwYmMyMDMx
OC4uOWYxMDQ4MjE5Njk0MWIwZjUyNDY4NTMxYzQwNGY1NGY2MGE0N2M0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0Nv
bnN0cmFpbnRzLmNwcApAQCAtMTcxLDYgKzE3MSw4IEBAIHN0YXRpYyBNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcCBjb252ZXJ0VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNldFR5cGUgc2V0VHlw
CiAgICAgLy8gRklYTUU6IGFkZCBjaGFubmVsQ291bnQKICAgICBzZXQocmVzdWx0LCBzZXRUeXBl
LCAiZGV2aWNlSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNl
dC5kZXZpY2VJZCk7CiAgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0Lmdyb3VwSWQpOworICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRp
c3BsYXlTdXJmYWNlLCBjb25zdHJhaW50U2V0LmRpc3BsYXlTdXJmYWNlKTsKKyAgICBzZXQocmVz
dWx0LCBzZXRUeXBlLCAibG9naWNhbFN1cmZhY2UiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dp
Y2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFjZSk7CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKaW5kZXggMDM5NTQ3NjFhZDgwYjlhOThkYmZh
OGFmNGFmYjlkZDE4MjY0ODM5Mi4uNzMxNDI4NWVjZjI5ZDIyYTVkZjEwMDQwY2NjN2NhODYzNjJh
YmQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVRyYWNrQ29uc3RyYWludHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oCkBAIC03Myw2ICs3Myw4IEBAIHN0cnVjdCBNZWRp
YVRyYWNrQ29uc3RyYWludFNldCB7CiAgICAgc3RkOjpvcHRpb25hbDxDb25zdHJhaW5Cb29sZWFu
PiBlY2hvQ2FuY2VsbGF0aW9uOwogICAgIHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluRE9NU3RyaW5n
PiBkZXZpY2VJZDsKICAgICBzdGQ6Om9wdGlvbmFsPENvbnN0cmFpbkRPTVN0cmluZz4gZ3JvdXBJ
ZDsKKyAgICBzdGQ6Om9wdGlvbmFsPENvbnN0cmFpbkRPTVN0cmluZz4gZGlzcGxheVN1cmZhY2U7
CisgICAgc3RkOjpvcHRpb25hbDxDb25zdHJhaW5Cb29sZWFuPiBsb2dpY2FsU3VyZmFjZTsKIH07
CiAKIHN0cnVjdCBNZWRpYVRyYWNrQ29uc3RyYWludHMgOiBNZWRpYVRyYWNrQ29uc3RyYWludFNl
dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
VHJhY2tDb25zdHJhaW50cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhVHJhY2tDb25zdHJhaW50cy5pZGwKaW5kZXggYTkwMzk4MzYxZDRlOGI5NjVlMTE3NjNk
ODViOGY3NGZlMjY3NzA2Zi4uZWQyNDUwZGQ3NGYzMzlmMzA2MjY1NzM4MmQwNTRmOGM0MWQyYjVi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRy
YWNrQ29uc3RyYWludHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmlkbApAQCAtNDcsNiArNDcsOSBAQAogICAgIC8vIEZJ
WE1FIDE2OTg3MTogYWRkIGNoYW5uZWxDb3VudAogICAgIENvbnN0cmFpbkRPTVN0cmluZyBkZXZp
Y2VJZDsKICAgICBDb25zdHJhaW5ET01TdHJpbmcgZ3JvdXBJZDsKKyAgICBDb25zdHJhaW5ET01T
dHJpbmcgZGlzcGxheVN1cmZhY2U7CisgICAgQ29uc3RyYWluQm9vbGVhbiBsb2dpY2FsU3VyZmFj
ZTsKKwogfTsKIAogdHlwZWRlZiAoZG91YmxlIG9yIENvbnN0cmFpbkRvdWJsZVJhbmdlKSBDb25z
dHJhaW5Eb3VibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaAppbmRleCBm
ODYyNmI4OTk1NjhmODc2NDJjYjA3OWQ3OGQ4ZTE0NDFjYzgzZjI1Li5kZmMwNzVmMDYzMDM1YWQy
MGZiZjI2NjFmZjkwODU2NGQ3ZDVmNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0
cmFpbnRzLmgKQEAgLTQ2LDYgKzQ2LDggQEAgc3RydWN0IE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25z
dHJhaW50cyB7CiAgICAgYm9vbCBlY2hvQ2FuY2VsbGF0aW9uOwogICAgIGJvb2wgZGV2aWNlSWQ7
CiAgICAgYm9vbCBncm91cElkOworICAgIGJvb2wgZGlzcGxheVN1cmZhY2U7CisgICAgYm9vbCBs
b2dpY2FsU3VyZmFjZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja1N1cHBvcnRlZENv
bnN0cmFpbnRzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFU
cmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmlkbAppbmRleCA1ODUzNzI4YjU0NzA1MmRmYzA5NTlj
NmRlOGMzNTNlOTliZjcyNDIxLi5lOWNiMWJlMDcxNjQ5NGRiOGZjYWU0YmQyMDlkY2IxMzkzMWU3
NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
VHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaWRsCkBAIC00NSw0
ICs0NSw2IEBACiAgICAgLy8gRklYTUUgMTY5ODcxOiBhZGQgY2hhbm5lbENvdW50CiAgICAgYm9v
bGVhbiBkZXZpY2VJZCA9IHRydWU7CiAgICAgYm9vbGVhbiBncm91cElkID0gdHJ1ZTsKKyAgICBi
b29sZWFuIGRpc3BsYXlTdXJmYWNlID0gdHJ1ZTsKKyAgICBib29sZWFuIGxvZ2ljYWxTdXJmYWNl
ID0gdHJ1ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCA2N2EyZDRmMzk1ZmYzOWY5ZTBlNWFhZTYx
YjQ0MDMzM2E4Mzg4NmUxLi40MjZjM2Y5ZTQ1NjI1M2M0NDRjYjgzY2ZlOTk4MTE4OWFjODI3NWQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAKQEAgLTE1OSwxMCArMTU5LDI4IEBAIHZvaWQgVXNlck1lZGlhUmVx
dWVzdDo6c3RhcnQoKQogewogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwog
ICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7Ci0gICAgICAgIGRlbnkoTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkLCBlbXB0eVN0cmluZygpKTsKKyAg
ICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1fcmVxdWVzdC50eXBlID09IE1lZGlh
U3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKSB7CisgICAgICAgIC8vIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNoYXJlLyNjb25zdHJhaW50cworICAg
ICAgICAvLyA1LjIgQ29uc3RyYWluaW5nIERpc3BsYXkgU3VyZmFjZSBTZWxlY3Rpb24KKyAgICAg
ICAgLy8gVGhlIGdldERpc3BsYXlNZWRpYSBmdW5jdGlvbiBkb2VzIG5vdCBwZXJtaXQgdGhlIHVz
ZSBvZiBjb25zdHJhaW50cyBmb3Igc2VsZWN0aW9uIG9mIGEgc291cmNlIGFzIGRlc2NyaWJlZAor
ICAgICAgICAvLyBpbiB0aGUgZ2V0VXNlck1lZGlhKCkgYWxnb3JpdGhtLiBQcmlvciB0byBpbnZv
a2luZyB0aGUgZ2V0VXNlck1lZGlhKCkgYWxnb3JpdGhtLCBpZiBlaXRoZXIgb2YgdGhlIHZpZGVv
CisgICAgICAgIC8vIGFuZCBhdWRpbyBhdHRyaWJ1dGVzIGFyZSBzZXQgdG8gYSBNZWRpYVRyYWNr
Q29uc3RyYWludHMgdmFsdWUgKGFzIG9wcG9zZWQgdG8gYmVpbmcgYWJzZW50IG9yIHNldCB0byBh
CisgICAgICAgIC8vIEJvb2xlYW4gdmFsdWUpLCByZWplY3QgdGhlIHByb21pc2Ugd2l0aCBhIElu
dmFsaWRBY2Nlc3NFcnJvciBhbmQgYWJvcnQuCisgICAgICAgIGlmIChtX3JlcXVlc3QudmlkZW9D
b25zdHJhaW50cy5pc1ZhbGlkICYmICEobV9yZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMubWFuZGF0
b3J5Q29uc3RyYWludHMuaXNFbXB0eSgpICYmIG1fcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmFk
dmFuY2VkQ29uc3RyYWludHMuaXNFbXB0eSgpKSkgeworICAgICAgICAgICAgZGVueShNZWRpYUFj
Y2Vzc0RlbmlhbFJlYXNvbjo6SW52YWxpZEFjY2Vzcyk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAobV9yZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxp
ZCAmJiAhKG1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmlz
RW1wdHkoKSAmJiBtX3JlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRz
LmlzRW1wdHkoKSkpIHsKKyAgICAgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246
OkludmFsaWRBY2Nlc3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1tYWluL2dldHVzZXJt
ZWRpYS5odG1sI2RvbS1tZWRpYWRldmljZXMtZ2V0dXNlcm1lZGlhKCkKICAgICAvLyAxLiBMZXQg
Y29uc3RyYWludHMgYmUgdGhlIG1ldGhvZCdzIGZpcnN0IGFyZ3VtZW50LgogICAgIC8vIDIuIExl
dCByZXF1ZXN0ZWRNZWRpYVR5cGVzIGJlIHRoZSBzZXQgb2YgbWVkaWEgdHlwZXMgaW4gY29uc3Ry
YWludHMgd2l0aCBlaXRoZXIgYSBkaWN0aW9uYXJ5CkBAIC0xNzEsNyArMTg5LDcgQEAgdm9pZCBV
c2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgpCiAgICAgLy8gICAgIm9wdGlvbmFsIiBvY2N1cnMgaW4g
dGhlIFdlYklETCBkdWUgdG8gV2ViSURMIHJ1bGVzLCBidXQgdGhlIGFyZ3VtZW50IG11c3QgYmUg
c3VwcGxpZWQgaW4gb3JkZXIKICAgICAvLyAgICBmb3IgdGhlIGNhbGwgdG8gc3VjY2VlZC4KICAg
ICBpZiAoIW1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgIW1fcmVxdWVzdC52
aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKLSAgICAgICAgZGVueShNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbjo6Tm9Db25zdHJhaW50cywgZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIGRlbnkoTWVk
aWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC0xODEsNyArMTk5LDcgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgp
CiAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk7CiAgICAgYXV0byogY29udHJvbGxlciA9IFVzZXJNZWRpYUNvbnRyb2xsZXI6
OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKICAgICBpZiAoIWNvbnRyb2xsZXIpIHsKLSAgICAgICAg
ZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQsIGVtcHR5U3Ry
aW5nKCkpOworICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFE
aXNhYmxlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE5Miw3ICsyMTAsNyBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KCkKICAgICAvLyAgICAgIHRoZSB2YWx1ZSBOb3RB
bGxvd2VkRXJyb3IuCiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKICAgICBpZiAoIWNhbkNhbGxH
ZXRVc2VyTWVkaWEoZG9jdW1lbnQsIG1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQs
IG1fcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQsIGVycm9yTWVzc2FnZSkpIHsKLSAg
ICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCwgZW1w
dHlTdHJpbmcoKSk7CisgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1p
c3Npb25EZW5pZWQpOwogICAgICAgICBkb2N1bWVudC5kb21XaW5kb3coKS0+cHJpbnRFcnJvck1l
c3NhZ2UoZXJyb3JNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIwOSwxNCAr
MjI3LDE0IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coQ2FwdHVyZURldmljZSYmIGF1
ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9ECiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgaWYgKCFwcml2YXRlU3RyZWFtKSB7Ci0gICAgICAgICAgICBkZW55KE1lZGlhQWNj
ZXNzRGVuaWFsUmVhc29uOjpIYXJkd2FyZUVycm9yLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAg
ICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OkhhcmR3YXJlRXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHByaXZhdGVTdHJlYW0tPm1vbml0b3JP
cmllbnRhdGlvbihkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS0+
b3JpZW50YXRpb25Ob3RpZmllcigpKTsKIAogICAgICAgICBhdXRvIHN0cmVhbSA9IE1lZGlhU3Ry
ZWFtOjpjcmVhdGUoKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHJpdmF0ZVN0cmVhbS5yZWxl
YXNlTm9uTnVsbCgpKTsKICAgICAgICAgaWYgKHN0cmVhbS0+Z2V0VHJhY2tzKCkuaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpIYXJkd2FyZUVy
cm9yLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb246OkhhcmR3YXJlRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
QEAgLTI3Miw2ICsyOTAsMTAgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpkZW55KE1lZGlhQWNj
ZXNzRGVuaWFsUmVhc29uIHJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZhbGkKICAgICAgICAgUkVM
RUFTRV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55IC0gcGVybWlzc2lv
biBkZW5pZWQiKTsKICAgICAgICAgbV9wcm9taXNlLnJlamVjdChOb3RBbGxvd2VkRXJyb3IpOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpJbnZhbGlk
QWNjZXNzOgorICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYVN0cmVhbSwgIlVzZXJNZWRpYVJlcXVl
c3Q6OmRlbnkgLSBpbnZhbGlkIGFjY2VzcyIpOworICAgICAgICBtX3Byb21pc2UucmVqZWN0KElu
dmFsaWRBY2Nlc3NFcnJvcik7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApp
bmRleCA4Zjk1NzBiNWRhMjliNjc0MDEwMzI4YWQ0OWZjYWQwNjJjMGE3OTU4Li42ODA0ZGEyOGM0
NzkzZTVkYTk2OWNhYTgxNzM1ZjIxYjU4YzU4YjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNTYsOCArNTYs
OCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxvd2VkTWVkaWFEZXZp
Y2VVSURzKGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9E
ZXZpY2VVSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWxsb3coQ2FwdHVyZURldmljZSYm
IGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIFN0cmluZyYmIGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKLSAgICBlbnVtIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29u
IHsgTm9Db25zdHJhaW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURldmljZXMsIElu
dmFsaWRDb25zdHJhaW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBPdGhlckZh
aWx1cmUgfTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb24sIGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpOworICAgIGVudW0gTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb24geyBOb0NvbnN0cmFpbnRzLCBVc2VyTWVkaWFEaXNhYmxlZCwgTm9D
YXB0dXJlRGV2aWNlcywgSW52YWxpZENvbnN0cmFpbnQsIEhhcmR3YXJlRXJyb3IsIFBlcm1pc3Np
b25EZW5pZWQsIEludmFsaWRBY2Nlc3MsIE90aGVyRmFpbHVyZSB9OworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZh
bGlkQ29uc3RyYWludCA9IGVtcHR5U3RyaW5nKCkpOwogCiAgICAgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9EZXZpY2VVSURzOyB9
CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHZpZGVvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0
dXJuIG1fdmlkZW9EZXZpY2VVSURzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCmluZGV4IGJlMjJmODVkNzhhMTM0ZGI1Y2ZlODYwNzEwN2M3NGJkNTlj
YTc5NGMuLjI1YTUxMjEwYWIwYTg1MDZjODIxNjUxYzNhOTViMmU3NzczM2JjODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0xMDYsNiArMTA2
LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWVkaWFEZXZpY2VzRW5hYmxlZChib29sIGlzRW5h
YmxlZCkgeyBtX2lzTWVkaWFEZXZpY2VzRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wg
bWVkaWFTdHJlYW1FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc01lZGlhU3RyZWFtRW5hYmxl
ZDsgfQogICAgIHZvaWQgc2V0TWVkaWFTdHJlYW1FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1f
aXNNZWRpYVN0cmVhbUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBib29sIHNjcmVlbkNhcHR1
cmVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1NjcmVlbkNhcHR1cmVFbmFibGVkOyB9Cisg
ICAgdm9pZCBzZXRTY3JlZW5DYXB0dXJlRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzU2Ny
ZWVuQ2FwdHVyZUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCkBAIC0yNjUsNiArMjY3LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIGJvb2wgbV9pc01lZGlhRGV2aWNlc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9pc01lZGlhU3RyZWFtRW5hYmxlZCB7IHRydWUgfTsKKyAgICBib29sIG1faXNTY3JlZW5D
YXB0dXJlRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUlRDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURl
dmljZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmlj
ZS5oCmluZGV4IDYxMjc3Y2U5MDZmZjZhY2RjNWRlYTUxYzI1OGMwZDA3YmMxMWEyMGIuLmRjYzdj
ZTA1ZmE0MGUzMzFlZTU3OThmMzgyMzdhZjRkZTNjMjI0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKQEAgLTMxLDcgKzMx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYXB0dXJlRGV2aWNlIHsKIHB1Ymxp
YzoKLSAgICBlbnVtIGNsYXNzIERldmljZVR5cGUgeyBVbmtub3duLCBNaWNyb3Bob25lLCBDYW1l
cmEgfTsKKyAgICBlbnVtIGNsYXNzIERldmljZVR5cGUgeyBVbmtub3duLCBNaWNyb3Bob25lLCBD
YW1lcmEsIFNjcmVlbiwgQXBwbGljYXRpb24sIFdpbmRvdywgQnJvd3NlciB9OwogCiAgICAgQ2Fw
dHVyZURldmljZShjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJZCwgRGV2aWNlVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGdyb3VwSWQgPSBlbXB0eVN0cmluZygp
KQogICAgICAgICA6IG1fcGVyc2lzdGVudElkKHBlcnNpc3RlbnRJZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5jcHAK
aW5kZXggMDFkMjkxZWI2Mjc1OTg4MWRmYjI2YzgyMjBhNWY5NTNkNWMxOGZhNS4uYzkwZmJiMDRj
NWUzZWEwODY5Zjg5NzE4YzI1NjQ2NDI0YjFjYmEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5jcHAKQEAgLTI0
Miw2ICsyNDIsOCBAQCB2b2lkIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwOjpzZXQoTWVkaWFD
b25zdHJhaW50VHlwZSBjb25zdHJhaW50VHlwZSwgc3RkOjpvcAogICAgIGNhc2UgTWVkaWFDb25z
dHJhaW50VHlwZTo6RmFjaW5nTW9kZToKICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRl
dmljZUlkOgogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZDoKKyAgICBjYXNl
IE1lZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJmYWNlOgorICAgIGNhc2UgTWVkaWFDb25z
dHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2U6CiAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpVbmtub3duOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7
CkBAIC0yNjksNiArMjcxLDggQEAgdm9pZCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcDo6c2V0
KE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUsIHN0ZDo6b3AKICAgICBjYXNlIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGU6CiAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpEZXZpY2VJZDoKICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6Cisg
ICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZToKKyAgICBjYXNlIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlOgogICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IGJyZWFrOwpAQCAtMjgxLDYgKzI4NSwxMiBAQCB2b2lkIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0
TWFwOjpzZXQoTWVkaWFDb25zdHJhaW50VHlwZSBjb25zdHJhaW50VHlwZSwgc3RkOjpvcAogICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RWNob0NhbmNlbGxhdGlvbjoKICAgICAgICAgbV9l
Y2hvQ2FuY2VsbGF0aW9uID0gV1RGTW92ZShjb25zdHJhaW50KTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZToKKyAgICAgICAgbV9k
aXNwbGF5U3VyZmFjZSA9IFdURk1vdmUoY29uc3RyYWludCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2U6CisgICAgICAgIG1fbG9n
aWNhbFN1cmZhY2UgPSBXVEZNb3ZlKGNvbnN0cmFpbnQpOworICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6CiAgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpIZWlnaHQ6CkBAIC0zMTksNiArMzI5LDggQEAgdm9pZCBNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcDo6c2V0KE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUsIHN0ZDo6
b3AKICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZToKICAgICBjYXNlIE1l
ZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6
OkVjaG9DYW5jZWxsYXRpb246CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5
U3VyZmFjZToKKyAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlOgog
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCmluZGV4IDRjOTY5NjkxNWUx
MzIzYTc5MDZiMjQ2N2NmZjRlMTA2ZmIxMmU1ZDcuLjQxZTBlNzY5NjkxN2U1MGI0MWYxYjU4NGY1
ZWEwZmY0ZmViN2EyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhQ29uc3RyYWludHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgKQEAgLTU5Myw2ICs1OTMsOCBAQCBwdWJsaWM6
CiAgICAgc3RkOjpvcHRpb25hbDxEb3VibGVDb25zdHJhaW50PiB2b2x1bWUoKSBjb25zdCB7IHJl
dHVybiBtX3ZvbHVtZTsgfQogCiAgICAgc3RkOjpvcHRpb25hbDxCb29sZWFuQ29uc3RyYWludD4g
ZWNob0NhbmNlbGxhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZWNob0NhbmNlbGxhdGlvbjsgfQor
ICAgIHN0ZDo6b3B0aW9uYWw8Qm9vbGVhbkNvbnN0cmFpbnQ+IGRpc3BsYXlTdXJmYWNlKCkgY29u
c3QgeyByZXR1cm4gbV9kaXNwbGF5U3VyZmFjZTsgfQorICAgIHN0ZDo6b3B0aW9uYWw8Qm9vbGVh
bkNvbnN0cmFpbnQ+IGxvZ2ljYWxTdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsU3Vy
ZmFjZTsgfQogCiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmdDb25zdHJhaW50PiBmYWNpbmdNb2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9mYWNpbmdNb2RlOyB9CiAgICAgc3RkOjpvcHRpb25hbDxTdHJp
bmdDb25zdHJhaW50PiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSWQ7IH0KQEAg
LTYxMCw2ICs2MTIsOCBAQCBwdWJsaWM6CiAgICAgICAgIGVuY29kZXIgPDwgbV92b2x1bWU7CiAK
ICAgICAgICAgZW5jb2RlciA8PCBtX2VjaG9DYW5jZWxsYXRpb247CisgICAgICAgIGVuY29kZXIg
PDwgbV9kaXNwbGF5U3VyZmFjZTsKKyAgICAgICAgZW5jb2RlciA8PCBtX2xvZ2ljYWxTdXJmYWNl
OwogCiAgICAgICAgIGVuY29kZXIgPDwgbV9mYWNpbmdNb2RlOwogICAgICAgICBlbmNvZGVyIDw8
IG1fZGV2aWNlSWQ7CkBAIC02MzcsNiArNjQxLDEwIEBAIHB1YmxpYzoKIAogICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKG1hcC5tX2VjaG9DYW5jZWxsYXRpb24pKQogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYXAubV9kaXNw
bGF5U3VyZmFjZSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1hcC5tX2xvZ2ljYWxTdXJmYWNlKSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYXAubV9m
YWNpbmdNb2RlKSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC02NTksNiAr
NjY3LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPERvdWJsZUNvbnN0cmFpbnQ+IG1f
dm9sdW1lOwogCiAgICAgc3RkOjpvcHRpb25hbDxCb29sZWFuQ29uc3RyYWludD4gbV9lY2hvQ2Fu
Y2VsbGF0aW9uOworICAgIHN0ZDo6b3B0aW9uYWw8Qm9vbGVhbkNvbnN0cmFpbnQ+IG1fZGlzcGxh
eVN1cmZhY2U7CisgICAgc3RkOjpvcHRpb25hbDxCb29sZWFuQ29uc3RyYWludD4gbV9sb2dpY2Fs
U3VyZmFjZTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nQ29uc3RyYWludD4gbV9mYWNpbmdN
b2RlOwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nQ29uc3RyYWludD4gbV9kZXZpY2VJZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1SZXF1ZXN0LmgKaW5kZXggYzU3MDJjMGQ3MjU3ZjI1MDBiMjhhZmY3YzE1OTVjYzNlYTRkZWQ3
Ni4uMjgwNGU4OTk0M2VlNzdkOGFlODA3NzYxYzU1OGQ1NDc2MmVhNmY3YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1
ZXN0LmgKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IE1l
ZGlhU3RyZWFtUmVxdWVzdCB7Ci0gICAgZW51bSBjbGFzcyBUeXBlIHsgVXNlck1lZGlhIH07Cisg
ICAgZW51bSBjbGFzcyBUeXBlIHsgVXNlck1lZGlhLCBEaXNwbGF5TWVkaWEgfTsKICAgICBUeXBl
IHR5cGU7CiAgICAgTWVkaWFDb25zdHJhaW50cyBhdWRpb0NvbnN0cmFpbnRzOwogICAgIE1lZGlh
Q29uc3RyYWludHMgdmlkZW9Db25zdHJhaW50czsKQEAgLTY0LDcgKzY0LDcgQEAgc3RydWN0IE1l
ZGlhU3RyZWFtUmVxdWVzdCB7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBNZWRpYVN0
cmVhbVJlcXVlc3QgewotICAgIGVudW0gY2xhc3MgVHlwZSB7IFVzZXJNZWRpYSB9OworICAgIGVu
dW0gY2xhc3MgVHlwZSB7IFVzZXJNZWRpYSwgRGlzcGxheU1lZGlhIH07CiAgICAgVHlwZSB0eXBl
OwogfTsKIApAQCAtNzcsNyArNzcsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0PiB7CiAgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0
OjpUeXBlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJN
ZWRpYQorICAgICAgICBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRp
YSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVk
aWEKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA2YzAzNzYyYWVhY2Rh
ZTEzY2YwYTFlOTE3MTIzYWZjZGUyNjExN2IzLi42YzA4OWQwMjM0NmFhMzkwMTIwZDc2YjlhZmMx
MTVkN2FmZWNkNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMzYxLDEwICszNjEsOSBA
QCBkb3VibGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Zml0bmVzc0Rpc3RhbmNlKGNvbnN0IE1lZGlh
Q29uc3RyYWludCYgY29uc3RyYWludCkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2Fz
ZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZDogeworICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6RGV2aWNlSWQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICBicmVhazsKLSAgICB9CiAKICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6
IHsKICAgICAgICAgQVNTRVJUKGNvbnN0cmFpbnQuaXNTdHJpbmcoKSk7CkBAIC0zNzUsNiArMzc0
LDEwIEBAIGRvdWJsZSBSZWFsdGltZU1lZGlhU291cmNlOjpmaXRuZXNzRGlzdGFuY2UoY29uc3Qg
TWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJmYWNlOgorICAgIGNhc2UgTWVk
aWFDb25zdHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2U6CisgICAgICAgIGJyZWFrOworCiAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpVbmtub3duOgogICAgICAgICAvLyBVbmtub3duIChv
ciB1bnN1cHBvcnRlZCkgY29uc3RyYWludHMgc2hvdWxkIGJlIGlnbm9yZWQuCiAgICAgICAgIGJy
ZWFrOwpAQCAtNTE0LDYgKzUxNywxMSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5
Q29uc3RyYWludChjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpCiAgICAgICAgIC8v
IFRoZXJlIGlzIG5vdGhpbmcgdG8gZG8gaGVyZSwgbmVpdGhlciBjYW4gYmUgY2hhbmdlZC4KICAg
ICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJm
YWNlOgorICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2U6CisgICAg
ICAgIEFTU0VSVChjb25zdHJhaW50LmlzQm9vbGVhbigpKTsKKyAgICAgICAgYnJlYWs7CisKICAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246CiAgICAgICAgIGJyZWFrOwogICAg
IH0KQEAgLTcwNSw2ICs3MTMsMTUgQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzdXBwb3J0
c0NvbnN0cmFpbnQoY29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KQogICAgICAgICBy
ZXR1cm4gY2FwYWJpbGl0aWVzLnN1cHBvcnRzRGV2aWNlSWQoKTsKICAgICAgICAgYnJlYWs7CiAK
KyAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJmYWNlOgorICAgIGNhc2Ug
TWVkaWFDb25zdHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2U6CisgICAgICAgIC8vIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi9zY3JlZW4tY2FwdHVyZS8jbmV3LWNvbnN0cmFpbnRzLWZvci1jYXB0dXJl
ZC1kaXNwbGF5LXN1cmZhY2VzCisgICAgICAgIC8vIDUuMi4xIE5ldyBDb25zdHJhaW50cyBmb3Ig
Q2FwdHVyZWQgRGlzcGxheSBTdXJmYWNlcworICAgICAgICAvLyBTaW5jZSB0aGUgc291cmNlIG9m
IG1lZGlhIGNhbm5vdCBiZSBjaGFuZ2VkIGFmdGVyIGEgTWVkaWFTdHJlYW1UcmFjayBoYXMgYmVl
biByZXR1cm5lZCwKKyAgICAgICAgLy8gdGhlc2UgY29uc3RyYWludHMgY2Fubm90IGJlIGNoYW5n
ZWQgYnkgYW4gYXBwbGljYXRpb24uCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJl
YWs7CisKICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246CiAgICAgICAgIC8v
IFVua25vd24gKG9yIHVuc3VwcG9ydGVkKSBjb25zdHJhaW50cyBzaG91bGQgYmUgaWdub3JlZC4K
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGI4
MWJiZmVlN2YwODk3YzMwNzQ3OWI1Y2EwMjMzN2U0OTU1ZTY3MzguLjg0NDM0NDU3NDQ2ZmI5YzBh
ZTYxNzEwYjcyZTQ5M2UxNWQyNTMxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwCkBAIC0yNjIsNiArMjYyLDE0IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsCiAgICAgICAg
ICAgICAgICAgICAgIGF1ZGlvRGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVy
ZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZX0pOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2Ny
ZWVuOgorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkFwcGxpY2F0aW9u
OgorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAg
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpCcm93c2VyOgorICAgICAgICAgICAg
QVNTRVJUKHJlcXVlc3QudHlwZSA9PSBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlN
ZWRpYSk7CisgICAgICAgICAgICBBU1NFUlQocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLm1hbmRh
dG9yeUNvbnN0cmFpbnRzLmlzRW1wdHkoKSk7CisgICAgICAgICAgICBBU1NFUlQocmVxdWVzdC52
aWRlb0NvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMuaXNFbXB0eSgpKTsKKyAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25v
d246CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMzA5LDYgKzMxNywxMCBAQCBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdAogICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKICAgICAgICAgcmV0dXJuIGF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRCh0
eXBlLCBpZCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6U2NyZWVuOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXBwbGlj
YXRpb246CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpCcm93c2VyOgogICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAppbmRl
eCBiZTU2ZmIyNmI3ZDYxMTExZjhiNGZjYmY0M2M0ODViMTZhMjJjZWZkLi5kNjk4NjJkNGJkODY2
ZDgwYjNjYjdjNmZjMDY3NWZlMDM0MDYyNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MuaApAQCAtODksNiArODksMTQgQEAgcHVibGljOgogICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZ3JvdXBJZCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3JvdXBJZDsgfQogICAgIHZvaWQgc2V0R3Jv
dXBJZChjb25zdCBBdG9taWNTdHJpbmcmIGdyb3VwSWQpIHsgbV9ncm91cElkID0gZ3JvdXBJZDsg
fQogCisgICAgYm9vbCBzdXBwb3J0c0Rpc3BsYXlTdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9z
dXBwb3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0c0Rpc3BsYXlTdXJmYWNlKCk7IH0KKyAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGRpc3BsYXlTdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5
U3VyZmFjZTsgfQorICAgIHZvaWQgc2V0RGlzcGxheVN1cmZhY2UoY29uc3QgQXRvbWljU3RyaW5n
JiBkaXNwbGF5U3VyZmFjZSkgeyBtX2Rpc3BsYXlTdXJmYWNlID0gZGlzcGxheVN1cmZhY2U7IH0K
KworICAgIGJvb2wgc3VwcG9ydHNMb2dpY2FsU3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vw
cG9ydGVkQ29uc3RyYWludHMuc3VwcG9ydHNMb2dpY2FsU3VyZmFjZSgpOyB9CisgICAgYm9vbCBs
b2dpY2FsU3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFN1cmZhY2U7IH0KKyAgICB2
b2lkIHNldExvZ2ljYWxTdXJmYWNlKGJvb2wgbG9naWNhbFN1cmZhY2UpIHsgbV9sb2dpY2FsU3Vy
ZmFjZSA9IGxvZ2ljYWxTdXJmYWNlOyB9CisKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
U3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1
cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50czsgfQogICAgIHZvaWQgc2V0U3VwcG9ydGVkQ29uc3Ry
YWludHMoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBw
b3J0ZWRDb25zdHJhaW50cykgeyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzID0gc3VwcG9ydGVkQ29u
c3RyYWludHM7IH0KIApAQCAtMTEzLDYgKzEyMSw5IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3Ry
aW5nIG1fZ3JvdXBJZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsKIAorICAgIEF0b21pY1N0
cmluZyBtX2Rpc3BsYXlTdXJmYWNlOworICAgIGJvb2wgbV9sb2dpY2FsU3VyZmFjZSB7IDAgfTsK
KwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cy5jcHAKaW5kZXggNTcxNTZkNWU5YjExMDRlYzQxNWI4NWM4NDUx
NjczNDdkYTY1YjliYi4uNjA1ZDM4ODdjYjRjMmUzMDZjY2ZmODMxMzhkZTUzZjMwYmNkMDM0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWlu
dHMuY3BwCkBAIC02MSw2ICs2MSwxMCBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50czo6c3VwcG9ydHNDb25zdHJhaW50KE1lZGlhQ29uc3RyYWludAogICAgICAg
ICByZXR1cm4gc3VwcG9ydHNEZXZpY2VJZCgpOwogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6R3JvdXBJZDoKICAgICAgICAgcmV0dXJuIHN1cHBvcnRzR3JvdXBJZCgpOworICAgIGNhc2Ug
TWVkaWFDb25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2U6CisgICAgICAgIHJldHVybiBzdXBw
b3J0c0Rpc3BsYXlTdXJmYWNlKCk7CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dp
Y2FsU3VyZmFjZToKKyAgICAgICAgcmV0dXJuIHN1cHBvcnRzTG9naWNhbFN1cmZhY2UoKTsKICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25z
dHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgKaW5kZXggNDA0MGUzNDU4ODk3NjFhNTg2
OGRkZDliNzdiYzQ2ZTJhNTI5NjQ2Zi4uNTNmOGUyNTIyYjMxYTExZjU3ODRlOThkMjBkYTdjMjU1
MTk1NTQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENv
bnN0cmFpbnRzLmgKQEAgLTQ5LDcgKzQ5LDkgQEAgZW51bSBjbGFzcyBNZWRpYUNvbnN0cmFpbnRU
eXBlIHsKICAgICBTYW1wbGVTaXplLAogICAgIEVjaG9DYW5jZWxsYXRpb24sCiAgICAgRGV2aWNl
SWQsCi0gICAgR3JvdXBJZAorICAgIEdyb3VwSWQsCisgICAgRGlzcGxheVN1cmZhY2UsCisgICAg
TG9naWNhbFN1cmZhY2UsCiB9OwogCiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMgewpAQCAtOTEsNiArOTMsMTIgQEAgcHVibGljOgogICAgIGJvb2wgc3VwcG9y
dHNHcm91cElkKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c0dyb3VwSWQ7IH0KICAgICB2b2lk
IHNldFN1cHBvcnRzR3JvdXBJZChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNHcm91cElkID0gdmFs
dWU7IH0KIAorICAgIGJvb2wgc3VwcG9ydHNEaXNwbGF5U3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc3VwcG9ydHNEaXNwbGF5U3VyZmFjZTsgfQorICAgIHZvaWQgc2V0U3VwcG9ydHNEaXNwbGF5
U3VyZmFjZShib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNEaXNwbGF5U3VyZmFjZSA9IHZhbHVlOyB9
CisKKyAgICBib29sIHN1cHBvcnRzTG9naWNhbFN1cmZhY2UoKSBjb25zdCB7IHJldHVybiBtX3N1
cHBvcnRzTG9naWNhbFN1cmZhY2U7IH0KKyAgICB2b2lkIHNldFN1cHBvcnRzTG9naWNhbFN1cmZh
Y2UoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRzTG9naWNhbFN1cmZhY2UgPSB2YWx1ZTsgfQorCiAg
ICAgYm9vbCBzdXBwb3J0c0NvbnN0cmFpbnQoTWVkaWFDb25zdHJhaW50VHlwZSkgY29uc3Q7CiAK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CkBAIC0xMDgsNiArMTE2LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc3VwcG9ydHNFY2hvQ2Fu
Y2VsbGF0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fc3VwcG9ydHNEZXZpY2VJZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3N1cHBvcnRzR3JvdXBJZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N1
cHBvcnRzRGlzcGxheVN1cmZhY2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdXBwb3J0c0xvZ2lj
YWxTdXJmYWNlIHsgZmFsc2UgfTsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CkBAIC0x
MjMsNyArMTMzLDkgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWlu
dHM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICA8PCBtX3N1cHBvcnRz
U2FtcGxlU2l6ZQogICAgICAgICA8PCBtX3N1cHBvcnRzRWNob0NhbmNlbGxhdGlvbgogICAgICAg
ICA8PCBtX3N1cHBvcnRzRGV2aWNlSWQKLSAgICAgICAgPDwgbV9zdXBwb3J0c0dyb3VwSWQ7Cisg
ICAgICAgIDw8IG1fc3VwcG9ydHNHcm91cElkCisgICAgICAgIDw8IG1fc3VwcG9ydHNEaXNwbGF5
U3VyZmFjZQorICAgICAgICA8PCBtX3N1cHBvcnRzTG9naWNhbFN1cmZhY2U7CiB9CiAKIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+CkBAIC0xMzksNyArMTUxLDkgQEAgYm9vbCBSZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWFs
dGltZU0KICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c1Nh
bXBsZVNpemUpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLm1fc3VwcG9y
dHNFY2hvQ2FuY2VsbGF0aW9uKQogICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50
cy5tX3N1cHBvcnRzRGV2aWNlSWQpCi0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFp
bnRzLm1fc3VwcG9ydHNHcm91cElkKTsKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3Ry
YWludHMubV9zdXBwb3J0c0dyb3VwSWQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0
cmFpbnRzLm1fc3VwcG9ydHNEaXNwbGF5U3VyZmFjZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUoY29uc3RyYWludHMubV9zdXBwb3J0c0xvZ2ljYWxTdXJmYWNlKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMu
Y3BwCmluZGV4IDM4NmNlNTM2YTdjY2UxYjBmYTE5ZTZlOGViMTRkYjdjYjNkMjA3NGUuLjVlYTdh
OTMyYzljOTI5Mzk5ZDdhMGI4NzdiNTZmMjVlZDEzNmJmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKQEAgLTUzLDggKzUzLDEzIEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CiAgICAgICAg
ICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVu
dElkKCksIGNvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKICAgICAg
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OkFwcGxpY2F0aW9uOgorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpCcm93c2VyOgorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVu
a25vd246ICAgICAgICAKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMWVjODZiYmVjZDMz
ZjE1N2RiYzU4ZmQ2OTM0ODJjZjFmY2EwZGZkOC4uZGJhNWExMDgxZGE5ZGViMjE5YjMwNGQxNTU0
NWQ4YmM0NTcyYWFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTYwLDYgKzYwLDExIEBAIHB1Ymxp
YzoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVy
c2lzdGVudElkKCksIGRldmljZS5sYWJlbCgpLCBjb25zdHJhaW50cyk7CiAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoK
KyAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBcHBsaWNhdGlvbjoKKyAg
ICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QnJvd3NlcjoKICAgICAgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgogICAgICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4
IGNkYWJiNmZkZDg2MTM5N2MxZDVjZGZjNDZjYWE0YWVlZDIwZjAxMWYuLjcwMDRmMGQzMDIzNzFk
ZjM2MWI2NzBiNzU5YWM2NTc4MjY5MTNkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMTEyLDYgKzExMiw5IEBAIEludGVybmFsU2V0dGluZ3M6
OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKICAgICAsIG1fd2ViR1BVRW5hYmxl
ZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkdQVUVuYWJsZWQo
KSkKICNlbmRpZgogICAgICwgbV93ZWJWUkVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS53ZWJWUkVuYWJsZWQoKSkKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgICwgbV9zZXRTY3JlZW5DYXB0dXJlRW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnNjcmVlbkNhcHR1cmVFbmFibGVkKCkpCisjZW5kaWYKICAgICAs
IG1fc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eShSZW5kZXJUaGVtZTo6
c2luZ2xldG9uKCkuc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSgpKQog
I2lmIFVTRShBVURJT19TRVNTSU9OKQogICAgICwgbV9zaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25D
YXRlZ29yeShEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lv
bkNhdGVnb3J5KCkpCkBAIC0yMTAsNiArMjEzLDkgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpC
YWNrdXA6OnJlc3RvcmVUbyhTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJHUFVFbmFibGVkKG1fd2ViR1BVRW5hYmxl
ZCk7CiAjZW5kaWYKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnNldFdlYlZSRW5hYmxlZChtX3dlYlZSRW5hYmxlZCk7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNjcmVl
bkNhcHR1cmVFbmFibGVkKG1fc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQpOworI2VuZGlmCiAKICNp
ZiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNo
b3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KG1fc2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkpOwpAQCAtNzYyLDYgKzc2OCwxNSBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNl
dFdlYlZSRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJWUkVuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW50
ZXJuYWxTZXR0aW5nczo6c2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQoYm9vbCBlbmFibGVkKQorewor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5zZXRTY3JlZW5DYXB0dXJlRW5hYmxlZChlbmFibGVkKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworI2VuZGlmCit9CisKIEV4Y2VwdGlvbk9yPFN0cmlu
Zz4gSW50ZXJuYWxTZXR0aW5nczo6dXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSgpCiB7CiAg
ICAgaWYgKCFtX3BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CmluZGV4IGFiNjQxMmIxYzg3MzRhZDI3YWVmNTViZTk0NWNiMmNlNTdjZjg3OTIuLjdkNzdmZjVh
NjJkNTg5MTMwYmJiOTY0YjQ4YzQ1YTkyZTZmOWIwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xMjMsNiArMTIzLDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIHNldFdlYkdMMkVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0V2Vi
R1BVRW5hYmxlZChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJWUkVuYWJsZWQoYm9vbCk7
CisgICAgc3RhdGljIHZvaWQgc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQoYm9vbCk7CiAKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdlKik7CkBAIC0yMDMsNiArMjA0
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBtX3dlYkdMMkVuYWJsZWQ7CiAgICAgICAgIGJv
b2wgbV93ZWJHUFVFbmFibGVkOwogICAgICAgICBib29sIG1fd2ViVlJFbmFibGVkOworICAgICAg
ICBib29sIG1fc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQ7CiAgICAgICAgIAogICAgICAgICBib29s
IG1fc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eTsKICNpZiBVU0UoQVVE
SU9fU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
CmluZGV4IDExYmI5YzdkN2RjZmY4MzQwYWVlMTc1YzIzNGNiNDFiMDhkNjVkNjYuLmQwN2U2NmVi
Njk3ZWEyYTk5MTE5MWUzZTI1ZWRlZDY1NzE4YmYxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtOTIsNiArOTIsNyBAQCBlbnVtIEZvbnRMb2Fk
VGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJGYWlsdXJlIiB9OwogICAgIHZvaWQg
c2V0V2ViR0wyRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogICAgIHZvaWQgc2V0V2ViR1BVRW5h
YmxlZChib29sZWFuIGVuYWJsZWQpOwogICAgIHZvaWQgc2V0V2ViVlJFbmFibGVkKGJvb2xlYW4g
ZW5hYmxlZCk7CisgICAgdm9pZCBzZXRTY3JlZW5DYXB0dXJlRW5hYmxlZChib29sZWFuIGVuYWJs
ZWQpOwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgdXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeSgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRVc2VySW50
ZXJmYWNlRGlyZWN0aW9uUG9saWN5KERPTVN0cmluZyBwb2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggNTQ1MjQzNTA4Mzc1OTBiNWE5MWE2MGJlYTY3
YmQ4NjUzMDZlMmRiNS4uOWI1ZjRmMjIwZTU5N2NlZjg3ZGVmMGRjODUyODkzZjI2NjU2MjcwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC00ODYsNiArNDg2
LDEyIEBAIE1lZGlhU3RyZWFtRW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCitTY3JlZW5D
YXB0dXJlRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIHdl
YmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGNvbmRpdGlvbjogRU5BQkxF
KE1FRElBX1NUUkVBTSkKKwogUGVlckNvbm5lY3Rpb25FbmFibGVkOgogICB0eXBlOiBib29sCiAg
IGRlZmF1bHRWYWx1ZTogV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OndlYlJUQ0F2YWlsYWJs
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzLm1tCmluZGV4IGNmNjkyY2NkMGY5NTk3MGExYmZjNzUxY2VjYjk1YmE4MzI4ZDI4N2UuLmYy
MTVhZDZlY2JlODQzYjg4NGRiZWRlZGRjMTUwMTQ0ZDBjNmI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC01ODIsNiAr
NTgyLDE2IEBAIHN0YXRpYyBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRN
ZWRpYURldmljZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCistIChCT09MKV9zY3JlZW5DYXB0dXJl
RW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPnNjcmVlbkNhcHR1cmVFbmFibGVk
KCk7Cit9CisKKy0gKHZvaWQpX3NldFNjcmVlbkNhcHR1cmVFbmFibGVkOihCT09MKWVuYWJsZWQK
K3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldFNjcmVlbkNhcHR1cmVFbmFibGVkKGVuYWJsZWQpOwor
fQorCiAtIChCT09MKV9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9w
cmVmZXJlbmNlcy0+bW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApp
bmRleCA2YTE4ODA2ZjAzYWM3MGVkMjk1MzkyMzM5ODg3NWRhOTVlZDBkZTYwLi5jM2MwZGJhMGQy
ZjBiYTlhNGUyZDUxYjYwYjIxZjA2ZmNjMzViMTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMTA0
LDYgKzEwNCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tKYXZhU2NyaXB0
UnVudGltZUZsYWdzKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBlZXJD
b25uZWN0aW9uRW5hYmxlZDopIEJPT0wgX3BlZXJDb25uZWN0aW9uRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhRGV2aWNlc0VuYWJsZWQ6KSBCT09MIF9tZWRpYURl
dmljZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcmVlbkNhcHR1cmVFbmFibGVkOikg
Qk9PTCBfc2NyZWVuQ2FwdHVyZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19NQUNfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkOikgQk9PTCBfbW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNb2NrQ2FwdHVyZURldmljZXNQcm9tcHRFbmFibGVk
OikgQk9PTCBfbW9ja0NhcHR1cmVEZXZpY2VzUHJvbXB0RW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbjopIEJP
T0wgX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA3YTU0
Nzk1ZTE4ZTBlNGMxYjlmYzcxMGU1YjFlZWI5ZTNmMDkxYmNlLi5hZWFkMjVkYjgzNGFiZjljYzg5
MjNhZDEzZjhlMzM3YzZhYjA2YTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTIyNCw2ICsy
MjQsOCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVz
dFJ1bm5lcihXZWJQYWdlR3JvdXBQcm94eSogcGFnZQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgaWYgKHByZWZlcmVuY2UgPT0gIldlYktpdE1lZGlhRGV2aWNlc0VuYWJsZWQiKQogICAg
ICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldE1lZGlhRGV2
aWNlc0VuYWJsZWQoZW5hYmxlZCk7CisgICAgaWYgKHByZWZlcmVuY2UgPT0gIldlYktpdFNjcmVl
bkNhcHR1cmVFbmFibGVkIikKKyAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zZXRTY3JlZW5DYXB0dXJlRW5hYmxlZChlbmFibGVkKTsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmQ2NWU5NjJmMjNlMGU1Y2NlYThjYTk2NDVjOWE2
NDY4NWU5NTFhYi4uMzA1NjQ1ZmI2NDRhN2NkNzdjOTUwYjJjOGE5OWIyOWNhNDBjYzMxOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTEyLTIwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gQWRkIHNjcmVlbiBjYXB0dXJl
IElETCBhbmQgc3R1YiBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4MTA3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU1NTUxODQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1kaXNhYmxlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3NjcmVlbmNhcHR1cmUtZW5hYmxlZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2Fw
dHVyZS1lbmFibGVkLmh0bWw6IEFkZGVkLgorCiAyMDE3LTEyLTIwICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSBpbiBNZXNzYWdl
UG9ydDo6Y29udGV4dERlc3Ryb3llZCBpbiBodHRwL3Rlc3RzL3NlY3VyaXR5L01lc3NhZ2VQb3J0
L2V2ZW50LWxpc3RlbmVyLWNvbnRleHQuaHRtbCwgdXN1YWxseSBhdHRyaWJ1dGVkIHRvIGxhdGVy
IHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5j
YXB0dXJlLWRpc2FibGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vc2NyZWVuY2FwdHVyZS1kaXNhYmxlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ1ZWQ1
NDEzY2UxZWMwM2YyY2UyZDJkN2IzYjNiMWNkYzg4MTVmZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1kaXNhYmxlZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIHVuZGVmaW5lZCBpcyB1bmRlZmluZWQuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2FwdHVyZS1kaXNh
YmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0dXJlLWRp
c2FibGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI3ZWFjNGI4NWUwNzRkMzE2YjU0MWViNjFmY2Q4NGQy
Y2U0MDc1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
c2NyZWVuY2FwdHVyZS1kaXNhYmxlZC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgd2luZG93
LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQo
ZmFsc2UpOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzaG91bGRCZVVuZGVm
aW5lZChuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERpc3BsYXlNZWRpYSk7CisgICAgfQorCisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBydW5UZXN0LCBmYWxzZSk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyZWVuY2Fw
dHVyZS1lbmFibGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
c2NyZWVuY2FwdHVyZS1lbmFibGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzNkMDE4OWIy
YTY1MDAwNzdkYWMzZThmNmMzNWVmMGM2ZTY2YTMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0dXJlLWVuYWJsZWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorUEFTUyBmdW5jdGlvbiBnZXREaXNwbGF5TWVkaWEoKSB7CisgICAg
W25hdGl2ZSBjb2RlXQorfSBpcyBkZWZpbmVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL3NjcmVlbmNhcHR1cmUtZW5hYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0dXJlLWVuYWJsZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ODc4OGM4YjA4ZmFhOWQ2ZWUwN2E5MTYyOWY4M2M1OTY1YmU3OGI4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0dXJlLWVuYWJsZWQuaHRt
bApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIHNob3VsZEJlRGVmaW5lZChuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldERpc3BsYXlNZWRpYSk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBydW5UZXN0LCBmYWxzZSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>