<?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>172132</bug_id>
          
          <creation_ts>2017-05-15 13:47:33 -0700</creation_ts>
          <short_desc>Remove MediaConstraintsData and MediaConstraintsImpl</short_desc>
          <delta_ts>2017-05-16 01:51:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308778</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-15 13:47:33 -0700</bug_when>
    <thetext>They are not useful as MediaConstraints could really be MediaConstraintsData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308796</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-15 14:22:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/32206810&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308797</commentid>
    <comment_count>2</comment_count>
      <attachid>310164</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-15 14:22:26 -0700</bug_when>
    <thetext>Created attachment 310164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308803</commentid>
    <comment_count>3</comment_count>
      <attachid>310166</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-15 14:27:54 -0700</bug_when>
    <thetext>Created attachment 310166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308852</commentid>
    <comment_count>4</comment_count>
      <attachid>310178</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-15 16:33:55 -0700</bug_when>
    <thetext>Created attachment 310178
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308966</commentid>
    <comment_count>5</comment_count>
      <attachid>310178</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 21:12:38 -0700</bug_when>
    <thetext>Comment on attachment 310178
Patch for landing

Rejecting attachment 310178 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 310178, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
 file Source/WebKit2/UIProcess/WebPageProxy.cpp
patching file Source/WebKit2/UIProcess/WebPageProxy.h
patching file Source/WebKit2/UIProcess/WebPageProxy.messages.in
patching file Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp
patching file Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp
Hunk #2 succeeded at 279 (offset -19 lines).

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/3748090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308992</commentid>
    <comment_count>6</comment_count>
      <attachid>310228</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-15 22:46:34 -0700</bug_when>
    <thetext>Created attachment 310228
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309006</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 23:39:49 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 310228:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309009</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 23:39:57 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 310228:

media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html bug 168317 (author: graouts@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309038</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 00:25:58 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 310228:

http/tests/misc/acid3.html bug 165734 (authors: abecsi@webkit.org, arv@chromium.org, cdumez@apple.com, rniwa@webkit.org, and tonyg@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309039</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 00:25:58 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 310228:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309071</commentid>
    <comment_count>11</comment_count>
      <attachid>310228</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 01:51:54 -0700</bug_when>
    <thetext>Comment on attachment 310228
Patch for landing

Clearing flags on attachment: 310228

Committed r216918: &lt;http://trac.webkit.org/changeset/216918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309072</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 01:51:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310164</attachid>
            <date>2017-05-15 14:22:26 -0700</date>
            <delta_ts>2017-05-15 14:27:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172132-20170515142225.patch</filename>
            <type>text/plain</type>
            <size>71721</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRlNzlmODZmNTk0NzQ0
ZjAyN2M0NGMwYmI3NmUxZjVkZTg5OTAwNi4uNTU0NWU2OTQ3Mjc5YjFjOWQzYWYyZWViMmIyODc0
YmRiNzI0Mjg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE3LTA1LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTWVkaWFDb25z
dHJhaW50c0RhdGEgYW5kIE1lZGlhQ29uc3RyYWludHNJbXBsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhh
dmlvci4KKworICAgICAgICBSZW1vdmluZyBNZWRpYUNvbnN0cmFpbnRzRGF0YSBhbmQgTWVkaWFD
b25zdHJhaW50c0ltcGwgYWxsb3dzIHNpbXBsaWZ5aW5nIHRoZSBjb2RlLgorICAgICAgICBGdXJ0
aGVyIHNpbXBsaWZpZWQgdGhlIGNvZGUgYnkgbWFraW5nIE1lZGlhQ29uc3RyYWludHMgbm8gbG9u
Z2VyIHJlZiBjb3VudGVkIGFuZCBub3cgYSBzdHJ1Y3QuCisgICAgICAgIFNpbXBsaWZpZWQgc29t
ZSBSZWFsdGltZU1lZGlhU291cmNlIHN1YmNsYXNzZXMgYnkgcmVtb3ZpbmcgdW51c2VkIE1lZGlh
Q29uc3RyYWludHMgY2xhc3MgbWVtYmVycy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVNZWRpYUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6
Z2V0VXNlck1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHNJ
bXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVkaWFDb25zdHJhaW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjphcHBseUNvbnN0cmFpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpV
c2VyTWVkaWFSZXF1ZXN0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0OjpVc2VyTWVkaWFSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVl
c3Q6OmFsbG93KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvQ29uc3RyYWlu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6dmlkZW9Db25zdHJhaW50
cyk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWRkRGVmYXVsdFZpZGVvQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50czo6aXNDb25zdHJhaW50U2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHM6OnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzOjp+TWVkaWFDb25zdHJhaW50cyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzOjpNZWRpYUNvbnN0cmFpbnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFs
aWRhdGlvbkNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2VsZWN0U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
c3VwcG9ydHNDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnN1
cHBvcnRlZENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnN1cHBvcnRlZENvbnN0
cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2U6OmNvbnN0cmFpbnRzKTogRGVsZXRlZC4KKwogMjAxNy0wNS0xNSAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsZSBsaW5lIGxheW91dDogTGVh
ZGluZyB3aGl0ZXNwYWNlIGZvbGxvd2VkIGJ5IGEgPGJyPiBwcm9kdWNlcyBhbiBleHRyYSBsaW5l
YnJlYWsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2IxOWZmNzFjN2VkODI2MzI5YzRkZTc0ZGY1ZmU3MjdkNmI0
YzE2ZC4uMjcwMWRkZWM2MDI5NGJhMmU4MTc4MDYxOTgyOWU3YjEzMTUyNDVlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA1LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTWVkaWFDb25zdHJhaW50c0RhdGEgYW5kIE1lZGlh
Q29uc3RyYWludHNJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzIxMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmluZyBNZWRpYUNvbnN0cmFpbnRzRGF0YSBhbmQgTWVkaWFDb25zdHJhaW50
c0ltcGwgYWxsb3dzIHNpbXBsaWZ5aW5nIHRoZSBjb2RlLgorICAgICAgICBGdXJ0aGVyIHNpbXBs
aWZpZWQgdGhlIGNvZGUgYnkgbWFraW5nIE1lZGlhQ29uc3RyYWludHMgbm8gbG9uZ2VyIHJlZiBj
b3VudGVkIGFuZCBub3cgYSBzdHJ1Y3QuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1l
ZGlhQ29uc3RyYWludHM+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1l
ZGlhQ29uc3RyYWludHM+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1l
ZGlhQ29uc3RyYWludHNEYXRhPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRzRGF0YT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNlbmRVc2VyTWVkaWFSZXF1ZXN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHMpOgorCiAyMDE3
LTA1LTE0ICBEYWV3b29uZyBKYW5nICA8ZGFld29vbmcuamFuZ0BuYXZlcmNvcnAuY29tPgogCiAg
ICAgICAgIFtDb29yZGluYXRlZEdyYXBoaWNzXSBSZW1vdmUgdW51c2VkIGZpbGVzIGFuZCBsaW5l
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNv
bnN0cmFpbnRzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhQ29uc3RyYWludHNJbXBsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZl
ZGJiNzExODczYjk0NTdjNGZkYjAxNzc0NDJlOGM2Y2U2NWJlNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqICAg
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0gKiAgICBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKLSAq
ICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotc3RhdGljIGlubGluZSB2b2lkIGFkZERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiB2aWRlb0NvbnN0cmFpbnRzLCBib29sIGFkZEZyYW1l
UmF0ZUNvbnN0cmFpbnQsIGJvb2wgYWRkU2l6ZUNvbnN0cmFpbnQsIGJvb2wgYWRkRmFjaW5nTW9k
ZUNvbnN0cmFpbnQpCi17Ci0gICAgaWYgKGFkZEZyYW1lUmF0ZUNvbnN0cmFpbnQpIHsKLSAgICAg
ICAgRG91YmxlQ29uc3RyYWludCBmcmFtZVJhdGVDb25zdHJhaW50KHsgfSwgTWVkaWFDb25zdHJh
aW50VHlwZTo6RnJhbWVSYXRlKTsKLSAgICAgICAgZnJhbWVSYXRlQ29uc3RyYWludC5zZXRJZGVh
bCgzMCk7Ci0gICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6
OkZyYW1lUmF0ZSwgV1RGTW92ZShmcmFtZVJhdGVDb25zdHJhaW50KSk7Ci0gICAgfQotICAgIGlm
IChhZGRTaXplQ29uc3RyYWludCkgewotICAgICAgICBJbnRDb25zdHJhaW50IHdpZHRoQ29uc3Ry
YWludCh7IH0sIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoKTsKLSAgICAgICAgd2lkdGhDb25z
dHJhaW50LnNldElkZWFsKDY0MCk7Ci0gICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0KE1lZGlh
Q29uc3RyYWludFR5cGU6OldpZHRoLCBXVEZNb3ZlKHdpZHRoQ29uc3RyYWludCkpOwotCi0gICAg
ICAgIEludENvbnN0cmFpbnQgaGVpZ2h0Q29uc3RyYWludCh7IH0sIE1lZGlhQ29uc3RyYWludFR5
cGU6OkhlaWdodCk7Ci0gICAgICAgIGhlaWdodENvbnN0cmFpbnQuc2V0SWRlYWwoNDgwKTsKLSAg
ICAgICAgdmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0LCBX
VEZNb3ZlKGhlaWdodENvbnN0cmFpbnQpKTsKLSAgICB9Ci0gICAgaWYgKGFkZEZhY2luZ01vZGVD
b25zdHJhaW50KSB7Ci0gICAgICAgIFN0cmluZ0NvbnN0cmFpbnQgZmFjaW5nTW9kZUNvbnN0cmFp
bnQoeyB9LCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlKTsKLSAgICAgICAgZmFjaW5n
TW9kZUNvbnN0cmFpbnQuc2V0SWRlYWwoQVNDSUlMaXRlcmFsKCJ1c2VyIikpOwotICAgICAgICB2
aWRlb0NvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlLCBXVEZN
b3ZlKGZhY2luZ01vZGVDb25zdHJhaW50KSk7Ci0gICAgfQotfQotCi1ib29sIE1lZGlhQ29uc3Ry
YWludHNEYXRhOjppc0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IE1lZGlh
VHJhY2tDb25zdHJhaW50U2V0TWFwJik+JiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKGNhbGxiYWNr
KG1hbmRhdG9yeUNvbnN0cmFpbnRzKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIGNvbnN0cmFpbnQgOiBhZHZhbmNlZENvbnN0cmFpbnRzKSB7Ci0gICAgICAg
IGlmIChjYWxsYmFjayhjb25zdHJhaW50KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgTWVkaWFDb25zdHJhaW50c0RhdGE6OnNl
dERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCkKLXsKLSAgICAvLyA2NDB4NDgwLCAzMGZwcywgZm9u
dC1mYWNpbmcgY2FtZXJhCi0gICAgYm9vbCBoYXNGcmFtZVJhdGVDb25zdHJhaW50cyA9IGlzQ29u
c3RyYWludFNldChbXShjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgY29uc3RyYWlu
dCkgewotICAgICAgICByZXR1cm4gISFjb25zdHJhaW50LmZyYW1lUmF0ZSgpOwotICAgIH0pOwot
Ci0gICAgYm9vbCBoYXNTaXplQ29uc3RyYWludHMgPSBpc0NvbnN0cmFpbnRTZXQoW10oY29uc3Qg
TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIGNvbnN0cmFpbnQpIHsKLSAgICAgICAgcmV0dXJu
ICEhY29uc3RyYWludC53aWR0aCgpIHx8ICEhY29uc3RyYWludC5oZWlnaHQoKTsKLSAgICB9KTsK
LQotICAgIGJvb2wgaGFzRmFjaW5nTW9kZUNvbnN0cmFpbnRzID0gaXNDb25zdHJhaW50U2V0KFtd
KGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBjb25zdHJhaW50KSB7Ci0gICAgICAg
IHJldHVybiAhIWNvbnN0cmFpbnQuZmFjaW5nTW9kZSgpOwotICAgIH0pOwotCi0gICAgaWYgKGhh
c0ZyYW1lUmF0ZUNvbnN0cmFpbnRzICYmIGhhc1NpemVDb25zdHJhaW50cyAmJiBoYXNGYWNpbmdN
b2RlQ29uc3RyYWludHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGFkZERlZmF1bHRWaWRlb0Nv
bnN0cmFpbnRzKG1hbmRhdG9yeUNvbnN0cmFpbnRzLCAhaGFzRnJhbWVSYXRlQ29uc3RyYWludHMs
ICFoYXNTaXplQ29uc3RyYWludHMsICFoYXNGYWNpbmdNb2RlQ29uc3RyYWludHMpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0
cmFpbnRzSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNv
bnN0cmFpbnRzSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGYxYWE0Y2Jk
NzY4NmU0ZTczMTU5MmZmNmI3ZTgwNTExYjk1ZGFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFDb25zdHJhaW50c0ltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogICAgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
ICogICAgZGlzdHJpYnV0aW9uLgotICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAqICAgIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcwotICogICAgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRl
ICJFeGNlcHRpb25CYXNlLmgiCi0jaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5oIgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdHJ1Y3QgTWVkaWFD
b25zdHJhaW50c0RhdGEgewotICAgIE1lZGlhQ29uc3RyYWludHNEYXRhKCkgPSBkZWZhdWx0Owot
ICAgIE1lZGlhQ29uc3RyYWludHNEYXRhKE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiYgbWFu
ZGF0b3J5Q29uc3RyYWludHMsIFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4mJiBh
ZHZhbmNlZENvbnN0cmFpbnRzLCBib29sIGlzVmFsaWQpCi0gICAgICAgIDogbWFuZGF0b3J5Q29u
c3RyYWludHMoV1RGTW92ZShtYW5kYXRvcnlDb25zdHJhaW50cykpCi0gICAgICAgICwgYWR2YW5j
ZWRDb25zdHJhaW50cyhXVEZNb3ZlKGFkdmFuY2VkQ29uc3RyYWludHMpKQotICAgICAgICAsIGlz
VmFsaWQoaXNWYWxpZCkKLSAgICB7Ci0gICAgfQotICAgIE1lZGlhQ29uc3RyYWludHNEYXRhKGNv
bnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50cywgY29uc3QgU3RyaW5nJiBoYXNo
U2FsdCkKLSAgICAgICAgOiBtYW5kYXRvcnlDb25zdHJhaW50cyhjb25zdHJhaW50cy5tYW5kYXRv
cnlDb25zdHJhaW50cykKLSAgICAgICAgLCBhZHZhbmNlZENvbnN0cmFpbnRzKGNvbnN0cmFpbnRz
LmFkdmFuY2VkQ29uc3RyYWludHMpCi0gICAgICAgICwgZGV2aWNlSURIYXNoU2FsdChoYXNoU2Fs
dCkKLSAgICAgICAgLCBpc1ZhbGlkKGNvbnN0cmFpbnRzLmlzVmFsaWQpCi0gICAgewotICAgIH0K
LSAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YShjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJh
aW50cykKLSAgICAgICAgOiBtYW5kYXRvcnlDb25zdHJhaW50cyhjb25zdHJhaW50cy5tYW5kYXRv
cnlDb25zdHJhaW50cygpKQotICAgICAgICAsIGFkdmFuY2VkQ29uc3RyYWludHMoY29uc3RyYWlu
dHMuYWR2YW5jZWRDb25zdHJhaW50cygpKQotICAgICAgICAsIGRldmljZUlESGFzaFNhbHQoY29u
c3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCgpKQotICAgICAgICAsIGlzVmFsaWQoY29uc3RyYWlu
dHMuaXNWYWxpZCgpKQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIHNldERlZmF1bHRWaWRlb0Nv
bnN0cmFpbnRzKCk7Ci0gICAgYm9vbCBpc0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5jdGlvbjxib29s
KGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJik+JiYpOwotCi0gICAgTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAgbWFuZGF0b3J5Q29uc3RyYWludHM7Ci0gICAgVmVjdG9yPE1lZGlh
VHJhY2tDb25zdHJhaW50U2V0TWFwPiBhZHZhbmNlZENvbnN0cmFpbnRzOwotICAgIFN0cmluZyBk
ZXZpY2VJREhhc2hTYWx0OwotICAgIGJvb2wgaXNWYWxpZCB7IGZhbHNlIH07Ci19OwotCi1jbGFz
cyBNZWRpYUNvbnN0cmFpbnRzSW1wbCBmaW5hbCA6IHB1YmxpYyBNZWRpYUNvbnN0cmFpbnRzIHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGUoTWVk
aWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmJiBtYW5kYXRvcnlDb25zdHJhaW50cywgVmVjdG9yPE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiYmIGFkdmFuY2VkQ29uc3RyYWludHMsIGJvb2wgaXNW
YWxpZCkgeyByZXR1cm4gY3JlYXRlKE1lZGlhQ29uc3RyYWludHNEYXRhKFdURk1vdmUobWFuZGF0
b3J5Q29uc3RyYWludHMpLCBXVEZNb3ZlKGFkdmFuY2VkQ29uc3RyYWludHMpLCBpc1ZhbGlkKSk7
IH0KLSAgICBzdGF0aWMgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGUoTWVkaWFDb25z
dHJhaW50c0RhdGEmJiBkYXRhKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhQ29uc3RyYWlu
dHNJbXBsKFdURk1vdmUoZGF0YSkpKTsgfQotCi0gICAgTWVkaWFDb25zdHJhaW50c0ltcGwoKSA9
IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB+TWVkaWFDb25zdHJhaW50c0ltcGwoKSA9IGRlZmF1bHQ7
Ci0KLSAgICBjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFuZGF0b3J5Q29uc3Ry
YWludHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RhdGEubWFuZGF0b3J5Q29uc3RyYWludHM7
IH0KLSAgICBjb25zdCBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+JiBhZHZhbmNl
ZENvbnN0cmFpbnRzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kYXRhLmFkdmFuY2VkQ29uc3Ry
YWludHM7IH0KLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RhdGEu
aXNWYWxpZDsgfQotCi0gICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9kYXRhLmRldmljZUlESGFzaFNhbHQ7IH0KLSAgICB2b2lkIHNldERl
dmljZUlESGFzaFNhbHQoY29uc3QgU3RyaW5nJiBzYWx0KSBmaW5hbCB7IG1fZGF0YS5kZXZpY2VJ
REhhc2hTYWx0ID0gc2FsdDsgfQotCi0gICAgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGRh
dGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KLSAgICB2b2lkIHNldERlZmF1bHRWaWRlb0Nv
bnN0cmFpbnRzKCkgeyBtX2RhdGEuc2V0RGVmYXVsdFZpZGVvQ29uc3RyYWludHMoKTsgfQotCi1w
cml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IE1lZGlhQ29uc3RyYWludHNJbXBs
KE1lZGlhQ29uc3RyYWludHNEYXRhJiYgZGF0YSkgOiBtX2RhdGEoV1RGTW92ZShkYXRhKSkgeyB9
Ci0KLSAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBtX2RhdGE7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDA1
NTA5NWRkN2M5YWFhMWI1MmIzZDdmYzg3NWM2YzRiNWQwYzYzZmEuLjM0ZjZiMjMwNDUwMDliODc2
NDIyNTFjMzQwZGY5MWRlZTA4MGMxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgotI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCiAjaW5jbHVkZSAiTWVkaWFE
ZXZpY2VzUmVxdWVzdC5oIgogI2luY2x1ZGUgIk1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3QuaCIKQEAgLTc0LDE0ICs3MywxNiBAQCBE
b2N1bWVudCogTWVkaWFEZXZpY2VzOjpkb2N1bWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25j
YXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCi1zdGF0aWMgUmVm
PE1lZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdCBW
YXJpYW50PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQorc3RhdGlj
IE1lZGlhQ29uc3RyYWludHMgY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdCBWYXJpYW50PGJv
b2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQogewogICAgIHJldHVybiBX
VEY6OnN3aXRjaE9uKGNvbnN0cmFpbnRzLAotICAgICAgICBbJl0gKGJvb2wgY29uc3RyYWludHMp
IHsKLSAgICAgICAgICAgIHJldHVybiBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKHsgfSwg
eyB9LCBjb25zdHJhaW50cyk7CisgICAgICAgIFsmXSAoYm9vbCBpc1ZhbGlkKSB7CisgICAgICAg
ICAgICBNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzOworICAgICAgICAgICAgY29uc3RyYWlu
dHMuaXNWYWxpZCA9IGlzVmFsaWQ7CisgICAgICAgICAgICByZXR1cm4gY29uc3RyYWludHM7CiAg
ICAgICAgIH0sCi0gICAgICAgIFsmXSAoY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykgewotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBs
KGNvbnN0cmFpbnRzKTsKKyAgICAgICAgWyZdIChjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludHMm
IHRyYWNrQ29uc3RyYWludHMpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVNZWRpYUNvbnN0
cmFpbnRzKHRyYWNrQ29uc3RyYWludHMpOwogICAgICAgICB9CiAgICAgKTsKIH0KQEAgLTkyLDEw
ICs5MywxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShj
b25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludAogICAgIGlmICghZG9jdW1lbnQpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwogCi0gICAgYXV0
byBhdWRpb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50c0ltcGwoY29uc3RyYWlu
dHMuYXVkaW8pOwotICAgIGF1dG8gdmlkZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3Ry
YWludHNJbXBsKGNvbnN0cmFpbnRzLnZpZGVvKTsKLSAgICBpZiAodmlkZW9Db25zdHJhaW50cy0+
aXNWYWxpZCgpKQotICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLT5zZXREZWZhdWx0VmlkZW9Db25z
dHJhaW50cygpOworICAgIGF1dG8gYXVkaW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3Ry
YWludHMoY29uc3RyYWludHMuYXVkaW8pOworICAgIGF1dG8gdmlkZW9Db25zdHJhaW50cyA9IGNy
ZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8pOworICAgIGlmICh2aWRlb0Nv
bnN0cmFpbnRzLmlzVmFsaWQpCisgICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0RGVmYXVsdFZp
ZGVvQ29uc3RyYWludHMoKTsKICAgICByZXR1cm4gVXNlck1lZGlhUmVxdWVzdDo6c3RhcnQoKmRv
Y3VtZW50LCBXVEZNb3ZlKGF1ZGlvQ29uc3RyYWludHMpLCBXVEZNb3ZlKHZpZGVvQ29uc3RyYWlu
dHMpLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMTc3ZWY3MmVh
ODZiMjVkNDFkYTAzM2U2Zjg5YWZhNWUyZmJjZDdlMy4uMGM1OTJhMzViZTU4NWY1MjY5MmRmOWMx
ZTRiYjk2NTY1ZjdjYTJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSlNPdmVy
Y29uc3RyYWluZWRFcnJvci5oIgotI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCisj
aW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKQEAgLTI0NiwxMSArMjQ2LDE0IEBAIE1lZGlhU3RyZWFtVHJhY2s6OlRyYWNrQ2FwYWJpbGl0
aWVzIE1lZGlhU3RyZWFtVHJhY2s6OmdldENhcGFiaWxpdGllcygpIGNvbnN0CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotc3RhdGljIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gY3JlYXRlTWVk
aWFDb25zdHJhaW50c0ltcGwoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29uc3RyYWlu
dHM+JiBjb25zdHJhaW50cykKK3N0YXRpYyBNZWRpYUNvbnN0cmFpbnRzIGNyZWF0ZU1lZGlhQ29u
c3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29uc3RyYWludHM+JiBjb25z
dHJhaW50cykKIHsKLSAgICBpZiAoIWNvbnN0cmFpbnRzKQotICAgICAgICByZXR1cm4gTWVkaWFD
b25zdHJhaW50c0ltcGw6OmNyZWF0ZSh7IH0sIHsgfSwgdHJ1ZSk7Ci0gICAgcmV0dXJuIGNyZWF0
ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzLnZhbHVlKCkpOworICAgIGlmICghY29u
c3RyYWludHMpIHsKKyAgICAgICAgTWVkaWFDb25zdHJhaW50cyB2YWxpZENvbnN0cmFpbnRzOwor
ICAgICAgICB2YWxpZENvbnN0cmFpbnRzLmlzVmFsaWQgPSB0cnVlOworICAgICAgICByZXR1cm4g
dmFsaWRDb25zdHJhaW50czsKKyAgICB9CisgICAgcmV0dXJuIGNyZWF0ZU1lZGlhQ29uc3RyYWlu
dHMoY29uc3RyYWludHMudmFsdWUoKSk7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6YXBw
bHlDb25zdHJhaW50cyhjb25zdCBzdGQ6Om9wdGlvbmFsPE1lZGlhVHJhY2tDb25zdHJhaW50cz4m
IGNvbnN0cmFpbnRzLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQpAQCAtMjY5
LDcgKzI3Miw3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50cyhjb25z
dCBzdGQ6Om9wdGlvbmFsPE1lZGlhVHJhY2tDb25zdHJhaW50CiAgICAgICAgIHdlYWtUaGlzLT5t
X3Byb21pc2UtPnJlc29sdmUoKTsKICAgICAgICAgd2Vha1RoaXMtPm1fY29uc3RyYWludHMgPSBj
b25zdHJhaW50cy52YWx1ZV9vcihNZWRpYVRyYWNrQ29uc3RyYWludHMgeyB9KTsKICAgICB9Owot
ICAgIG1fcHJpdmF0ZS0+YXBwbHlDb25zdHJhaW50cyhjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1w
bChjb25zdHJhaW50cyksIFdURk1vdmUoc3VjY2Vzc0hhbmRsZXIpLCBXVEZNb3ZlKGZhaWx1cmVI
YW5kbGVyKSk7CisgICAgbV9wcml2YXRlLT5hcHBseUNvbnN0cmFpbnRzKGNyZWF0ZU1lZGlhQ29u
c3RyYWludHMoY29uc3RyYWludHMpLCBXVEZNb3ZlKHN1Y2Nlc3NIYW5kbGVyKSwgV1RGTW92ZShm
YWlsdXJlSGFuZGxlcikpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmFkZE9ic2VydmVy
KE9ic2VydmVyJiBvYnNlcnZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcAppbmRleCBjNGM0Y2Yx
MjI2MGFlMjJlYTQ2YmQxYmEyNjI3N2NlNTk3M2QxMzkyLi4wODJhYjNkZTNjY2I1YWI3MWRjNjc0
Mzg5OGJmM2I4MDFlMjZhMThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCkBAIC0yNyw3ICsy
Nyw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiTWVkaWFDb25z
dHJhaW50c0ltcGwuaCIKKyNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMTkwLDkgKzE5MCw5IEBAIHN0YXRpYyBWZWN0b3I8TWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXA+IGNvbnZlcnRBZHZhbmNlZFRvSW50ZXJuYWxGb3JtKGNvbnN0IHN0
CiAgICAgcmV0dXJuIGNvbnZlcnRBZHZhbmNlZFRvSW50ZXJuYWxGb3JtKG9wdGlvbmFsVmVjdG9y
LnZhbHVlKCkpOwogfQogCi1SZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+IGNyZWF0ZU1lZGlhQ29u
c3RyYWludHNJbXBsKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyYgY29uc3RyYWludHMpCitN
ZWRpYUNvbnN0cmFpbnRzIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3QgTWVkaWFUcmFja0Nv
bnN0cmFpbnRzJiBjb25zdHJhaW50cykKIHsKLSAgICByZXR1cm4gTWVkaWFDb25zdHJhaW50c0lt
cGw6OmNyZWF0ZShjb252ZXJ0VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNldFR5cGU6Ok1hbmRh
dG9yeSwgY29uc3RyYWludHMpLCBjb252ZXJ0QWR2YW5jZWRUb0ludGVybmFsRm9ybShjb25zdHJh
aW50cy5hZHZhbmNlZCksIHRydWUpOworICAgIHJldHVybiB7IGNvbnZlcnRUb0ludGVybmFsRm9y
bShDb25zdHJhaW50U2V0VHlwZTo6TWFuZGF0b3J5LCBjb25zdHJhaW50cyksIGNvbnZlcnRBZHZh
bmNlZFRvSW50ZXJuYWxGb3JtKGNvbnN0cmFpbnRzLmFkdmFuY2VkKSwgU3RyaW5nIHsgfSwgdHJ1
ZSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaAppbmRleCAzYmNjZGFlYTAxMDYwNWFhNDk5
YTZjOWFjMWJjM2U5YTA5MjQxZTBmLi4wMzk1NDc2MWFkODBiOWE5OGRiZmE4YWY0YWZiOWRkMTgy
NjQ4MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhVHJhY2tDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYUNvbnN0cmFpbnRzSW1wbDsKK3N0cnVjdCBNZWRp
YUNvbnN0cmFpbnRzOwogCiBzdHJ1Y3QgQ29uc3RyYWluQm9vbGVhblBhcmFtZXRlcnMgewogICAg
IHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZXhhY3Q7CkBAIC03OSw3ICs3OSw3IEBAIHN0cnVjdCBNZWRp
YVRyYWNrQ29uc3RyYWludHMgOiBNZWRpYVRyYWNrQ29uc3RyYWludFNldCB7CiAgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXQ+PiBhZHZhbmNlZDsKIH07CiAK
LVJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gY3JlYXRlTWVkaWFDb25zdHJhaW50c0ltcGwoY29u
c3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJik7CitNZWRpYUNvbnN0cmFpbnRzIGNyZWF0ZU1lZGlh
Q29uc3RyYWludHMoY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJik7CiAKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKaW5kZXggYTA4NmVmMzVkOThmNTI4NTE3ZTc1MWZkYjA4NGVkNzRjN2E4MmIyMS4uZTg5
ZjhmNzBiYTdkMmI0NWNmN2ViMWIwNGE2NWJjZmNkNzFhYWU2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBA
IC00MiwyMCArNDIsMjAgQEAKICNpbmNsdWRlICJKU01lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAi
SlNPdmVyY29uc3RyYWluZWRFcnJvci5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgotI2luY2x1
ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCisjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5o
IgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1FeGNlcHRpb25Pcjx2b2lkPiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydChEb2N1
bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBhdWRpb0NvbnN0cmFp
bnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYgcHJvbWlzZSkKK0V4Y2Vw
dGlvbk9yPHZvaWQ+IFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KERvY3VtZW50JiBkb2N1bWVudCwg
TWVkaWFDb25zdHJhaW50cyYmIGF1ZGlvQ29uc3RyYWludHMsIE1lZGlhQ29uc3RyYWludHMmJiB2
aWRlb0NvbnN0cmFpbnRzLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPE1lZGlhU3Ry
ZWFtPj4mJiBwcm9taXNlKQogewogICAgIGF1dG8qIHVzZXJNZWRpYSA9IFVzZXJNZWRpYUNvbnRy
b2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKICAgICBpZiAoIXVzZXJNZWRpYSkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5PVF9TVVBQT1JURURfRVJSIH07IC8vIEZJWE1FOiBXaHkg
aXMgaXQgYmV0dGVyIHRvIHJldHVybiBhbiBleGNlcHRpb24gaGVyZSBpbnN0ZWFkIG9mIHJlamVj
dGluZyB0aGUgcHJvbWlzZSBhcyB3ZSBkbyBqdXN0IGJlbG93PwogCi0gICAgaWYgKCFhdWRpb0Nv
bnN0cmFpbnRzLT5pc1ZhbGlkKCkgJiYgIXZpZGVvQ29uc3RyYWludHMtPmlzVmFsaWQoKSkgewor
ICAgIGlmICghYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICF2aWRlb0NvbnN0cmFpbnRzLmlz
VmFsaWQpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yKTsKICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICB9CkBAIC02NCw3ICs2NCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFVzZXJN
ZWRpYVJlcXVlc3Q6OnN0YXJ0KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhQ29uc3RyYWlu
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotVXNlck1lZGlhUmVxdWVzdDo6VXNlck1lZGlhUmVxdWVz
dChEb2N1bWVudCYgZG9jdW1lbnQsIFVzZXJNZWRpYUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJl
ZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBhdWRpb0NvbnN0cmFpbnRzLCBSZWY8TWVkaWFDb25z
dHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYgcHJvbWlzZSkKK1VzZXJNZWRpYVJlcXVlc3Q6OlVzZXJN
ZWRpYVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBVc2VyTWVkaWFDb250cm9sbGVyJiBjb250
cm9sbGVyLCBNZWRpYUNvbnN0cmFpbnRzJiYgYXVkaW9Db25zdHJhaW50cywgTWVkaWFDb25zdHJh
aW50cyYmIHZpZGVvQ29uc3RyYWludHMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8
TWVkaWFTdHJlYW0+PiYmIHByb21pc2UpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cigmZG9jdW1lbnQpCiAgICAgLCBtX2F1ZGlvQ29uc3RyYWludHMoV1RGTW92ZShhdWRpb0NvbnN0
cmFpbnRzKSkKICAgICAsIG1fdmlkZW9Db25zdHJhaW50cyhXVEZNb3ZlKHZpZGVvQ29uc3RyYWlu
dHMpKQpAQCAtMTgwLDEwICsxODAsMTAgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyhT
dHJpbmcmJiBhdWRpb0RldmljZVVJRCwgU3RyaW5nJiYgdmlkZW9EZXZpY2VVSUQsIFMKICAgICAg
ICAgbV9wcm9taXNlLnJlc29sdmUoc3RyZWFtKTsKICAgICB9OwogCi0gICAgbV9hdWRpb0NvbnN0
cmFpbnRzLT5zZXREZXZpY2VJREhhc2hTYWx0KFN0cmluZyhkZXZpY2VJZGVudGlmaWVySGFzaFNh
bHQpKTsKLSAgICBtX3ZpZGVvQ29uc3RyYWludHMtPnNldERldmljZUlESGFzaFNhbHQoV1RGTW92
ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKKyAgICBtX2F1ZGlvQ29uc3RyYWludHMuZGV2
aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdDsKKyAgICBtX3ZpZGVvQ29u
c3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hT
YWx0KTsKIAotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNyZWF0
ZU1lZGlhU3RyZWFtKFdURk1vdmUoY2FsbGJhY2spLCBtX2FsbG93ZWRBdWRpb0RldmljZVVJRCwg
bV9hbGxvd2VkVmlkZW9EZXZpY2VVSUQsICZtX2F1ZGlvQ29uc3RyYWludHMuZ2V0KCksICZtX3Zp
ZGVvQ29uc3RyYWludHMuZ2V0KCkpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKFdURk1vdmUoY2FsbGJhY2spLCBtX2FsbG93ZWRB
dWRpb0RldmljZVVJRCwgbV9hbGxvd2VkVmlkZW9EZXZpY2VVSUQsICZtX2F1ZGlvQ29uc3RyYWlu
dHMsICZtX3ZpZGVvQ29uc3RyYWludHMpOwogfQogCiB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmRl
bnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCA1MzkzYmZkN2U4YTJmNTAzYTM2NTg4MTUwYjljNGZl
ODY5ZTJiOGQ5Li5iMWFjNWIyMWQxY2IxNGIyODY5YWU5OTkyNGUzOTUwMGMxNjVjODc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaApAQCAtMzYsMTcgKzM2LDE3IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1lZGlhQ29u
c3RyYWludHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYUNvbnN0cmFp
bnRzSW1wbDsKIGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFz
cyBVc2VyTWVkaWFDb250cm9sbGVyOwogCiBjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0IDogcHVibGlj
IFJlZkNvdW50ZWQ8VXNlck1lZGlhUmVxdWVzdD4sIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBzdGFydChE
b2N1bWVudCYsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBhdWRpb0NvbnN0cmFpbnRzLCBS
ZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYpOworICAgIHN0YXRpYyBFeGNlcHRp
b25Pcjx2b2lkPiBzdGFydChEb2N1bWVudCYsIE1lZGlhQ29uc3RyYWludHMmJiBhdWRpb0NvbnN0
cmFpbnRzLCBNZWRpYUNvbnN0cmFpbnRzJiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYpOwogCiAgICAgdmlydHVhbCB+VXNl
ck1lZGlhUmVxdWVzdCgpOwogCkBAIC02MSw4ICs2MSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYXVkaW9EZXZpY2VVSURzKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0Rl
dmljZVVJRHM7IH0KICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmlkZW9EZXZpY2VVSURzKCkg
Y29uc3QgeyByZXR1cm4gbV92aWRlb0RldmljZVVJRHM7IH0KIAotICAgIGNvbnN0IE1lZGlhQ29u
c3RyYWludHNJbXBsJiBhdWRpb0NvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0Nv
bnN0cmFpbnRzOyB9Ci0gICAgY29uc3QgTWVkaWFDb25zdHJhaW50c0ltcGwmIHZpZGVvQ29uc3Ry
YWludHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvQ29uc3RyYWludHM7IH0KKyAgICBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9hdWRp
b0NvbnN0cmFpbnRzOyB9CisgICAgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJh
aW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Db25zdHJhaW50czsgfQogCiAgICAgY29uc3Qg
U3RyaW5nJiBhbGxvd2VkQXVkaW9EZXZpY2VVSUQoKSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWRB
dWRpb0RldmljZVVJRDsgfQogICAgIGNvbnN0IFN0cmluZyYgYWxsb3dlZFZpZGVvRGV2aWNlVUlE
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkVmlkZW9EZXZpY2VVSUQ7IH0KQEAgLTcyLDEyICs3
MiwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnQqIGRvY3VtZW50KCkg
Y29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUmVxdWVzdChEb2N1bWVudCYsIFVzZXJN
ZWRpYUNvbnRyb2xsZXImLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJh
aW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PiYmKTsKKyAgICBVc2VyTWVk
aWFSZXF1ZXN0KERvY3VtZW50JiwgVXNlck1lZGlhQ29udHJvbGxlciYsIE1lZGlhQ29uc3RyYWlu
dHMmJiBhdWRpb0NvbnN0cmFpbnRzLCBNZWRpYUNvbnN0cmFpbnRzJiYgdmlkZW9Db25zdHJhaW50
cywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYpOwogCiAg
ICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CiAgICAgCi0gICAgUmVmPE1lZGlhQ29u
c3RyYWludHNJbXBsPiBtX2F1ZGlvQ29uc3RyYWludHM7Ci0gICAgUmVmPE1lZGlhQ29uc3RyYWlu
dHNJbXBsPiBtX3ZpZGVvQ29uc3RyYWludHM7CisgICAgTWVkaWFDb25zdHJhaW50cyBtX2F1ZGlv
Q29uc3RyYWludHM7CisgICAgTWVkaWFDb25zdHJhaW50cyBtX3ZpZGVvQ29uc3RyYWludHM7CiAK
ICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNlVUlEczsKICAgICBWZWN0b3I8U3RyaW5n
PiBtX2F1ZGlvRGV2aWNlVUlEczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTc4YmNiMTkxYzIzYWM5NjQ2ODhjYmIyNDIyNzM5
ZTg3YzY3ZTZhLi4xZDBlOWI4NGJiMzhmNGFhN2ZlNzRiMWE1YzAxNzM4ZjRmNzA4MTliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xNzksNyArMTc5LDYgQEAKIAkJMDc4NDYzODUxNDVCMUI4RTAwQTU4REYxIC8qIEpTVHJhY2tD
dXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBKU1RyYWNrQ3VzdG9tLmggKi87IH07CiAJCTA3ODdD
NDY5MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzg3QzQ2
NzFCRkJERjZGMDA2RENEN0YgLyogSlNNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuY3Bw
ICovOyB9OwogCQkwNzg3QzQ2QTFCRkJERjZGMDA2RENEN0YgLyogSlNNZWRpYVRyYWNrU3VwcG9y
dGVkQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3ODdDNDY4MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovOyB9OwotCQkwNzhFMDhGRTE3RDE0Q0VFMDA0MjBBQTEgLyogTWVkaWFD
b25zdHJhaW50c0ltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDcyMjFCNEExN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhQ29uc3RyYWludHNJbXBs
LmNwcCAqLzsgfTsKIAkJMDc4RTA4RkYxN0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjRD
MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbS5jcHAgKi87IH07CiAJCTA3OEUwOTAwMTdE
MTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjRGMTdDRUMzMjcwMDg0OEU1MSAvKiBN
ZWRpYVN0cmVhbUV2ZW50LmNwcCAqLzsgfTsKIAkJMDc4RTA5MDExN0QxNENFRTAwNDIwQUExIC8q
IE1lZGlhU3RyZWFtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyMjFCNTIxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtUmVn
aXN0cnkuY3BwICovOyB9OwpAQCAtMTk1LDcgKzE5NCw2IEBACiAJCTA3OEUwOTBDMTdEMTRDRUUw
MDQyMEFBMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCN0ExN0NFQzMyNzAwODQ4RTUxIC8qIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgKi87IH07CiAJCTA3OEUwOTEyMTdEMTRDRUUwMDQyMEFB
MSAvKiBVc2VyTWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjhFMTdDRUMzMjcwMDg0OEU1MSAvKiBVc2VyTWVkaWFD
b250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMDc4RTA5MTMxN0QxNENFRTAwNDIwQUExIC8qIFVzZXJN
ZWRpYVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcyMjFCOTAxN0NFQzMyNzAwODQ4RTUxIC8qIFVzZXJNZWRpYVJlcXVlc3QuY3BwICov
OyB9OwotCQkwNzhFMDkxNDE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50c0ltcGwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjRC
MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYUNvbnN0cmFpbnRzSW1wbC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3OEUwOTE1MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcyMjFCNEQxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtLmggKi87
IH07CiAJCTA3OEUwOTE2MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUI1MDE3Q0VD
MzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1FdmVudC5oICovOyB9OwogCQkwNzhFMDkxNzE3RDE0
RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCNTMxN0NFQzMyNzAwODQ4RTUxIC8qIE1l
ZGlhU3RyZWFtUmVnaXN0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNzQzNyw4ICs3NDM1LDYgQEAKIAkJMDcxRTQ5NkYxQUQ1QUI1RTAwOEE1
MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldE1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzIwQjA5RTE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJpY0V2ZW50UXVldWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIwQjA5RjE0RDMzMjM1MDA2NDI5
NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR2VuZXJpY0V2ZW50UXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcy
MjFCNEExN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhQ29uc3RyYWludHNJbXBsLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQ29uc3RyYWludHNJbXBsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcyMjFCNEIxN0NFQzMyNzAwODQ4RTUxIC8q
IE1lZGlhQ29uc3RyYWludHNJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhQ29uc3RyYWludHNJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
MjIxQjRDMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3MjIxQjREMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUI0RTE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJl
YW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU3RyZWFtLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1OTU5LDggKzE1OTU1LDYgQEAKIAkJCQk5M0E4MDYxMjFF
MDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovLAogCQkJCTkzQTgwNjEzMUUwM0I1
MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLywKIAkJCQk5M0E4MDYxNDFFMDNCNTFDMDA4QTFG
MjYgLyogTG9uZ1JhbmdlLmlkbCAqLywKLQkJCQkwNzIyMUI0QTE3Q0VDMzI3MDA4NDhFNTEgLyog
TWVkaWFDb25zdHJhaW50c0ltcGwuY3BwICovLAotCQkJCTA3MjIxQjRCMTdDRUMzMjcwMDg0OEU1
MSAvKiBNZWRpYUNvbnN0cmFpbnRzSW1wbC5oICovLAogCQkJCTE1OUFFODJBMUIzQTQwMkYwMDM3
NDc4QiAvKiBNZWRpYURldmljZUluZm8uY3BwICovLAogCQkJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2
MkJGNyAvKiBNZWRpYURldmljZUluZm8uaCAqLywKIAkJCQkxNTE0NUI5MTFCM0ExRDRDMDA2NjJC
RjcgLyogTWVkaWFEZXZpY2VJbmZvLmlkbCAqLywKQEAgLTI4NDAyLDcgKzI4Mzk2LDYgQEAKIAkJ
CQk1Q0JDOERBRDFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMUJDQzYxMTEyNERGQ0IwMEJFNzBERCAvKiBNZWRpYUNh
blN0YXJ0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTNBMTdEMTZFMUMwMDQy
MEFBMSAvKiBNZWRpYUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwNzhFMDkxNDE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50c0ltcGwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxNzI1M0FCMTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJREVCQ0NERDQxNjY0NkVBRjAwQTQ1MkUxIC8qIE1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRD
N0FBIC8qIE1lZGlhQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjQxNSw3ICszMjQw
OCw2IEBACiAJCQkJNDlFOTExQzYwRUY4NkQ0NzAwOUQwQ0FGIC8qIE1hdHJpeFRyYW5zZm9ybU9w
ZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1Q0JDOERBQzFBQUEzMDIyMDBFMUM4MDMg
LyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUJF
NUJGQzIxRDUxNTcxNTAwMTY2NkQ5IC8qIE1lZGlhQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMDc4RTA4RkUxN0QxNENFRTAwNDIwQUExIC8qIE1lZGlhQ29uc3RyYWludHNJbXBs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNzI1M0FBMTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUJDQ0RENTE2NjQ2RUIy
MDBBNDUyRTEgLyogTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEMjdGNkU3MTQ1NzcwRDMwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYUNvbnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCmluZGV4IDFlN2Y3ZjdiZmE3NTNhZTQ3Mjc5ZGRlNDZh
YzYwODQ2NjQyMjI2ZDEuLmViZTYwMzVlMTNhZTYxODY4NzQyYmI4YzNlMWY2NTYyYjQwNWMzZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29u
c3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhQ29uc3RyYWludHMuY3BwCkBAIC0zNDAsNiArMzQwLDYyIEBAIGJvb2wgTWVkaWFUcmFja0Nv
bnN0cmFpbnRTZXRNYXA6OmlzRW1wdHkoKSBjb25zdAogICAgIHJldHVybiAhc2l6ZSgpOwogfQog
CitzdGF0aWMgaW5saW5lIHZvaWQgYWRkRGVmYXVsdFZpZGVvQ29uc3RyYWludHMoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIHZpZGVvQ29uc3RyYWludHMsIGJvb2wgYWRkRnJhbWVSYXRlQ29u
c3RyYWludCwgYm9vbCBhZGRTaXplQ29uc3RyYWludCwgYm9vbCBhZGRGYWNpbmdNb2RlQ29uc3Ry
YWludCkKK3sKKyAgICBpZiAoYWRkRnJhbWVSYXRlQ29uc3RyYWludCkgeworICAgICAgICBEb3Vi
bGVDb25zdHJhaW50IGZyYW1lUmF0ZUNvbnN0cmFpbnQoeyB9LCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpGcmFtZVJhdGUpOworICAgICAgICBmcmFtZVJhdGVDb25zdHJhaW50LnNldElkZWFsKDMwKTsK
KyAgICAgICAgdmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVS
YXRlLCBXVEZNb3ZlKGZyYW1lUmF0ZUNvbnN0cmFpbnQpKTsKKyAgICB9CisgICAgaWYgKGFkZFNp
emVDb25zdHJhaW50KSB7CisgICAgICAgIEludENvbnN0cmFpbnQgd2lkdGhDb25zdHJhaW50KHsg
fSwgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgpOworICAgICAgICB3aWR0aENvbnN0cmFpbnQu
c2V0SWRlYWwoNjQwKTsKKyAgICAgICAgdmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJh
aW50VHlwZTo6V2lkdGgsIFdURk1vdmUod2lkdGhDb25zdHJhaW50KSk7CisgICAgICAgIAorICAg
ICAgICBJbnRDb25zdHJhaW50IGhlaWdodENvbnN0cmFpbnQoeyB9LCBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpIZWlnaHQpOworICAgICAgICBoZWlnaHRDb25zdHJhaW50LnNldElkZWFsKDQ4MCk7Cisg
ICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCwg
V1RGTW92ZShoZWlnaHRDb25zdHJhaW50KSk7CisgICAgfQorICAgIGlmIChhZGRGYWNpbmdNb2Rl
Q29uc3RyYWludCkgeworICAgICAgICBTdHJpbmdDb25zdHJhaW50IGZhY2luZ01vZGVDb25zdHJh
aW50KHsgfSwgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZSk7CisgICAgICAgIGZhY2lu
Z01vZGVDb25zdHJhaW50LnNldElkZWFsKEFTQ0lJTGl0ZXJhbCgidXNlciIpKTsKKyAgICAgICAg
dmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZSwgV1RG
TW92ZShmYWNpbmdNb2RlQ29uc3RyYWludCkpOworICAgIH0KK30KKworYm9vbCBNZWRpYUNvbnN0
cmFpbnRzOjppc0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IE1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0TWFwJik+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKGNhbGxiYWNrKG1h
bmRhdG9yeUNvbnN0cmFpbnRzKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgZm9y
IChjb25zdCBhdXRvJiBjb25zdHJhaW50IDogYWR2YW5jZWRDb25zdHJhaW50cykgeworICAgICAg
ICBpZiAoY2FsbGJhY2soY29uc3RyYWludCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIE1lZGlhQ29uc3RyYWludHM6OnNldERl
ZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCkKK3sKKyAgICAvLyA2NDB4NDgwLCAzMGZwcywgZm9udC1m
YWNpbmcgY2FtZXJhCisgICAgYm9vbCBoYXNGcmFtZVJhdGVDb25zdHJhaW50cyA9IGlzQ29uc3Ry
YWludFNldChbXShjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgY29uc3RyYWludCkg
eworICAgICAgICByZXR1cm4gISFjb25zdHJhaW50LmZyYW1lUmF0ZSgpOworICAgIH0pOworICAg
IAorICAgIGJvb2wgaGFzU2l6ZUNvbnN0cmFpbnRzID0gaXNDb25zdHJhaW50U2V0KFtdKGNvbnN0
IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBjb25zdHJhaW50KSB7CisgICAgICAgIHJldHVy
biAhIWNvbnN0cmFpbnQud2lkdGgoKSB8fCAhIWNvbnN0cmFpbnQuaGVpZ2h0KCk7CisgICAgfSk7
CisgICAgCisgICAgYm9vbCBoYXNGYWNpbmdNb2RlQ29uc3RyYWludHMgPSBpc0NvbnN0cmFpbnRT
ZXQoW10oY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIGNvbnN0cmFpbnQpIHsKKyAg
ICAgICAgcmV0dXJuICEhY29uc3RyYWludC5mYWNpbmdNb2RlKCk7CisgICAgfSk7CisgICAgCisg
ICAgaWYgKGhhc0ZyYW1lUmF0ZUNvbnN0cmFpbnRzICYmIGhhc1NpemVDb25zdHJhaW50cyAmJiBo
YXNGYWNpbmdNb2RlQ29uc3RyYWludHMpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBhZGRE
ZWZhdWx0VmlkZW9Db25zdHJhaW50cyhtYW5kYXRvcnlDb25zdHJhaW50cywgIWhhc0ZyYW1lUmF0
ZUNvbnN0cmFpbnRzLCAhaGFzU2l6ZUNvbnN0cmFpbnRzLCAhaGFzRmFjaW5nTW9kZUNvbnN0cmFp
bnRzKTsKK30KKyAgICAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFp
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFp
bnRzLmgKaW5kZXggNjYzNmFjMDBmMjg3YzkyNzMwZTM1ZjUxMzZjNjgzODJiNTVlNDIyNS4uM2M0
ODY0ZDQ1MWYyMzIwYmVjYTI3ODdjZjIxOGQ1M2EyNTFjMzAwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaApAQCAt
MzUsOSArMzUsMTAgQEAKIAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cy5oIgogI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0KKyAgICAKIGNsYXNzIE1lZGlhQ29uc3RyYWludCB7
CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBEYXRhVHlwZSB7IE5vbmUsIEludGVnZXIsIERvdWJs
ZSwgQm9vbGVhbiwgU3RyaW5nIH07CkBAIC04MDMsMjEgKzgwNCwxNiBAQCBwcml2YXRlOgogI2Vu
ZGlmCiB9OwogCi1jbGFzcyBNZWRpYUNvbnN0cmFpbnRzIDogcHVibGljIFJlZkNvdW50ZWQ8TWVk
aWFDb25zdHJhaW50cz4gewotcHVibGljOgotICAgIHZpcnR1YWwgfk1lZGlhQ29uc3RyYWludHMo
KSB7IH0KLQotICAgIHZpcnR1YWwgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1h
bmRhdG9yeUNvbnN0cmFpbnRzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgVmVjdG9y
PE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiYgYWR2YW5jZWRDb25zdHJhaW50cygpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0ID0gMDsKK3N0cnVjdCBNZWRp
YUNvbnN0cmFpbnRzIHsKKyAgICB2b2lkIHNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCk7Cisg
ICAgYm9vbCBpc0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IE1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0TWFwJik+JiYpOwogCi0gICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIGRl
dmljZUlESGFzaFNhbHQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldERldmljZUlE
SGFzaFNhbHQoY29uc3QgU3RyaW5nJikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgTWVkaWFDb25z
dHJhaW50cygpIHsgfQorICAgIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIG1hbmRhdG9yeUNv
bnN0cmFpbnRzOworICAgIFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4gYWR2YW5j
ZWRDb25zdHJhaW50czsKKyAgICBTdHJpbmcgZGV2aWNlSURIYXNoU2FsdDsKKyAgICBib29sIGlz
VmFsaWQgeyBmYWxzZSB9OwogfTsKLQorICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTUVESUFDT05TVFJBSU5UKENvbnN0cmFpbnRU
eXBlLCBwcmVkaWNhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFs
aWRhdGlvbkNsaWVudC5oCmluZGV4IDk3M2M5ZWVlMWM1ODQ3NWNmNTU1MGVjZDg5OGM4OGJkZjFi
MjBkMzIuLjQ5OTQ0YTg1NWNiMzA2YTRmOGRiZDIyNWM3YTM4NWFkM2U1MzNkNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3Ry
YWludHNWYWxpZGF0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnQuaApAQCAtMjMs
OCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1lZGlhU3RyZWFtQ29u
c3RyYWludHNWYWxpZGF0aW9uQ2xpZW50X2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1Db25zdHJhaW50
c1ZhbGlkYXRpb25DbGllbnRfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogCkBAIC0zMyw4ICszMiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
TWVkaWFDb25zdHJhaW50czsKLQogY2xhc3MgTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRp
b25DbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRh
dGlvbkNsaWVudD4gewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtQ29uc3RyYWlu
dHNWYWxpZGF0aW9uQ2xpZW50KCkgeyB9CkBAIC00Niw1ICs0MywzIEBAIHB1YmxpYzoKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNl
bmRpZiAvLyBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCmluZGV4IDFmNDk5MzExNWFlZmYxOTM5M2FlM2E3MmQ4N2ZlNGM0MTZlYmRl
MTUuLjhmZjk1NGUzNGIwZjZjMTI0YzkwMjdjM2Q4NDk3YzQwNTgxZjIyMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCkBAIC01MjQsMTIgKzUyNCwxMiBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnNlbGVjdFNldHRpbmdzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBG
bAogCiAgICAgZmFpbGVkQ29uc3RyYWludCA9IGVtcHR5U3RyaW5nKCk7CiAKLSAgICAvLyBDaGVj
ayB3aWR0aCwgaGVpZ2h0LCBhbmQgZnJhbWUgcmF0ZSBzZXBhcmF0ZWx5LCBiZWNhdXNlIHdoaWxl
IHRoZXkgbWF5IGJlIHN1cHBvcnRlZCBpbmRpdmlkdWFsbHkgdGhlIGNvbWJpbmF0aW9uIG1heSBu
b3QgYmUgc3VwcG9ydGVkLgorICAgIC8vIENoZWNrIHdpZHRoLCBoZWlnaHQgYW5kIGZyYW1lIHJh
dGUgam9pbnRseSwgYmVjYXVzZSB3aGlsZSB0aGV5IG1heSBiZSBzdXBwb3J0ZWQgaW5kaXZpZHVh
bGx5IHRoZSBjb21iaW5hdGlvbiBtYXkgbm90IGJlIHN1cHBvcnRlZC4KICAgICBkb3VibGUgZGlz
dGFuY2UgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7Ci0gICAgaWYg
KCFzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWlu
dHMoKS53aWR0aCgpLCBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cygpLmhlaWdodCgp
LCBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cygpLmZyYW1lUmF0ZSgpLCBmYWlsZWRD
b25zdHJhaW50LCBtX2ZpdG5lc3NTY29yZSkpCisgICAgaWYgKCFzdXBwb3J0c1NpemVBbmRGcmFt
ZVJhdGUoY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMud2lkdGgoKSwgY29uc3RyYWlu
dHMubWFuZGF0b3J5Q29uc3RyYWludHMuaGVpZ2h0KCksIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNv
bnN0cmFpbnRzLmZyYW1lUmF0ZSgpLCBmYWlsZWRDb25zdHJhaW50LCBtX2ZpdG5lc3NTY29yZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0
cmFpbnRzKCkuZmlsdGVyKFsmXShjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpIHsK
KyAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cy5maWx0ZXIoWyZdKGNvbnN0IE1l
ZGlhQ29uc3RyYWludCYgY29uc3RyYWludCkgewogICAgICAgICBpZiAoIXN1cHBvcnRzQ29uc3Ry
YWludChjb25zdHJhaW50KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTQ2LDkg
KzU0Niw5IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0dGluZ3MoY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEZsCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgICAgICAgICBBU1NFUlQoY29uc3RyYWludC5pc1N0cmluZygpKTsKLSAg
ICAgICAgICAgIEFTU0VSVCghY29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCgpLmlzRW1wdHko
KSk7CisgICAgICAgICAgICBBU1NFUlQoIWNvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQuaXNF
bXB0eSgpKTsKIAotICAgICAgICAgICAgYXV0byBoYXNoZWRJRCA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChtX3BlcnNpc3RlbnRJRCwg
Y29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgICAgIGF1dG8gaGFzaGVk
SUQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0
aFNhbHQobV9wZXJzaXN0ZW50SUQsIGNvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQpOwogICAg
ICAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IGRvd25jYXN0PFN0cmluZ0NvbnN0
cmFpbnQ+KGNvbnN0cmFpbnQpLmZpdG5lc3NEaXN0YW5jZShoYXNoZWRJRCk7CiAgICAgICAgICAg
ICBpZiAoc3RkOjppc2luZihjb25zdHJhaW50RGlzdGFuY2UpKSB7CiAgICAgICAgICAgICAgICAg
ZmFpbGVkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQubmFtZSgpOwpAQCAtNTg1LDcgKzU4NSw3IEBA
IGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0dGluZ3MoY29uc3QgTWVkaWFDb25z
dHJhaW50cyYgY29uc3RyYWludHMsIEZsCiAgICAgLy8gICAgIHZhbHVlcyBvZiBwcm9wZXJ0aWVz
IGFzIGV4YWN0LgogICAgIFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcD4+IHN1cHBvcnRlZENvbnN0cmFpbnRzOwogCi0gICAgZm9yIChjb25zdCBhdXRv
JiBhZHZhbmNlZENvbnN0cmFpbnQgOiBjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzKCkp
IHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFkdmFuY2VkQ29uc3RyYWludCA6IGNvbnN0cmFpbnRz
LmFkdmFuY2VkQ29uc3RyYWludHMpIHsKICAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5j
ZSA9IDA7CiAgICAgICAgIGJvb2wgc3VwcG9ydGVkID0gZmFsc2U7CiAKQEAgLTY5NSw3ICs2OTUs
NyBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzQ29uc3RyYWludChjb25zdCBN
ZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpCiAKIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c3VwcG9ydHNDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKIHsKLSAgICBBU1NFUlQoY29uc3RyYWludHMuaXNW
YWxpZCgpKTsKKyAgICBBU1NFUlQoY29uc3RyYWludHMuaXNWYWxpZCk7CiAKICAgICBGbGF0dGVu
ZWRDb25zdHJhaW50IGNhbmRpZGF0ZXM7CiAgICAgaWYgKCFzZWxlY3RTZXR0aW5ncyhjb25zdHJh
aW50cywgY2FuZGlkYXRlcywgaW52YWxpZENvbnN0cmFpbnQsIFNlbGVjdFR5cGU6OkZvclN1cHBv
cnRzQ29uc3RyYWludHMpKQpAQCAtNzU3LDcgKzc1Nyw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBGbGF0dGVuZWRDb25zdHJhaW50JiBjb25zdHJh
aW50CiAKIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykKIHsKLSAgICBBU1NFUlQoY29uc3RyYWludHMuaXNWYWxpZCgpKTsKKyAgICBBU1NF
UlQoY29uc3RyYWludHMuaXNWYWxpZCk7CiAKICAgICBGbGF0dGVuZWRDb25zdHJhaW50IGNhbmRp
ZGF0ZXM7CiAgICAgU3RyaW5nIGZhaWxlZENvbnN0cmFpbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwCmluZGV4IGNjMzM4NTFiYWE0ZmNkZjA1N2E0MzVmZTBhYTg5NDJmOGFlYzFk
MDUuLjVlZGJmYzY5Njk4ZWU1YmI3ODY5MmFhNzRmMTU2NjBjMWNmM2JhZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0yMjIsMTEgKzIyMiwxMSBAQCB2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29u
c3RyYWludHNIYW5kbAogCiAgICAgICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKICAgICAg
ICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKLSAgICAgICAgaWYgKGRldmlj
ZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8gJiYgdmlkZW9Db25z
dHJhaW50cy5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKGRldmljZS50eXBlKCkgPT0gQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8gJiYgdmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7
CiAgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRlb0ZhY3RvcnkoKS5jcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBudWxscHRyKTsKICAgICAg
ICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+
c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkp
CiAgICAgICAgICAgICAgICAgdmlkZW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5j
YXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpBdWRpbyAmJiBhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgeworICAgICAgICB9IGVs
c2UgaWYgKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW8g
JiYgYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7CiAgICAgICAgICAgICBhdXRvIHNvdXJjZU9y
RXJyb3IgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnBl
cnNpc3RlbnRJZCgpLCBudWxscHRyKTsKICAgICAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYm
IHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhhdWRpb0Nv
bnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgYXVkaW9EZXZp
Y2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUo
KSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENv
bnN0cmFpbnRzSGFuZGwKICAgICAgICAgICAgIGZpcnN0SW52YWxpZENvbnN0cmFpbnQgPSBpbnZh
bGlkQ29uc3RyYWludDsKICAgICB9CiAKLSAgICBpZiAoKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxp
ZCgpICYmIGF1ZGlvRGV2aWNlSW5mby5pc0VtcHR5KCkpIHx8ICh2aWRlb0NvbnN0cmFpbnRzLmlz
VmFsaWQoKSAmJiB2aWRlb0RldmljZUluZm8uaXNFbXB0eSgpKSkgeworICAgIGlmICgoYXVkaW9D
b25zdHJhaW50cy5pc1ZhbGlkICYmIGF1ZGlvRGV2aWNlSW5mby5pc0VtcHR5KCkpIHx8ICh2aWRl
b0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgdmlkZW9EZXZpY2VJbmZvLmlzRW1wdHkoKSkpIHsKICAg
ICAgICAgaW52YWxpZEhhbmRsZXIoZmlyc3RJbnZhbGlkQ29uc3RyYWludCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggNDRkNTQ3ZGYy
MjE3NTVlZGNkMTViNzQ5MGQwNDBlMzY5MTY0NzhhOC4uZDEwZTY0OGJiYmEzOTQ4NzQ2ZTlmNjNk
ODcxYjk1ZjNkOTIzOWViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNDMs
MTEgKzQzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FwdHVyZURldmljZTsK
IGNsYXNzIENhcHR1cmVEZXZpY2VNYW5hZ2VyOwotY2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNs
YXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdXBwb3J0ZWRDb25zdHJhaW50czsKIGNsYXNzIFRyYWNrU291cmNlSW5mbzsKIAorc3RydWN0
IE1lZGlhQ29uc3RyYWludHM7CisgICAgCiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGE0ZjliMzhh
ZTJhMjhiN2Q3MDc5ZWM3M2FkYzg0YWZkODVkMzQ4MmEuLmZlZTQwMmI1OGNjM2IzYmNlZGEyYTY4
MDYzMTAxZTk2YWVmNDIzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UuY3BwCkBAIC0xNTAsMTEgKzE1MCw2IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzZXR0aW5ncygpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fY3VycmVudFNldHRpbmdzOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMmIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c3VwcG9ydGVk
Q29uc3RyYWludHMoKQotewotICAgIHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotfQot
CiBBdWRpb1NvdXJjZVByb3ZpZGVyKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmF1ZGlv
U291cmNlUHJvdmlkZXIoKQogewogICAgIGlmICghbV9hdWRpb1NvdXJjZVByb3ZpZGVyKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKaW5kZXggODUyY2U5N2YyMjkz
ZWM5MzAxYjc0MTgwZWU3YWM1OTFiMjM1Y2QzZC4uOWNjMWE2NTVjZmRmOWQ1NTk1ZmFjMTVlNzc4
MzgzZWMzOGEzZTcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2Uu
aApAQCAtNjQsMTYgKzY0LDExIEBAIHByaXZhdGU6CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsOwogCi0g
ICAgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50
cy5nZXQoKTsgfQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYg
c3VwcG9ydGVkQ29uc3RyYWludHMoKTsKLQogICAgIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9pc1Byb2R1Y2luZ0RhdGE7IH0KIAogICAgIEF1ZGlvU291cmNl
UHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBmaW5hbDsKIAogICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKLSAgICBSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBSZWZQ
dHI8TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKICAgICBib29sIG1faXNQcm9kdWNp
bmdEYXRhIHsgZmFsc2UgfTsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1Ry
YWNrSW50ZXJmYWNlPiBtX2F1ZGlvVHJhY2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggZjUwOTZmYjBmMGEwNjFkNDU5YzExYWQyZjExMDZkZjEz
NTNiYTE1YS4uMTc4NmM0YzA0MjQ3NGIxZDI4ZWI0OTZjMGY0Mjk5YjY2M2NjNDA0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKQEAgLTIxNywxMSArMjE3
LDYgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBSZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2U6OnNldHRpbmdzKCkgY29uc3QKICAgICByZXR1cm4gbV9jdXJyZW50U2V0dGlu
Z3M7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlOjpzdXBwb3J0ZWRDb25zdHJhaW50cygpCi17Ci0gICAgcmV0
dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmgKaW5kZXggNDJmOTI2ZjQxY2FjMGMxOGQ4NGZjZjRmMmQ2Yjk0MDVmZTllMGIw
MC4uZTc4YTY5NDRlYThjZmU4MWFlODUwZTg5ZDY5OTE2NzAyNmM1NzJiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaApAQCAtNjEsOSArNjEsNiBAQCBwcml2YXRl
OgogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGll
cygpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
c2V0dGluZ3MoKSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFp
bnRzKCkgeyByZXR1cm4gKm1fY29uc3RyYWludHMuZ2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCk7Ci0KICAg
ICB2b2lkIHByb2Nlc3NOZXdTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYsIHVuc2lnbmVkLCB1bnNp
Z25lZCwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24pOwogCiAgICAgYm9vbCBpc1Byb2R1Y2lu
Z0RhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzUHJvZHVjaW5nRGF0YSAmJiBtX2J1ZmZl
cjsgfQpAQCAtNzYsOCArNzMsNiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPEltYWdlPiBtX2N1
cnJlbnRJbWFnZTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0
dGluZ3M7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3Vw
cG9ydGVkQ29uc3RyYWludHM7Ci0gICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3Ry
YWludHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4gbV92aWRlb1RyYWNrOwog
ICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbV9idWZmZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmgKaW5k
ZXggOWE1YWQxZDIwNDgyMDRlMDA1MmJiNWQ2NTdlMjYyODU2YzFiY2FhZC4uMjY2OTc0ZTRlZDU4
ZWIxNTFlMGM1NDViN2VhNDMyZDZmYWZkNmNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNzEsNyArNzEs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYgY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgTWVkaWFD
b25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsg
fQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVk
Q29uc3RyYWludHMoKTsKIAogICAgIHVuc2lnbmVkIGRldmljZUluZGV4KCkgeyByZXR1cm4gbV9k
ZXZpY2VJbmRleDsgfQpAQCAtODksNyArODgsNiBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICAgICBSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRp
ZXM7Ci0gICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgdW5z
aWduZWQgbV9kZXZpY2VJbmRleCB7IDAgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsg
ZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IGEzZjA1ZDg0ZGNlNGQ3N2ZkOGYxYjI4YzBmM2MyNjljNDY5MmI1ODcuLmZlNmJmODk2ZGQ4
NTg3NTc5ZjBhNzJmM2YwZDhjODQ2NTc1Y2ZkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNjAsNyArMzYwLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5
cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpIaWdobGlnaHQnOiBbJzxXZWJDb3JlL0luc3Bl
Y3Rvck92ZXJsYXkuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0Jzog
Wyc8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQnOiBbJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4nXSwKLSAgICAgICAgJ1dlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJzogWyc8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzSW1w
bC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyc6IFsnPFdlYkNvcmUv
TWVkaWFDb25zdHJhaW50cy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEltYWdl
JzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJv
YXJkVVJMJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA0ZTY0
Y2Q0NWE0MDRkOWIwZmI1ZTE2MDhkYzgwZTI0OTdjZDk2NjUwLi40NjE2YWFkZjE0NjI3YTAxYzYz
NGQ1ZGI5ODhiZTFlYjNjM2YxMDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBACiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhQ29uc3RyYWludHMuaD4KICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTIzODksNyArMjM4OSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlJlCiB9CiAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotdm9pZCBBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHNEYXRh
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHNEYXRhJiBjb25zdHJhaW50KQordm9pZCBBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHM+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludCkKIHsKICAgICBlbmNvZGVyIDw8IGNvbnN0cmFpbnQubWFuZGF0b3J5Q29u
c3RyYWludHMKICAgICAgICAgPDwgY29uc3RyYWludC5hZHZhbmNlZENvbnN0cmFpbnRzCkBAIC0y
Mzk3LDcgKzIzOTcsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50c0RhdGE+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZQogICAgICAgICA8PCBjb25z
dHJhaW50LmlzVmFsaWQ7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRz
RGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
RGF0YSYgY29uc3RyYWludHMpCitib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykKIHsKICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubWFuZGF0
b3J5Q29uc3RyYWludHMpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLmFk
dmFuY2VkQ29uc3RyYWludHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKaW5kZXggZjcwMjUyZDBkMmYxYjY1NzY0NTA3NWMxOTUzYjJjNzk1NzI5Mjk0
OC4uYTY3M2YyYWY2ZWNlMDlkOTM1NTE2NTMwMzNlMWRkMzU2ODQwOGMwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTYyLDcgKzE2Miw3
IEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYXB0dXJlRGV2aWNlOwotc3RydWN0IE1lZGlh
Q29uc3RyYWludHNEYXRhOworc3RydWN0IE1lZGlhQ29uc3RyYWludHM7CiB9CiAjZW5kaWYKIApA
QCAtNjQwLDkgKzY0MCw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+IHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50c0RhdGE+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYpOwordGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzPiB7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA2Y2RiYTFm
NzU5M2IwZTRlMmE1NzkxNTgzMDA1NWY3NzAxZDkzYTY5Li4zZTViOGJlZDQwMjZiYTk3YmM1NjY1
ZjIzYThhN2Y5Yjg0MzEyYzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0z
Myw3ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4K
ICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC0xMjUsMTYgKzEyNSwxNSBAQCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpCiAg
ICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50c0RhdGEmIGNvbnN0cmFpbnRzRGF0YSwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFs
aWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBTdHJp
bmcmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBib29sJiBzdWNjZWVkZWQsIFN0cmlu
ZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbmdzKQogewogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7
Ci0gICAgYXV0byBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoTWVk
aWFDb25zdHJhaW50c0RhdGEoY29uc3RyYWludHNEYXRhKSk7CiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKLSAg
ICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgY29u
c3RyYWludHMucHRyKCkpOworICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGRldmljZUlELCAmY29uc3RyYWludHMpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgotICAgICAgICBzb3Vy
Y2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9G
YWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZUlELCBjb25zdHJhaW50cy5w
dHIoKSk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS52aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2
aWNlSUQsICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0xODUsOSArMTg0LDggQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpzZXRFbmFibGVkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpCiAgICAgICAgIGl0ZXIt
PnZhbHVlLT5zb3VyY2UoKS5zZXRFbmFibGVkKGVuYWJsZWQpOwogfQogCi12b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEpCit2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQogewotICAgIGF1
dG8gY29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKE1lZGlhQ29uc3Ry
YWludHNEYXRhKGNvbnN0cmFpbnRzRGF0YSkpOwogICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5m
aW5kKGlkKTsKICAgICBpZiAoaXRlciA9PSBtX3Byb3hpZXMuZW5kKCkpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDJhNTFkN2MyNWJiNWNiZTcwNjY4NTQ2
ZjhlNjQ2MDBkOGU5YjVmYjAuLjgwZTMzZmYzMDE3MmZiMThlMDUwZTgzNmQzZjAxZGFkNTM3MDM2
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtNDksMTMgKzQ5LDEzIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZp
bmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNE
YXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52
YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsK
ICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKICAgICB2b2lkIHNldE11
dGVkKHVpbnQ2NF90LCBib29sKTsKICAgICB2b2lkIHNldEVuYWJsZWQodWludDY0X3QsIGJvb2wp
OwotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50c0RhdGEmKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHModWludDY0X3Qs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKIAogICAgIGNsYXNzIFNvdXJjZVBy
b3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYTNjODE0ZmViOWMwODJlMzA1NTRmYzM1OWI5
NTZhOGZlZmUwZGFiYS4uNjA1MzM3MWI3ZDJiMTYwOWZiZGU3Y2RkZDM5OWI5OTBiMTZjZThkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDEx
ICsyMiwxMSBAQAogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2Vz
IC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgewotICAgIENyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgU3RyaW5nIGRldmlj
ZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIHN0cnVjdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2Vzcywg
U3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIHNldHRpbmdzKQorICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgU3RyaW5nIGRldmljZUlELCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAg
U3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90IGlkKQogICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQogICAgIFNldE11dGVk
KHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQogICAgIFNldEVuYWJsZWQodWludDY0X3QgaWQsIGJv
b2wgZW5hYmxlZCkKLSAgICBBcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpCisgICAgQXBwbHlDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3Ry
YWludHMpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBjMGJi
ZjQxYmI5NmI3ZTQ5MzFhOTAyYjcwOTFmY2Q2Y2RjMTk3YWE0Li40Mzk1ZDM5ZDQzOWI1MjVkY2Mw
MTZkYTUxNTE3NzVkMDU0MTQzMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CkBAIC0yNTEsNyArMjUx
LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2NoZWR1
bGVOZXh0UmVqZWN0aW9uKCkKICAgICAgICAgbV9yZWplY3Rpb25UaW1lci5zdGFydE9uZVNob3Qo
U2Vjb25kcyhtaW1pbXVtRGVsYXlCZWZvcmVSZXBseWluZyArIHJhbmRvbU51bWJlcigpKSk7CiB9
CiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmlu
ZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50c0RhdGEmIGF1ZGlvQ29uc3RyYWludHNEYXRhLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzRGF0YSYgdmlkZW9Db25zdHJhaW50c0RhdGEpCit2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZv
ckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29u
c3RyYWludHMsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWlu
dHMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBhdXRvIGludmFsaWRIYW5kbGVy
ID0gW3RoaXMsIHVzZXJNZWRpYUlEXShjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSB7
CkBAIC0zMDYsMTIgKzMwNiwxMSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgYXV0byB2YWxpZGF0ZUNvbnN0cmFpbnRzSGFuZGxlciA9IFt0
aGlzLCB1c2VyTWVkaWFJRCwgdmFsaWRIYW5kbGVyID0gV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBp
bnZhbGlkSGFuZGxlciA9IFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBhdWRpb0NvbnN0cmFpbnRz
RGF0YSwgdmlkZW9Db25zdHJhaW50c0RhdGFdKFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNo
U2FsdCkgbXV0YWJsZSB7CisgICAgYXV0byB2YWxpZGF0ZUNvbnN0cmFpbnRzSGFuZGxlciA9IFt0
aGlzLCB1c2VyTWVkaWFJRCwgdmFsaWRIYW5kbGVyID0gV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBp
bnZhbGlkSGFuZGxlciA9IFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBhdWRpb0NvbnN0cmFpbnRz
ID0gV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzKSwgdmlkZW9Db25z
dHJhaW50cyA9IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHModmlkZW9Db25zdHJhaW50cyldKFN0
cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgbXV0YWJsZSB7CiAgICAgICAgIHN5bmNX
aXRoV2ViQ29yZVByZWZzKCk7Ci0KLSAgICAgICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gTWVk
aWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShNZWRpYUNvbnN0cmFpbnRzRGF0YShhdWRpb0NvbnN0
cmFpbnRzRGF0YSwgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7Ci0gICAgICAgIGF1dG8gdmlk
ZW9Db25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoTWVkaWFDb25zdHJh
aW50c0RhdGEodmlkZW9Db25zdHJhaW50c0RhdGEsIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkp
OwotCisgICAgICAgIAorICAgICAgICBhdWRpb0NvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQg
PSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7CisgICAgICAgIHZpZGVvQ29uc3RyYWludHMuZGV2
aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKICAgICAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0
Q29uc3RyYWludHMoV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGludmFsaWRIYW5kbGVy
KSwgYXVkaW9Db25zdHJhaW50cywgdmlkZW9Db25zdHJhaW50cyk7CiAgICAgfTsKIApAQCAtMzM1
LDggKzMzNCw4IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUoCiAgICAgVU5VU0VEX1BBUkFNKGZy
YW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZp
ZXIpOwogICAgIFVOVVNFRF9QQVJBTSh0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcik7
Ci0gICAgVU5VU0VEX1BBUkFNKGF1ZGlvQ29uc3RyYWludHNEYXRhKTsKLSAgICBVTlVTRURfUEFS
QU0odmlkZW9Db25zdHJhaW50c0RhdGEpOworICAgIFVOVVNFRF9QQVJBTShhdWRpb0NvbnN0cmFp
bnRzKTsKKyAgICBVTlVTRURfUEFSQU0odmlkZW9Db25zdHJhaW50cyk7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCBmYmJlZDU5YTczZDc4MGE4MzM5
Y2EwNzZmMmEzNTljYzQ5N2ZlZTk5Li40ZmVjZWVjMDJkN2UxMTViNmI4ZmIxZDU4MzFkMDE4Mzdj
MTgxZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMjksNyArMjks
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYXB0dXJlRGV2aWNlOwotc3RydWN0
IE1lZGlhQ29uc3RyYWludHNEYXRhOworc3RydWN0IE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBT
ZWN1cml0eU9yaWdpbjsKIH07CiAKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50c0RhdGEmIGF1ZGlvQ29uc3RyYWludHNEYXRhLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzRGF0YSYgdmlkZW9Db25zdHJhaW50c0RhdGEpOworICAgIHZvaWQgcmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJh
bWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRv
cExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
JiB2aWRlb0NvbnN0cmFpbnRzKTsKIAogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRl
ZCh1aW50NjRfdCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2
aWRlb0RldmljZVVJRCk7CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0
X3QsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDA2MTk5ZWNhMDdkNTI1M2I2N2M1YzFlNTE4MmVmNDNjZTU1YTU1NmQuLjQzOGRlYmQ4MmIxYWE0
ZDcxZmNjMWY5N2FiN2FiOTdjMjRmMGY0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjZW5kaWYKIAogLy8gVGhp
cyBjb250cm9scyB3aGF0IHN0cmF0ZWd5IHdlIHVzZSBmb3IgbW91c2Ugd2hlZWwgY29hbGVzY2lu
Zy4KQEAgLTU3NDQsMTkgKzU3NDQsMTkgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkmIFdlYlBhZ2VQcm94eTo6dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKIH0KICNl
bmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmln
aW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYgYXVkaW9D
b25zdHJhaW50c0RhdGEsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiB2aWRl
b0NvbnN0cmFpbnRzRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
IGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIHZpZGVv
Q29uc3RyYWludHMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBNRVNTQUdFX0NI
RUNLKG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpOwogCi0gICAgdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCkucmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
c2VyTWVkaWFJRCwgZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCB0
b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgYXVkaW9Db25zdHJhaW50c0RhdGEsIHZp
ZGVvQ29uc3RyYWludHNEYXRhKTsKKyAgICB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKS5yZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVzZXJNZWRpYUlELCBmcmFt
ZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHRvcExldmVsRG9jdW1lbnRP
cmlnaW5JZGVudGlmaWVyLCBhdWRpb0NvbnN0cmFpbnRzLCB2aWRlb0NvbnN0cmFpbnRzKTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsKICAgICBVTlVTRURfUEFSQU0oZnJh
bWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmll
cik7CiAgICAgVU5VU0VEX1BBUkFNKHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKTsK
LSAgICBVTlVTRURfUEFSQU0oYXVkaW9Db25zdHJhaW50c0RhdGEpOwotICAgIFVOVVNFRF9QQVJB
TSh2aWRlb0NvbnN0cmFpbnRzRGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGF1ZGlvQ29uc3RyYWlu
dHMpOworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0NvbnN0cmFpbnRzKTsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzVlNzQxOGUxNTliZGU1
OTJiNDJkMjRlMDgwM2E1NWNhYzgzMWQzYy4uMTg4YWMzNjEyODVkNTIzNzYxODM0YjYwMDJjODlh
MzUwODU4M2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTY0LDcgKzE2NCw3IEBAIGNsYXNzIFZhbGlkYXRpb25CdWJibGU7CiBzdHJ1Y3QgRGljdGlvbmFy
eVBvcHVwSW5mbzsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwogc3RydWN0IEZpbGVDaG9vc2Vy
U2V0dGluZ3M7Ci1zdHJ1Y3QgTWVkaWFDb25zdHJhaW50c0RhdGE7CitzdHJ1Y3QgTWVkaWFDb25z
dHJhaW50czsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1Y3QgVGV4dEFsdGVybmF0
aXZlV2l0aFJhbmdlOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKQEAgLTEzMTMsNyArMTMx
Myw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCk7CiAjZW5kaWYKLSAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmIGF1ZGlv
Q29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiB2aWRlb0Nv
bnN0cmFpbnRzKTsKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50
cywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cyk7CiAg
ICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRp
ZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKTsKIAogICAgIHZv
aWQgcnVuTW9kYWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IGI1M2NlZGJmODY2YTBlZmZkZmIyOWU5MWE3MzdmMDViNzNh
ZTIyNTguLjU1YWZjZDAxOWNhM2I0OWQwMWNlMDZjZWM4ZjliYmY2MDJmNTRkZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjY4LDcgKzI2OCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICAjIE1lZGlhU3RlYW0gbWVzc2FnZXMKLSAgICBSZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBmcmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJp
bmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzRGF0YSBhdWRpb0NvbnN0cmFpbnRzRGF0YSwgc3RydWN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHNEYXRhIHZpZGVvQ29uc3RyYWludHNEYXRhKQorICAgIFJlcXVlc3RVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0
b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMgYXVkaW9Db25zdHJhaW50cywgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMgdmlkZW9Db25zdHJhaW50cykKICAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVu
dGlmaWVyKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAppbmRleCAyZDI2YTQ5Njc5MzhjNTU2OTFiZDQwMDg5MzNjN2FkOTQ1ODRj
ZDg5Li4zZmJjY2E5MTU3NjZhOWYwM2ZiOTkzMDBhNTkzZDFkYTMwNmZlODYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0yOSw3ICsy
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25z
dHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNlbmRVc2VyTWVkaWFSZXF1ZXN0
KFVzZXJNZWRpYVJlcXVlc3QmIHIKIAogICAgIFNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luID0gcmVxdWVzdC50b3BMZXZlbERvY3VtZW50T3JpZ2luKCk7CiAgICAgU3RyaW5n
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcgPSB0b3BMZXZlbERvY3VtZW50T3JpZ2luID8g
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKnRvcExldmVsRG9jdW1lbnRP
cmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpIDogZW1wdHlTdHJpbmcoKTsKLSAgICBtX3BhZ2Uu
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZv
ckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRh
Ojpmcm9tU2VjdXJpdHlPcmlnaW4oKnJlcXVlc3QudXNlck1lZGlhRG9jdW1lbnRPcmlnaW4oKSku
ZGF0YWJhc2VJZGVudGlmaWVyKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcsIHJlcXVl
c3QuYXVkaW9Db25zdHJhaW50cygpLmRhdGEoKSwgcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKCku
ZGF0YSgpKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0SUQsIHdlYkZyYW1lLT5mcmFtZUlE
KCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpyZXF1ZXN0LnVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpLCB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luU3RyaW5nLCByZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMoKSwgcmVxdWVzdC52aWRl
b0NvbnN0cmFpbnRzKCkpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OmNhbmNlbFVzZXJNZWRpYVJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggM2UzNWMyNzU1ZGI5OGUyZjMyZDIxZDQ1NDAxNThm
MjA5Y2Q0NzdhNi4uZTIyNGVhZTJmMGE1YmU4MDI5YTEyY2JiODM2ODkyOTMzNGY0MGRkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25z
dHJhaW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMuaD4KQEAgLTI5OCwxMiArMjk4LDcgQEAgdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c2V0RW5hYmxlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQog
CiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90
IGlkLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKIHsKLSAg
ICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50c0RhdGE7Ci0gICAgY29uc3RyYWludHNE
YXRhLm1hbmRhdG9yeUNvbnN0cmFpbnRzID0gY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWlu
dHMoKTsKLSAgICBjb25zdHJhaW50c0RhdGEuYWR2YW5jZWRDb25zdHJhaW50cyA9IGNvbnN0cmFp
bnRzLmFkdmFuY2VkQ29uc3RyYWludHMoKTsKLSAgICBjb25zdHJhaW50c0RhdGEuaXNWYWxpZCA9
IGNvbnN0cmFpbnRzLmlzVmFsaWQoKTsKLQotICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpBcHBseUNvbnN0cmFpbnRzKGlkLCBjb25zdHJh
aW50c0RhdGEpLCAwKTsKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25zdHJhaW50cyhpZCwgY29uc3RyYWludHMpLCAwKTsK
IH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2Nl
ZWRlZCh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310166</attachid>
            <date>2017-05-15 14:27:54 -0700</date>
            <delta_ts>2017-05-15 16:33:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172132-20170515142753.patch</filename>
            <type>text/plain</type>
            <size>72312</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRlNzlmODZmNTk0NzQ0
ZjAyN2M0NGMwYmI3NmUxZjVkZTg5OTAwNi4uNTU0NWU2OTQ3Mjc5YjFjOWQzYWYyZWViMmIyODc0
YmRiNzI0Mjg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE3LTA1LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTWVkaWFDb25z
dHJhaW50c0RhdGEgYW5kIE1lZGlhQ29uc3RyYWludHNJbXBsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhh
dmlvci4KKworICAgICAgICBSZW1vdmluZyBNZWRpYUNvbnN0cmFpbnRzRGF0YSBhbmQgTWVkaWFD
b25zdHJhaW50c0ltcGwgYWxsb3dzIHNpbXBsaWZ5aW5nIHRoZSBjb2RlLgorICAgICAgICBGdXJ0
aGVyIHNpbXBsaWZpZWQgdGhlIGNvZGUgYnkgbWFraW5nIE1lZGlhQ29uc3RyYWludHMgbm8gbG9u
Z2VyIHJlZiBjb3VudGVkIGFuZCBub3cgYSBzdHJ1Y3QuCisgICAgICAgIFNpbXBsaWZpZWQgc29t
ZSBSZWFsdGltZU1lZGlhU291cmNlIHN1YmNsYXNzZXMgYnkgcmVtb3ZpbmcgdW51c2VkIE1lZGlh
Q29uc3RyYWludHMgY2xhc3MgbWVtYmVycy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVNZWRpYUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6
Z2V0VXNlck1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHNJ
bXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVkaWFDb25zdHJhaW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjphcHBseUNvbnN0cmFpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpV
c2VyTWVkaWFSZXF1ZXN0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0OjpVc2VyTWVkaWFSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVl
c3Q6OmFsbG93KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvQ29uc3RyYWlu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6dmlkZW9Db25zdHJhaW50
cyk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWRkRGVmYXVsdFZpZGVvQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50czo6aXNDb25zdHJhaW50U2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHM6OnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzOjp+TWVkaWFDb25zdHJhaW50cyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzOjpNZWRpYUNvbnN0cmFpbnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFs
aWRhdGlvbkNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2VsZWN0U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
c3VwcG9ydHNDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnN1
cHBvcnRlZENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnN1cHBvcnRlZENvbnN0
cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2U6OmNvbnN0cmFpbnRzKTogRGVsZXRlZC4KKwogMjAxNy0wNS0xNSAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsZSBsaW5lIGxheW91dDogTGVh
ZGluZyB3aGl0ZXNwYWNlIGZvbGxvd2VkIGJ5IGEgPGJyPiBwcm9kdWNlcyBhbiBleHRyYSBsaW5l
YnJlYWsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2IxOWZmNzFjN2VkODI2MzI5YzRkZTc0ZGY1ZmU3MjdkNmI0
YzE2ZC4uMjcwMWRkZWM2MDI5NGJhMmU4MTc4MDYxOTgyOWU3YjEzMTUyNDVlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA1LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTWVkaWFDb25zdHJhaW50c0RhdGEgYW5kIE1lZGlh
Q29uc3RyYWludHNJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzIxMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmluZyBNZWRpYUNvbnN0cmFpbnRzRGF0YSBhbmQgTWVkaWFDb25zdHJhaW50
c0ltcGwgYWxsb3dzIHNpbXBsaWZ5aW5nIHRoZSBjb2RlLgorICAgICAgICBGdXJ0aGVyIHNpbXBs
aWZpZWQgdGhlIGNvZGUgYnkgbWFraW5nIE1lZGlhQ29uc3RyYWludHMgbm8gbG9uZ2VyIHJlZiBj
b3VudGVkIGFuZCBub3cgYSBzdHJ1Y3QuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1l
ZGlhQ29uc3RyYWludHM+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1l
ZGlhQ29uc3RyYWludHM+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1l
ZGlhQ29uc3RyYWludHNEYXRhPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRzRGF0YT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNlbmRVc2VyTWVkaWFSZXF1ZXN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHMpOgorCiAyMDE3
LTA1LTE0ICBEYWV3b29uZyBKYW5nICA8ZGFld29vbmcuamFuZ0BuYXZlcmNvcnAuY29tPgogCiAg
ICAgICAgIFtDb29yZGluYXRlZEdyYXBoaWNzXSBSZW1vdmUgdW51c2VkIGZpbGVzIGFuZCBsaW5l
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjEwNzc4YWZiMTA5YTQ1MmUwOTY3OGMzMWVjYjkz
ZTUxZTVjYWYyLi5hMWI0MmE2OTY4N2Y2MTkyYjg1MDlkNzhjOWM5NzUyODUxZTc1ZjAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtOTQ0LDcgKzk0NCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBNb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcAogCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHAKLSAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
RW51bWVyYXRpb25SZXF1ZXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGZlZGJiNzExODczYjk0NTdjNGZkYjAxNzc0NDJlOGM2Y2U2NWJl
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJp
YnV0b3JzCi0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tIHRoaXMKLSAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0j
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBs
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIGlubGluZSB2b2lkIGFkZERlZmF1
bHRWaWRlb0NvbnN0cmFpbnRzKE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiB2aWRlb0NvbnN0
cmFpbnRzLCBib29sIGFkZEZyYW1lUmF0ZUNvbnN0cmFpbnQsIGJvb2wgYWRkU2l6ZUNvbnN0cmFp
bnQsIGJvb2wgYWRkRmFjaW5nTW9kZUNvbnN0cmFpbnQpCi17Ci0gICAgaWYgKGFkZEZyYW1lUmF0
ZUNvbnN0cmFpbnQpIHsKLSAgICAgICAgRG91YmxlQ29uc3RyYWludCBmcmFtZVJhdGVDb25zdHJh
aW50KHsgfSwgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlKTsKLSAgICAgICAgZnJhbWVS
YXRlQ29uc3RyYWludC5zZXRJZGVhbCgzMCk7Ci0gICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0
KE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgV1RGTW92ZShmcmFtZVJhdGVDb25zdHJh
aW50KSk7Ci0gICAgfQotICAgIGlmIChhZGRTaXplQ29uc3RyYWludCkgewotICAgICAgICBJbnRD
b25zdHJhaW50IHdpZHRoQ29uc3RyYWludCh7IH0sIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRo
KTsKLSAgICAgICAgd2lkdGhDb25zdHJhaW50LnNldElkZWFsKDY0MCk7Ci0gICAgICAgIHZpZGVv
Q29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCBXVEZNb3ZlKHdpZHRo
Q29uc3RyYWludCkpOwotCi0gICAgICAgIEludENvbnN0cmFpbnQgaGVpZ2h0Q29uc3RyYWludCh7
IH0sIE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCk7Ci0gICAgICAgIGhlaWdodENvbnN0cmFp
bnQuc2V0SWRlYWwoNDgwKTsKLSAgICAgICAgdmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFDb25z
dHJhaW50VHlwZTo6SGVpZ2h0LCBXVEZNb3ZlKGhlaWdodENvbnN0cmFpbnQpKTsKLSAgICB9Ci0g
ICAgaWYgKGFkZEZhY2luZ01vZGVDb25zdHJhaW50KSB7Ci0gICAgICAgIFN0cmluZ0NvbnN0cmFp
bnQgZmFjaW5nTW9kZUNvbnN0cmFpbnQoeyB9LCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdN
b2RlKTsKLSAgICAgICAgZmFjaW5nTW9kZUNvbnN0cmFpbnQuc2V0SWRlYWwoQVNDSUlMaXRlcmFs
KCJ1c2VyIikpOwotICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFpbnRU
eXBlOjpGYWNpbmdNb2RlLCBXVEZNb3ZlKGZhY2luZ01vZGVDb25zdHJhaW50KSk7Ci0gICAgfQot
fQotCi1ib29sIE1lZGlhQ29uc3RyYWludHNEYXRhOjppc0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5j
dGlvbjxib29sKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJik+JiYgY2FsbGJhY2sp
Ci17Ci0gICAgaWYgKGNhbGxiYWNrKG1hbmRhdG9yeUNvbnN0cmFpbnRzKSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0cmFpbnQgOiBhZHZhbmNlZENv
bnN0cmFpbnRzKSB7Ci0gICAgICAgIGlmIChjYWxsYmFjayhjb25zdHJhaW50KSkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgTWVk
aWFDb25zdHJhaW50c0RhdGE6OnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCkKLXsKLSAgICAv
LyA2NDB4NDgwLCAzMGZwcywgZm9udC1mYWNpbmcgY2FtZXJhCi0gICAgYm9vbCBoYXNGcmFtZVJh
dGVDb25zdHJhaW50cyA9IGlzQ29uc3RyYWludFNldChbXShjb25zdCBNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcCYgY29uc3RyYWludCkgewotICAgICAgICByZXR1cm4gISFjb25zdHJhaW50LmZy
YW1lUmF0ZSgpOwotICAgIH0pOwotCi0gICAgYm9vbCBoYXNTaXplQ29uc3RyYWludHMgPSBpc0Nv
bnN0cmFpbnRTZXQoW10oY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIGNvbnN0cmFp
bnQpIHsKLSAgICAgICAgcmV0dXJuICEhY29uc3RyYWludC53aWR0aCgpIHx8ICEhY29uc3RyYWlu
dC5oZWlnaHQoKTsKLSAgICB9KTsKLQotICAgIGJvb2wgaGFzRmFjaW5nTW9kZUNvbnN0cmFpbnRz
ID0gaXNDb25zdHJhaW50U2V0KFtdKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBj
b25zdHJhaW50KSB7Ci0gICAgICAgIHJldHVybiAhIWNvbnN0cmFpbnQuZmFjaW5nTW9kZSgpOwot
ICAgIH0pOwotCi0gICAgaWYgKGhhc0ZyYW1lUmF0ZUNvbnN0cmFpbnRzICYmIGhhc1NpemVDb25z
dHJhaW50cyAmJiBoYXNGYWNpbmdNb2RlQ29uc3RyYWludHMpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGFkZERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKG1hbmRhdG9yeUNvbnN0cmFpbnRzLCAhaGFz
RnJhbWVSYXRlQ29uc3RyYWludHMsICFoYXNTaXplQ29uc3RyYWludHMsICFoYXNGYWNpbmdNb2Rl
Q29uc3RyYWludHMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzZGYxYWE0Y2JkNzY4NmU0ZTczMTU5MmZmNmI3ZTgwNTExYjk1ZGFkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuaAorKysgL2Rldi9udWxs
CkBAIC0xLDk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICogMy4gTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMK
LSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0KLSNpbmNsdWRlICJFeGNlcHRpb25CYXNlLmgiCi0jaW5jbHVkZSAiTWVkaWFD
b25zdHJhaW50cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1zdHJ1Y3QgTWVkaWFDb25zdHJhaW50c0RhdGEgewotICAgIE1lZGlhQ29uc3RyYWlu
dHNEYXRhKCkgPSBkZWZhdWx0OwotICAgIE1lZGlhQ29uc3RyYWludHNEYXRhKE1lZGlhVHJhY2tD
b25zdHJhaW50U2V0TWFwJiYgbWFuZGF0b3J5Q29uc3RyYWludHMsIFZlY3RvcjxNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcD4mJiBhZHZhbmNlZENvbnN0cmFpbnRzLCBib29sIGlzVmFsaWQpCi0g
ICAgICAgIDogbWFuZGF0b3J5Q29uc3RyYWludHMoV1RGTW92ZShtYW5kYXRvcnlDb25zdHJhaW50
cykpCi0gICAgICAgICwgYWR2YW5jZWRDb25zdHJhaW50cyhXVEZNb3ZlKGFkdmFuY2VkQ29uc3Ry
YWludHMpKQotICAgICAgICAsIGlzVmFsaWQoaXNWYWxpZCkKLSAgICB7Ci0gICAgfQotICAgIE1l
ZGlhQ29uc3RyYWludHNEYXRhKGNvbnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50
cywgY29uc3QgU3RyaW5nJiBoYXNoU2FsdCkKLSAgICAgICAgOiBtYW5kYXRvcnlDb25zdHJhaW50
cyhjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cykKLSAgICAgICAgLCBhZHZhbmNlZENv
bnN0cmFpbnRzKGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMpCi0gICAgICAgICwgZGV2
aWNlSURIYXNoU2FsdChoYXNoU2FsdCkKLSAgICAgICAgLCBpc1ZhbGlkKGNvbnN0cmFpbnRzLmlz
VmFsaWQpCi0gICAgewotICAgIH0KLSAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YShjb25zdCBNZWRp
YUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKLSAgICAgICAgOiBtYW5kYXRvcnlDb25zdHJhaW50
cyhjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cygpKQotICAgICAgICAsIGFkdmFuY2Vk
Q29uc3RyYWludHMoY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cygpKQotICAgICAgICAs
IGRldmljZUlESGFzaFNhbHQoY29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCgpKQotICAgICAg
ICAsIGlzVmFsaWQoY29uc3RyYWludHMuaXNWYWxpZCgpKQotICAgIHsKLSAgICB9Ci0KLSAgICB2
b2lkIHNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCk7Ci0gICAgYm9vbCBpc0NvbnN0cmFpbnRT
ZXQoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJik+
JiYpOwotCi0gICAgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAgbWFuZGF0b3J5Q29uc3RyYWlu
dHM7Ci0gICAgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiBhZHZhbmNlZENvbnN0
cmFpbnRzOwotICAgIFN0cmluZyBkZXZpY2VJREhhc2hTYWx0OwotICAgIGJvb2wgaXNWYWxpZCB7
IGZhbHNlIH07Ci19OwotCi1jbGFzcyBNZWRpYUNvbnN0cmFpbnRzSW1wbCBmaW5hbCA6IHB1Ymxp
YyBNZWRpYUNvbnN0cmFpbnRzIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE1lZGlhQ29uc3Ry
YWludHNJbXBsPiBjcmVhdGUoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmJiBtYW5kYXRvcnlD
b25zdHJhaW50cywgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiYmIGFkdmFuY2Vk
Q29uc3RyYWludHMsIGJvb2wgaXNWYWxpZCkgeyByZXR1cm4gY3JlYXRlKE1lZGlhQ29uc3RyYWlu
dHNEYXRhKFdURk1vdmUobWFuZGF0b3J5Q29uc3RyYWludHMpLCBXVEZNb3ZlKGFkdmFuY2VkQ29u
c3RyYWludHMpLCBpc1ZhbGlkKSk7IH0KLSAgICBzdGF0aWMgUmVmPE1lZGlhQ29uc3RyYWludHNJ
bXBsPiBjcmVhdGUoTWVkaWFDb25zdHJhaW50c0RhdGEmJiBkYXRhKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IE1lZGlhQ29uc3RyYWludHNJbXBsKFdURk1vdmUoZGF0YSkpKTsgfQotCi0gICAgTWVk
aWFDb25zdHJhaW50c0ltcGwoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB+TWVkaWFDb25zdHJh
aW50c0ltcGwoKSA9IGRlZmF1bHQ7Ci0KLSAgICBjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNl
dE1hcCYgbWFuZGF0b3J5Q29uc3RyYWludHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RhdGEu
bWFuZGF0b3J5Q29uc3RyYWludHM7IH0KLSAgICBjb25zdCBWZWN0b3I8TWVkaWFUcmFja0NvbnN0
cmFpbnRTZXRNYXA+JiBhZHZhbmNlZENvbnN0cmFpbnRzKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9kYXRhLmFkdmFuY2VkQ29uc3RyYWludHM7IH0KLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2RhdGEuaXNWYWxpZDsgfQotCi0gICAgY29uc3QgU3RyaW5nJiBkZXZp
Y2VJREhhc2hTYWx0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kYXRhLmRldmljZUlESGFzaFNh
bHQ7IH0KLSAgICB2b2lkIHNldERldmljZUlESGFzaFNhbHQoY29uc3QgU3RyaW5nJiBzYWx0KSBm
aW5hbCB7IG1fZGF0YS5kZXZpY2VJREhhc2hTYWx0ID0gc2FsdDsgfQotCi0gICAgY29uc3QgTWVk
aWFDb25zdHJhaW50c0RhdGEmIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KLSAgICB2
b2lkIHNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCkgeyBtX2RhdGEuc2V0RGVmYXVsdFZpZGVv
Q29uc3RyYWludHMoKTsgfQotCi1wcml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IE1lZGlhQ29uc3RyYWludHNJbXBsKE1lZGlhQ29uc3RyYWludHNEYXRhJiYgZGF0YSkgOiBtX2Rh
dGEoV1RGTW92ZShkYXRhKSkgeyB9Ci0KLSAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBtX2RhdGE7
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuY3BwCmluZGV4IDA1NTA5NWRkN2M5YWFhMWI1MmIzZDdmYzg3NWM2YzRiNWQwYzYz
ZmEuLjM0ZjZiMjMwNDUwMDliODc2NDIyNTFjMzQwZGY5MWRlZTA4MGMxOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAg
LTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBs
LmgiCiAjaW5jbHVkZSAiTWVkaWFEZXZpY2VzUmVxdWVzdC5oIgogI2luY2x1ZGUgIk1lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3QuaCIK
QEAgLTc0LDE0ICs3MywxNiBAQCBEb2N1bWVudCogTWVkaWFEZXZpY2VzOjpkb2N1bWVudCgpIGNv
bnN0CiAgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOwogfQogCi1zdGF0aWMgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGVNZWRpYUNv
bnN0cmFpbnRzSW1wbChjb25zdCBWYXJpYW50PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4m
IGNvbnN0cmFpbnRzKQorc3RhdGljIE1lZGlhQ29uc3RyYWludHMgY3JlYXRlTWVkaWFDb25zdHJh
aW50cyhjb25zdCBWYXJpYW50PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFp
bnRzKQogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGNvbnN0cmFpbnRzLAotICAgICAgICBb
Jl0gKGJvb2wgY29uc3RyYWludHMpIHsKLSAgICAgICAgICAgIHJldHVybiBNZWRpYUNvbnN0cmFp
bnRzSW1wbDo6Y3JlYXRlKHsgfSwgeyB9LCBjb25zdHJhaW50cyk7CisgICAgICAgIFsmXSAoYm9v
bCBpc1ZhbGlkKSB7CisgICAgICAgICAgICBNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzOwor
ICAgICAgICAgICAgY29uc3RyYWludHMuaXNWYWxpZCA9IGlzVmFsaWQ7CisgICAgICAgICAgICBy
ZXR1cm4gY29uc3RyYWludHM7CiAgICAgICAgIH0sCi0gICAgICAgIFsmXSAoY29uc3QgTWVkaWFU
cmFja0NvbnN0cmFpbnRzJiBjb25zdHJhaW50cykgewotICAgICAgICAgICAgcmV0dXJuIGNyZWF0
ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzKTsKKyAgICAgICAgWyZdIChjb25zdCBN
ZWRpYVRyYWNrQ29uc3RyYWludHMmIHRyYWNrQ29uc3RyYWludHMpIHsKKyAgICAgICAgICAgIHJl
dHVybiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKHRyYWNrQ29uc3RyYWludHMpOwogICAgICAgICB9
CiAgICAgKTsKIH0KQEAgLTkyLDEwICs5MywxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYURl
dmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludAog
ICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NU
QVRFX0VSUiB9OwogCi0gICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25z
dHJhaW50c0ltcGwoY29uc3RyYWludHMuYXVkaW8pOwotICAgIGF1dG8gdmlkZW9Db25zdHJhaW50
cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzLnZpZGVvKTsKLSAgICBp
ZiAodmlkZW9Db25zdHJhaW50cy0+aXNWYWxpZCgpKQotICAgICAgICB2aWRlb0NvbnN0cmFpbnRz
LT5zZXREZWZhdWx0VmlkZW9Db25zdHJhaW50cygpOworICAgIGF1dG8gYXVkaW9Db25zdHJhaW50
cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMuYXVkaW8pOworICAgIGF1dG8g
dmlkZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlk
ZW8pOworICAgIGlmICh2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQpCisgICAgICAgIHZpZGVvQ29u
c3RyYWludHMuc2V0RGVmYXVsdFZpZGVvQ29uc3RyYWludHMoKTsKICAgICByZXR1cm4gVXNlck1l
ZGlhUmVxdWVzdDo6c3RhcnQoKmRvY3VtZW50LCBXVEZNb3ZlKGF1ZGlvQ29uc3RyYWludHMpLCBX
VEZNb3ZlKHZpZGVvQ29uc3RyYWludHMpLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKaW5kZXggMTc3ZWY3MmVhODZiMjVkNDFkYTAzM2U2Zjg5YWZhNWUyZmJjZDdlMy4uMGM1
OTJhMzViZTU4NWY1MjY5MmRmOWMxZTRiYjk2NTY1ZjdjYTJhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBA
IC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiSlNPdmVyY29uc3RyYWluZWRFcnJvci5oIgotI2luY2x1ZGUgIk1lZGlh
Q29uc3RyYWludHNJbXBsLmgiCisjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5oIgogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCiAjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKQEAgLTI0NiwxMSArMjQ2LDE0IEBAIE1lZGlhU3RyZWFt
VHJhY2s6OlRyYWNrQ2FwYWJpbGl0aWVzIE1lZGlhU3RyZWFtVHJhY2s6OmdldENhcGFiaWxpdGll
cygpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFJlZjxNZWRpYUNvbnN0
cmFpbnRzSW1wbD4gY3JlYXRlTWVkaWFDb25zdHJhaW50c0ltcGwoY29uc3Qgc3RkOjpvcHRpb25h
bDxNZWRpYVRyYWNrQ29uc3RyYWludHM+JiBjb25zdHJhaW50cykKK3N0YXRpYyBNZWRpYUNvbnN0
cmFpbnRzIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRy
YWNrQ29uc3RyYWludHM+JiBjb25zdHJhaW50cykKIHsKLSAgICBpZiAoIWNvbnN0cmFpbnRzKQot
ICAgICAgICByZXR1cm4gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZSh7IH0sIHsgfSwgdHJ1
ZSk7Ci0gICAgcmV0dXJuIGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzLnZh
bHVlKCkpOworICAgIGlmICghY29uc3RyYWludHMpIHsKKyAgICAgICAgTWVkaWFDb25zdHJhaW50
cyB2YWxpZENvbnN0cmFpbnRzOworICAgICAgICB2YWxpZENvbnN0cmFpbnRzLmlzVmFsaWQgPSB0
cnVlOworICAgICAgICByZXR1cm4gdmFsaWRDb25zdHJhaW50czsKKyAgICB9CisgICAgcmV0dXJu
IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmFsdWUoKSk7CiB9CiAKIHZvaWQg
TWVkaWFTdHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBzdGQ6Om9wdGlvbmFsPE1l
ZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlKQpAQCAtMjY5LDcgKzI3Miw3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6
YXBwbHlDb25zdHJhaW50cyhjb25zdCBzdGQ6Om9wdGlvbmFsPE1lZGlhVHJhY2tDb25zdHJhaW50
CiAgICAgICAgIHdlYWtUaGlzLT5tX3Byb21pc2UtPnJlc29sdmUoKTsKICAgICAgICAgd2Vha1Ro
aXMtPm1fY29uc3RyYWludHMgPSBjb25zdHJhaW50cy52YWx1ZV9vcihNZWRpYVRyYWNrQ29uc3Ry
YWludHMgeyB9KTsKICAgICB9OwotICAgIG1fcHJpdmF0ZS0+YXBwbHlDb25zdHJhaW50cyhjcmVh
dGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdHJhaW50cyksIFdURk1vdmUoc3VjY2Vzc0hhbmRs
ZXIpLCBXVEZNb3ZlKGZhaWx1cmVIYW5kbGVyKSk7CisgICAgbV9wcml2YXRlLT5hcHBseUNvbnN0
cmFpbnRzKGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMpLCBXVEZNb3ZlKHN1Y2Nl
c3NIYW5kbGVyKSwgV1RGTW92ZShmYWlsdXJlSGFuZGxlcikpOwogfQogCiB2b2lkIE1lZGlhU3Ry
ZWFtVHJhY2s6OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFp
bnRzLmNwcAppbmRleCBjNGM0Y2YxMjI2MGFlMjJlYTQ2YmQxYmEyNjI3N2NlNTk3M2QxMzkyLi4w
ODJhYjNkZTNjY2I1YWI3MWRjNjc0Mzg5OGJmM2I4MDFlMjZhMThiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3Ry
YWludHMuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
Ci0jaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKKyNpbmNsdWRlICJNZWRpYUNvbnN0
cmFpbnRzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTkwLDkgKzE5MCw5IEBAIHN0
YXRpYyBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+IGNvbnZlcnRBZHZhbmNlZFRv
SW50ZXJuYWxGb3JtKGNvbnN0IHN0CiAgICAgcmV0dXJuIGNvbnZlcnRBZHZhbmNlZFRvSW50ZXJu
YWxGb3JtKG9wdGlvbmFsVmVjdG9yLnZhbHVlKCkpOwogfQogCi1SZWY8TWVkaWFDb25zdHJhaW50
c0ltcGw+IGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJh
aW50cyYgY29uc3RyYWludHMpCitNZWRpYUNvbnN0cmFpbnRzIGNyZWF0ZU1lZGlhQ29uc3RyYWlu
dHMoY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKIHsKLSAgICByZXR1
cm4gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShjb252ZXJ0VG9JbnRlcm5hbEZvcm0oQ29u
c3RyYWludFNldFR5cGU6Ok1hbmRhdG9yeSwgY29uc3RyYWludHMpLCBjb252ZXJ0QWR2YW5jZWRU
b0ludGVybmFsRm9ybShjb25zdHJhaW50cy5hZHZhbmNlZCksIHRydWUpOworICAgIHJldHVybiB7
IGNvbnZlcnRUb0ludGVybmFsRm9ybShDb25zdHJhaW50U2V0VHlwZTo6TWFuZGF0b3J5LCBjb25z
dHJhaW50cyksIGNvbnZlcnRBZHZhbmNlZFRvSW50ZXJuYWxGb3JtKGNvbnN0cmFpbnRzLmFkdmFu
Y2VkKSwgU3RyaW5nIHsgfSwgdHJ1ZSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaAppbmRl
eCAzYmNjZGFlYTAxMDYwNWFhNDk5YTZjOWFjMWJjM2U5YTA5MjQxZTBmLi4wMzk1NDc2MWFkODBi
OWE5OGRiZmE4YWY0YWZiOWRkMTgyNjQ4MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKQEAgLTM0
LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYUNvbnN0cmFp
bnRzSW1wbDsKK3N0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwogCiBzdHJ1Y3QgQ29uc3RyYWluQm9v
bGVhblBhcmFtZXRlcnMgewogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZXhhY3Q7CkBAIC03OSw3
ICs3OSw3IEBAIHN0cnVjdCBNZWRpYVRyYWNrQ29uc3RyYWludHMgOiBNZWRpYVRyYWNrQ29uc3Ry
YWludFNldCB7CiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRT
ZXQ+PiBhZHZhbmNlZDsKIH07CiAKLVJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gY3JlYXRlTWVk
aWFDb25zdHJhaW50c0ltcGwoY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJik7CitNZWRpYUNv
bnN0cmFpbnRzIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3QgTWVkaWFUcmFja0NvbnN0cmFp
bnRzJik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggYTA4NmVmMzVkOThmNTI4NTE3ZTc1MWZk
YjA4NGVkNzRjN2E4MmIyMS4uZTg5ZjhmNzBiYTdkMmI0NWNmN2ViMWIwNGE2NWJjZmNkNzFhYWU2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC00MiwyMCArNDIsMjAgQEAKICNpbmNsdWRlICJKU01lZGlh
U3RyZWFtLmgiCiAjaW5jbHVkZSAiSlNPdmVyY29uc3RyYWluZWRFcnJvci5oIgogI2luY2x1ZGUg
Ik1haW5GcmFtZS5oIgotI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCisjaW5jbHVk
ZSAiTWVkaWFDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xs
ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1FeGNlcHRpb25Pcjx2b2lkPiBVc2VyTWVk
aWFSZXF1ZXN0OjpzdGFydChEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYUNvbnN0cmFpbnRz
SW1wbD4mJiBhdWRpb0NvbnN0cmFpbnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlk
ZW9Db25zdHJhaW50cywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVh
bT4+JiYgcHJvbWlzZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0
KERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFDb25zdHJhaW50cyYmIGF1ZGlvQ29uc3RyYWludHMs
IE1lZGlhQ29uc3RyYWludHMmJiB2aWRlb0NvbnN0cmFpbnRzLCBET01Qcm9taXNlRGVmZXJyZWQ8
SURMSW50ZXJmYWNlPE1lZGlhU3RyZWFtPj4mJiBwcm9taXNlKQogewogICAgIGF1dG8qIHVzZXJN
ZWRpYSA9IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKICAgICBp
ZiAoIXVzZXJNZWRpYSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5PVF9TVVBQT1JURURf
RVJSIH07IC8vIEZJWE1FOiBXaHkgaXMgaXQgYmV0dGVyIHRvIHJldHVybiBhbiBleGNlcHRpb24g
aGVyZSBpbnN0ZWFkIG9mIHJlamVjdGluZyB0aGUgcHJvbWlzZSBhcyB3ZSBkbyBqdXN0IGJlbG93
PwogCi0gICAgaWYgKCFhdWRpb0NvbnN0cmFpbnRzLT5pc1ZhbGlkKCkgJiYgIXZpZGVvQ29uc3Ry
YWludHMtPmlzVmFsaWQoKSkgeworICAgIGlmICghYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYm
ICF2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoVHlw
ZUVycm9yKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC02NCw3ICs2NCw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KERvY3VtZW50JiBkb2N1bWVu
dCwgUmVmPE1lZGlhQ29uc3RyYWluCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotVXNlck1lZGlhUmVx
dWVzdDo6VXNlck1lZGlhUmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQsIFVzZXJNZWRpYUNvbnRy
b2xsZXImIGNvbnRyb2xsZXIsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBhdWRpb0NvbnN0
cmFpbnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJhaW50cywgRE9N
UHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYgcHJvbWlzZSkKK1Vz
ZXJNZWRpYVJlcXVlc3Q6OlVzZXJNZWRpYVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBVc2Vy
TWVkaWFDb250cm9sbGVyJiBjb250cm9sbGVyLCBNZWRpYUNvbnN0cmFpbnRzJiYgYXVkaW9Db25z
dHJhaW50cywgTWVkaWFDb25zdHJhaW50cyYmIHZpZGVvQ29uc3RyYWludHMsIERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PiYmIHByb21pc2UpCiAgICAgOiBDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCiAgICAgLCBtX2F1ZGlvQ29uc3RyYWlu
dHMoV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSkKICAgICAsIG1fdmlkZW9Db25zdHJhaW50cyhX
VEZNb3ZlKHZpZGVvQ29uc3RyYWludHMpKQpAQCAtMTgwLDEwICsxODAsMTAgQEAgdm9pZCBVc2Vy
TWVkaWFSZXF1ZXN0OjphbGxvdyhTdHJpbmcmJiBhdWRpb0RldmljZVVJRCwgU3RyaW5nJiYgdmlk
ZW9EZXZpY2VVSUQsIFMKICAgICAgICAgbV9wcm9taXNlLnJlc29sdmUoc3RyZWFtKTsKICAgICB9
OwogCi0gICAgbV9hdWRpb0NvbnN0cmFpbnRzLT5zZXREZXZpY2VJREhhc2hTYWx0KFN0cmluZyhk
ZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKLSAgICBtX3ZpZGVvQ29uc3RyYWludHMtPnNldERl
dmljZUlESGFzaFNhbHQoV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKKyAgICBt
X2F1ZGlvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50aWZpZXJIYXNo
U2FsdDsKKyAgICBtX3ZpZGVvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IFdURk1vdmUo
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKIAotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKFdURk1vdmUoY2FsbGJhY2spLCBtX2Fs
bG93ZWRBdWRpb0RldmljZVVJRCwgbV9hbGxvd2VkVmlkZW9EZXZpY2VVSUQsICZtX2F1ZGlvQ29u
c3RyYWludHMuZ2V0KCksICZtX3ZpZGVvQ29uc3RyYWludHMuZ2V0KCkpOworICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKFdURk1vdmUo
Y2FsbGJhY2spLCBtX2FsbG93ZWRBdWRpb0RldmljZVVJRCwgbV9hbGxvd2VkVmlkZW9EZXZpY2VV
SUQsICZtX2F1ZGlvQ29uc3RyYWludHMsICZtX3ZpZGVvQ29uc3RyYWludHMpOwogfQogCiB2b2lk
IFVzZXJNZWRpYVJlcXVlc3Q6OmRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBj
b25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCA1MzkzYmZkN2U4
YTJmNTAzYTM2NTg4MTUwYjljNGZlODY5ZTJiOGQ5Li5iMWFjNWIyMWQxY2IxNGIyODY5YWU5OTky
NGUzOTUwMGMxNjVjODc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtMzYsMTcgKzM2LDE3IEBACiAKICNpbmNs
dWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgorI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBNZWRpYUNvbnN0cmFpbnRzSW1wbDsKIGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3Mg
U2VjdXJpdHlPcmlnaW47CiBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwogCiBjbGFzcyBVc2Vy
TWVkaWFSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VXNlck1lZGlhUmVxdWVzdD4sIHByaXZh
dGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiBzdGFydChEb2N1bWVudCYsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4m
JiBhdWRpb0NvbnN0cmFpbnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25z
dHJhaW50cywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYp
OworICAgIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBzdGFydChEb2N1bWVudCYsIE1lZGlhQ29u
c3RyYWludHMmJiBhdWRpb0NvbnN0cmFpbnRzLCBNZWRpYUNvbnN0cmFpbnRzJiYgdmlkZW9Db25z
dHJhaW50cywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYp
OwogCiAgICAgdmlydHVhbCB+VXNlck1lZGlhUmVxdWVzdCgpOwogCkBAIC02MSw4ICs2MSw4IEBA
IHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXVkaW9EZXZpY2VVSURzKCkgY29u
c3QgeyByZXR1cm4gbV9hdWRpb0RldmljZVVJRHM7IH0KICAgICBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgdmlkZW9EZXZpY2VVSURzKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0RldmljZVVJRHM7IH0K
IAotICAgIGNvbnN0IE1lZGlhQ29uc3RyYWludHNJbXBsJiBhdWRpb0NvbnN0cmFpbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9Ci0gICAgY29uc3QgTWVkaWFDb25zdHJh
aW50c0ltcGwmIHZpZGVvQ29uc3RyYWludHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvQ29uc3Ry
YWludHM7IH0KKyAgICBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9CisgICAgY29uc3QgTWVkaWFDb25z
dHJhaW50cyYgdmlkZW9Db25zdHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Db25zdHJh
aW50czsgfQogCiAgICAgY29uc3QgU3RyaW5nJiBhbGxvd2VkQXVkaW9EZXZpY2VVSUQoKSBjb25z
dCB7IHJldHVybiBtX2FsbG93ZWRBdWRpb0RldmljZVVJRDsgfQogICAgIGNvbnN0IFN0cmluZyYg
YWxsb3dlZFZpZGVvRGV2aWNlVUlEKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkVmlkZW9EZXZp
Y2VVSUQ7IH0KQEAgLTcyLDEyICs3MiwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
RG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUmVx
dWVzdChEb2N1bWVudCYsIFVzZXJNZWRpYUNvbnRyb2xsZXImLCBSZWY8TWVkaWFDb25zdHJhaW50
c0ltcGw+JiYgYXVkaW9Db25zdHJhaW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZp
ZGVvQ29uc3RyYWludHMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8TWVkaWFTdHJl
YW0+PiYmKTsKKyAgICBVc2VyTWVkaWFSZXF1ZXN0KERvY3VtZW50JiwgVXNlck1lZGlhQ29udHJv
bGxlciYsIE1lZGlhQ29uc3RyYWludHMmJiBhdWRpb0NvbnN0cmFpbnRzLCBNZWRpYUNvbnN0cmFp
bnRzJiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxN
ZWRpYVN0cmVhbT4+JiYpOwogCiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CiAg
ICAgCi0gICAgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiBtX2F1ZGlvQ29uc3RyYWludHM7Ci0g
ICAgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiBtX3ZpZGVvQ29uc3RyYWludHM7CisgICAgTWVk
aWFDb25zdHJhaW50cyBtX2F1ZGlvQ29uc3RyYWludHM7CisgICAgTWVkaWFDb25zdHJhaW50cyBt
X3ZpZGVvQ29uc3RyYWludHM7CiAKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNlVUlE
czsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTc4YmNiMTkx
YzIzYWM5NjQ2ODhjYmIyNDIyNzM5ZTg3YzY3ZTZhLi4xZDBlOWI4NGJiMzhmNGFhN2ZlNzRiMWE1
YzAxNzM4ZjRmNzA4MTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzksNyArMTc5LDYgQEAKIAkJMDc4NDYzODUxNDVCMUI4
RTAwQTU4REYxIC8qIEpTVHJhY2tDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBKU1RyYWNrQ3Vz
dG9tLmggKi87IH07CiAJCTA3ODdDNDY5MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tT
dXBwb3J0ZWRDb25zdHJhaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzg3QzQ2NzFCRkJERjZGMDA2RENEN0YgLyogSlNNZWRpYVRyYWNrU3Vw
cG9ydGVkQ29uc3RyYWludHMuY3BwICovOyB9OwogCQkwNzg3QzQ2QTFCRkJERjZGMDA2RENEN0Yg
LyogSlNNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3ODdDNDY4MUJGQkRGNkYwMDZEQ0Q3RiAvKiBK
U01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oICovOyB9OwotCQkwNzhFMDhGRTE3RDE0
Q0VFMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCNEExN0NFQzMyNzAwODQ4RTUxIC8q
IE1lZGlhQ29uc3RyYWludHNJbXBsLmNwcCAqLzsgfTsKIAkJMDc4RTA4RkYxN0QxNENFRTAwNDIw
QUExIC8qIE1lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3MjIxQjRDMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbS5jcHAg
Ki87IH07CiAJCTA3OEUwOTAwMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjRG
MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbUV2ZW50LmNwcCAqLzsgfTsKIAkJMDc4RTA5
MDExN0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCNTIxN0NFQzMyNzAwODQ4
RTUxIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuY3BwICovOyB9OwpAQCAtMTk1LDcgKzE5NCw2IEBA
CiAJCTA3OEUwOTBDMTdEMTRDRUUwMDQyMEFBMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCN0Ex
N0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgKi87IH07CiAJCTA3
OEUwOTEyMTdEMTRDRUUwMDQyMEFBMSAvKiBVc2VyTWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjhFMTdDRUMzMjcw
MDg0OEU1MSAvKiBVc2VyTWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMDc4RTA5MTMxN0Qx
NENFRTAwNDIwQUExIC8qIFVzZXJNZWRpYVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCOTAxN0NFQzMyNzAwODQ4RTUxIC8qIFVz
ZXJNZWRpYVJlcXVlc3QuY3BwICovOyB9OwotCQkwNzhFMDkxNDE3RDE0RDFDMDA0MjBBQTEgLyog
TWVkaWFDb25zdHJhaW50c0ltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3MjIxQjRCMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYUNvbnN0cmFpbnRz
SW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTA3OEUwOTE1MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCNEQxN0NFQzMyNzAwODQ4RTUx
IC8qIE1lZGlhU3RyZWFtLmggKi87IH07CiAJCTA3OEUwOTE2MTdEMTREMUMwMDQyMEFBMSAvKiBN
ZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzIyMUI1MDE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1FdmVudC5oICov
OyB9OwogCQkwNzhFMDkxNzE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1SZWdpc3RyeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCNTMx
N0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzQzNyw4ICs3NDM1LDYgQEAKIAkJ
MDcxRTQ5NkYxQUQ1QUI1RTAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNYWMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldE1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIwQjA5RTE0RDMzMjM1MDA2NDI5NTUgLyog
R2VuZXJpY0V2ZW50UXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gR2VuZXJpY0V2ZW50UXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzIwQjA5RjE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJpY0V2ZW50UXVldWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMDcyMjFCNEExN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhQ29uc3Ry
YWludHNJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlh
Q29uc3RyYWludHNJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcyMjFC
NEIxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhQ29uc3RyYWludHNJbXBsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29uc3RyYWludHNJbXBsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjRDMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVh
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjREMTdDRUMzMjcwMDg0OEU1
MSAvKiBNZWRpYVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUI0RTE3Q0VDMzI3
MDA4NDhFNTEgLyogTWVkaWFTdHJlYW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlh
U3RyZWFtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1OTU5LDggKzE1OTU1
LDYgQEAKIAkJCQk5M0E4MDYxMjFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICov
LAogCQkJCTkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLywKIAkJCQk5
M0E4MDYxNDFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmlkbCAqLywKLQkJCQkwNzIyMUI0
QTE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwICovLAotCQkJCTA3
MjIxQjRCMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYUNvbnN0cmFpbnRzSW1wbC5oICovLAogCQkJ
CTE1OUFFODJBMUIzQTQwMkYwMDM3NDc4QiAvKiBNZWRpYURldmljZUluZm8uY3BwICovLAogCQkJ
CTE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAvKiBNZWRpYURldmljZUluZm8uaCAqLywKIAkJCQkx
NTE0NUI5MTFCM0ExRDRDMDA2NjJCRjcgLyogTWVkaWFEZXZpY2VJbmZvLmlkbCAqLywKQEAgLTI4
NDAyLDcgKzI4Mzk2LDYgQEAKIAkJCQk1Q0JDOERBRDFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFB
Y2Nlc3NpYmlsaXR5U29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMUJDQzYxMTEyNERG
Q0IwMEJFNzBERCAvKiBNZWRpYUNhblN0YXJ0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTNBMTdEMTZFMUMwMDQyMEFBMSAvKiBNZWRpYUNvbnN0cmFpbnRzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwNzhFMDkxNDE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50c0lt
cGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzI1M0FCMTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRp
YUNvbnRyb2xFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREVCQ0NERDQxNjY0NkVBRjAw
QTQ1MkUxIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zMjQxNSw3ICszMjQwOCw2IEBACiAJCQkJNDlFOTExQzYwRUY4NkQ0NzAwOUQwQ0FG
IC8qIE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1Q0JD
OERBQzFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUJFNUJGQzIxRDUxNTcxNTAwMTY2NkQ5IC8qIE1lZGlhQ29uc3Ry
YWludHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMDc4RTA4RkUxN0QxNENFRTAwNDIwQUExIC8q
IE1lZGlhQ29uc3RyYWludHNJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNzI1M0FBMTM1
NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlERUJDQ0RENTE2NjQ2RUIyMDBBNDUyRTEgLyogTWVkaWFDb250cm9sRWxlbWVudFR5cGVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMjdGNkU3MTQ1NzcwRDMwMDc4MjA3RCAvKiBNZWRp
YUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCmluZGV4IDFlN2Y3
ZjdiZmE3NTNhZTQ3Mjc5ZGRlNDZhYzYwODQ2NjQyMjI2ZDEuLmViZTYwMzVlMTNhZTYxODY4NzQy
YmI4YzNlMWY2NTYyYjQwNWMzZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCkBAIC0zNDAsNiArMzQwLDYy
IEBAIGJvb2wgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA6OmlzRW1wdHkoKSBjb25zdAogICAg
IHJldHVybiAhc2l6ZSgpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkRGVmYXVsdFZpZGVv
Q29uc3RyYWludHMoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIHZpZGVvQ29uc3RyYWludHMs
IGJvb2wgYWRkRnJhbWVSYXRlQ29uc3RyYWludCwgYm9vbCBhZGRTaXplQ29uc3RyYWludCwgYm9v
bCBhZGRGYWNpbmdNb2RlQ29uc3RyYWludCkKK3sKKyAgICBpZiAoYWRkRnJhbWVSYXRlQ29uc3Ry
YWludCkgeworICAgICAgICBEb3VibGVDb25zdHJhaW50IGZyYW1lUmF0ZUNvbnN0cmFpbnQoeyB9
LCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUpOworICAgICAgICBmcmFtZVJhdGVDb25z
dHJhaW50LnNldElkZWFsKDMwKTsKKyAgICAgICAgdmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFD
b25zdHJhaW50VHlwZTo6RnJhbWVSYXRlLCBXVEZNb3ZlKGZyYW1lUmF0ZUNvbnN0cmFpbnQpKTsK
KyAgICB9CisgICAgaWYgKGFkZFNpemVDb25zdHJhaW50KSB7CisgICAgICAgIEludENvbnN0cmFp
bnQgd2lkdGhDb25zdHJhaW50KHsgfSwgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgpOworICAg
ICAgICB3aWR0aENvbnN0cmFpbnQuc2V0SWRlYWwoNjQwKTsKKyAgICAgICAgdmlkZW9Db25zdHJh
aW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIFdURk1vdmUod2lkdGhDb25zdHJh
aW50KSk7CisgICAgICAgIAorICAgICAgICBJbnRDb25zdHJhaW50IGhlaWdodENvbnN0cmFpbnQo
eyB9LCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQpOworICAgICAgICBoZWlnaHRDb25zdHJh
aW50LnNldElkZWFsKDQ4MCk7CisgICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0KE1lZGlhQ29u
c3RyYWludFR5cGU6OkhlaWdodCwgV1RGTW92ZShoZWlnaHRDb25zdHJhaW50KSk7CisgICAgfQor
ICAgIGlmIChhZGRGYWNpbmdNb2RlQ29uc3RyYWludCkgeworICAgICAgICBTdHJpbmdDb25zdHJh
aW50IGZhY2luZ01vZGVDb25zdHJhaW50KHsgfSwgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5n
TW9kZSk7CisgICAgICAgIGZhY2luZ01vZGVDb25zdHJhaW50LnNldElkZWFsKEFTQ0lJTGl0ZXJh
bCgidXNlciIpKTsKKyAgICAgICAgdmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50
VHlwZTo6RmFjaW5nTW9kZSwgV1RGTW92ZShmYWNpbmdNb2RlQ29uc3RyYWludCkpOworICAgIH0K
K30KKworYm9vbCBNZWRpYUNvbnN0cmFpbnRzOjppc0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5jdGlv
bjxib29sKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJik+JiYgY2FsbGJhY2spCit7
CisgICAgaWYgKGNhbGxiYWNrKG1hbmRhdG9yeUNvbnN0cmFpbnRzKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgCisgICAgZm9yIChjb25zdCBhdXRvJiBjb25zdHJhaW50IDogYWR2YW5jZWRD
b25zdHJhaW50cykgeworICAgICAgICBpZiAoY2FsbGJhY2soY29uc3RyYWludCkpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIE1l
ZGlhQ29uc3RyYWludHM6OnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCkKK3sKKyAgICAvLyA2
NDB4NDgwLCAzMGZwcywgZm9udC1mYWNpbmcgY2FtZXJhCisgICAgYm9vbCBoYXNGcmFtZVJhdGVD
b25zdHJhaW50cyA9IGlzQ29uc3RyYWludFNldChbXShjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWlu
dFNldE1hcCYgY29uc3RyYWludCkgeworICAgICAgICByZXR1cm4gISFjb25zdHJhaW50LmZyYW1l
UmF0ZSgpOworICAgIH0pOworICAgIAorICAgIGJvb2wgaGFzU2l6ZUNvbnN0cmFpbnRzID0gaXND
b25zdHJhaW50U2V0KFtdKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBjb25zdHJh
aW50KSB7CisgICAgICAgIHJldHVybiAhIWNvbnN0cmFpbnQud2lkdGgoKSB8fCAhIWNvbnN0cmFp
bnQuaGVpZ2h0KCk7CisgICAgfSk7CisgICAgCisgICAgYm9vbCBoYXNGYWNpbmdNb2RlQ29uc3Ry
YWludHMgPSBpc0NvbnN0cmFpbnRTZXQoW10oY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXAmIGNvbnN0cmFpbnQpIHsKKyAgICAgICAgcmV0dXJuICEhY29uc3RyYWludC5mYWNpbmdNb2Rl
KCk7CisgICAgfSk7CisgICAgCisgICAgaWYgKGhhc0ZyYW1lUmF0ZUNvbnN0cmFpbnRzICYmIGhh
c1NpemVDb25zdHJhaW50cyAmJiBoYXNGYWNpbmdNb2RlQ29uc3RyYWludHMpCisgICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBhZGREZWZhdWx0VmlkZW9Db25zdHJhaW50cyhtYW5kYXRvcnlDb25z
dHJhaW50cywgIWhhc0ZyYW1lUmF0ZUNvbnN0cmFpbnRzLCAhaGFzU2l6ZUNvbnN0cmFpbnRzLCAh
aGFzRmFjaW5nTW9kZUNvbnN0cmFpbnRzKTsKK30KKyAgICAKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgKaW5kZXggNjYzNmFjMDBmMjg3YzkyNzMwZTM1ZjUx
MzZjNjgzODJiNTVlNDIyNS4uM2M0ODY0ZDQ1MWYyMzIwYmVjYTI3ODdjZjIxOGQ1M2EyNTFjMzAw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFD
b25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhQ29uc3RyYWludHMuaApAQCAtMzUsOSArMzUsMTAgQEAKIAogI2luY2x1ZGUgIlJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgPGNzdGRsaWI+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0KKyAgICAKIGNs
YXNzIE1lZGlhQ29uc3RyYWludCB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBEYXRhVHlwZSB7
IE5vbmUsIEludGVnZXIsIERvdWJsZSwgQm9vbGVhbiwgU3RyaW5nIH07CkBAIC04MDMsMjEgKzgw
NCwxNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1jbGFzcyBNZWRpYUNvbnN0cmFpbnRzIDog
cHVibGljIFJlZkNvdW50ZWQ8TWVkaWFDb25zdHJhaW50cz4gewotcHVibGljOgotICAgIHZpcnR1
YWwgfk1lZGlhQ29uc3RyYWludHMoKSB7IH0KLQotICAgIHZpcnR1YWwgY29uc3QgTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hbmRhdG9yeUNvbnN0cmFpbnRzKCkgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgY29uc3QgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiYgYWR2YW5j
ZWRDb25zdHJhaW50cygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNv
bnN0ID0gMDsKK3N0cnVjdCBNZWRpYUNvbnN0cmFpbnRzIHsKKyAgICB2b2lkIHNldERlZmF1bHRW
aWRlb0NvbnN0cmFpbnRzKCk7CisgICAgYm9vbCBpc0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5jdGlv
bjxib29sKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJik+JiYpOwogCi0gICAgdmly
dHVhbCBjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQoKSBjb25zdCA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHNldERldmljZUlESGFzaFNhbHQoY29uc3QgU3RyaW5nJikgPSAwOwotCi1wcm90
ZWN0ZWQ6Ci0gICAgTWVkaWFDb25zdHJhaW50cygpIHsgfQorICAgIE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwIG1hbmRhdG9yeUNvbnN0cmFpbnRzOworICAgIFZlY3RvcjxNZWRpYVRyYWNrQ29u
c3RyYWludFNldE1hcD4gYWR2YW5jZWRDb25zdHJhaW50czsKKyAgICBTdHJpbmcgZGV2aWNlSURI
YXNoU2FsdDsKKyAgICBib29sIGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKLQorICAgIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTUVESUFD
T05TVFJBSU5UKENvbnN0cmFpbnRUeXBlLCBwcmVkaWNhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxp
ZGF0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudC5oCmluZGV4IDk3M2M5ZWVlMWM1ODQ3
NWNmNTU1MGVjZDg5OGM4OGJkZjFiMjBkMzIuLjQ5OTQ0YTg1NWNiMzA2YTRmOGRiZDIyNWM3YTM4
NWFkM2U1MzNkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlk
YXRpb25DbGllbnQuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0j
aWZuZGVmIE1lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50X2gKLSNkZWZpbmUg
TWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnRfaAorI3ByYWdtYSBvbmNlCiAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCkBAIC0zMyw4ICszMiw2IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFDb25zdHJhaW50czsKLQogY2xhc3MgTWVkaWFTdHJl
YW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0
cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudD4gewogcHVibGljOgogICAgIHZpcnR1YWwg
fk1lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50KCkgeyB9CkBAIC00Niw1ICs0
MywzIEBAIHB1YmxpYzoKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRh
dGlvbkNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDFmNDk5MzExNWFlZmYxOTM5
M2FlM2E3MmQ4N2ZlNGM0MTZlYmRlMTUuLjhmZjk1NGUzNGIwZjZjMTI0YzkwMjdjM2Q4NDk3YzQw
NTgxZjIyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC01MjQsMTIgKzUyNCwxMiBAQCBi
b29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNlbGVjdFNldHRpbmdzKGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMmIGNvbnN0cmFpbnRzLCBGbAogCiAgICAgZmFpbGVkQ29uc3RyYWludCA9IGVtcHR5U3Ry
aW5nKCk7CiAKLSAgICAvLyBDaGVjayB3aWR0aCwgaGVpZ2h0LCBhbmQgZnJhbWUgcmF0ZSBzZXBh
cmF0ZWx5LCBiZWNhdXNlIHdoaWxlIHRoZXkgbWF5IGJlIHN1cHBvcnRlZCBpbmRpdmlkdWFsbHkg
dGhlIGNvbWJpbmF0aW9uIG1heSBub3QgYmUgc3VwcG9ydGVkLgorICAgIC8vIENoZWNrIHdpZHRo
LCBoZWlnaHQgYW5kIGZyYW1lIHJhdGUgam9pbnRseSwgYmVjYXVzZSB3aGlsZSB0aGV5IG1heSBi
ZSBzdXBwb3J0ZWQgaW5kaXZpZHVhbGx5IHRoZSBjb21iaW5hdGlvbiBtYXkgbm90IGJlIHN1cHBv
cnRlZC4KICAgICBkb3VibGUgZGlzdGFuY2UgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OmluZmluaXR5KCk7Ci0gICAgaWYgKCFzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoY29uc3RyYWlu
dHMubWFuZGF0b3J5Q29uc3RyYWludHMoKS53aWR0aCgpLCBjb25zdHJhaW50cy5tYW5kYXRvcnlD
b25zdHJhaW50cygpLmhlaWdodCgpLCBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cygp
LmZyYW1lUmF0ZSgpLCBmYWlsZWRDb25zdHJhaW50LCBtX2ZpdG5lc3NTY29yZSkpCisgICAgaWYg
KCFzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWlu
dHMud2lkdGgoKSwgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuaGVpZ2h0KCksIGNv
bnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmZyYW1lUmF0ZSgpLCBmYWlsZWRDb25zdHJh
aW50LCBtX2ZpdG5lc3NTY29yZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGNvbnN0
cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzKCkuZmlsdGVyKFsmXShjb25zdCBNZWRpYUNvbnN0
cmFpbnQmIGNvbnN0cmFpbnQpIHsKKyAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50
cy5maWx0ZXIoWyZdKGNvbnN0IE1lZGlhQ29uc3RyYWludCYgY29uc3RyYWludCkgewogICAgICAg
ICBpZiAoIXN1cHBvcnRzQ29uc3RyYWludChjb25zdHJhaW50KSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIApAQCAtNTQ2LDkgKzU0Niw5IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2VsZWN0U2V0dGluZ3MoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEZsCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBBU1NFUlQoY29uc3Ry
YWludC5pc1N0cmluZygpKTsKLSAgICAgICAgICAgIEFTU0VSVCghY29uc3RyYWludHMuZGV2aWNl
SURIYXNoU2FsdCgpLmlzRW1wdHkoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWNvbnN0cmFpbnRz
LmRldmljZUlESGFzaFNhbHQuaXNFbXB0eSgpKTsKIAotICAgICAgICAgICAgYXV0byBoYXNoZWRJ
RCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRo
U2FsdChtX3BlcnNpc3RlbnRJRCwgY29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAg
ICAgICAgICAgIGF1dG8gaGFzaGVkSUQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobV9wZXJzaXN0ZW50SUQsIGNvbnN0cmFpbnRzLmRl
dmljZUlESGFzaFNhbHQpOwogICAgICAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9
IGRvd25jYXN0PFN0cmluZ0NvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpLmZpdG5lc3NEaXN0YW5jZSho
YXNoZWRJRCk7CiAgICAgICAgICAgICBpZiAoc3RkOjppc2luZihjb25zdHJhaW50RGlzdGFuY2Up
KSB7CiAgICAgICAgICAgICAgICAgZmFpbGVkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQubmFtZSgp
OwpAQCAtNTg1LDcgKzU4NSw3IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0
dGluZ3MoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEZsCiAgICAgLy8gICAg
IHZhbHVlcyBvZiBwcm9wZXJ0aWVzIGFzIGV4YWN0LgogICAgIFZlY3RvcjxzdGQ6OnBhaXI8ZG91
YmxlLCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4+IHN1cHBvcnRlZENvbnN0cmFpbnRzOwog
Ci0gICAgZm9yIChjb25zdCBhdXRvJiBhZHZhbmNlZENvbnN0cmFpbnQgOiBjb25zdHJhaW50cy5h
ZHZhbmNlZENvbnN0cmFpbnRzKCkpIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFkdmFuY2VkQ29u
c3RyYWludCA6IGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMpIHsKICAgICAgICAgZG91
YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IDA7CiAgICAgICAgIGJvb2wgc3VwcG9ydGVkID0gZmFs
c2U7CiAKQEAgLTY5NSw3ICs2OTUsNyBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBv
cnRzQ29uc3RyYWludChjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpCiAKIGJvb2wg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3VwcG9ydHNDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0
cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKIHsKLSAgICBB
U1NFUlQoY29uc3RyYWludHMuaXNWYWxpZCgpKTsKKyAgICBBU1NFUlQoY29uc3RyYWludHMuaXNW
YWxpZCk7CiAKICAgICBGbGF0dGVuZWRDb25zdHJhaW50IGNhbmRpZGF0ZXM7CiAgICAgaWYgKCFz
ZWxlY3RTZXR0aW5ncyhjb25zdHJhaW50cywgY2FuZGlkYXRlcywgaW52YWxpZENvbnN0cmFpbnQs
IFNlbGVjdFR5cGU6OkZvclN1cHBvcnRzQ29uc3RyYWludHMpKQpAQCAtNzU3LDcgKzc1Nyw3IEBA
IHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBGbGF0dGVu
ZWRDb25zdHJhaW50JiBjb25zdHJhaW50CiAKIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPj4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKIHsKLSAgICBBU1NFUlQoY29uc3RyYWludHMu
aXNWYWxpZCgpKTsKKyAgICBBU1NFUlQoY29uc3RyYWludHMuaXNWYWxpZCk7CiAKICAgICBGbGF0
dGVuZWRDb25zdHJhaW50IGNhbmRpZGF0ZXM7CiAgICAgU3RyaW5nIGZhaWxlZENvbnN0cmFpbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGNjMzM4NTFiYWE0ZmNkZjA1
N2E0MzVmZTBhYTg5NDJmOGFlYzFkMDUuLjVlZGJmYzY5Njk4ZWU1YmI3ODY5MmFhNzRmMTU2NjBj
MWNmM2JhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0yMjIsMTEg
KzIyMiwxMSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVz
dENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbAogCiAgICAgICAgIFN0cmluZyBpbnZh
bGlkQ29uc3RyYWludDsKICAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJv
cjsKLSAgICAgICAgaWYgKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6VmlkZW8gJiYgdmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKGRl
dmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8gJiYgdmlkZW9D
b25zdHJhaW50cy5pc1ZhbGlkKSB7CiAgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2
aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpLCBudWxscHRyKTsKICAgICAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9y
RXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRz
LCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgdmlkZW9EZXZpY2VJbmZvLmFw
cGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNl
LnBlcnNpc3RlbnRJZCgpfSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZGV2aWNlLnR5cGUoKSA9PSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbyAmJiBhdWRpb0NvbnN0cmFpbnRzLmlzVmFs
aWQoKSkgeworICAgICAgICB9IGVsc2UgaWYgKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6QXVkaW8gJiYgYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7CiAgICAg
ICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBudWxscHRyKTsKICAgICAgICAgICAg
IGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9y
dHNDb25zdHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAg
ICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJl
U291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CkBAIC0yMzYs
NyArMjM2LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVl
c3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwKICAgICAgICAgICAgIGZpcnN0SW52
YWxpZENvbnN0cmFpbnQgPSBpbnZhbGlkQ29uc3RyYWludDsKICAgICB9CiAKLSAgICBpZiAoKGF1
ZGlvQ29uc3RyYWludHMuaXNWYWxpZCgpICYmIGF1ZGlvRGV2aWNlSW5mby5pc0VtcHR5KCkpIHx8
ICh2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSAmJiB2aWRlb0RldmljZUluZm8uaXNFbXB0eSgp
KSkgeworICAgIGlmICgoYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmIGF1ZGlvRGV2aWNlSW5m
by5pc0VtcHR5KCkpIHx8ICh2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgdmlkZW9EZXZpY2VJ
bmZvLmlzRW1wdHkoKSkpIHsKICAgICAgICAgaW52YWxpZEhhbmRsZXIoZmlyc3RJbnZhbGlkQ29u
c3RyYWludCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmgKaW5kZXggNDRkNTQ3ZGYyMjE3NTVlZGNkMTViNzQ5MGQwNDBlMzY5MTY0NzhhOC4uZDEw
ZTY0OGJiYmEzOTQ4NzQ2ZTlmNjNkODcxYjk1ZjNkOTIzOWViZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaApAQCAtNDMsMTEgKzQzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ2FwdHVyZURldmljZTsKIGNsYXNzIENhcHR1cmVEZXZpY2VNYW5hZ2VyOwotY2xhc3Mg
TWVkaWFDb25zdHJhaW50czsKIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKIGNs
YXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czsKIGNsYXNzIFRyYWNr
U291cmNlSW5mbzsKIAorc3RydWN0IE1lZGlhQ29uc3RyYWludHM7CisgICAgCiBjbGFzcyBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2UuY3BwCmluZGV4IGE0ZjliMzhhZTJhMjhiN2Q3MDc5ZWM3M2FkYzg0YWZkODVkMzQ4MmEuLmZl
ZTQwMmI1OGNjM2IzYmNlZGEyYTY4MDYzMTAxZTk2YWVmNDIzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC0xNTAsMTEgKzE1MCw2IEBAIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
OjpzZXR0aW5ncygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY3VycmVudFNldHRpbmdzOwogfQogCi1S
ZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIFJlYWx0aW1lSW5jb21pbmdB
dWRpb1NvdXJjZTo6c3VwcG9ydGVkQ29uc3RyYWludHMoKQotewotICAgIHJldHVybiBtX3N1cHBv
cnRlZENvbnN0cmFpbnRzOwotfQotCiBBdWRpb1NvdXJjZVByb3ZpZGVyKiBSZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2U6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQogewogICAgIGlmICghbV9hdWRp
b1NvdXJjZVByb3ZpZGVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
LmgKaW5kZXggODUyY2U5N2YyMjkzZWM5MzAxYjc0MTgwZWU3YWM1OTFiMjM1Y2QzZC4uOWNjMWE2
NTVjZmRmOWQ1NTk1ZmFjMTVlNzc4MzgzZWMzOGEzZTcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuaApAQCAtNjQsMTYgKzY0LDExIEBAIHByaXZhdGU6CiAgICAg
Y29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29u
c3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGNvbnN0IGZpbmFsOwogCi0gICAgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7
IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKTsKLQogICAgIGJvb2wg
aXNQcm9kdWNpbmdEYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc1Byb2R1Y2luZ0RhdGE7
IH0KIAogICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBmaW5h
bDsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsK
LSAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRD
b25zdHJhaW50czsKLSAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsK
ICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKICAgICBydGM6OnNjb3BlZF9y
ZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiBtX2F1ZGlvVHJhY2s7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggZjUwOTZmYjBmMGEw
NjFkNDU5YzExYWQyZjExMDZkZjEzNTNiYTE1YS4uMTc4NmM0YzA0MjQ3NGIxZDI4ZWI0OTZjMGY0
Mjk5YjY2M2NjNDA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZS5jcHAKQEAgLTIxNywxMSArMjE3LDYgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnNldHRpbmdzKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9jdXJyZW50U2V0dGluZ3M7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpzdXBwb3J0ZWRDb25z
dHJhaW50cygpCi17Ci0gICAgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKaW5kZXggNDJmOTI2ZjQxY2FjMGMxOGQ4
NGZjZjRmMmQ2Yjk0MDVmZTllMGIwMC4uZTc4YTY5NDRlYThjZmU4MWFlODUwZTg5ZDY5OTE2NzAy
NmM1NzJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaApAQCAt
NjEsOSArNjEsNiBAQCBwcml2YXRlOgogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlh
Q29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4gKm1fY29uc3RyYWludHMuZ2V0KCk7
IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRl
ZENvbnN0cmFpbnRzKCk7Ci0KICAgICB2b2lkIHByb2Nlc3NOZXdTYW1wbGUoQ01TYW1wbGVCdWZm
ZXJSZWYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24pOwog
CiAgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzUHJv
ZHVjaW5nRGF0YSAmJiBtX2J1ZmZlcjsgfQpAQCAtNzYsOCArNzMsNiBAQCBwcml2YXRlOgogCiAg
ICAgUmVmUHRyPEltYWdlPiBtX2N1cnJlbnRJbWFnZTsKICAgICBSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBv
cnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci0gICAgUmVmUHRyPE1lZGlh
Q29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7
IGZhbHNlIH07CiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVy
ZmFjZT4gbV92aWRlb1RyYWNrOwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbV9i
dWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlLmgKaW5kZXggOWE1YWQxZDIwNDgyMDRlMDA1MmJiNWQ2NTdlMjYyODU2
YzFiY2FhZC4uMjY2OTc0ZTRlZDU4ZWIxNTFlMGM1NDViN2VhNDMyZDZmYWZkNmNiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2UuaApAQCAtNzEsNyArNzEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVybiAq
bV9jb25zdHJhaW50cy5nZXQoKTsgfQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKTsKIAogICAgIHVuc2lnbmVkIGRldmlj
ZUluZGV4KCkgeyByZXR1cm4gbV9kZXZpY2VJbmRleDsgfQpAQCAtODksNyArODgsNiBAQCBwcml2
YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsK
ICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRD
b25zdHJhaW50czsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7Ci0gICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1f
Y29uc3RyYWludHM7CiAgICAgdW5zaWduZWQgbV9kZXZpY2VJbmRleCB7IDAgfTsKICAgICBib29s
IG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGEzZjA1ZDg0ZGNlNGQ3N2ZkOGYxYjI4YzBmM2MyNjlj
NDY5MmI1ODcuLmZlNmJmODk2ZGQ4NTg3NTc5ZjBhNzJmM2YwZDhjODQ2NTc1Y2ZkMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNjAsNyArMzYwLDcg
QEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpIaWdobGln
aHQnOiBbJzxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXkuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OktleWZyYW1lVmFsdWVMaXN0JzogWyc8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQnOiBbJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQu
aD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJzogWyc8V2ViQ29y
ZS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyc6IFsnPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6UGFzdGVib2FyZEltYWdlJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkVVJMJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCc6IFsnPFdlYkNvcmUvUGFz
dGVib2FyZC5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcAppbmRleCA0ZTY0Y2Q0NWE0MDRkOWIwZmI1ZTE2MDhkYzgwZTI0OTdjZDk2NjUw
Li40NjE2YWFkZjE0NjI3YTAxYzYzNGQ1ZGI5ODhiZTFlYjNjM2YxMDg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTAyLDcgKzEw
Miw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogI2luY2x1ZGUgPFdlYkNvcmUvQ2Fw
dHVyZURldmljZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNlbmRpZgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKQEAgLTIzODksNyArMjM4OSw3IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNv
cmU6OlJlCiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotdm9pZCBBcmd1bWVudENvZGVy
PE1lZGlhQ29uc3RyYWludHNEYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50KQordm9pZCBBcmd1bWVudENv
ZGVyPE1lZGlhQ29uc3RyYWludHM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludCkKIHsKICAgICBlbmNvZGVyIDw8IGNv
bnN0cmFpbnQubWFuZGF0b3J5Q29uc3RyYWludHMKICAgICAgICAgPDwgY29uc3RyYWludC5hZHZh
bmNlZENvbnN0cmFpbnRzCkBAIC0yMzk3LDcgKzIzOTcsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8
TWVkaWFDb25zdHJhaW50c0RhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2Vi
Q29yZQogICAgICAgICA8PCBjb25zdHJhaW50LmlzVmFsaWQ7CiB9CiAKLWJvb2wgQXJndW1lbnRD
b2RlcjxNZWRpYUNvbnN0cmFpbnRzRGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYgY29uc3RyYWludHMpCitib29sIEFyZ3VtZW50Q29k
ZXI8TWVkaWFDb25zdHJhaW50cz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKIHsKICAgICByZXR1cm4gZGVjb2Rlci5kZWNv
ZGUoY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMpCiAgICAgICAgICYmIGRlY29kZXIu
ZGVjb2RlKGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggZjcwMjUyZDBkMmYxYjY1NzY0
NTA3NWMxOTUzYjJjNzk1NzI5Mjk0OC4uYTY3M2YyYWY2ZWNlMDlkOTM1NTE2NTMwMzNlMWRkMzU2
ODQwOGMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaApAQCAtMTYyLDcgKzE2Miw3IEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYXB0dXJl
RGV2aWNlOwotc3RydWN0IE1lZGlhQ29uc3RyYWludHNEYXRhOworc3RydWN0IE1lZGlhQ29uc3Ry
YWludHM7CiB9CiAjZW5kaWYKIApAQCAtNjQwLDkgKzY0MCw5IEBAIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+IHsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGE+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJik7Ci0gICAg
c3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0
YSYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAppbmRleCA2Y2RiYTFmNzU5M2IwZTRlMmE1NzkxNTgzMDA1NWY3NzAxZDkzYTY5Li4z
ZTViOGJlZDQwMjZiYTk3YmM1NjY1ZjIzYThhN2Y5Yjg0MzEyYzUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9DQVJpbmdCdWZmZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJ
bXBsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC0xMjUs
MTYgKzEyNSwxNSBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0
IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlw
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0cmFpbnRzRGF0YSwgYm9vbCYgc3Vj
Y2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBi
b29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIENhcHR1cmVTb3VyY2VP
ckVycm9yIHNvdXJjZU9yRXJyb3I7Ci0gICAgYXV0byBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3Ry
YWludHNJbXBsOjpjcmVhdGUoTWVkaWFDb25zdHJhaW50c0RhdGEoY29uc3RyYWludHNEYXRhKSk7
CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShkZXZpY2VJRCwgY29uc3RyYWludHMucHRyKCkpOworICAgICAgICBzb3VyY2VPckVy
cm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5
KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCAmY29uc3RyYWludHMpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OlZpZGVvOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRl
dmljZUlELCBjb25zdHJhaW50cy5wdHIoKSk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0ZhY3RvcnkoKS5jcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xODUsOSArMTg0LDggQEAgdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzZXRFbmFibGVkKHVpbnQ2NF90IGlkLCBib29sIGVu
YWJsZWQpCiAgICAgICAgIGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5zZXRFbmFibGVkKGVuYWJsZWQp
OwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmFwcGx5Q29uc3RyYWlu
dHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25z
dHJhaW50c0RhdGEpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmFwcGx5Q29u
c3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzKQogewotICAgIGF1dG8gY29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFpbnRzSW1w
bDo6Y3JlYXRlKE1lZGlhQ29uc3RyYWludHNEYXRhKGNvbnN0cmFpbnRzRGF0YSkpOwogICAgIGF1
dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKICAgICBpZiAoaXRlciA9PSBtX3Byb3hpZXMu
ZW5kKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDJh
NTFkN2MyNWJiNWNiZTcwNjY4NTQ2ZjhlNjQ2MDBkOGU5YjVmYjAuLjgwZTMzZmYzMDE3MmZiMThl
MDUwZTgzNmQzZjAxZGFkNTM3MDM2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAt
NDksMTMgKzQ5LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFs
aWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7Cisg
ICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
dWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBib29sJiBz
dWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRf
dCk7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBh
YmlsaXRpZXModWludDY0X3QsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmKTsKICAgICB2b2lkIHNldE11dGVkKHVpbnQ2NF90LCBib29sKTsKICAgICB2b2lkIHNldEVu
YWJsZWQodWludDY0X3QsIGJvb2wpOwotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyh1aW50NjRf
dCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmKTsKKyAgICB2b2lkIGFwcGx5
Q29uc3RyYWludHModWludDY0X3QsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKTsK
IAogICAgIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYTNjODE0
ZmViOWMwODJlMzA1NTRmYzM1OWI5NTZhOGZlZmUwZGFiYS4uNjA1MzM3MWI3ZDJiMTYwOWZiZGU3
Y2RkZDM5OWI5OTBiMTZjZThkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KQEAgLTIyLDExICsyMiwxMSBAQAogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgewot
ICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50
NjRfdCBpZCwgU3RyaW5nIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHR5cGUsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50
cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQorICAgIENyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgU3RyaW5nIGRl
dmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIHN0cnVjdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBT
dHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3Mgc2V0dGluZ3MpCiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAg
IFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIENhcGFiaWxpdGllcyh1aW50NjRf
dCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJp
bGl0aWVzKQogICAgIFNldE11dGVkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQogICAgIFNldEVu
YWJsZWQodWludDY0X3QgaWQsIGJvb2wgZW5hYmxlZCkKLSAgICBBcHBseUNvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWlu
dHMpCisgICAgQXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgc3RydWN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcAppbmRleCBjMGJiZjQxYmI5NmI3ZTQ5MzFhOTAyYjcwOTFmY2Q2Y2RjMTk3YWE0
Li40Mzk1ZDM5ZDQzOWI1MjVkY2MwMTZkYTUxNTE3NzVkMDU0MTQzMjQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJX
ZWJQYWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBs
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5E
YXRhLmg+CkBAIC0yNTEsNyArMjUxLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c2NoZWR1bGVOZXh0UmVqZWN0aW9uKCkKICAgICAgICAgbV9yZWplY3Rp
b25UaW1lci5zdGFydE9uZVNob3QoU2Vjb25kcyhtaW1pbXVtRGVsYXlCZWZvcmVSZXBseWluZyAr
IHJhbmRvbU51bWJlcigpKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3Qg
dXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIsIFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmIGF1ZGlvQ29uc3RyYWludHNEYXRh
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYgdmlkZW9Db25zdHJhaW50c0Rh
dGEpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBmcmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJp
bmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMmIHZpZGVvQ29uc3RyYWludHMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBhdXRvIGludmFsaWRIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlEXShjb25zdCBTdHJpbmcm
IGludmFsaWRDb25zdHJhaW50KSB7CkBAIC0zMDYsMTIgKzMwNiwxMSBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lv
bkZvckZyYW1lKAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byB2YWxpZGF0ZUNv
bnN0cmFpbnRzSGFuZGxlciA9IFt0aGlzLCB1c2VyTWVkaWFJRCwgdmFsaWRIYW5kbGVyID0gV1RG
TW92ZSh2YWxpZEhhbmRsZXIpLCBpbnZhbGlkSGFuZGxlciA9IFdURk1vdmUoaW52YWxpZEhhbmRs
ZXIpLCBhdWRpb0NvbnN0cmFpbnRzRGF0YSwgdmlkZW9Db25zdHJhaW50c0RhdGFdKFN0cmluZyYm
IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAgYXV0byB2YWxpZGF0ZUNv
bnN0cmFpbnRzSGFuZGxlciA9IFt0aGlzLCB1c2VyTWVkaWFJRCwgdmFsaWRIYW5kbGVyID0gV1RG
TW92ZSh2YWxpZEhhbmRsZXIpLCBpbnZhbGlkSGFuZGxlciA9IFdURk1vdmUoaW52YWxpZEhhbmRs
ZXIpLCBhdWRpb0NvbnN0cmFpbnRzID0gV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyhhdWRpb0Nv
bnN0cmFpbnRzKSwgdmlkZW9Db25zdHJhaW50cyA9IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMo
dmlkZW9Db25zdHJhaW50cyldKFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgbXV0
YWJsZSB7CiAgICAgICAgIHN5bmNXaXRoV2ViQ29yZVByZWZzKCk7Ci0KLSAgICAgICAgYXV0byBh
dWRpb0NvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShNZWRpYUNvbnN0
cmFpbnRzRGF0YShhdWRpb0NvbnN0cmFpbnRzRGF0YSwgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
KSk7Ci0gICAgICAgIGF1dG8gdmlkZW9Db25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBs
OjpjcmVhdGUoTWVkaWFDb25zdHJhaW50c0RhdGEodmlkZW9Db25zdHJhaW50c0RhdGEsIGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCkpOwotCisgICAgICAgIAorICAgICAgICBhdWRpb0NvbnN0cmFp
bnRzLmRldmljZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7CisgICAgICAg
IHZpZGVvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRp
Zmllckhhc2hTYWx0KTsKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBX
VEZNb3ZlKGludmFsaWRIYW5kbGVyKSwgYXVkaW9Db25zdHJhaW50cywgdmlkZW9Db25zdHJhaW50
cyk7CiAgICAgfTsKIApAQCAtMzM1LDggKzMzNCw4IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUo
CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTSh1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9QQVJBTSh0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllcik7Ci0gICAgVU5VU0VEX1BBUkFNKGF1ZGlvQ29uc3RyYWludHNE
YXRhKTsKLSAgICBVTlVTRURfUEFSQU0odmlkZW9Db25zdHJhaW50c0RhdGEpOworICAgIFVOVVNF
RF9QQVJBTShhdWRpb0NvbnN0cmFpbnRzKTsKKyAgICBVTlVTRURfUEFSQU0odmlkZW9Db25zdHJh
aW50cyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRl
eCBmYmJlZDU5YTczZDc4MGE4MzM5Y2EwNzZmMmEzNTljYzQ5N2ZlZTk5Li40ZmVjZWVjMDJkN2Ux
MTViNmI4ZmIxZDU4MzFkMDE4MzdjMTgxZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaApAQCAtMjksNyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBD
YXB0dXJlRGV2aWNlOwotc3RydWN0IE1lZGlhQ29uc3RyYWludHNEYXRhOworc3RydWN0IE1lZGlh
Q29uc3RyYWludHM7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIH07CiAKQEAgLTY1LDcgKzY1LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7CiAKLSAg
ICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIsIFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmIGF1ZGlvQ29uc3RyYWludHNEYXRhLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYgdmlkZW9Db25zdHJhaW50c0RhdGEpOwor
ICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
SWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRzKTsKIAogICAgIHZvaWQgdXNl
ck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCwgY29uc3QgU3RyaW5nJiBhdWRpb0Rldmlj
ZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCk7CiAgICAgdm9pZCB1c2VyTWVkaWFB
Y2Nlc3NXYXNEZW5pZWQodWludDY0X3QsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDA2MTk5ZWNhMDdkNTI1M2I2N2M1YzFlNTE4MmVmNDNjZTU1
YTU1NmQuLjQzOGRlYmQ4MmIxYWE0ZDcxZmNjMWY5N2FiN2FiOTdjMjRmMGY0NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRz
Lmg+CiAjZW5kaWYKIAogLy8gVGhpcyBjb250cm9scyB3aGF0IHN0cmF0ZWd5IHdlIHVzZSBmb3Ig
bW91c2Ugd2hlZWwgY29hbGVzY2luZy4KQEAgLTU3NDQsMTkgKzU3NDQsMTkgQEAgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIFdlYlBhZ2VQcm94eTo6dXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5n
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzRGF0YSYgYXVkaW9Db25zdHJhaW50c0RhdGEsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHNEYXRhJiB2aWRlb0NvbnN0cmFpbnRzRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlm
aWVyLCBTdHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpOwog
Ci0gICAgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkucmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSh1c2VyTWVkaWFJRCwgZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW5JZGVudGlmaWVyLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgYXVk
aW9Db25zdHJhaW50c0RhdGEsIHZpZGVvQ29uc3RyYWludHNEYXRhKTsKKyAgICB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5yZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZy
YW1lKHVzZXJNZWRpYUlELCBmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZp
ZXIsIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBhdWRpb0NvbnN0cmFpbnRzLCB2
aWRlb0NvbnN0cmFpbnRzKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsK
ICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luSWRlbnRpZmllcik7CiAgICAgVU5VU0VEX1BBUkFNKHRvcExldmVsRG9jdW1l
bnRPcmlnaW5JZGVudGlmaWVyKTsKLSAgICBVTlVTRURfUEFSQU0oYXVkaW9Db25zdHJhaW50c0Rh
dGEpOwotICAgIFVOVVNFRF9QQVJBTSh2aWRlb0NvbnN0cmFpbnRzRGF0YSk7CisgICAgVU5VU0VE
X1BBUkFNKGF1ZGlvQ29uc3RyYWludHMpOworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0NvbnN0cmFp
bnRzKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggNzVlNzQxOGUxNTliZGU1OTJiNDJkMjRlMDgwM2E1NWNhYzgzMWQzYy4uMTg4YWMzNjEy
ODVkNTIzNzYxODM0YjYwMDJjODlhMzUwODU4M2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMTY0LDcgKzE2NCw3IEBAIGNsYXNzIFZhbGlkYXRpb25CdWJi
bGU7CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxz
Owogc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7Ci1zdHJ1Y3QgTWVkaWFDb25zdHJhaW50c0Rh
dGE7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7
CiBzdHJ1Y3QgVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlOwogc3RydWN0IFRleHRDaGVja2luZ1Jl
c3VsdDsKQEAgLTEzMTMsNyArMTMxMyw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CiAjZW5kaWYKLSAgICB2b2lkIHJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmlu
ZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50c0RhdGEmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHNEYXRhJiB2aWRlb0NvbnN0cmFpbnRzKTsKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYg
dmlkZW9Db25zdHJhaW50cyk7CiAgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFt
ZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5J
ZGVudGlmaWVyKTsKIAogICAgIHZvaWQgcnVuTW9kYWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGI1M2NlZGJmODY2YTBl
ZmZkZmIyOWU5MWE3MzdmMDViNzNhZTIyNTguLjU1YWZjZDAxOWNhM2I0OWQwMWNlMDZjZWM4Zjli
YmY2MDJmNTRkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjY4LDcgKzI2OCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAjIE1lZGlhU3RlYW0g
bWVzc2FnZXMKLSAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90
IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIs
IHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBhdWRpb0NvbnN0cmFpbnRzRGF0
YSwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhIHZpZGVvQ29uc3RyYWludHNE
YXRhKQorICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bklkZW50aWZpZXIsIFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3Ry
dWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgYXVkaW9Db25zdHJhaW50cywgc3RydWN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgdmlkZW9Db25zdHJhaW50cykKICAgICBFbnVtZXJhdGVN
ZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCAyZDI2YTQ5Njc5MzhjNTU2
OTFiZDQwMDg5MzNjN2FkOTQ1ODRjZDg5Li4zZmJjY2E5MTU3NjZhOWYwM2ZiOTkzMDBhNTkzZDFk
YTMwNmZlODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogCkBA
IC0xMDUsNyArMTA1LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OnNlbmRVc2VyTWVkaWFSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHIKIAogICAgIFNlY3VyaXR5
T3JpZ2luKiB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0gcmVxdWVzdC50b3BMZXZlbERvY3VtZW50
T3JpZ2luKCk7CiAgICAgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcgPSB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luID8gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmln
aW4oKnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpIDogZW1wdHlT
dHJpbmcoKTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQo
KSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKnJlcXVlc3QudXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlmaWVyKCksIHRvcExldmVsRG9jdW1l
bnRPcmlnaW5TdHJpbmcsIHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cygpLmRhdGEoKSwgcmVxdWVz
dC52aWRlb0NvbnN0cmFpbnRzKCkuZGF0YSgpKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0
SUQsIHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKCpyZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRp
ZmllcigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luU3RyaW5nLCByZXF1ZXN0LmF1ZGlvQ29uc3Ry
YWludHMoKSwgcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKCkpKTsKIH0KIAogdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFVzZXJNZWRpYVJlcXVlc3QoVXNlck1l
ZGlhUmVxdWVzdCYgcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggM2UzNWMyNzU1
ZGI5OGUyZjMyZDIxZDQ1NDAxNThmMjA5Y2Q0NzdhNi4uZTIyNGVhZTJmMGE1YmU4MDI5YTEyY2Ji
ODM2ODkyOTMzNGY0MGRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTM1LDcgKzM1LDcg
QEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaD4KQEAgLTI5OCwxMiAr
Mjk4LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2V0RW5hYmxlZCh1aW50NjRf
dCBpZCwgYm9vbCBlbmFibGVkKQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBs
eUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
JiBjb25zdHJhaW50cykKIHsKLSAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50c0Rh
dGE7Ci0gICAgY29uc3RyYWludHNEYXRhLm1hbmRhdG9yeUNvbnN0cmFpbnRzID0gY29uc3RyYWlu
dHMubWFuZGF0b3J5Q29uc3RyYWludHMoKTsKLSAgICBjb25zdHJhaW50c0RhdGEuYWR2YW5jZWRD
b25zdHJhaW50cyA9IGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMoKTsKLSAgICBjb25z
dHJhaW50c0RhdGEuaXNWYWxpZCA9IGNvbnN0cmFpbnRzLmlzVmFsaWQoKTsKLQotICAgIG1fcHJv
Y2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpBcHBseUNv
bnN0cmFpbnRzKGlkLCBjb25zdHJhaW50c0RhdGEpLCAwKTsKKyAgICBtX3Byb2Nlc3Muc2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25zdHJhaW50cyhp
ZCwgY29uc3RyYWludHMpLCAwKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310178</attachid>
            <date>2017-05-15 16:33:55 -0700</date>
            <delta_ts>2017-05-15 22:46:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-172132-20170515163354.patch</filename>
            <type>text/plain</type>
            <size>72462</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRlNzlmODZmNTk0NzQ0
ZjAyN2M0NGMwYmI3NmUxZjVkZTg5OTAwNi4uZmQ3YTMxNjJiODUzMjk5MDZhYjVjYmE0ZTBkMDdi
MTVmYjM5ZTZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE3LTA1LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTWVkaWFDb25z
dHJhaW50c0RhdGEgYW5kIE1lZGlhQ29uc3RyYWludHNJbXBsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2Ugb2YgYmVoYXZp
b3IuCisKKyAgICAgICAgUmVtb3ZpbmcgTWVkaWFDb25zdHJhaW50c0RhdGEgYW5kIE1lZGlhQ29u
c3RyYWludHNJbXBsIGFsbG93cyBzaW1wbGlmeWluZyB0aGUgY29kZS4KKyAgICAgICAgRnVydGhl
ciBzaW1wbGlmaWVkIHRoZSBjb2RlIGJ5IG1ha2luZyBNZWRpYUNvbnN0cmFpbnRzIG5vIGxvbmdl
ciByZWYgY291bnRlZCBhbmQgbm93IGEgc3RydWN0LgorICAgICAgICBTaW1wbGlmaWVkIHNvbWUg
UmVhbHRpbWVNZWRpYVNvdXJjZSBzdWJjbGFzc2VzIGJ5IHJlbW92aW5nIHVudXNlZCBNZWRpYUNv
bnN0cmFpbnRzIGNsYXNzIG1lbWJlcnMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhQ29uc3RyYWludHNJbXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmg6IFJlbW92ZWQuCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlTWVkaWFDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6Omdl
dFVzZXJNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1w
bCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbCk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVkaWFDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNl
ck1lZGlhUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVz
dDo6VXNlck1lZGlhUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0
OjphbGxvdyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphdWRpb0NvbnN0cmFpbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnZpZGVvQ29uc3RyYWludHMp
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmFkZERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHM6OmlzQ29uc3RyYWludFNldCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzOjpzZXREZWZhdWx0VmlkZW9Db25zdHJhaW50cyk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50czo6fk1lZGlhQ29uc3RyYWludHMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50czo6TWVkaWFDb25zdHJhaW50cyk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlk
YXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnNl
bGVjdFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1
cHBvcnRzQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzdXBw
b3J0ZWRDb25zdHJhaW50cyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpzdXBwb3J0ZWRDb25zdHJh
aW50cyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlh
U291cmNlOjpjb25zdHJhaW50cyk6IERlbGV0ZWQuCisKIDIwMTctMDUtMTUgIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGUgbGluZSBsYXlvdXQ6IExlYWRp
bmcgd2hpdGVzcGFjZSBmb2xsb3dlZCBieSBhIDxicj4gcHJvZHVjZXMgYW4gZXh0cmEgbGluZWJy
ZWFrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDdiMTlmZjcxYzdlZDgyNjMyOWM0ZGU3NGRmNWZlNzI3ZDZiNGMx
NmQuLjAyN2VlNjM5YjM2ZmYxNDJhZjg4NjczM2MzN2NjOWQ3ZWUxMTVhNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzOCBAQAorMjAxNy0wNS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIE1lZGlhQ29uc3RyYWludHNEYXRhIGFuZCBNZWRpYUNv
bnN0cmFpbnRzSW1wbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcyMTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAg
ICAgIFJlbW92aW5nIE1lZGlhQ29uc3RyYWludHNEYXRhIGFuZCBNZWRpYUNvbnN0cmFpbnRzSW1w
bCBhbGxvd3Mgc2ltcGxpZnlpbmcgdGhlIGNvZGUuCisgICAgICAgIEZ1cnRoZXIgc2ltcGxpZmll
ZCB0aGUgY29kZSBieSBtYWtpbmcgTWVkaWFDb25zdHJhaW50cyBubyBsb25nZXIgcmVmIGNvdW50
ZWQgYW5kIG5vdyBhIHN0cnVjdC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFD
b25zdHJhaW50cz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFD
b25zdHJhaW50cz46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFD
b25zdHJhaW50c0RhdGE+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPE1lZGlhQ29uc3RyYWludHNEYXRhPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpy
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6c2VuZFVzZXJNZWRpYVJlcXVlc3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50cyk6CisKIDIwMTctMDUt
MTQgIERhZXdvb25nIEphbmcgIDxkYWV3b29uZy5qYW5nQG5hdmVyY29ycC5jb20+CiAKICAgICAg
ICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3NdIFJlbW92ZSB1bnVzZWQgZmlsZXMgYW5kIGxpbmVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDRiMTA3NzhhZmIxMDlhNDUyZTA5Njc4YzMxZWNiOTNlNTFl
NWNhZjIuLmExYjQyYTY5Njg3ZjYxOTJiODUwOWQ3OGM5Yzk3NTI4NTFlNzVmMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC05NDQsNyArOTQ0LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IE1vZHVsZXMvbWVkaWFzb3VyY2UvVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwCiAKICAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcAotICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwCiAgICAgTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkZmVkYmI3MTE4NzNiOTQ1N2M0ZmRiMDE3NzQ0MmU4YzZjZTY1YmU0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICogMy4gTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgaW5saW5lIHZvaWQgYWRkRGVmYXVsdFZp
ZGVvQ29uc3RyYWludHMoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIHZpZGVvQ29uc3RyYWlu
dHMsIGJvb2wgYWRkRnJhbWVSYXRlQ29uc3RyYWludCwgYm9vbCBhZGRTaXplQ29uc3RyYWludCwg
Ym9vbCBhZGRGYWNpbmdNb2RlQ29uc3RyYWludCkKLXsKLSAgICBpZiAoYWRkRnJhbWVSYXRlQ29u
c3RyYWludCkgewotICAgICAgICBEb3VibGVDb25zdHJhaW50IGZyYW1lUmF0ZUNvbnN0cmFpbnQo
eyB9LCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUpOwotICAgICAgICBmcmFtZVJhdGVD
b25zdHJhaW50LnNldElkZWFsKDMwKTsKLSAgICAgICAgdmlkZW9Db25zdHJhaW50cy5zZXQoTWVk
aWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlLCBXVEZNb3ZlKGZyYW1lUmF0ZUNvbnN0cmFpbnQp
KTsKLSAgICB9Ci0gICAgaWYgKGFkZFNpemVDb25zdHJhaW50KSB7Ci0gICAgICAgIEludENvbnN0
cmFpbnQgd2lkdGhDb25zdHJhaW50KHsgfSwgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgpOwot
ICAgICAgICB3aWR0aENvbnN0cmFpbnQuc2V0SWRlYWwoNjQwKTsKLSAgICAgICAgdmlkZW9Db25z
dHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIFdURk1vdmUod2lkdGhDb25z
dHJhaW50KSk7Ci0KLSAgICAgICAgSW50Q29uc3RyYWludCBoZWlnaHRDb25zdHJhaW50KHsgfSwg
TWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0KTsKLSAgICAgICAgaGVpZ2h0Q29uc3RyYWludC5z
ZXRJZGVhbCg0ODApOwotICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFp
bnRUeXBlOjpIZWlnaHQsIFdURk1vdmUoaGVpZ2h0Q29uc3RyYWludCkpOwotICAgIH0KLSAgICBp
ZiAoYWRkRmFjaW5nTW9kZUNvbnN0cmFpbnQpIHsKLSAgICAgICAgU3RyaW5nQ29uc3RyYWludCBm
YWNpbmdNb2RlQ29uc3RyYWludCh7IH0sIE1lZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGUp
OwotICAgICAgICBmYWNpbmdNb2RlQ29uc3RyYWludC5zZXRJZGVhbChBU0NJSUxpdGVyYWwoInVz
ZXIiKSk7Ci0gICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6
OkZhY2luZ01vZGUsIFdURk1vdmUoZmFjaW5nTW9kZUNvbnN0cmFpbnQpKTsKLSAgICB9Ci19Ci0K
LWJvb2wgTWVkaWFDb25zdHJhaW50c0RhdGE6OmlzQ29uc3RyYWludFNldChzdGQ6OmZ1bmN0aW9u
PGJvb2woY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmKT4mJiBjYWxsYmFjaykKLXsK
LSAgICBpZiAoY2FsbGJhY2sobWFuZGF0b3J5Q29uc3RyYWludHMpKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLQotICAgIGZvciAoY29uc3QgYXV0byYgY29uc3RyYWludCA6IGFkdmFuY2VkQ29uc3Ry
YWludHMpIHsKLSAgICAgICAgaWYgKGNhbGxiYWNrKGNvbnN0cmFpbnQpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBNZWRpYUNv
bnN0cmFpbnRzRGF0YTo6c2V0RGVmYXVsdFZpZGVvQ29uc3RyYWludHMoKQotewotICAgIC8vIDY0
MHg0ODAsIDMwZnBzLCBmb250LWZhY2luZyBjYW1lcmEKLSAgICBib29sIGhhc0ZyYW1lUmF0ZUNv
bnN0cmFpbnRzID0gaXNDb25zdHJhaW50U2V0KFtdKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50
U2V0TWFwJiBjb25zdHJhaW50KSB7Ci0gICAgICAgIHJldHVybiAhIWNvbnN0cmFpbnQuZnJhbWVS
YXRlKCk7Ci0gICAgfSk7Ci0KLSAgICBib29sIGhhc1NpemVDb25zdHJhaW50cyA9IGlzQ29uc3Ry
YWludFNldChbXShjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgY29uc3RyYWludCkg
ewotICAgICAgICByZXR1cm4gISFjb25zdHJhaW50LndpZHRoKCkgfHwgISFjb25zdHJhaW50Lmhl
aWdodCgpOwotICAgIH0pOwotCi0gICAgYm9vbCBoYXNGYWNpbmdNb2RlQ29uc3RyYWludHMgPSBp
c0NvbnN0cmFpbnRTZXQoW10oY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIGNvbnN0
cmFpbnQpIHsKLSAgICAgICAgcmV0dXJuICEhY29uc3RyYWludC5mYWNpbmdNb2RlKCk7Ci0gICAg
fSk7Ci0KLSAgICBpZiAoaGFzRnJhbWVSYXRlQ29uc3RyYWludHMgJiYgaGFzU2l6ZUNvbnN0cmFp
bnRzICYmIGhhc0ZhY2luZ01vZGVDb25zdHJhaW50cykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
YWRkRGVmYXVsdFZpZGVvQ29uc3RyYWludHMobWFuZGF0b3J5Q29uc3RyYWludHMsICFoYXNGcmFt
ZVJhdGVDb25zdHJhaW50cywgIWhhc1NpemVDb25zdHJhaW50cywgIWhhc0ZhY2luZ01vZGVDb25z
dHJhaW50cyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDNkZjFhYTRjYmQ3Njg2ZTRlNzMxNTkyZmY2YjdlODA1MTFiOTVkYWQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oCisrKyAvZGV2L251bGwKQEAg
LTEsOTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKiAzLiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICog
ICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bSB0aGlzCi0gKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2UuaCIKLSNpbmNsdWRlICJNZWRpYUNvbnN0
cmFpbnRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzRGF0YSB7Ci0gICAgTWVkaWFDb25zdHJhaW50c0Rh
dGEoKSA9IGRlZmF1bHQ7Ci0gICAgTWVkaWFDb25zdHJhaW50c0RhdGEoTWVkaWFUcmFja0NvbnN0
cmFpbnRTZXRNYXAmJiBtYW5kYXRvcnlDb25zdHJhaW50cywgVmVjdG9yPE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwPiYmIGFkdmFuY2VkQ29uc3RyYWludHMsIGJvb2wgaXNWYWxpZCkKLSAgICAg
ICAgOiBtYW5kYXRvcnlDb25zdHJhaW50cyhXVEZNb3ZlKG1hbmRhdG9yeUNvbnN0cmFpbnRzKSkK
LSAgICAgICAgLCBhZHZhbmNlZENvbnN0cmFpbnRzKFdURk1vdmUoYWR2YW5jZWRDb25zdHJhaW50
cykpCi0gICAgICAgICwgaXNWYWxpZChpc1ZhbGlkKQotICAgIHsKLSAgICB9Ci0gICAgTWVkaWFD
b25zdHJhaW50c0RhdGEoY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0cmFpbnRzLCBj
b25zdCBTdHJpbmcmIGhhc2hTYWx0KQotICAgICAgICA6IG1hbmRhdG9yeUNvbnN0cmFpbnRzKGNv
bnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzKQotICAgICAgICAsIGFkdmFuY2VkQ29uc3Ry
YWludHMoY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cykKLSAgICAgICAgLCBkZXZpY2VJ
REhhc2hTYWx0KGhhc2hTYWx0KQotICAgICAgICAsIGlzVmFsaWQoY29uc3RyYWludHMuaXNWYWxp
ZCkKLSAgICB7Ci0gICAgfQotICAgIE1lZGlhQ29uc3RyYWludHNEYXRhKGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzKQotICAgICAgICA6IG1hbmRhdG9yeUNvbnN0cmFpbnRzKGNv
bnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzKCkpCi0gICAgICAgICwgYWR2YW5jZWRDb25z
dHJhaW50cyhjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzKCkpCi0gICAgICAgICwgZGV2
aWNlSURIYXNoU2FsdChjb25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0KCkpCi0gICAgICAgICwg
aXNWYWxpZChjb25zdHJhaW50cy5pc1ZhbGlkKCkpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQg
c2V0RGVmYXVsdFZpZGVvQ29uc3RyYWludHMoKTsKLSAgICBib29sIGlzQ29uc3RyYWludFNldChz
dGQ6OmZ1bmN0aW9uPGJvb2woY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmKT4mJik7
Ci0KLSAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCBtYW5kYXRvcnlDb25zdHJhaW50czsK
LSAgICBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+IGFkdmFuY2VkQ29uc3RyYWlu
dHM7Ci0gICAgU3RyaW5nIGRldmljZUlESGFzaFNhbHQ7Ci0gICAgYm9vbCBpc1ZhbGlkIHsgZmFs
c2UgfTsKLX07Ci0KLWNsYXNzIE1lZGlhQ29uc3RyYWludHNJbXBsIGZpbmFsIDogcHVibGljIE1l
ZGlhQ29uc3RyYWludHMgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8TWVkaWFDb25zdHJhaW50
c0ltcGw+IGNyZWF0ZShNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYmIG1hbmRhdG9yeUNvbnN0
cmFpbnRzLCBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+JiYgYWR2YW5jZWRDb25z
dHJhaW50cywgYm9vbCBpc1ZhbGlkKSB7IHJldHVybiBjcmVhdGUoTWVkaWFDb25zdHJhaW50c0Rh
dGEoV1RGTW92ZShtYW5kYXRvcnlDb25zdHJhaW50cyksIFdURk1vdmUoYWR2YW5jZWRDb25zdHJh
aW50cyksIGlzVmFsaWQpKTsgfQotICAgIHN0YXRpYyBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+
IGNyZWF0ZShNZWRpYUNvbnN0cmFpbnRzRGF0YSYmIGRhdGEpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTWVkaWFDb25zdHJhaW50c0ltcGwoV1RGTW92ZShkYXRhKSkpOyB9Ci0KLSAgICBNZWRpYUNv
bnN0cmFpbnRzSW1wbCgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5NZWRpYUNvbnN0cmFpbnRz
SW1wbCgpID0gZGVmYXVsdDsKLQotICAgIGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFw
JiBtYW5kYXRvcnlDb25zdHJhaW50cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGF0YS5tYW5k
YXRvcnlDb25zdHJhaW50czsgfQotICAgIGNvbnN0IFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWlu
dFNldE1hcD4mIGFkdmFuY2VkQ29uc3RyYWludHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Rh
dGEuYWR2YW5jZWRDb25zdHJhaW50czsgfQotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fZGF0YS5pc1ZhbGlkOyB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIGRldmljZUlE
SGFzaFNhbHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RhdGEuZGV2aWNlSURIYXNoU2FsdDsg
fQotICAgIHZvaWQgc2V0RGV2aWNlSURIYXNoU2FsdChjb25zdCBTdHJpbmcmIHNhbHQpIGZpbmFs
IHsgbV9kYXRhLmRldmljZUlESGFzaFNhbHQgPSBzYWx0OyB9Ci0KLSAgICBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzRGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQotICAgIHZvaWQg
c2V0RGVmYXVsdFZpZGVvQ29uc3RyYWludHMoKSB7IG1fZGF0YS5zZXREZWZhdWx0VmlkZW9Db25z
dHJhaW50cygpOyB9Ci0KLXByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgTWVk
aWFDb25zdHJhaW50c0ltcGwoTWVkaWFDb25zdHJhaW50c0RhdGEmJiBkYXRhKSA6IG1fZGF0YShX
VEZNb3ZlKGRhdGEpKSB7IH0KLQotICAgIE1lZGlhQ29uc3RyYWludHNEYXRhIG1fZGF0YTsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5jcHAKaW5kZXggMDU1MDk1ZGQ3YzlhYWExYjUyYjNkN2ZjODc1YzZjNGI1ZDBjNjNmYS4u
MzRmNmIyMzA0NTAwOWI4NzY0MjI1MWMzNDBkZjkxZGVlMDgwYzE5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtMzcs
NyArMzcsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIK
ICNpbmNsdWRlICJNZWRpYURldmljZXNSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFUcmFja1N1
cHBvcnRlZENvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdC5oIgpAQCAt
NzQsMTQgKzczLDE2IEBAIERvY3VtZW50KiBNZWRpYURldmljZXM6OmRvY3VtZW50KCkgY29uc3QK
ICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CiB9CiAKLXN0YXRpYyBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+IGNyZWF0ZU1lZGlhQ29uc3Ry
YWludHNJbXBsKGNvbnN0IFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0NvbnN0cmFpbnRzPiYgY29u
c3RyYWludHMpCitzdGF0aWMgTWVkaWFDb25zdHJhaW50cyBjcmVhdGVNZWRpYUNvbnN0cmFpbnRz
KGNvbnN0IFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0NvbnN0cmFpbnRzPiYgY29uc3RyYWludHMp
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oY29uc3RyYWludHMsCi0gICAgICAgIFsmXSAo
Ym9vbCBjb25zdHJhaW50cykgewotICAgICAgICAgICAgcmV0dXJuIE1lZGlhQ29uc3RyYWludHNJ
bXBsOjpjcmVhdGUoeyB9LCB7IH0sIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgWyZdIChib29sIGlz
VmFsaWQpIHsKKyAgICAgICAgICAgIE1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHM7CisgICAg
ICAgICAgICBjb25zdHJhaW50cy5pc1ZhbGlkID0gaXNWYWxpZDsKKyAgICAgICAgICAgIHJldHVy
biBjb25zdHJhaW50czsKICAgICAgICAgfSwKLSAgICAgICAgWyZdIChjb25zdCBNZWRpYVRyYWNr
Q29uc3RyYWludHMmIGNvbnN0cmFpbnRzKSB7Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlTWVk
aWFDb25zdHJhaW50c0ltcGwoY29uc3RyYWludHMpOworICAgICAgICBbJl0gKGNvbnN0IE1lZGlh
VHJhY2tDb25zdHJhaW50cyYgdHJhY2tDb25zdHJhaW50cykgeworICAgICAgICAgICAgcmV0dXJu
IGNyZWF0ZU1lZGlhQ29uc3RyYWludHModHJhY2tDb25zdHJhaW50cyk7CiAgICAgICAgIH0KICAg
ICApOwogfQpAQCAtOTIsMTAgKzkzLDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNl
czo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50CiAgICAg
aWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVf
RVJSIH07CiAKLSAgICBhdXRvIGF1ZGlvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFp
bnRzSW1wbChjb25zdHJhaW50cy5hdWRpbyk7Ci0gICAgYXV0byB2aWRlb0NvbnN0cmFpbnRzID0g
Y3JlYXRlTWVkaWFDb25zdHJhaW50c0ltcGwoY29uc3RyYWludHMudmlkZW8pOwotICAgIGlmICh2
aWRlb0NvbnN0cmFpbnRzLT5pc1ZhbGlkKCkpCi0gICAgICAgIHZpZGVvQ29uc3RyYWludHMtPnNl
dERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCk7CisgICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0g
Y3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy5hdWRpbyk7CisgICAgYXV0byB2aWRl
b0NvbnN0cmFpbnRzID0gY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52aWRlbyk7
CisgICAgaWYgKHZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCkKKyAgICAgICAgdmlkZW9Db25zdHJh
aW50cy5zZXREZWZhdWx0VmlkZW9Db25zdHJhaW50cygpOwogICAgIHJldHVybiBVc2VyTWVkaWFS
ZXF1ZXN0OjpzdGFydCgqZG9jdW1lbnQsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1v
dmUodmlkZW9Db25zdHJhaW50cyksIFdURk1vdmUocHJvbWlzZSkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNw
cAppbmRleCAxNzdlZjcyZWE4NmIyNWQ0MWRhMDMzZTZmODlhZmE1ZTJmYmNkN2UzLi4wYzU5MmEz
NWJlNTg1ZjUyNjkyZGY5YzFlNGJiOTY1NjVmN2NhMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTMz
LDcgKzMzLDcgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
ICNpbmNsdWRlICJKU092ZXJjb25zdHJhaW5lZEVycm9yLmgiCi0jaW5jbHVkZSAiTWVkaWFDb25z
dHJhaW50c0ltcGwuaCIKKyNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAi
TWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgpAQCAtMjQ2LDExICsyNDYsMTQgQEAgTWVkaWFTdHJlYW1UcmFj
azo6VHJhY2tDYXBhYmlsaXRpZXMgTWVkaWFTdHJlYW1UcmFjazo6Z2V0Q2FwYWJpbGl0aWVzKCkg
Y29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgUmVmPE1lZGlhQ29uc3RyYWlu
dHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdCBzdGQ6Om9wdGlvbmFsPE1l
ZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQorc3RhdGljIE1lZGlhQ29uc3RyYWlu
dHMgY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdCBzdGQ6Om9wdGlvbmFsPE1lZGlhVHJhY2tD
b25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQogewotICAgIGlmICghY29uc3RyYWludHMpCi0gICAg
ICAgIHJldHVybiBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKHsgfSwgeyB9LCB0cnVlKTsK
LSAgICByZXR1cm4gY3JlYXRlTWVkaWFDb25zdHJhaW50c0ltcGwoY29uc3RyYWludHMudmFsdWUo
KSk7CisgICAgaWYgKCFjb25zdHJhaW50cykgeworICAgICAgICBNZWRpYUNvbnN0cmFpbnRzIHZh
bGlkQ29uc3RyYWludHM7CisgICAgICAgIHZhbGlkQ29uc3RyYWludHMuaXNWYWxpZCA9IHRydWU7
CisgICAgICAgIHJldHVybiB2YWxpZENvbnN0cmFpbnRzOworICAgIH0KKyAgICByZXR1cm4gY3Jl
YXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52YWx1ZSgpKTsKIH0KIAogdm9pZCBNZWRp
YVN0cmVhbVRyYWNrOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8TWVkaWFU
cmFja0NvbnN0cmFpbnRzPiYgY29uc3RyYWludHMsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
IHByb21pc2UpCkBAIC0yNjksNyArMjcyLDcgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjphcHBs
eUNvbnN0cmFpbnRzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8TWVkaWFUcmFja0NvbnN0cmFpbnQKICAg
ICAgICAgd2Vha1RoaXMtPm1fcHJvbWlzZS0+cmVzb2x2ZSgpOwogICAgICAgICB3ZWFrVGhpcy0+
bV9jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzLnZhbHVlX29yKE1lZGlhVHJhY2tDb25zdHJhaW50
cyB7IH0pOwogICAgIH07Ci0gICAgbV9wcml2YXRlLT5hcHBseUNvbnN0cmFpbnRzKGNyZWF0ZU1l
ZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzKSwgV1RGTW92ZShzdWNjZXNzSGFuZGxlciks
IFdURk1vdmUoZmFpbHVyZUhhbmRsZXIpKTsKKyAgICBtX3ByaXZhdGUtPmFwcGx5Q29uc3RyYWlu
dHMoY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cyksIFdURk1vdmUoc3VjY2Vzc0hh
bmRsZXIpLCBXVEZNb3ZlKGZhaWx1cmVIYW5kbGVyKSk7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1U
cmFjazo6YWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMu
Y3BwCmluZGV4IGM0YzRjZjEyMjYwYWUyMmVhNDZiZDFiYTI2Mjc3Y2U1OTczZDEzOTIuLmM0YTNm
Y2FiMmYxYzNiYTFlMGI5ZjMzNjhjOWJjMTY1MGJjMjAzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50
cy5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNp
bmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgorI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWlu
dHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xOTAsOSArMTkwLDEzIEBAIHN0YXRp
YyBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+IGNvbnZlcnRBZHZhbmNlZFRvSW50
ZXJuYWxGb3JtKGNvbnN0IHN0CiAgICAgcmV0dXJuIGNvbnZlcnRBZHZhbmNlZFRvSW50ZXJuYWxG
b3JtKG9wdGlvbmFsVmVjdG9yLnZhbHVlKCkpOwogfQogCi1SZWY8TWVkaWFDb25zdHJhaW50c0lt
cGw+IGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50
cyYgY29uc3RyYWludHMpCitNZWRpYUNvbnN0cmFpbnRzIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMo
Y29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJiB0cmFja0NvbnN0cmFpbnRzKQogewotICAgIHJl
dHVybiBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKGNvbnZlcnRUb0ludGVybmFsRm9ybShD
b25zdHJhaW50U2V0VHlwZTo6TWFuZGF0b3J5LCBjb25zdHJhaW50cyksIGNvbnZlcnRBZHZhbmNl
ZFRvSW50ZXJuYWxGb3JtKGNvbnN0cmFpbnRzLmFkdmFuY2VkKSwgdHJ1ZSk7CisgICAgTWVkaWFD
b25zdHJhaW50cyBjb25zdHJhaW50czsKKyAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJh
aW50cyA9IGNvbnZlcnRUb0ludGVybmFsRm9ybShDb25zdHJhaW50U2V0VHlwZTo6TWFuZGF0b3J5
LCB0cmFja0NvbnN0cmFpbnRzKTsKKyAgICBjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRz
ID0gY29udmVydEFkdmFuY2VkVG9JbnRlcm5hbEZvcm0odHJhY2tDb25zdHJhaW50cy5hZHZhbmNl
ZCk7CisgICAgY29uc3RyYWludHMuaXNWYWxpZCA9IHRydWU7CisgICAgcmV0dXJuIGNvbnN0cmFp
bnRzOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaAppbmRleCAzYmNjZGFlYTAxMDYwNWFhNDk5
YTZjOWFjMWJjM2U5YTA5MjQxZTBmLi4wMzk1NDc2MWFkODBiOWE5OGRiZmE4YWY0YWZiOWRkMTgy
NjQ4MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhVHJhY2tDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYUNvbnN0cmFpbnRzSW1wbDsKK3N0cnVjdCBNZWRp
YUNvbnN0cmFpbnRzOwogCiBzdHJ1Y3QgQ29uc3RyYWluQm9vbGVhblBhcmFtZXRlcnMgewogICAg
IHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZXhhY3Q7CkBAIC03OSw3ICs3OSw3IEBAIHN0cnVjdCBNZWRp
YVRyYWNrQ29uc3RyYWludHMgOiBNZWRpYVRyYWNrQ29uc3RyYWludFNldCB7CiAgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXQ+PiBhZHZhbmNlZDsKIH07CiAK
LVJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gY3JlYXRlTWVkaWFDb25zdHJhaW50c0ltcGwoY29u
c3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJik7CitNZWRpYUNvbnN0cmFpbnRzIGNyZWF0ZU1lZGlh
Q29uc3RyYWludHMoY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJik7CiAKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKaW5kZXggYTA4NmVmMzVkOThmNTI4NTE3ZTc1MWZkYjA4NGVkNzRjN2E4MmIyMS4uZTg5
ZjhmNzBiYTdkMmI0NWNmN2ViMWIwNGE2NWJjZmNkNzFhYWU2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBA
IC00MiwyMCArNDIsMjAgQEAKICNpbmNsdWRlICJKU01lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAi
SlNPdmVyY29uc3RyYWluZWRFcnJvci5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgotI2luY2x1
ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCisjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5o
IgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1FeGNlcHRpb25Pcjx2b2lkPiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydChEb2N1
bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBhdWRpb0NvbnN0cmFp
bnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYgcHJvbWlzZSkKK0V4Y2Vw
dGlvbk9yPHZvaWQ+IFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KERvY3VtZW50JiBkb2N1bWVudCwg
TWVkaWFDb25zdHJhaW50cyYmIGF1ZGlvQ29uc3RyYWludHMsIE1lZGlhQ29uc3RyYWludHMmJiB2
aWRlb0NvbnN0cmFpbnRzLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPE1lZGlhU3Ry
ZWFtPj4mJiBwcm9taXNlKQogewogICAgIGF1dG8qIHVzZXJNZWRpYSA9IFVzZXJNZWRpYUNvbnRy
b2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKICAgICBpZiAoIXVzZXJNZWRpYSkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5PVF9TVVBQT1JURURfRVJSIH07IC8vIEZJWE1FOiBXaHkg
aXMgaXQgYmV0dGVyIHRvIHJldHVybiBhbiBleGNlcHRpb24gaGVyZSBpbnN0ZWFkIG9mIHJlamVj
dGluZyB0aGUgcHJvbWlzZSBhcyB3ZSBkbyBqdXN0IGJlbG93PwogCi0gICAgaWYgKCFhdWRpb0Nv
bnN0cmFpbnRzLT5pc1ZhbGlkKCkgJiYgIXZpZGVvQ29uc3RyYWludHMtPmlzVmFsaWQoKSkgewor
ICAgIGlmICghYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICF2aWRlb0NvbnN0cmFpbnRzLmlz
VmFsaWQpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yKTsKICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICB9CkBAIC02NCw3ICs2NCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFVzZXJN
ZWRpYVJlcXVlc3Q6OnN0YXJ0KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhQ29uc3RyYWlu
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotVXNlck1lZGlhUmVxdWVzdDo6VXNlck1lZGlhUmVxdWVz
dChEb2N1bWVudCYgZG9jdW1lbnQsIFVzZXJNZWRpYUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJl
ZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBhdWRpb0NvbnN0cmFpbnRzLCBSZWY8TWVkaWFDb25z
dHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYgcHJvbWlzZSkKK1VzZXJNZWRpYVJlcXVlc3Q6OlVzZXJN
ZWRpYVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBVc2VyTWVkaWFDb250cm9sbGVyJiBjb250
cm9sbGVyLCBNZWRpYUNvbnN0cmFpbnRzJiYgYXVkaW9Db25zdHJhaW50cywgTWVkaWFDb25zdHJh
aW50cyYmIHZpZGVvQ29uc3RyYWludHMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8
TWVkaWFTdHJlYW0+PiYmIHByb21pc2UpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cigmZG9jdW1lbnQpCiAgICAgLCBtX2F1ZGlvQ29uc3RyYWludHMoV1RGTW92ZShhdWRpb0NvbnN0
cmFpbnRzKSkKICAgICAsIG1fdmlkZW9Db25zdHJhaW50cyhXVEZNb3ZlKHZpZGVvQ29uc3RyYWlu
dHMpKQpAQCAtMTgwLDEwICsxODAsMTAgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyhT
dHJpbmcmJiBhdWRpb0RldmljZVVJRCwgU3RyaW5nJiYgdmlkZW9EZXZpY2VVSUQsIFMKICAgICAg
ICAgbV9wcm9taXNlLnJlc29sdmUoc3RyZWFtKTsKICAgICB9OwogCi0gICAgbV9hdWRpb0NvbnN0
cmFpbnRzLT5zZXREZXZpY2VJREhhc2hTYWx0KFN0cmluZyhkZXZpY2VJZGVudGlmaWVySGFzaFNh
bHQpKTsKLSAgICBtX3ZpZGVvQ29uc3RyYWludHMtPnNldERldmljZUlESGFzaFNhbHQoV1RGTW92
ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKKyAgICBtX2F1ZGlvQ29uc3RyYWludHMuZGV2
aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdDsKKyAgICBtX3ZpZGVvQ29u
c3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hT
YWx0KTsKIAotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNyZWF0
ZU1lZGlhU3RyZWFtKFdURk1vdmUoY2FsbGJhY2spLCBtX2FsbG93ZWRBdWRpb0RldmljZVVJRCwg
bV9hbGxvd2VkVmlkZW9EZXZpY2VVSUQsICZtX2F1ZGlvQ29uc3RyYWludHMuZ2V0KCksICZtX3Zp
ZGVvQ29uc3RyYWludHMuZ2V0KCkpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKFdURk1vdmUoY2FsbGJhY2spLCBtX2FsbG93ZWRB
dWRpb0RldmljZVVJRCwgbV9hbGxvd2VkVmlkZW9EZXZpY2VVSUQsICZtX2F1ZGlvQ29uc3RyYWlu
dHMsICZtX3ZpZGVvQ29uc3RyYWludHMpOwogfQogCiB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmRl
bnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCA1MzkzYmZkN2U4YTJmNTAzYTM2NTg4MTUwYjljNGZl
ODY5ZTJiOGQ5Li5iMWFjNWIyMWQxY2IxNGIyODY5YWU5OTkyNGUzOTUwMGMxNjVjODc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaApAQCAtMzYsMTcgKzM2LDE3IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1lZGlhQ29u
c3RyYWludHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYUNvbnN0cmFp
bnRzSW1wbDsKIGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFz
cyBVc2VyTWVkaWFDb250cm9sbGVyOwogCiBjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0IDogcHVibGlj
IFJlZkNvdW50ZWQ8VXNlck1lZGlhUmVxdWVzdD4sIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBzdGFydChE
b2N1bWVudCYsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBhdWRpb0NvbnN0cmFpbnRzLCBS
ZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYpOworICAgIHN0YXRpYyBFeGNlcHRp
b25Pcjx2b2lkPiBzdGFydChEb2N1bWVudCYsIE1lZGlhQ29uc3RyYWludHMmJiBhdWRpb0NvbnN0
cmFpbnRzLCBNZWRpYUNvbnN0cmFpbnRzJiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYpOwogCiAgICAgdmlydHVhbCB+VXNl
ck1lZGlhUmVxdWVzdCgpOwogCkBAIC02MSw4ICs2MSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYXVkaW9EZXZpY2VVSURzKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0Rl
dmljZVVJRHM7IH0KICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmlkZW9EZXZpY2VVSURzKCkg
Y29uc3QgeyByZXR1cm4gbV92aWRlb0RldmljZVVJRHM7IH0KIAotICAgIGNvbnN0IE1lZGlhQ29u
c3RyYWludHNJbXBsJiBhdWRpb0NvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0Nv
bnN0cmFpbnRzOyB9Ci0gICAgY29uc3QgTWVkaWFDb25zdHJhaW50c0ltcGwmIHZpZGVvQ29uc3Ry
YWludHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvQ29uc3RyYWludHM7IH0KKyAgICBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9hdWRp
b0NvbnN0cmFpbnRzOyB9CisgICAgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJh
aW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Db25zdHJhaW50czsgfQogCiAgICAgY29uc3Qg
U3RyaW5nJiBhbGxvd2VkQXVkaW9EZXZpY2VVSUQoKSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWRB
dWRpb0RldmljZVVJRDsgfQogICAgIGNvbnN0IFN0cmluZyYgYWxsb3dlZFZpZGVvRGV2aWNlVUlE
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkVmlkZW9EZXZpY2VVSUQ7IH0KQEAgLTcyLDEyICs3
MiwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnQqIGRvY3VtZW50KCkg
Y29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUmVxdWVzdChEb2N1bWVudCYsIFVzZXJN
ZWRpYUNvbnRyb2xsZXImLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJh
aW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PiYmKTsKKyAgICBVc2VyTWVk
aWFSZXF1ZXN0KERvY3VtZW50JiwgVXNlck1lZGlhQ29udHJvbGxlciYsIE1lZGlhQ29uc3RyYWlu
dHMmJiBhdWRpb0NvbnN0cmFpbnRzLCBNZWRpYUNvbnN0cmFpbnRzJiYgdmlkZW9Db25zdHJhaW50
cywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYpOwogCiAg
ICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CiAgICAgCi0gICAgUmVmPE1lZGlhQ29u
c3RyYWludHNJbXBsPiBtX2F1ZGlvQ29uc3RyYWludHM7Ci0gICAgUmVmPE1lZGlhQ29uc3RyYWlu
dHNJbXBsPiBtX3ZpZGVvQ29uc3RyYWludHM7CisgICAgTWVkaWFDb25zdHJhaW50cyBtX2F1ZGlv
Q29uc3RyYWludHM7CisgICAgTWVkaWFDb25zdHJhaW50cyBtX3ZpZGVvQ29uc3RyYWludHM7CiAK
ICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNlVUlEczsKICAgICBWZWN0b3I8U3RyaW5n
PiBtX2F1ZGlvRGV2aWNlVUlEczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTc4YmNiMTkxYzIzYWM5NjQ2ODhjYmIyNDIyNzM5
ZTg3YzY3ZTZhLi4xZDBlOWI4NGJiMzhmNGFhN2ZlNzRiMWE1YzAxNzM4ZjRmNzA4MTliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xNzksNyArMTc5LDYgQEAKIAkJMDc4NDYzODUxNDVCMUI4RTAwQTU4REYxIC8qIEpTVHJhY2tD
dXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBKU1RyYWNrQ3VzdG9tLmggKi87IH07CiAJCTA3ODdD
NDY5MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzg3QzQ2
NzFCRkJERjZGMDA2RENEN0YgLyogSlNNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuY3Bw
ICovOyB9OwogCQkwNzg3QzQ2QTFCRkJERjZGMDA2RENEN0YgLyogSlNNZWRpYVRyYWNrU3VwcG9y
dGVkQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3ODdDNDY4MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovOyB9OwotCQkwNzhFMDhGRTE3RDE0Q0VFMDA0MjBBQTEgLyogTWVkaWFD
b25zdHJhaW50c0ltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDcyMjFCNEExN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhQ29uc3RyYWludHNJbXBs
LmNwcCAqLzsgfTsKIAkJMDc4RTA4RkYxN0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjRD
MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbS5jcHAgKi87IH07CiAJCTA3OEUwOTAwMTdE
MTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjRGMTdDRUMzMjcwMDg0OEU1MSAvKiBN
ZWRpYVN0cmVhbUV2ZW50LmNwcCAqLzsgfTsKIAkJMDc4RTA5MDExN0QxNENFRTAwNDIwQUExIC8q
IE1lZGlhU3RyZWFtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyMjFCNTIxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtUmVn
aXN0cnkuY3BwICovOyB9OwpAQCAtMTk1LDcgKzE5NCw2IEBACiAJCTA3OEUwOTBDMTdEMTRDRUUw
MDQyMEFBMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCN0ExN0NFQzMyNzAwODQ4RTUxIC8qIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgKi87IH07CiAJCTA3OEUwOTEyMTdEMTRDRUUwMDQyMEFB
MSAvKiBVc2VyTWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjhFMTdDRUMzMjcwMDg0OEU1MSAvKiBVc2VyTWVkaWFD
b250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMDc4RTA5MTMxN0QxNENFRTAwNDIwQUExIC8qIFVzZXJN
ZWRpYVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcyMjFCOTAxN0NFQzMyNzAwODQ4RTUxIC8qIFVzZXJNZWRpYVJlcXVlc3QuY3BwICov
OyB9OwotCQkwNzhFMDkxNDE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50c0ltcGwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjRC
MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYUNvbnN0cmFpbnRzSW1wbC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3OEUwOTE1MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcyMjFCNEQxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtLmggKi87
IH07CiAJCTA3OEUwOTE2MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUI1MDE3Q0VD
MzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1FdmVudC5oICovOyB9OwogCQkwNzhFMDkxNzE3RDE0
RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCNTMxN0NFQzMyNzAwODQ4RTUxIC8qIE1l
ZGlhU3RyZWFtUmVnaXN0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNzQzNyw4ICs3NDM1LDYgQEAKIAkJMDcxRTQ5NkYxQUQ1QUI1RTAwOEE1
MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldE1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzIwQjA5RTE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJpY0V2ZW50UXVldWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIwQjA5RjE0RDMzMjM1MDA2NDI5
NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR2VuZXJpY0V2ZW50UXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcy
MjFCNEExN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhQ29uc3RyYWludHNJbXBsLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQ29uc3RyYWludHNJbXBsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcyMjFCNEIxN0NFQzMyNzAwODQ4RTUxIC8q
IE1lZGlhQ29uc3RyYWludHNJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhQ29uc3RyYWludHNJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
MjIxQjRDMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3MjIxQjREMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUI0RTE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJl
YW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU3RyZWFtLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1OTU5LDggKzE1OTU1LDYgQEAKIAkJCQk5M0E4MDYxMjFF
MDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovLAogCQkJCTkzQTgwNjEzMUUwM0I1
MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLywKIAkJCQk5M0E4MDYxNDFFMDNCNTFDMDA4QTFG
MjYgLyogTG9uZ1JhbmdlLmlkbCAqLywKLQkJCQkwNzIyMUI0QTE3Q0VDMzI3MDA4NDhFNTEgLyog
TWVkaWFDb25zdHJhaW50c0ltcGwuY3BwICovLAotCQkJCTA3MjIxQjRCMTdDRUMzMjcwMDg0OEU1
MSAvKiBNZWRpYUNvbnN0cmFpbnRzSW1wbC5oICovLAogCQkJCTE1OUFFODJBMUIzQTQwMkYwMDM3
NDc4QiAvKiBNZWRpYURldmljZUluZm8uY3BwICovLAogCQkJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2
MkJGNyAvKiBNZWRpYURldmljZUluZm8uaCAqLywKIAkJCQkxNTE0NUI5MTFCM0ExRDRDMDA2NjJC
RjcgLyogTWVkaWFEZXZpY2VJbmZvLmlkbCAqLywKQEAgLTI4NDAyLDcgKzI4Mzk2LDYgQEAKIAkJ
CQk1Q0JDOERBRDFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMUJDQzYxMTEyNERGQ0IwMEJFNzBERCAvKiBNZWRpYUNh
blN0YXJ0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTNBMTdEMTZFMUMwMDQy
MEFBMSAvKiBNZWRpYUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwNzhFMDkxNDE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50c0ltcGwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxNzI1M0FCMTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJREVCQ0NERDQxNjY0NkVBRjAwQTQ1MkUxIC8qIE1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRD
N0FBIC8qIE1lZGlhQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjQxNSw3ICszMjQw
OCw2IEBACiAJCQkJNDlFOTExQzYwRUY4NkQ0NzAwOUQwQ0FGIC8qIE1hdHJpeFRyYW5zZm9ybU9w
ZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1Q0JDOERBQzFBQUEzMDIyMDBFMUM4MDMg
LyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUJF
NUJGQzIxRDUxNTcxNTAwMTY2NkQ5IC8qIE1lZGlhQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMDc4RTA4RkUxN0QxNENFRTAwNDIwQUExIC8qIE1lZGlhQ29uc3RyYWludHNJbXBs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNzI1M0FBMTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUJDQ0RENTE2NjQ2RUIy
MDBBNDUyRTEgLyogTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEMjdGNkU3MTQ1NzcwRDMwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYUNvbnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCmluZGV4IDFlN2Y3ZjdiZmE3NTNhZTQ3Mjc5ZGRlNDZh
YzYwODQ2NjQyMjI2ZDEuLmViZTYwMzVlMTNhZTYxODY4NzQyYmI4YzNlMWY2NTYyYjQwNWMzZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29u
c3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhQ29uc3RyYWludHMuY3BwCkBAIC0zNDAsNiArMzQwLDYyIEBAIGJvb2wgTWVkaWFUcmFja0Nv
bnN0cmFpbnRTZXRNYXA6OmlzRW1wdHkoKSBjb25zdAogICAgIHJldHVybiAhc2l6ZSgpOwogfQog
CitzdGF0aWMgaW5saW5lIHZvaWQgYWRkRGVmYXVsdFZpZGVvQ29uc3RyYWludHMoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIHZpZGVvQ29uc3RyYWludHMsIGJvb2wgYWRkRnJhbWVSYXRlQ29u
c3RyYWludCwgYm9vbCBhZGRTaXplQ29uc3RyYWludCwgYm9vbCBhZGRGYWNpbmdNb2RlQ29uc3Ry
YWludCkKK3sKKyAgICBpZiAoYWRkRnJhbWVSYXRlQ29uc3RyYWludCkgeworICAgICAgICBEb3Vi
bGVDb25zdHJhaW50IGZyYW1lUmF0ZUNvbnN0cmFpbnQoeyB9LCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpGcmFtZVJhdGUpOworICAgICAgICBmcmFtZVJhdGVDb25zdHJhaW50LnNldElkZWFsKDMwKTsK
KyAgICAgICAgdmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVS
YXRlLCBXVEZNb3ZlKGZyYW1lUmF0ZUNvbnN0cmFpbnQpKTsKKyAgICB9CisgICAgaWYgKGFkZFNp
emVDb25zdHJhaW50KSB7CisgICAgICAgIEludENvbnN0cmFpbnQgd2lkdGhDb25zdHJhaW50KHsg
fSwgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgpOworICAgICAgICB3aWR0aENvbnN0cmFpbnQu
c2V0SWRlYWwoNjQwKTsKKyAgICAgICAgdmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJh
aW50VHlwZTo6V2lkdGgsIFdURk1vdmUod2lkdGhDb25zdHJhaW50KSk7CisgICAgICAgIAorICAg
ICAgICBJbnRDb25zdHJhaW50IGhlaWdodENvbnN0cmFpbnQoeyB9LCBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpIZWlnaHQpOworICAgICAgICBoZWlnaHRDb25zdHJhaW50LnNldElkZWFsKDQ4MCk7Cisg
ICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCwg
V1RGTW92ZShoZWlnaHRDb25zdHJhaW50KSk7CisgICAgfQorICAgIGlmIChhZGRGYWNpbmdNb2Rl
Q29uc3RyYWludCkgeworICAgICAgICBTdHJpbmdDb25zdHJhaW50IGZhY2luZ01vZGVDb25zdHJh
aW50KHsgfSwgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZSk7CisgICAgICAgIGZhY2lu
Z01vZGVDb25zdHJhaW50LnNldElkZWFsKEFTQ0lJTGl0ZXJhbCgidXNlciIpKTsKKyAgICAgICAg
dmlkZW9Db25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZSwgV1RG
TW92ZShmYWNpbmdNb2RlQ29uc3RyYWludCkpOworICAgIH0KK30KKworYm9vbCBNZWRpYUNvbnN0
cmFpbnRzOjppc0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IE1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0TWFwJik+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKGNhbGxiYWNrKG1h
bmRhdG9yeUNvbnN0cmFpbnRzKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgZm9y
IChjb25zdCBhdXRvJiBjb25zdHJhaW50IDogYWR2YW5jZWRDb25zdHJhaW50cykgeworICAgICAg
ICBpZiAoY2FsbGJhY2soY29uc3RyYWludCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIE1lZGlhQ29uc3RyYWludHM6OnNldERl
ZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCkKK3sKKyAgICAvLyA2NDB4NDgwLCAzMGZwcywgZm9udC1m
YWNpbmcgY2FtZXJhCisgICAgYm9vbCBoYXNGcmFtZVJhdGVDb25zdHJhaW50cyA9IGlzQ29uc3Ry
YWludFNldChbXShjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgY29uc3RyYWludCkg
eworICAgICAgICByZXR1cm4gISFjb25zdHJhaW50LmZyYW1lUmF0ZSgpOworICAgIH0pOworICAg
IAorICAgIGJvb2wgaGFzU2l6ZUNvbnN0cmFpbnRzID0gaXNDb25zdHJhaW50U2V0KFtdKGNvbnN0
IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBjb25zdHJhaW50KSB7CisgICAgICAgIHJldHVy
biAhIWNvbnN0cmFpbnQud2lkdGgoKSB8fCAhIWNvbnN0cmFpbnQuaGVpZ2h0KCk7CisgICAgfSk7
CisgICAgCisgICAgYm9vbCBoYXNGYWNpbmdNb2RlQ29uc3RyYWludHMgPSBpc0NvbnN0cmFpbnRT
ZXQoW10oY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIGNvbnN0cmFpbnQpIHsKKyAg
ICAgICAgcmV0dXJuICEhY29uc3RyYWludC5mYWNpbmdNb2RlKCk7CisgICAgfSk7CisgICAgCisg
ICAgaWYgKGhhc0ZyYW1lUmF0ZUNvbnN0cmFpbnRzICYmIGhhc1NpemVDb25zdHJhaW50cyAmJiBo
YXNGYWNpbmdNb2RlQ29uc3RyYWludHMpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBhZGRE
ZWZhdWx0VmlkZW9Db25zdHJhaW50cyhtYW5kYXRvcnlDb25zdHJhaW50cywgIWhhc0ZyYW1lUmF0
ZUNvbnN0cmFpbnRzLCAhaGFzU2l6ZUNvbnN0cmFpbnRzLCAhaGFzRmFjaW5nTW9kZUNvbnN0cmFp
bnRzKTsKK30KKyAgICAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFp
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFp
bnRzLmgKaW5kZXggNjYzNmFjMDBmMjg3YzkyNzMwZTM1ZjUxMzZjNjgzODJiNTVlNDIyNS4uM2M0
ODY0ZDQ1MWYyMzIwYmVjYTI3ODdjZjIxOGQ1M2EyNTFjMzAwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaApAQCAt
MzUsOSArMzUsMTAgQEAKIAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cy5oIgogI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0KKyAgICAKIGNsYXNzIE1lZGlhQ29uc3RyYWludCB7
CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBEYXRhVHlwZSB7IE5vbmUsIEludGVnZXIsIERvdWJs
ZSwgQm9vbGVhbiwgU3RyaW5nIH07CkBAIC04MDMsMjEgKzgwNCwxNiBAQCBwcml2YXRlOgogI2Vu
ZGlmCiB9OwogCi1jbGFzcyBNZWRpYUNvbnN0cmFpbnRzIDogcHVibGljIFJlZkNvdW50ZWQ8TWVk
aWFDb25zdHJhaW50cz4gewotcHVibGljOgotICAgIHZpcnR1YWwgfk1lZGlhQ29uc3RyYWludHMo
KSB7IH0KLQotICAgIHZpcnR1YWwgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1h
bmRhdG9yeUNvbnN0cmFpbnRzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgVmVjdG9y
PE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiYgYWR2YW5jZWRDb25zdHJhaW50cygpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0ID0gMDsKK3N0cnVjdCBNZWRp
YUNvbnN0cmFpbnRzIHsKKyAgICB2b2lkIHNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCk7Cisg
ICAgYm9vbCBpc0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IE1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0TWFwJik+JiYpOwogCi0gICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIGRl
dmljZUlESGFzaFNhbHQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldERldmljZUlE
SGFzaFNhbHQoY29uc3QgU3RyaW5nJikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgTWVkaWFDb25z
dHJhaW50cygpIHsgfQorICAgIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIG1hbmRhdG9yeUNv
bnN0cmFpbnRzOworICAgIFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4gYWR2YW5j
ZWRDb25zdHJhaW50czsKKyAgICBTdHJpbmcgZGV2aWNlSURIYXNoU2FsdDsKKyAgICBib29sIGlz
VmFsaWQgeyBmYWxzZSB9OwogfTsKLQorICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTUVESUFDT05TVFJBSU5UKENvbnN0cmFpbnRU
eXBlLCBwcmVkaWNhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFs
aWRhdGlvbkNsaWVudC5oCmluZGV4IDk3M2M5ZWVlMWM1ODQ3NWNmNTU1MGVjZDg5OGM4OGJkZjFi
MjBkMzIuLjQ5OTQ0YTg1NWNiMzA2YTRmOGRiZDIyNWM3YTM4NWFkM2U1MzNkNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3Ry
YWludHNWYWxpZGF0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnQuaApAQCAtMjMs
OCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1lZGlhU3RyZWFtQ29u
c3RyYWludHNWYWxpZGF0aW9uQ2xpZW50X2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1Db25zdHJhaW50
c1ZhbGlkYXRpb25DbGllbnRfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogCkBAIC0zMyw4ICszMiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
TWVkaWFDb25zdHJhaW50czsKLQogY2xhc3MgTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRp
b25DbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRh
dGlvbkNsaWVudD4gewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtQ29uc3RyYWlu
dHNWYWxpZGF0aW9uQ2xpZW50KCkgeyB9CkBAIC00Niw1ICs0MywzIEBAIHB1YmxpYzoKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNl
bmRpZiAvLyBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCmluZGV4IDFmNDk5MzExNWFlZmYxOTM5M2FlM2E3MmQ4N2ZlNGM0MTZlYmRl
MTUuLjhmZjk1NGUzNGIwZjZjMTI0YzkwMjdjM2Q4NDk3YzQwNTgxZjIyMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCkBAIC01MjQsMTIgKzUyNCwxMiBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnNlbGVjdFNldHRpbmdzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBG
bAogCiAgICAgZmFpbGVkQ29uc3RyYWludCA9IGVtcHR5U3RyaW5nKCk7CiAKLSAgICAvLyBDaGVj
ayB3aWR0aCwgaGVpZ2h0LCBhbmQgZnJhbWUgcmF0ZSBzZXBhcmF0ZWx5LCBiZWNhdXNlIHdoaWxl
IHRoZXkgbWF5IGJlIHN1cHBvcnRlZCBpbmRpdmlkdWFsbHkgdGhlIGNvbWJpbmF0aW9uIG1heSBu
b3QgYmUgc3VwcG9ydGVkLgorICAgIC8vIENoZWNrIHdpZHRoLCBoZWlnaHQgYW5kIGZyYW1lIHJh
dGUgam9pbnRseSwgYmVjYXVzZSB3aGlsZSB0aGV5IG1heSBiZSBzdXBwb3J0ZWQgaW5kaXZpZHVh
bGx5IHRoZSBjb21iaW5hdGlvbiBtYXkgbm90IGJlIHN1cHBvcnRlZC4KICAgICBkb3VibGUgZGlz
dGFuY2UgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7Ci0gICAgaWYg
KCFzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWlu
dHMoKS53aWR0aCgpLCBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cygpLmhlaWdodCgp
LCBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cygpLmZyYW1lUmF0ZSgpLCBmYWlsZWRD
b25zdHJhaW50LCBtX2ZpdG5lc3NTY29yZSkpCisgICAgaWYgKCFzdXBwb3J0c1NpemVBbmRGcmFt
ZVJhdGUoY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMud2lkdGgoKSwgY29uc3RyYWlu
dHMubWFuZGF0b3J5Q29uc3RyYWludHMuaGVpZ2h0KCksIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNv
bnN0cmFpbnRzLmZyYW1lUmF0ZSgpLCBmYWlsZWRDb25zdHJhaW50LCBtX2ZpdG5lc3NTY29yZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0
cmFpbnRzKCkuZmlsdGVyKFsmXShjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpIHsK
KyAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cy5maWx0ZXIoWyZdKGNvbnN0IE1l
ZGlhQ29uc3RyYWludCYgY29uc3RyYWludCkgewogICAgICAgICBpZiAoIXN1cHBvcnRzQ29uc3Ry
YWludChjb25zdHJhaW50KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTQ2LDkg
KzU0Niw5IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0dGluZ3MoY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEZsCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgICAgICAgICBBU1NFUlQoY29uc3RyYWludC5pc1N0cmluZygpKTsKLSAg
ICAgICAgICAgIEFTU0VSVCghY29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCgpLmlzRW1wdHko
KSk7CisgICAgICAgICAgICBBU1NFUlQoIWNvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQuaXNF
bXB0eSgpKTsKIAotICAgICAgICAgICAgYXV0byBoYXNoZWRJRCA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChtX3BlcnNpc3RlbnRJRCwg
Y29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgICAgIGF1dG8gaGFzaGVk
SUQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0
aFNhbHQobV9wZXJzaXN0ZW50SUQsIGNvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQpOwogICAg
ICAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IGRvd25jYXN0PFN0cmluZ0NvbnN0
cmFpbnQ+KGNvbnN0cmFpbnQpLmZpdG5lc3NEaXN0YW5jZShoYXNoZWRJRCk7CiAgICAgICAgICAg
ICBpZiAoc3RkOjppc2luZihjb25zdHJhaW50RGlzdGFuY2UpKSB7CiAgICAgICAgICAgICAgICAg
ZmFpbGVkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQubmFtZSgpOwpAQCAtNTg1LDcgKzU4NSw3IEBA
IGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0dGluZ3MoY29uc3QgTWVkaWFDb25z
dHJhaW50cyYgY29uc3RyYWludHMsIEZsCiAgICAgLy8gICAgIHZhbHVlcyBvZiBwcm9wZXJ0aWVz
IGFzIGV4YWN0LgogICAgIFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcD4+IHN1cHBvcnRlZENvbnN0cmFpbnRzOwogCi0gICAgZm9yIChjb25zdCBhdXRv
JiBhZHZhbmNlZENvbnN0cmFpbnQgOiBjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzKCkp
IHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFkdmFuY2VkQ29uc3RyYWludCA6IGNvbnN0cmFpbnRz
LmFkdmFuY2VkQ29uc3RyYWludHMpIHsKICAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5j
ZSA9IDA7CiAgICAgICAgIGJvb2wgc3VwcG9ydGVkID0gZmFsc2U7CiAKQEAgLTY5NSw3ICs2OTUs
NyBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzQ29uc3RyYWludChjb25zdCBN
ZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpCiAKIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c3VwcG9ydHNDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKIHsKLSAgICBBU1NFUlQoY29uc3RyYWludHMuaXNW
YWxpZCgpKTsKKyAgICBBU1NFUlQoY29uc3RyYWludHMuaXNWYWxpZCk7CiAKICAgICBGbGF0dGVu
ZWRDb25zdHJhaW50IGNhbmRpZGF0ZXM7CiAgICAgaWYgKCFzZWxlY3RTZXR0aW5ncyhjb25zdHJh
aW50cywgY2FuZGlkYXRlcywgaW52YWxpZENvbnN0cmFpbnQsIFNlbGVjdFR5cGU6OkZvclN1cHBv
cnRzQ29uc3RyYWludHMpKQpAQCAtNzU3LDcgKzc1Nyw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBGbGF0dGVuZWRDb25zdHJhaW50JiBjb25zdHJh
aW50CiAKIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykKIHsKLSAgICBBU1NFUlQoY29uc3RyYWludHMuaXNWYWxpZCgpKTsKKyAgICBBU1NF
UlQoY29uc3RyYWludHMuaXNWYWxpZCk7CiAKICAgICBGbGF0dGVuZWRDb25zdHJhaW50IGNhbmRp
ZGF0ZXM7CiAgICAgU3RyaW5nIGZhaWxlZENvbnN0cmFpbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwCmluZGV4IGNjMzM4NTFiYWE0ZmNkZjA1N2E0MzVmZTBhYTg5NDJmOGFlYzFk
MDUuLjVlZGJmYzY5Njk4ZWU1YmI3ODY5MmFhNzRmMTU2NjBjMWNmM2JhZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0yMjIsMTEgKzIyMiwxMSBAQCB2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29u
c3RyYWludHNIYW5kbAogCiAgICAgICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKICAgICAg
ICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKLSAgICAgICAgaWYgKGRldmlj
ZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8gJiYgdmlkZW9Db25z
dHJhaW50cy5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKGRldmljZS50eXBlKCkgPT0gQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8gJiYgdmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7
CiAgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRlb0ZhY3RvcnkoKS5jcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBudWxscHRyKTsKICAgICAg
ICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+
c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkp
CiAgICAgICAgICAgICAgICAgdmlkZW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5j
YXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpBdWRpbyAmJiBhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgeworICAgICAgICB9IGVs
c2UgaWYgKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW8g
JiYgYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7CiAgICAgICAgICAgICBhdXRvIHNvdXJjZU9y
RXJyb3IgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnBl
cnNpc3RlbnRJZCgpLCBudWxscHRyKTsKICAgICAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYm
IHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhhdWRpb0Nv
bnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgYXVkaW9EZXZp
Y2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUo
KSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENv
bnN0cmFpbnRzSGFuZGwKICAgICAgICAgICAgIGZpcnN0SW52YWxpZENvbnN0cmFpbnQgPSBpbnZh
bGlkQ29uc3RyYWludDsKICAgICB9CiAKLSAgICBpZiAoKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxp
ZCgpICYmIGF1ZGlvRGV2aWNlSW5mby5pc0VtcHR5KCkpIHx8ICh2aWRlb0NvbnN0cmFpbnRzLmlz
VmFsaWQoKSAmJiB2aWRlb0RldmljZUluZm8uaXNFbXB0eSgpKSkgeworICAgIGlmICgoYXVkaW9D
b25zdHJhaW50cy5pc1ZhbGlkICYmIGF1ZGlvRGV2aWNlSW5mby5pc0VtcHR5KCkpIHx8ICh2aWRl
b0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgdmlkZW9EZXZpY2VJbmZvLmlzRW1wdHkoKSkpIHsKICAg
ICAgICAgaW52YWxpZEhhbmRsZXIoZmlyc3RJbnZhbGlkQ29uc3RyYWludCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggNDRkNTQ3ZGYy
MjE3NTVlZGNkMTViNzQ5MGQwNDBlMzY5MTY0NzhhOC4uZDEwZTY0OGJiYmEzOTQ4NzQ2ZTlmNjNk
ODcxYjk1ZjNkOTIzOWViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNDMs
MTEgKzQzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FwdHVyZURldmljZTsK
IGNsYXNzIENhcHR1cmVEZXZpY2VNYW5hZ2VyOwotY2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNs
YXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdXBwb3J0ZWRDb25zdHJhaW50czsKIGNsYXNzIFRyYWNrU291cmNlSW5mbzsKIAorc3RydWN0
IE1lZGlhQ29uc3RyYWludHM7CisgICAgCiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGE0ZjliMzhh
ZTJhMjhiN2Q3MDc5ZWM3M2FkYzg0YWZkODVkMzQ4MmEuLmZlZTQwMmI1OGNjM2IzYmNlZGEyYTY4
MDYzMTAxZTk2YWVmNDIzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UuY3BwCkBAIC0xNTAsMTEgKzE1MCw2IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzZXR0aW5ncygpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fY3VycmVudFNldHRpbmdzOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMmIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c3VwcG9ydGVk
Q29uc3RyYWludHMoKQotewotICAgIHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotfQot
CiBBdWRpb1NvdXJjZVByb3ZpZGVyKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmF1ZGlv
U291cmNlUHJvdmlkZXIoKQogewogICAgIGlmICghbV9hdWRpb1NvdXJjZVByb3ZpZGVyKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKaW5kZXggODUyY2U5N2YyMjkz
ZWM5MzAxYjc0MTgwZWU3YWM1OTFiMjM1Y2QzZC4uOWNjMWE2NTVjZmRmOWQ1NTk1ZmFjMTVlNzc4
MzgzZWMzOGEzZTcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2Uu
aApAQCAtNjQsMTYgKzY0LDExIEBAIHByaXZhdGU6CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsOwogCi0g
ICAgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50
cy5nZXQoKTsgfQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYg
c3VwcG9ydGVkQ29uc3RyYWludHMoKTsKLQogICAgIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9pc1Byb2R1Y2luZ0RhdGE7IH0KIAogICAgIEF1ZGlvU291cmNl
UHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBmaW5hbDsKIAogICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKLSAgICBSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBSZWZQ
dHI8TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKICAgICBib29sIG1faXNQcm9kdWNp
bmdEYXRhIHsgZmFsc2UgfTsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1Ry
YWNrSW50ZXJmYWNlPiBtX2F1ZGlvVHJhY2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggZjUwOTZmYjBmMGEwNjFkNDU5YzExYWQyZjExMDZkZjEz
NTNiYTE1YS4uMTc4NmM0YzA0MjQ3NGIxZDI4ZWI0OTZjMGY0Mjk5YjY2M2NjNDA0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKQEAgLTIxNywxMSArMjE3
LDYgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBSZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2U6OnNldHRpbmdzKCkgY29uc3QKICAgICByZXR1cm4gbV9jdXJyZW50U2V0dGlu
Z3M7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlOjpzdXBwb3J0ZWRDb25zdHJhaW50cygpCi17Ci0gICAgcmV0
dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmgKaW5kZXggNDJmOTI2ZjQxY2FjMGMxOGQ4NGZjZjRmMmQ2Yjk0MDVmZTllMGIw
MC4uZTc4YTY5NDRlYThjZmU4MWFlODUwZTg5ZDY5OTE2NzAyNmM1NzJiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaApAQCAtNjEsOSArNjEsNiBAQCBwcml2YXRl
OgogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGll
cygpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
c2V0dGluZ3MoKSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFp
bnRzKCkgeyByZXR1cm4gKm1fY29uc3RyYWludHMuZ2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCk7Ci0KICAg
ICB2b2lkIHByb2Nlc3NOZXdTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYsIHVuc2lnbmVkLCB1bnNp
Z25lZCwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24pOwogCiAgICAgYm9vbCBpc1Byb2R1Y2lu
Z0RhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzUHJvZHVjaW5nRGF0YSAmJiBtX2J1ZmZl
cjsgfQpAQCAtNzYsOCArNzMsNiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPEltYWdlPiBtX2N1
cnJlbnRJbWFnZTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0
dGluZ3M7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3Vw
cG9ydGVkQ29uc3RyYWludHM7Ci0gICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3Ry
YWludHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4gbV92aWRlb1RyYWNrOwog
ICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbV9idWZmZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmgKaW5k
ZXggOWE1YWQxZDIwNDgyMDRlMDA1MmJiNWQ2NTdlMjYyODU2YzFiY2FhZC4uMjY2OTc0ZTRlZDU4
ZWIxNTFlMGM1NDViN2VhNDMyZDZmYWZkNmNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNzEsNyArNzEs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYgY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgTWVkaWFD
b25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsg
fQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVk
Q29uc3RyYWludHMoKTsKIAogICAgIHVuc2lnbmVkIGRldmljZUluZGV4KCkgeyByZXR1cm4gbV9k
ZXZpY2VJbmRleDsgfQpAQCAtODksNyArODgsNiBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICAgICBSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRp
ZXM7Ci0gICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgdW5z
aWduZWQgbV9kZXZpY2VJbmRleCB7IDAgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsg
ZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IGEzZjA1ZDg0ZGNlNGQ3N2ZkOGYxYjI4YzBmM2MyNjljNDY5MmI1ODcuLmZlNmJmODk2ZGQ4
NTg3NTc5ZjBhNzJmM2YwZDhjODQ2NTc1Y2ZkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNjAsNyArMzYwLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5
cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpIaWdobGlnaHQnOiBbJzxXZWJDb3JlL0luc3Bl
Y3Rvck92ZXJsYXkuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0Jzog
Wyc8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQnOiBbJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4nXSwKLSAgICAgICAgJ1dlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJzogWyc8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzSW1w
bC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyc6IFsnPFdlYkNvcmUv
TWVkaWFDb25zdHJhaW50cy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEltYWdl
JzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJv
YXJkVVJMJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA0ZTY0
Y2Q0NWE0MDRkOWIwZmI1ZTE2MDhkYzgwZTI0OTdjZDk2NjUwLi40NjE2YWFkZjE0NjI3YTAxYzYz
NGQ1ZGI5ODhiZTFlYjNjM2YxMDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBACiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhQ29uc3RyYWludHMuaD4KICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTIzODksNyArMjM4OSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlJlCiB9CiAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotdm9pZCBBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHNEYXRh
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHNEYXRhJiBjb25zdHJhaW50KQordm9pZCBBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHM+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludCkKIHsKICAgICBlbmNvZGVyIDw8IGNvbnN0cmFpbnQubWFuZGF0b3J5Q29u
c3RyYWludHMKICAgICAgICAgPDwgY29uc3RyYWludC5hZHZhbmNlZENvbnN0cmFpbnRzCkBAIC0y
Mzk3LDcgKzIzOTcsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50c0RhdGE+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZQogICAgICAgICA8PCBjb25z
dHJhaW50LmlzVmFsaWQ7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRz
RGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
RGF0YSYgY29uc3RyYWludHMpCitib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykKIHsKICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubWFuZGF0
b3J5Q29uc3RyYWludHMpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLmFk
dmFuY2VkQ29uc3RyYWludHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKaW5kZXggZjcwMjUyZDBkMmYxYjY1NzY0NTA3NWMxOTUzYjJjNzk1NzI5Mjk0
OC4uYTY3M2YyYWY2ZWNlMDlkOTM1NTE2NTMwMzNlMWRkMzU2ODQwOGMwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTYyLDcgKzE2Miw3
IEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYXB0dXJlRGV2aWNlOwotc3RydWN0IE1lZGlh
Q29uc3RyYWludHNEYXRhOworc3RydWN0IE1lZGlhQ29uc3RyYWludHM7CiB9CiAjZW5kaWYKIApA
QCAtNjQwLDkgKzY0MCw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+IHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50c0RhdGE+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYpOwordGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzPiB7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA2Y2RiYTFm
NzU5M2IwZTRlMmE1NzkxNTgzMDA1NWY3NzAxZDkzYTY5Li4zZTViOGJlZDQwMjZiYTk3YmM1NjY1
ZjIzYThhN2Y5Yjg0MzEyYzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0z
Myw3ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4K
ICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC0xMjUsMTYgKzEyNSwxNSBAQCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpCiAg
ICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50c0RhdGEmIGNvbnN0cmFpbnRzRGF0YSwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFs
aWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBTdHJp
bmcmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBib29sJiBzdWNjZWVkZWQsIFN0cmlu
ZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbmdzKQogewogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7
Ci0gICAgYXV0byBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoTWVk
aWFDb25zdHJhaW50c0RhdGEoY29uc3RyYWludHNEYXRhKSk7CiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKLSAg
ICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgY29u
c3RyYWludHMucHRyKCkpOworICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGRldmljZUlELCAmY29uc3RyYWludHMpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgotICAgICAgICBzb3Vy
Y2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9G
YWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZUlELCBjb25zdHJhaW50cy5w
dHIoKSk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS52aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2
aWNlSUQsICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0xODUsOSArMTg0LDggQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpzZXRFbmFibGVkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpCiAgICAgICAgIGl0ZXIt
PnZhbHVlLT5zb3VyY2UoKS5zZXRFbmFibGVkKGVuYWJsZWQpOwogfQogCi12b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEpCit2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQogewotICAgIGF1
dG8gY29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKE1lZGlhQ29uc3Ry
YWludHNEYXRhKGNvbnN0cmFpbnRzRGF0YSkpOwogICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5m
aW5kKGlkKTsKICAgICBpZiAoaXRlciA9PSBtX3Byb3hpZXMuZW5kKCkpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDJhNTFkN2MyNWJiNWNiZTcwNjY4NTQ2
ZjhlNjQ2MDBkOGU5YjVmYjAuLjgwZTMzZmYzMDE3MmZiMThlMDUwZTgzNmQzZjAxZGFkNTM3MDM2
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtNDksMTMgKzQ5LDEzIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZp
bmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNE
YXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52
YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsK
ICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKICAgICB2b2lkIHNldE11
dGVkKHVpbnQ2NF90LCBib29sKTsKICAgICB2b2lkIHNldEVuYWJsZWQodWludDY0X3QsIGJvb2wp
OwotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50c0RhdGEmKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHModWludDY0X3Qs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKIAogICAgIGNsYXNzIFNvdXJjZVBy
b3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYTNjODE0ZmViOWMwODJlMzA1NTRmYzM1OWI5
NTZhOGZlZmUwZGFiYS4uNjA1MzM3MWI3ZDJiMTYwOWZiZGU3Y2RkZDM5OWI5OTBiMTZjZThkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDEx
ICsyMiwxMSBAQAogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2Vz
IC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgewotICAgIENyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgU3RyaW5nIGRldmlj
ZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIHN0cnVjdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2Vzcywg
U3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIHNldHRpbmdzKQorICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgU3RyaW5nIGRldmljZUlELCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAg
U3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90IGlkKQogICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQogICAgIFNldE11dGVk
KHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQogICAgIFNldEVuYWJsZWQodWludDY0X3QgaWQsIGJv
b2wgZW5hYmxlZCkKLSAgICBBcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpCisgICAgQXBwbHlDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3Ry
YWludHMpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBjMGJi
ZjQxYmI5NmI3ZTQ5MzFhOTAyYjcwOTFmY2Q2Y2RjMTk3YWE0Li40Mzk1ZDM5ZDQzOWI1MjVkY2Mw
MTZkYTUxNTE3NzVkMDU0MTQzMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CkBAIC0yNTEsNyArMjUx
LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2NoZWR1
bGVOZXh0UmVqZWN0aW9uKCkKICAgICAgICAgbV9yZWplY3Rpb25UaW1lci5zdGFydE9uZVNob3Qo
U2Vjb25kcyhtaW1pbXVtRGVsYXlCZWZvcmVSZXBseWluZyArIHJhbmRvbU51bWJlcigpKSk7CiB9
CiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmlu
ZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50c0RhdGEmIGF1ZGlvQ29uc3RyYWludHNEYXRhLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzRGF0YSYgdmlkZW9Db25zdHJhaW50c0RhdGEpCit2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZv
ckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29u
c3RyYWludHMsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWlu
dHMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBhdXRvIGludmFsaWRIYW5kbGVy
ID0gW3RoaXMsIHVzZXJNZWRpYUlEXShjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSB7
CkBAIC0zMDYsMTIgKzMwNiwxMSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgYXV0byB2YWxpZGF0ZUNvbnN0cmFpbnRzSGFuZGxlciA9IFt0
aGlzLCB1c2VyTWVkaWFJRCwgdmFsaWRIYW5kbGVyID0gV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBp
bnZhbGlkSGFuZGxlciA9IFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBhdWRpb0NvbnN0cmFpbnRz
RGF0YSwgdmlkZW9Db25zdHJhaW50c0RhdGFdKFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNo
U2FsdCkgbXV0YWJsZSB7CisgICAgYXV0byB2YWxpZGF0ZUNvbnN0cmFpbnRzSGFuZGxlciA9IFt0
aGlzLCB1c2VyTWVkaWFJRCwgdmFsaWRIYW5kbGVyID0gV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBp
bnZhbGlkSGFuZGxlciA9IFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBhdWRpb0NvbnN0cmFpbnRz
ID0gV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzKSwgdmlkZW9Db25z
dHJhaW50cyA9IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHModmlkZW9Db25zdHJhaW50cyldKFN0
cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgbXV0YWJsZSB7CiAgICAgICAgIHN5bmNX
aXRoV2ViQ29yZVByZWZzKCk7Ci0KLSAgICAgICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gTWVk
aWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShNZWRpYUNvbnN0cmFpbnRzRGF0YShhdWRpb0NvbnN0
cmFpbnRzRGF0YSwgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7Ci0gICAgICAgIGF1dG8gdmlk
ZW9Db25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoTWVkaWFDb25zdHJh
aW50c0RhdGEodmlkZW9Db25zdHJhaW50c0RhdGEsIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkp
OwotCisgICAgICAgIAorICAgICAgICBhdWRpb0NvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQg
PSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7CisgICAgICAgIHZpZGVvQ29uc3RyYWludHMuZGV2
aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKICAgICAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0
Q29uc3RyYWludHMoV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGludmFsaWRIYW5kbGVy
KSwgYXVkaW9Db25zdHJhaW50cywgdmlkZW9Db25zdHJhaW50cyk7CiAgICAgfTsKIApAQCAtMzM1
LDggKzMzNCw4IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUoCiAgICAgVU5VU0VEX1BBUkFNKGZy
YW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZp
ZXIpOwogICAgIFVOVVNFRF9QQVJBTSh0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcik7
Ci0gICAgVU5VU0VEX1BBUkFNKGF1ZGlvQ29uc3RyYWludHNEYXRhKTsKLSAgICBVTlVTRURfUEFS
QU0odmlkZW9Db25zdHJhaW50c0RhdGEpOworICAgIFVOVVNFRF9QQVJBTShhdWRpb0NvbnN0cmFp
bnRzKTsKKyAgICBVTlVTRURfUEFSQU0odmlkZW9Db25zdHJhaW50cyk7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCBmYmJlZDU5YTczZDc4MGE4MzM5
Y2EwNzZmMmEzNTljYzQ5N2ZlZTk5Li40ZmVjZWVjMDJkN2UxMTViNmI4ZmIxZDU4MzFkMDE4Mzdj
MTgxZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMjksNyArMjks
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYXB0dXJlRGV2aWNlOwotc3RydWN0
IE1lZGlhQ29uc3RyYWludHNEYXRhOworc3RydWN0IE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBT
ZWN1cml0eU9yaWdpbjsKIH07CiAKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50c0RhdGEmIGF1ZGlvQ29uc3RyYWludHNEYXRhLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzRGF0YSYgdmlkZW9Db25zdHJhaW50c0RhdGEpOworICAgIHZvaWQgcmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJh
bWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRv
cExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
JiB2aWRlb0NvbnN0cmFpbnRzKTsKIAogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRl
ZCh1aW50NjRfdCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2
aWRlb0RldmljZVVJRCk7CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0
X3QsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDA2MTk5ZWNhMDdkNTI1M2I2N2M1YzFlNTE4MmVmNDNjZTU1YTU1NmQuLjQzOGRlYmQ4MmIxYWE0
ZDcxZmNjMWY5N2FiN2FiOTdjMjRmMGY0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjZW5kaWYKIAogLy8gVGhp
cyBjb250cm9scyB3aGF0IHN0cmF0ZWd5IHdlIHVzZSBmb3IgbW91c2Ugd2hlZWwgY29hbGVzY2lu
Zy4KQEAgLTU3NDQsMTkgKzU3NDQsMTkgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkmIFdlYlBhZ2VQcm94eTo6dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKIH0KICNl
bmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmln
aW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYgYXVkaW9D
b25zdHJhaW50c0RhdGEsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiB2aWRl
b0NvbnN0cmFpbnRzRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
IGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIHZpZGVv
Q29uc3RyYWludHMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBNRVNTQUdFX0NI
RUNLKG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpOwogCi0gICAgdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCkucmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
c2VyTWVkaWFJRCwgZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCB0
b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgYXVkaW9Db25zdHJhaW50c0RhdGEsIHZp
ZGVvQ29uc3RyYWludHNEYXRhKTsKKyAgICB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKS5yZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVzZXJNZWRpYUlELCBmcmFt
ZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHRvcExldmVsRG9jdW1lbnRP
cmlnaW5JZGVudGlmaWVyLCBhdWRpb0NvbnN0cmFpbnRzLCB2aWRlb0NvbnN0cmFpbnRzKTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsKICAgICBVTlVTRURfUEFSQU0oZnJh
bWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmll
cik7CiAgICAgVU5VU0VEX1BBUkFNKHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKTsK
LSAgICBVTlVTRURfUEFSQU0oYXVkaW9Db25zdHJhaW50c0RhdGEpOwotICAgIFVOVVNFRF9QQVJB
TSh2aWRlb0NvbnN0cmFpbnRzRGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGF1ZGlvQ29uc3RyYWlu
dHMpOworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0NvbnN0cmFpbnRzKTsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzVlNzQxOGUxNTliZGU1
OTJiNDJkMjRlMDgwM2E1NWNhYzgzMWQzYy4uMTg4YWMzNjEyODVkNTIzNzYxODM0YjYwMDJjODlh
MzUwODU4M2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTY0LDcgKzE2NCw3IEBAIGNsYXNzIFZhbGlkYXRpb25CdWJibGU7CiBzdHJ1Y3QgRGljdGlvbmFy
eVBvcHVwSW5mbzsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwogc3RydWN0IEZpbGVDaG9vc2Vy
U2V0dGluZ3M7Ci1zdHJ1Y3QgTWVkaWFDb25zdHJhaW50c0RhdGE7CitzdHJ1Y3QgTWVkaWFDb25z
dHJhaW50czsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1Y3QgVGV4dEFsdGVybmF0
aXZlV2l0aFJhbmdlOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKQEAgLTEzMTMsNyArMTMx
Myw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCk7CiAjZW5kaWYKLSAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmIGF1ZGlv
Q29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiB2aWRlb0Nv
bnN0cmFpbnRzKTsKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50
cywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cyk7CiAg
ICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRp
ZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKTsKIAogICAgIHZv
aWQgcnVuTW9kYWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IGI1M2NlZGJmODY2YTBlZmZkZmIyOWU5MWE3MzdmMDViNzNh
ZTIyNTguLjU1YWZjZDAxOWNhM2I0OWQwMWNlMDZjZWM4ZjliYmY2MDJmNTRkZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjY4LDcgKzI2OCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICAjIE1lZGlhU3RlYW0gbWVzc2FnZXMKLSAgICBSZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBmcmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJp
bmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzRGF0YSBhdWRpb0NvbnN0cmFpbnRzRGF0YSwgc3RydWN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHNEYXRhIHZpZGVvQ29uc3RyYWludHNEYXRhKQorICAgIFJlcXVlc3RVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0
b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMgYXVkaW9Db25zdHJhaW50cywgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMgdmlkZW9Db25zdHJhaW50cykKICAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVu
dGlmaWVyKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAppbmRleCAyZDI2YTQ5Njc5MzhjNTU2OTFiZDQwMDg5MzNjN2FkOTQ1ODRj
ZDg5Li4zZmJjY2E5MTU3NjZhOWYwM2ZiOTkzMDBhNTkzZDFkYTMwNmZlODYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0yOSw3ICsy
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25z
dHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNlbmRVc2VyTWVkaWFSZXF1ZXN0
KFVzZXJNZWRpYVJlcXVlc3QmIHIKIAogICAgIFNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luID0gcmVxdWVzdC50b3BMZXZlbERvY3VtZW50T3JpZ2luKCk7CiAgICAgU3RyaW5n
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcgPSB0b3BMZXZlbERvY3VtZW50T3JpZ2luID8g
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKnRvcExldmVsRG9jdW1lbnRP
cmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpIDogZW1wdHlTdHJpbmcoKTsKLSAgICBtX3BhZ2Uu
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZv
ckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRh
Ojpmcm9tU2VjdXJpdHlPcmlnaW4oKnJlcXVlc3QudXNlck1lZGlhRG9jdW1lbnRPcmlnaW4oKSku
ZGF0YWJhc2VJZGVudGlmaWVyKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcsIHJlcXVl
c3QuYXVkaW9Db25zdHJhaW50cygpLmRhdGEoKSwgcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKCku
ZGF0YSgpKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0SUQsIHdlYkZyYW1lLT5mcmFtZUlE
KCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpyZXF1ZXN0LnVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpLCB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luU3RyaW5nLCByZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMoKSwgcmVxdWVzdC52aWRl
b0NvbnN0cmFpbnRzKCkpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OmNhbmNlbFVzZXJNZWRpYVJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggM2UzNWMyNzU1ZGI5OGUyZjMyZDIxZDQ1NDAxNThm
MjA5Y2Q0NzdhNi4uZTIyNGVhZTJmMGE1YmU4MDI5YTEyY2JiODM2ODkyOTMzNGY0MGRkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25z
dHJhaW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMuaD4KQEAgLTI5OCwxMiArMjk4LDcgQEAgdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c2V0RW5hYmxlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQog
CiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90
IGlkLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKIHsKLSAg
ICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50c0RhdGE7Ci0gICAgY29uc3RyYWludHNE
YXRhLm1hbmRhdG9yeUNvbnN0cmFpbnRzID0gY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWlu
dHMoKTsKLSAgICBjb25zdHJhaW50c0RhdGEuYWR2YW5jZWRDb25zdHJhaW50cyA9IGNvbnN0cmFp
bnRzLmFkdmFuY2VkQ29uc3RyYWludHMoKTsKLSAgICBjb25zdHJhaW50c0RhdGEuaXNWYWxpZCA9
IGNvbnN0cmFpbnRzLmlzVmFsaWQoKTsKLQotICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpBcHBseUNvbnN0cmFpbnRzKGlkLCBjb25zdHJh
aW50c0RhdGEpLCAwKTsKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25zdHJhaW50cyhpZCwgY29uc3RyYWludHMpLCAwKTsK
IH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2Nl
ZWRlZCh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310228</attachid>
            <date>2017-05-15 22:46:34 -0700</date>
            <delta_ts>2017-05-16 01:51:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-172132-20170515224632.patch</filename>
            <type>text/plain</type>
            <size>72488</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2OTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE4MmVhMjAxYmNiNDMy
MTNhOGZlMDQ2MzIxODc5N2I2MzkwZDM5MC4uZjA1NmQ3NTg1MWU4NGE1ZmE2NGNlYjNlYWU5NTcz
YTUwNjU1YWRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE3LTA1LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTWVkaWFDb25z
dHJhaW50c0RhdGEgYW5kIE1lZGlhQ29uc3RyYWludHNJbXBsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2Ugb2YgYmVoYXZp
b3IuCisKKyAgICAgICAgUmVtb3ZpbmcgTWVkaWFDb25zdHJhaW50c0RhdGEgYW5kIE1lZGlhQ29u
c3RyYWludHNJbXBsIGFsbG93cyBzaW1wbGlmeWluZyB0aGUgY29kZS4KKyAgICAgICAgRnVydGhl
ciBzaW1wbGlmaWVkIHRoZSBjb2RlIGJ5IG1ha2luZyBNZWRpYUNvbnN0cmFpbnRzIG5vIGxvbmdl
ciByZWYgY291bnRlZCBhbmQgbm93IGEgc3RydWN0LgorICAgICAgICBTaW1wbGlmaWVkIHNvbWUg
UmVhbHRpbWVNZWRpYVNvdXJjZSBzdWJjbGFzc2VzIGJ5IHJlbW92aW5nIHVudXNlZCBNZWRpYUNv
bnN0cmFpbnRzIGNsYXNzIG1lbWJlcnMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogUmVt
b3ZpbmcgTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNl
czo6Z2V0VXNlck1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWlu
dHNJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVkaWFDb25zdHJhaW50cyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjphcHBseUNvbnN0cmFpbnRzKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKTogRGVsZXRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFS
ZXF1ZXN0OjpVc2VyTWVkaWFSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJl
cXVlc3Q6OmFsbG93KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvQ29uc3Ry
YWludHMpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6dmlkZW9Db25zdHJh
aW50cyk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YWRkRGVmYXVsdFZpZGVvQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50czo6aXNDb25zdHJhaW50U2V0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHM6OnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzOjp+TWVkaWFDb25zdHJhaW50cyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzOjpNZWRpYUNvbnN0cmFpbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cmFpbnRz
VmFsaWRhdGlvbkNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2VsZWN0U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c3VwcG9ydHNDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6
OnN1cHBvcnRlZENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnN1cHBvcnRlZENv
bnN0cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2U6OmNvbnN0cmFpbnRzKTogRGVsZXRlZC4KKwogMjAxNy0wNS0xNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCBk
ZWxldGUgYXN5bmNocm9ub3VzbHkgZGVjb2RlZCBmcmFtZXMgZm9yIGxhcmdlIGltYWdlcyBpZiB0
aGVpciBjbGllbnRzIGFyZSBpbiB0aGUgdmlld3BvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MjA3ZTU0N2Jm
ZTM2ODBlMTcxMTI2NTliOWRjMjZlMzFlNzgzOWIzLi44ZTZiNDMzNDQyM2Y1ZDIwMWUxZWQyZWEz
YTNjMzE0ZDgwZGE5MTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTctMDUtMTUg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBNZWRp
YUNvbnN0cmFpbnRzRGF0YSBhbmQgTWVkaWFDb25zdHJhaW50c0ltcGwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjEzMgorCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBSZW1vdmluZyBNZWRpYUNvbnN0cmFpbnRz
RGF0YSBhbmQgTWVkaWFDb25zdHJhaW50c0ltcGwgYWxsb3dzIHNpbXBsaWZ5aW5nIHRoZSBjb2Rl
LgorICAgICAgICBGdXJ0aGVyIHNpbXBsaWZpZWQgdGhlIGNvZGUgYnkgbWFraW5nIE1lZGlhQ29u
c3RyYWludHMgbm8gbG9uZ2VyIHJlZiBjb3VudGVkIGFuZCBub3cgYSBzdHJ1Y3QuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5
cGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHM+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHM+OjpkZWNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHNEYXRhPjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRzRGF0YT46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6YXBwbHlDb25zdHJhaW50
cyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNlbmRVc2VyTWVk
aWFSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFw
cGx5Q29uc3RyYWludHMpOgorCiAyMDE3LTA1LTE1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IGRlbGV0ZSBhc3luY2hyb25vdXNs
eSBkZWNvZGVkIGZyYW1lcyBmb3IgbGFyZ2UgaW1hZ2VzIGlmIHRoZWlyIGNsaWVudHMgYXJlIGlu
IHRoZSB2aWV3cG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjEwNzc4YWZiMTA5YTQ1MmUw
OTY3OGMzMWVjYjkzZTUxZTVjYWYyLi5hMWI0MmE2OTY4N2Y2MTkyYjg1MDlkNzhjOWM5NzUyODUx
ZTc1ZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTQ0LDcgKzk0NCw2IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5
LmNwcAogCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjay5jcHAKLSAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNw
cAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZlZGJiNzExODczYjk0NTdjNGZkYjAxNzc0
NDJlOGM2Y2U2NWJlNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJ
bXBsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlv
bi4KLSAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMgY29udHJpYnV0b3JzCi0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKLSAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhQ29u
c3RyYWludHNJbXBsLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIGlubGluZSB2
b2lkIGFkZERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFw
JiB2aWRlb0NvbnN0cmFpbnRzLCBib29sIGFkZEZyYW1lUmF0ZUNvbnN0cmFpbnQsIGJvb2wgYWRk
U2l6ZUNvbnN0cmFpbnQsIGJvb2wgYWRkRmFjaW5nTW9kZUNvbnN0cmFpbnQpCi17Ci0gICAgaWYg
KGFkZEZyYW1lUmF0ZUNvbnN0cmFpbnQpIHsKLSAgICAgICAgRG91YmxlQ29uc3RyYWludCBmcmFt
ZVJhdGVDb25zdHJhaW50KHsgfSwgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlKTsKLSAg
ICAgICAgZnJhbWVSYXRlQ29uc3RyYWludC5zZXRJZGVhbCgzMCk7Ci0gICAgICAgIHZpZGVvQ29u
c3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgV1RGTW92ZShmcmFt
ZVJhdGVDb25zdHJhaW50KSk7Ci0gICAgfQotICAgIGlmIChhZGRTaXplQ29uc3RyYWludCkgewot
ICAgICAgICBJbnRDb25zdHJhaW50IHdpZHRoQ29uc3RyYWludCh7IH0sIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OldpZHRoKTsKLSAgICAgICAgd2lkdGhDb25zdHJhaW50LnNldElkZWFsKDY0MCk7Ci0g
ICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCBX
VEZNb3ZlKHdpZHRoQ29uc3RyYWludCkpOwotCi0gICAgICAgIEludENvbnN0cmFpbnQgaGVpZ2h0
Q29uc3RyYWludCh7IH0sIE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCk7Ci0gICAgICAgIGhl
aWdodENvbnN0cmFpbnQuc2V0SWRlYWwoNDgwKTsKLSAgICAgICAgdmlkZW9Db25zdHJhaW50cy5z
ZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0LCBXVEZNb3ZlKGhlaWdodENvbnN0cmFpbnQp
KTsKLSAgICB9Ci0gICAgaWYgKGFkZEZhY2luZ01vZGVDb25zdHJhaW50KSB7Ci0gICAgICAgIFN0
cmluZ0NvbnN0cmFpbnQgZmFjaW5nTW9kZUNvbnN0cmFpbnQoeyB9LCBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpGYWNpbmdNb2RlKTsKLSAgICAgICAgZmFjaW5nTW9kZUNvbnN0cmFpbnQuc2V0SWRlYWwo
QVNDSUlMaXRlcmFsKCJ1c2VyIikpOwotICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldChNZWRp
YUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlLCBXVEZNb3ZlKGZhY2luZ01vZGVDb25zdHJhaW50
KSk7Ci0gICAgfQotfQotCi1ib29sIE1lZGlhQ29uc3RyYWludHNEYXRhOjppc0NvbnN0cmFpbnRT
ZXQoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJik+
JiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKGNhbGxiYWNrKG1hbmRhdG9yeUNvbnN0cmFpbnRzKSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0cmFpbnQg
OiBhZHZhbmNlZENvbnN0cmFpbnRzKSB7Ci0gICAgICAgIGlmIChjYWxsYmFjayhjb25zdHJhaW50
KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KLXZvaWQgTWVkaWFDb25zdHJhaW50c0RhdGE6OnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRz
KCkKLXsKLSAgICAvLyA2NDB4NDgwLCAzMGZwcywgZm9udC1mYWNpbmcgY2FtZXJhCi0gICAgYm9v
bCBoYXNGcmFtZVJhdGVDb25zdHJhaW50cyA9IGlzQ29uc3RyYWludFNldChbXShjb25zdCBNZWRp
YVRyYWNrQ29uc3RyYWludFNldE1hcCYgY29uc3RyYWludCkgewotICAgICAgICByZXR1cm4gISFj
b25zdHJhaW50LmZyYW1lUmF0ZSgpOwotICAgIH0pOwotCi0gICAgYm9vbCBoYXNTaXplQ29uc3Ry
YWludHMgPSBpc0NvbnN0cmFpbnRTZXQoW10oY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXAmIGNvbnN0cmFpbnQpIHsKLSAgICAgICAgcmV0dXJuICEhY29uc3RyYWludC53aWR0aCgpIHx8
ICEhY29uc3RyYWludC5oZWlnaHQoKTsKLSAgICB9KTsKLQotICAgIGJvb2wgaGFzRmFjaW5nTW9k
ZUNvbnN0cmFpbnRzID0gaXNDb25zdHJhaW50U2V0KFtdKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwJiBjb25zdHJhaW50KSB7Ci0gICAgICAgIHJldHVybiAhIWNvbnN0cmFpbnQuZmFj
aW5nTW9kZSgpOwotICAgIH0pOwotCi0gICAgaWYgKGhhc0ZyYW1lUmF0ZUNvbnN0cmFpbnRzICYm
IGhhc1NpemVDb25zdHJhaW50cyAmJiBoYXNGYWNpbmdNb2RlQ29uc3RyYWludHMpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGFkZERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKG1hbmRhdG9yeUNvbnN0
cmFpbnRzLCAhaGFzRnJhbWVSYXRlQ29uc3RyYWludHMsICFoYXNTaXplQ29uc3RyYWludHMsICFo
YXNGYWNpbmdNb2RlQ29uc3RyYWludHMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGYxYWE0Y2JkNzY4NmU0ZTczMTU5MmZmNmI3ZTgwNTEx
Yjk1ZGFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuaAor
KysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICog
My4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBj
b250cmlidXRvcnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJFeGNlcHRpb25CYXNlLmgiCi0jaW5j
bHVkZSAiTWVkaWFDb25zdHJhaW50cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1zdHJ1Y3QgTWVkaWFDb25zdHJhaW50c0RhdGEgewotICAgIE1l
ZGlhQ29uc3RyYWludHNEYXRhKCkgPSBkZWZhdWx0OwotICAgIE1lZGlhQ29uc3RyYWludHNEYXRh
KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiYgbWFuZGF0b3J5Q29uc3RyYWludHMsIFZlY3Rv
cjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4mJiBhZHZhbmNlZENvbnN0cmFpbnRzLCBib29s
IGlzVmFsaWQpCi0gICAgICAgIDogbWFuZGF0b3J5Q29uc3RyYWludHMoV1RGTW92ZShtYW5kYXRv
cnlDb25zdHJhaW50cykpCi0gICAgICAgICwgYWR2YW5jZWRDb25zdHJhaW50cyhXVEZNb3ZlKGFk
dmFuY2VkQ29uc3RyYWludHMpKQotICAgICAgICAsIGlzVmFsaWQoaXNWYWxpZCkKLSAgICB7Ci0g
ICAgfQotICAgIE1lZGlhQ29uc3RyYWludHNEYXRhKGNvbnN0IE1lZGlhQ29uc3RyYWludHNEYXRh
JiBjb25zdHJhaW50cywgY29uc3QgU3RyaW5nJiBoYXNoU2FsdCkKLSAgICAgICAgOiBtYW5kYXRv
cnlDb25zdHJhaW50cyhjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cykKLSAgICAgICAg
LCBhZHZhbmNlZENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMpCi0g
ICAgICAgICwgZGV2aWNlSURIYXNoU2FsdChoYXNoU2FsdCkKLSAgICAgICAgLCBpc1ZhbGlkKGNv
bnN0cmFpbnRzLmlzVmFsaWQpCi0gICAgewotICAgIH0KLSAgICBNZWRpYUNvbnN0cmFpbnRzRGF0
YShjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKLSAgICAgICAgOiBtYW5kYXRv
cnlDb25zdHJhaW50cyhjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cygpKQotICAgICAg
ICAsIGFkdmFuY2VkQ29uc3RyYWludHMoY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cygp
KQotICAgICAgICAsIGRldmljZUlESGFzaFNhbHQoY29uc3RyYWludHMuZGV2aWNlSURIYXNoU2Fs
dCgpKQotICAgICAgICAsIGlzVmFsaWQoY29uc3RyYWludHMuaXNWYWxpZCgpKQotICAgIHsKLSAg
ICB9Ci0KLSAgICB2b2lkIHNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCk7Ci0gICAgYm9vbCBp
c0NvbnN0cmFpbnRTZXQoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwJik+JiYpOwotCi0gICAgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAgbWFuZGF0
b3J5Q29uc3RyYWludHM7Ci0gICAgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiBh
ZHZhbmNlZENvbnN0cmFpbnRzOwotICAgIFN0cmluZyBkZXZpY2VJREhhc2hTYWx0OwotICAgIGJv
b2wgaXNWYWxpZCB7IGZhbHNlIH07Ci19OwotCi1jbGFzcyBNZWRpYUNvbnN0cmFpbnRzSW1wbCBm
aW5hbCA6IHB1YmxpYyBNZWRpYUNvbnN0cmFpbnRzIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PE1lZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGUoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAm
JiBtYW5kYXRvcnlDb25zdHJhaW50cywgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFw
PiYmIGFkdmFuY2VkQ29uc3RyYWludHMsIGJvb2wgaXNWYWxpZCkgeyByZXR1cm4gY3JlYXRlKE1l
ZGlhQ29uc3RyYWludHNEYXRhKFdURk1vdmUobWFuZGF0b3J5Q29uc3RyYWludHMpLCBXVEZNb3Zl
KGFkdmFuY2VkQ29uc3RyYWludHMpLCBpc1ZhbGlkKSk7IH0KLSAgICBzdGF0aWMgUmVmPE1lZGlh
Q29uc3RyYWludHNJbXBsPiBjcmVhdGUoTWVkaWFDb25zdHJhaW50c0RhdGEmJiBkYXRhKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IE1lZGlhQ29uc3RyYWludHNJbXBsKFdURk1vdmUoZGF0YSkpKTsg
fQotCi0gICAgTWVkaWFDb25zdHJhaW50c0ltcGwoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB+
TWVkaWFDb25zdHJhaW50c0ltcGwoKSA9IGRlZmF1bHQ7Ci0KLSAgICBjb25zdCBNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcCYgbWFuZGF0b3J5Q29uc3RyYWludHMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2RhdGEubWFuZGF0b3J5Q29uc3RyYWludHM7IH0KLSAgICBjb25zdCBWZWN0b3I8TWVk
aWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+JiBhZHZhbmNlZENvbnN0cmFpbnRzKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9kYXRhLmFkdmFuY2VkQ29uc3RyYWludHM7IH0KLSAgICBib29sIGlzVmFs
aWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RhdGEuaXNWYWxpZDsgfQotCi0gICAgY29uc3Qg
U3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kYXRhLmRl
dmljZUlESGFzaFNhbHQ7IH0KLSAgICB2b2lkIHNldERldmljZUlESGFzaFNhbHQoY29uc3QgU3Ry
aW5nJiBzYWx0KSBmaW5hbCB7IG1fZGF0YS5kZXZpY2VJREhhc2hTYWx0ID0gc2FsdDsgfQotCi0g
ICAgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGE7IH0KLSAgICB2b2lkIHNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCkgeyBtX2RhdGEuc2V0
RGVmYXVsdFZpZGVvQ29uc3RyYWludHMoKTsgfQotCi1wcml2YXRlOgotICAgIFdFQkNPUkVfRVhQ
T1JUIGV4cGxpY2l0IE1lZGlhQ29uc3RyYWludHNJbXBsKE1lZGlhQ29uc3RyYWludHNEYXRhJiYg
ZGF0YSkgOiBtX2RhdGEoV1RGTW92ZShkYXRhKSkgeyB9Ci0KLSAgICBNZWRpYUNvbnN0cmFpbnRz
RGF0YSBtX2RhdGE7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IGNmZGE3MjE4ZmUxYTI5MGQzMTJlZDFhZGNh
Zjg2NDI2ZmI4OWIxMzEuLjQxZTU5NWQ2MjFmOWM0ZTk2MDk5YTA2MTBjNDZlZDYxZmJkODdkZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIk1lZGlhQ29u
c3RyYWludHNJbXBsLmgiCiAjaW5jbHVkZSAiTWVkaWFEZXZpY2VzUmVxdWVzdC5oIgogI2luY2x1
ZGUgIk1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YVJlcXVlc3QuaCIKQEAgLTc4LDE0ICs3NywxNiBAQCBEb2N1bWVudCogTWVkaWFEZXZpY2VzOjpk
b2N1bWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwogfQogCi1zdGF0aWMgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiBj
cmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdCBWYXJpYW50PGJvb2wsIE1lZGlhVHJhY2tD
b25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQorc3RhdGljIE1lZGlhQ29uc3RyYWludHMgY3JlYXRl
TWVkaWFDb25zdHJhaW50cyhjb25zdCBWYXJpYW50PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50
cz4mIGNvbnN0cmFpbnRzKQogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGNvbnN0cmFpbnRz
LAotICAgICAgICBbJl0gKGJvb2wgY29uc3RyYWludHMpIHsKLSAgICAgICAgICAgIHJldHVybiBN
ZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKHsgfSwgeyB9LCBjb25zdHJhaW50cyk7CisgICAg
ICAgIFsmXSAoYm9vbCBpc1ZhbGlkKSB7CisgICAgICAgICAgICBNZWRpYUNvbnN0cmFpbnRzIGNv
bnN0cmFpbnRzOworICAgICAgICAgICAgY29uc3RyYWludHMuaXNWYWxpZCA9IGlzVmFsaWQ7Cisg
ICAgICAgICAgICByZXR1cm4gY29uc3RyYWludHM7CiAgICAgICAgIH0sCi0gICAgICAgIFsmXSAo
Y29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJiBjb25zdHJhaW50cykgewotICAgICAgICAgICAg
cmV0dXJuIGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzKTsKKyAgICAgICAg
WyZdIChjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludHMmIHRyYWNrQ29uc3RyYWludHMpIHsKKyAg
ICAgICAgICAgIHJldHVybiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKHRyYWNrQ29uc3RyYWludHMp
OwogICAgICAgICB9CiAgICAgKTsKIH0KQEAgLTk2LDEwICs5NywxMCBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYg
Y29uc3RyYWludAogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJTlZBTElEX1NUQVRFX0VSUiB9OwogCi0gICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gY3Jl
YXRlTWVkaWFDb25zdHJhaW50c0ltcGwoY29uc3RyYWludHMuYXVkaW8pOwotICAgIGF1dG8gdmlk
ZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzLnZp
ZGVvKTsKLSAgICBpZiAodmlkZW9Db25zdHJhaW50cy0+aXNWYWxpZCgpKQotICAgICAgICB2aWRl
b0NvbnN0cmFpbnRzLT5zZXREZWZhdWx0VmlkZW9Db25zdHJhaW50cygpOworICAgIGF1dG8gYXVk
aW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMuYXVkaW8p
OworICAgIGF1dG8gdmlkZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29u
c3RyYWludHMudmlkZW8pOworICAgIGlmICh2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQpCisgICAg
ICAgIHZpZGVvQ29uc3RyYWludHMuc2V0RGVmYXVsdFZpZGVvQ29uc3RyYWludHMoKTsKICAgICBy
ZXR1cm4gVXNlck1lZGlhUmVxdWVzdDo6c3RhcnQoKmRvY3VtZW50LCBXVEZNb3ZlKGF1ZGlvQ29u
c3RyYWludHMpLCBXVEZNb3ZlKHZpZGVvQ29uc3RyYWludHMpLCBXVEZNb3ZlKHByb21pc2UpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMTc3ZWY3MmVhODZiMjVkNDFkYTAzM2U2Zjg5YWZhNWUy
ZmJjZDdlMy4uMGM1OTJhMzViZTU4NWY1MjY5MmRmOWMxZTRiYjk2NTY1ZjdjYTJhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSlNPdmVyY29uc3RyYWluZWRFcnJvci5oIgotI2lu
Y2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCisjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50
cy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2
YXRlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKQEAgLTI0NiwxMSArMjQ2LDE0IEBA
IE1lZGlhU3RyZWFtVHJhY2s6OlRyYWNrQ2FwYWJpbGl0aWVzIE1lZGlhU3RyZWFtVHJhY2s6Omdl
dENhcGFiaWxpdGllcygpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFJl
ZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gY3JlYXRlTWVkaWFDb25zdHJhaW50c0ltcGwoY29uc3Qg
c3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29uc3RyYWludHM+JiBjb25zdHJhaW50cykKK3N0YXRp
YyBNZWRpYUNvbnN0cmFpbnRzIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRp
b25hbDxNZWRpYVRyYWNrQ29uc3RyYWludHM+JiBjb25zdHJhaW50cykKIHsKLSAgICBpZiAoIWNv
bnN0cmFpbnRzKQotICAgICAgICByZXR1cm4gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZSh7
IH0sIHsgfSwgdHJ1ZSk7Ci0gICAgcmV0dXJuIGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNv
bnN0cmFpbnRzLnZhbHVlKCkpOworICAgIGlmICghY29uc3RyYWludHMpIHsKKyAgICAgICAgTWVk
aWFDb25zdHJhaW50cyB2YWxpZENvbnN0cmFpbnRzOworICAgICAgICB2YWxpZENvbnN0cmFpbnRz
LmlzVmFsaWQgPSB0cnVlOworICAgICAgICByZXR1cm4gdmFsaWRDb25zdHJhaW50czsKKyAgICB9
CisgICAgcmV0dXJuIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmFsdWUoKSk7
CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBzdGQ6
Om9wdGlvbmFsPE1lZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQpAQCAtMjY5LDcgKzI3Miw3IEBAIHZvaWQgTWVkaWFT
dHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBzdGQ6Om9wdGlvbmFsPE1lZGlhVHJh
Y2tDb25zdHJhaW50CiAgICAgICAgIHdlYWtUaGlzLT5tX3Byb21pc2UtPnJlc29sdmUoKTsKICAg
ICAgICAgd2Vha1RoaXMtPm1fY29uc3RyYWludHMgPSBjb25zdHJhaW50cy52YWx1ZV9vcihNZWRp
YVRyYWNrQ29uc3RyYWludHMgeyB9KTsKICAgICB9OwotICAgIG1fcHJpdmF0ZS0+YXBwbHlDb25z
dHJhaW50cyhjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdHJhaW50cyksIFdURk1vdmUo
c3VjY2Vzc0hhbmRsZXIpLCBXVEZNb3ZlKGZhaWx1cmVIYW5kbGVyKSk7CisgICAgbV9wcml2YXRl
LT5hcHBseUNvbnN0cmFpbnRzKGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMpLCBX
VEZNb3ZlKHN1Y2Nlc3NIYW5kbGVyKSwgV1RGTW92ZShmYWlsdXJlSGFuZGxlcikpOwogfQogCiB2
b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0Nv
bnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFU
cmFja0NvbnN0cmFpbnRzLmNwcAppbmRleCBjNGM0Y2YxMjI2MGFlMjJlYTQ2YmQxYmEyNjI3N2Nl
NTk3M2QxMzkyLi5jNGEzZmNhYjJmMWMzYmExZTBiOWYzMzY4YzliYzE2NTBiYzIwMzE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25z
dHJhaW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVRyYWNrQ29uc3RyYWludHMuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKKyNpbmNsdWRl
ICJNZWRpYUNvbnN0cmFpbnRzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTkwLDkg
KzE5MCwxMyBAQCBzdGF0aWMgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiBjb252
ZXJ0QWR2YW5jZWRUb0ludGVybmFsRm9ybShjb25zdCBzdAogICAgIHJldHVybiBjb252ZXJ0QWR2
YW5jZWRUb0ludGVybmFsRm9ybShvcHRpb25hbFZlY3Rvci52YWx1ZSgpKTsKIH0KIAotUmVmPE1l
ZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdCBNZWRp
YVRyYWNrQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQorTWVkaWFDb25zdHJhaW50cyBjcmVhdGVN
ZWRpYUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyYgdHJhY2tDb25zdHJh
aW50cykKIHsKLSAgICByZXR1cm4gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShjb252ZXJ0
VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNldFR5cGU6Ok1hbmRhdG9yeSwgY29uc3RyYWludHMp
LCBjb252ZXJ0QWR2YW5jZWRUb0ludGVybmFsRm9ybShjb25zdHJhaW50cy5hZHZhbmNlZCksIHRy
dWUpOworICAgIE1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHM7CisgICAgY29uc3RyYWludHMu
bWFuZGF0b3J5Q29uc3RyYWludHMgPSBjb252ZXJ0VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNl
dFR5cGU6Ok1hbmRhdG9yeSwgdHJhY2tDb25zdHJhaW50cyk7CisgICAgY29uc3RyYWludHMuYWR2
YW5jZWRDb25zdHJhaW50cyA9IGNvbnZlcnRBZHZhbmNlZFRvSW50ZXJuYWxGb3JtKHRyYWNrQ29u
c3RyYWludHMuYWR2YW5jZWQpOworICAgIGNvbnN0cmFpbnRzLmlzVmFsaWQgPSB0cnVlOworICAg
IHJldHVybiBjb25zdHJhaW50czsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKaW5kZXggM2Jj
Y2RhZWEwMTA2MDVhYTQ5OWE2YzlhYzFiYzNlOWEwOTI0MWUwZi4uMDM5NTQ3NjFhZDgwYjlhOThk
YmZhOGFmNGFmYjlkZDE4MjY0ODM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oCkBAIC0zNCw3ICsz
NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFDb25zdHJhaW50c0lt
cGw7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKIAogc3RydWN0IENvbnN0cmFpbkJvb2xlYW5Q
YXJhbWV0ZXJzIHsKICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGV4YWN0OwpAQCAtNzksNyArNzks
NyBAQCBzdHJ1Y3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzIDogTWVkaWFUcmFja0NvbnN0cmFpbnRT
ZXQgewogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0Pj4g
YWR2YW5jZWQ7CiB9OwogCi1SZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+IGNyZWF0ZU1lZGlhQ29u
c3RyYWludHNJbXBsKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyYpOworTWVkaWFDb25zdHJh
aW50cyBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyYp
OwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGEwODZlZjM1ZDk4ZjUyODUxN2U3NTFmZGIwODRl
ZDc0YzdhODJiMjEuLmU4OWY4ZjcwYmE3ZDJiNDVjZjdlYjFiMDRhNjViY2ZjZDcxYWFlNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcApAQCAtNDIsMjAgKzQyLDIwIEBACiAjaW5jbHVkZSAiSlNNZWRpYVN0cmVh
bS5oIgogI2luY2x1ZGUgIkpTT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCIKICNpbmNsdWRlICJNYWlu
RnJhbWUuaCIKLSNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgorI2luY2x1ZGUgIk1l
ZGlhQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8dm9pZD4gVXNlck1lZGlhUmVx
dWVzdDo6c3RhcnQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+
JiYgYXVkaW9Db25zdHJhaW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29u
c3RyYWludHMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PiYm
IHByb21pc2UpCitFeGNlcHRpb25Pcjx2b2lkPiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydChEb2N1
bWVudCYgZG9jdW1lbnQsIE1lZGlhQ29uc3RyYWludHMmJiBhdWRpb0NvbnN0cmFpbnRzLCBNZWRp
YUNvbnN0cmFpbnRzJiYgdmlkZW9Db25zdHJhaW50cywgRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYgcHJvbWlzZSkKIHsKICAgICBhdXRvKiB1c2VyTWVkaWEg
PSBVc2VyTWVkaWFDb250cm9sbGVyOjpmcm9tKGRvY3VtZW50LnBhZ2UoKSk7CiAgICAgaWYgKCF1
c2VyTWVkaWEpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOT1RfU1VQUE9SVEVEX0VSUiB9
OyAvLyBGSVhNRTogV2h5IGlzIGl0IGJldHRlciB0byByZXR1cm4gYW4gZXhjZXB0aW9uIGhlcmUg
aW5zdGVhZCBvZiByZWplY3RpbmcgdGhlIHByb21pc2UgYXMgd2UgZG8ganVzdCBiZWxvdz8KIAot
ICAgIGlmICghYXVkaW9Db25zdHJhaW50cy0+aXNWYWxpZCgpICYmICF2aWRlb0NvbnN0cmFpbnRz
LT5pc1ZhbGlkKCkpIHsKKyAgICBpZiAoIWF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiAhdmlk
ZW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KFR5cGVFcnJv
cik7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQpAQCAtNjQsNyArNjQsNyBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydChEb2N1bWVudCYgZG9jdW1lbnQsIFJl
ZjxNZWRpYUNvbnN0cmFpbgogICAgIHJldHVybiB7IH07CiB9CiAKLVVzZXJNZWRpYVJlcXVlc3Q6
OlVzZXJNZWRpYVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBVc2VyTWVkaWFDb250cm9sbGVy
JiBjb250cm9sbGVyLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJhaW50
cywgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIERPTVByb21p
c2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PiYmIHByb21pc2UpCitVc2VyTWVk
aWFSZXF1ZXN0OjpVc2VyTWVkaWFSZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgVXNlck1lZGlh
Q29udHJvbGxlciYgY29udHJvbGxlciwgTWVkaWFDb25zdHJhaW50cyYmIGF1ZGlvQ29uc3RyYWlu
dHMsIE1lZGlhQ29uc3RyYWludHMmJiB2aWRlb0NvbnN0cmFpbnRzLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMSW50ZXJmYWNlPE1lZGlhU3RyZWFtPj4mJiBwcm9taXNlKQogICAgIDogQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgbV9hdWRpb0NvbnN0cmFpbnRzKFdU
Rk1vdmUoYXVkaW9Db25zdHJhaW50cykpCiAgICAgLCBtX3ZpZGVvQ29uc3RyYWludHMoV1RGTW92
ZSh2aWRlb0NvbnN0cmFpbnRzKSkKQEAgLTE4MCwxMCArMTgwLDEwIEBAIHZvaWQgVXNlck1lZGlh
UmVxdWVzdDo6YWxsb3coU3RyaW5nJiYgYXVkaW9EZXZpY2VVSUQsIFN0cmluZyYmIHZpZGVvRGV2
aWNlVUlELCBTCiAgICAgICAgIG1fcHJvbWlzZS5yZXNvbHZlKHN0cmVhbSk7CiAgICAgfTsKIAot
ICAgIG1fYXVkaW9Db25zdHJhaW50cy0+c2V0RGV2aWNlSURIYXNoU2FsdChTdHJpbmcoZGV2aWNl
SWRlbnRpZmllckhhc2hTYWx0KSk7Ci0gICAgbV92aWRlb0NvbnN0cmFpbnRzLT5zZXREZXZpY2VJ
REhhc2hTYWx0KFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CisgICAgbV9hdWRp
b0NvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7
CisgICAgbV92aWRlb0NvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQgPSBXVEZNb3ZlKGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShXVEZNb3ZlKGNhbGxiYWNrKSwgbV9hbGxvd2Vk
QXVkaW9EZXZpY2VVSUQsIG1fYWxsb3dlZFZpZGVvRGV2aWNlVUlELCAmbV9hdWRpb0NvbnN0cmFp
bnRzLmdldCgpLCAmbV92aWRlb0NvbnN0cmFpbnRzLmdldCgpKTsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShXVEZNb3ZlKGNhbGxi
YWNrKSwgbV9hbGxvd2VkQXVkaW9EZXZpY2VVSUQsIG1fYWxsb3dlZFZpZGVvRGV2aWNlVUlELCAm
bV9hdWRpb0NvbnN0cmFpbnRzLCAmbV92aWRlb0NvbnN0cmFpbnRzKTsKIH0KIAogdm9pZCBVc2Vy
TWVkaWFSZXF1ZXN0OjpkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHJlYXNvbiwgY29uc3Qg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggNTM5M2JmZDdlOGEyZjUw
M2EzNjU4ODE1MGI5YzRmZTg2OWUyYjhkOS4uYjFhYzViMjFkMWNiMTRiMjg2OWFlOTk5MjRlMzk1
MDBjMTY1Yzg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTM2LDE3ICszNiwxNyBAQAogCiAjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNp
bmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgTWVkaWFDb25zdHJhaW50c0ltcGw7CiBjbGFzcyBNZWRpYVN0cmVhbTsKIGNsYXNzIFNlY3Vy
aXR5T3JpZ2luOwogY2xhc3MgVXNlck1lZGlhQ29udHJvbGxlcjsKIAogY2xhc3MgVXNlck1lZGlh
UmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFVzZXJNZWRpYVJlcXVlc3Q+LCBwcml2YXRlIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhjZXB0aW9u
T3I8dm9pZD4gc3RhcnQoRG9jdW1lbnQmLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgYXVk
aW9Db25zdHJhaW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29uc3RyYWlu
dHMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PiYmKTsKKyAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnQoRG9jdW1lbnQmLCBNZWRpYUNvbnN0cmFp
bnRzJiYgYXVkaW9Db25zdHJhaW50cywgTWVkaWFDb25zdHJhaW50cyYmIHZpZGVvQ29uc3RyYWlu
dHMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PiYmKTsKIAog
ICAgIHZpcnR1YWwgflVzZXJNZWRpYVJlcXVlc3QoKTsKIApAQCAtNjEsOCArNjEsOCBAQCBwdWJs
aWM6CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsg
cmV0dXJuIG1fYXVkaW9EZXZpY2VVSURzOyB9CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHZp
ZGVvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9EZXZpY2VVSURzOyB9CiAKLSAg
ICBjb25zdCBNZWRpYUNvbnN0cmFpbnRzSW1wbCYgYXVkaW9Db25zdHJhaW50cygpIGNvbnN0IHsg
cmV0dXJuIG1fYXVkaW9Db25zdHJhaW50czsgfQotICAgIGNvbnN0IE1lZGlhQ29uc3RyYWludHNJ
bXBsJiB2aWRlb0NvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0NvbnN0cmFpbnRz
OyB9CisgICAgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cygpIGNvbnN0
IHsgcmV0dXJuIG1fYXVkaW9Db25zdHJhaW50czsgfQorICAgIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMmIHZpZGVvQ29uc3RyYWludHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvQ29uc3RyYWludHM7
IH0KIAogICAgIGNvbnN0IFN0cmluZyYgYWxsb3dlZEF1ZGlvRGV2aWNlVUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9hbGxvd2VkQXVkaW9EZXZpY2VVSUQ7IH0KICAgICBjb25zdCBTdHJpbmcmIGFsbG93
ZWRWaWRlb0RldmljZVVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZFZpZGVvRGV2aWNlVUlE
OyB9CkBAIC03MiwxMiArNzIsMTIgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIERvY3Vt
ZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVJlcXVlc3Qo
RG9jdW1lbnQmLCBVc2VyTWVkaWFDb250cm9sbGVyJiwgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBs
PiYmIGF1ZGlvQ29uc3RyYWludHMsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiB2aWRlb0Nv
bnN0cmFpbnRzLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPE1lZGlhU3RyZWFtPj4m
Jik7CisgICAgVXNlck1lZGlhUmVxdWVzdChEb2N1bWVudCYsIFVzZXJNZWRpYUNvbnRyb2xsZXIm
LCBNZWRpYUNvbnN0cmFpbnRzJiYgYXVkaW9Db25zdHJhaW50cywgTWVkaWFDb25zdHJhaW50cyYm
IHZpZGVvQ29uc3RyYWludHMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8TWVkaWFT
dHJlYW0+PiYmKTsKIAogICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIGZpbmFsOwogICAgIAot
ICAgIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gbV9hdWRpb0NvbnN0cmFpbnRzOwotICAgIFJl
ZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gbV92aWRlb0NvbnN0cmFpbnRzOworICAgIE1lZGlhQ29u
c3RyYWludHMgbV9hdWRpb0NvbnN0cmFpbnRzOworICAgIE1lZGlhQ29uc3RyYWludHMgbV92aWRl
b0NvbnN0cmFpbnRzOwogCiAgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTE3OGJjYjE5MWMyM2Fj
OTY0Njg4Y2JiMjQyMjczOWU4N2M2N2U2YS4uMWQwZTliODRiYjM4ZjRhYTdmZTc0YjFhNWMwMTcz
OGY0ZjcwODE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTc5LDcgKzE3OSw2IEBACiAJCTA3ODQ2Mzg1MTQ1QjFCOEUwMEE1
OERGMSAvKiBKU1RyYWNrQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzg0NjM4NDE0NUIxQjhFMDBBNThERjEgLyogSlNUcmFja0N1c3RvbS5o
ICovOyB9OwogCQkwNzg3QzQ2OTFCRkJERjZGMDA2RENEN0YgLyogSlNNZWRpYVRyYWNrU3VwcG9y
dGVkQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDc4N0M0NjcxQkZCREY2RjAwNkRDRDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRl
ZENvbnN0cmFpbnRzLmNwcCAqLzsgfTsKIAkJMDc4N0M0NkExQkZCREY2RjAwNkRDRDdGIC8qIEpT
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzg3QzQ2ODFCRkJERjZGMDA2RENEN0YgLyogSlNNZWRp
YVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCAqLzsgfTsKLQkJMDc4RTA4RkUxN0QxNENFRTAw
NDIwQUExIC8qIE1lZGlhQ29uc3RyYWludHNJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjRBMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRp
YUNvbnN0cmFpbnRzSW1wbC5jcHAgKi87IH07CiAJCTA3OEUwOEZGMTdEMTRDRUUwMDQyMEFBMSAv
KiBNZWRpYVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzIyMUI0QzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW0uY3BwICovOyB9
OwogCQkwNzhFMDkwMDE3RDE0Q0VFMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1FdmVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUI0RjE3Q0VD
MzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1FdmVudC5jcHAgKi87IH07CiAJCTA3OEUwOTAxMTdE
MTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjUyMTdDRUMzMjcwMDg0OEU1MSAv
KiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCAqLzsgfTsKQEAgLTE5NSw3ICsxOTQsNiBAQAogCQkw
NzhFMDkwQzE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjdBMTdDRUMz
MjcwMDg0OEU1MSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwICovOyB9OwogCQkwNzhFMDkx
MjE3RDE0Q0VFMDA0MjBBQTEgLyogVXNlck1lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUI4RTE3Q0VDMzI3MDA4NDhF
NTEgLyogVXNlck1lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CiAJCTA3OEUwOTEzMTdEMTRDRUUw
MDQyMEFBMSAvKiBVc2VyTWVkaWFSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjkwMTdDRUMzMjcwMDg0OEU1MSAvKiBVc2VyTWVk
aWFSZXF1ZXN0LmNwcCAqLzsgfTsKLQkJMDc4RTA5MTQxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlh
Q29uc3RyYWludHNJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzIyMUI0QjE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFDb25zdHJhaW50c0ltcGwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzhF
MDkxNTE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjREMTdDRUMzMjcwMDg0OEU1MSAvKiBN
ZWRpYVN0cmVhbS5oICovOyB9OwogCQkwNzhFMDkxNjE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFT
dHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDcyMjFCNTAxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtRXZlbnQuaCAqLzsgfTsK
IAkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjUzMTdDRUMz
MjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc0MzcsOCArNzQzNSw2IEBACiAJCTA3MUU0
OTZGMUFENUFCNUUwMDhBNTBCNCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TWFjLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJnZXRNYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMEIwOUUxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVy
aWNFdmVudFF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdl
bmVyaWNFdmVudFF1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMEIw
OUYxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyaWNFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTA3MjIxQjRBMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYUNvbnN0cmFpbnRz
SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUNvbnN0
cmFpbnRzSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjIxQjRCMTdD
RUMzMjcwMDg0OEU1MSAvKiBNZWRpYUNvbnN0cmFpbnRzSW1wbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYUNvbnN0cmFpbnRzSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzIyMUI0QzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW0uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUI0RDE3Q0VDMzI3MDA4NDhFNTEgLyog
TWVkaWFTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJl
YW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMjFCNEUxN0NFQzMyNzAwODQ4
RTUxIC8qIE1lZGlhU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVN0cmVh
bS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTk1OSw4ICsxNTk1NSw2IEBA
CiAJCQkJOTNBODA2MTIxRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmlkbCAqLywKIAkJ
CQk5M0E4MDYxMzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggKi8sCiAJCQkJOTNBODA2
MTQxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5pZGwgKi8sCi0JCQkJMDcyMjFCNEExN0NF
QzMyNzAwODQ4RTUxIC8qIE1lZGlhQ29uc3RyYWludHNJbXBsLmNwcCAqLywKLQkJCQkwNzIyMUI0
QjE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFDb25zdHJhaW50c0ltcGwuaCAqLywKIAkJCQkxNTlB
RTgyQTFCM0E0MDJGMDAzNzQ3OEIgLyogTWVkaWFEZXZpY2VJbmZvLmNwcCAqLywKIAkJCQkxNTE0
NUI4RjFCM0ExQjNFMDA2NjJCRjcgLyogTWVkaWFEZXZpY2VJbmZvLmggKi8sCiAJCQkJMTUxNDVC
OTExQjNBMUQ0QzAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5pZGwgKi8sCkBAIC0yODQwMiw3
ICsyODM5Niw2IEBACiAJCQkJNUNCQzhEQUQxQUFBMzAyMjAwRTFDODAzIC8qIE1lZGlhQWNjZXNz
aWJpbGl0eVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFCQ0M2MTExMjRERkNCMDBC
RTcwREQgLyogTWVkaWFDYW5TdGFydExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhF
MDkzQTE3RDE2RTFDMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMDc4RTA5MTQxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlhQ29uc3RyYWludHNJbXBsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTcyNTNBQjEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250
cm9sRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCURFQkNDREQ0MTY2NDZFQUYwMEE0NTJF
MSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjY1
Q0M4MTQ1QjFFNzUwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtMzI0MTUsNyArMzI0MDgsNiBAQAogCQkJCTQ5RTkxMUM2MEVGODZENDcwMDlEMENBRiAvKiBN
YXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNCQzhEQUMx
QUFBMzAyMjAwRTFDODAzIC8qIE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFCRTVCRkMyMUQ1MTU3MTUwMDE2NjZEOSAvKiBNZWRpYUNvbnN0cmFpbnRz
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTA3OEUwOEZFMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRp
YUNvbnN0cmFpbnRzSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTcyNTNBQTEzNTRCQkJD
MDAzNjBGMkEgLyogTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
REVCQ0NERDUxNjY0NkVCMjAwQTQ1MkUxIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDRDI3RjZFNzE0NTc3MEQzMDA3ODIwN0QgLyogTWVkaWFDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmNwcAppbmRleCAxZTdmN2Y3YmZh
NzUzYWU0NzI3OWRkZTQ2YWM2MDg0NjY0MjIyNmQxLi5lYmU2MDM1ZTEzYWU2MTg2ODc0MmJiOGMz
ZTFmNjU2MmI0MDVjM2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmNwcApAQCAtMzQwLDYgKzM0MCw2MiBAQCBi
b29sIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwOjppc0VtcHR5KCkgY29uc3QKICAgICByZXR1
cm4gIXNpemUoKTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIGFkZERlZmF1bHRWaWRlb0NvbnN0
cmFpbnRzKE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiB2aWRlb0NvbnN0cmFpbnRzLCBib29s
IGFkZEZyYW1lUmF0ZUNvbnN0cmFpbnQsIGJvb2wgYWRkU2l6ZUNvbnN0cmFpbnQsIGJvb2wgYWRk
RmFjaW5nTW9kZUNvbnN0cmFpbnQpCit7CisgICAgaWYgKGFkZEZyYW1lUmF0ZUNvbnN0cmFpbnQp
IHsKKyAgICAgICAgRG91YmxlQ29uc3RyYWludCBmcmFtZVJhdGVDb25zdHJhaW50KHsgfSwgTWVk
aWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlKTsKKyAgICAgICAgZnJhbWVSYXRlQ29uc3RyYWlu
dC5zZXRJZGVhbCgzMCk7CisgICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3Ry
YWludFR5cGU6OkZyYW1lUmF0ZSwgV1RGTW92ZShmcmFtZVJhdGVDb25zdHJhaW50KSk7CisgICAg
fQorICAgIGlmIChhZGRTaXplQ29uc3RyYWludCkgeworICAgICAgICBJbnRDb25zdHJhaW50IHdp
ZHRoQ29uc3RyYWludCh7IH0sIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoKTsKKyAgICAgICAg
d2lkdGhDb25zdHJhaW50LnNldElkZWFsKDY0MCk7CisgICAgICAgIHZpZGVvQ29uc3RyYWludHMu
c2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCBXVEZNb3ZlKHdpZHRoQ29uc3RyYWludCkp
OworICAgICAgICAKKyAgICAgICAgSW50Q29uc3RyYWludCBoZWlnaHRDb25zdHJhaW50KHsgfSwg
TWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0KTsKKyAgICAgICAgaGVpZ2h0Q29uc3RyYWludC5z
ZXRJZGVhbCg0ODApOworICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFp
bnRUeXBlOjpIZWlnaHQsIFdURk1vdmUoaGVpZ2h0Q29uc3RyYWludCkpOworICAgIH0KKyAgICBp
ZiAoYWRkRmFjaW5nTW9kZUNvbnN0cmFpbnQpIHsKKyAgICAgICAgU3RyaW5nQ29uc3RyYWludCBm
YWNpbmdNb2RlQ29uc3RyYWludCh7IH0sIE1lZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGUp
OworICAgICAgICBmYWNpbmdNb2RlQ29uc3RyYWludC5zZXRJZGVhbChBU0NJSUxpdGVyYWwoInVz
ZXIiKSk7CisgICAgICAgIHZpZGVvQ29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6
OkZhY2luZ01vZGUsIFdURk1vdmUoZmFjaW5nTW9kZUNvbnN0cmFpbnQpKTsKKyAgICB9Cit9CisK
K2Jvb2wgTWVkaWFDb25zdHJhaW50czo6aXNDb25zdHJhaW50U2V0KHN0ZDo6ZnVuY3Rpb248Ym9v
bChjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYpPiYmIGNhbGxiYWNrKQoreworICAg
IGlmIChjYWxsYmFjayhtYW5kYXRvcnlDb25zdHJhaW50cykpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIAorICAgIGZvciAoY29uc3QgYXV0byYgY29uc3RyYWludCA6IGFkdmFuY2VkQ29uc3Ry
YWludHMpIHsKKyAgICAgICAgaWYgKGNhbGxiYWNrKGNvbnN0cmFpbnQpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBNZWRpYUNv
bnN0cmFpbnRzOjpzZXREZWZhdWx0VmlkZW9Db25zdHJhaW50cygpCit7CisgICAgLy8gNjQweDQ4
MCwgMzBmcHMsIGZvbnQtZmFjaW5nIGNhbWVyYQorICAgIGJvb2wgaGFzRnJhbWVSYXRlQ29uc3Ry
YWludHMgPSBpc0NvbnN0cmFpbnRTZXQoW10oY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXAmIGNvbnN0cmFpbnQpIHsKKyAgICAgICAgcmV0dXJuICEhY29uc3RyYWludC5mcmFtZVJhdGUo
KTsKKyAgICB9KTsKKyAgICAKKyAgICBib29sIGhhc1NpemVDb25zdHJhaW50cyA9IGlzQ29uc3Ry
YWludFNldChbXShjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgY29uc3RyYWludCkg
eworICAgICAgICByZXR1cm4gISFjb25zdHJhaW50LndpZHRoKCkgfHwgISFjb25zdHJhaW50Lmhl
aWdodCgpOworICAgIH0pOworICAgIAorICAgIGJvb2wgaGFzRmFjaW5nTW9kZUNvbnN0cmFpbnRz
ID0gaXNDb25zdHJhaW50U2V0KFtdKGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBj
b25zdHJhaW50KSB7CisgICAgICAgIHJldHVybiAhIWNvbnN0cmFpbnQuZmFjaW5nTW9kZSgpOwor
ICAgIH0pOworICAgIAorICAgIGlmIChoYXNGcmFtZVJhdGVDb25zdHJhaW50cyAmJiBoYXNTaXpl
Q29uc3RyYWludHMgJiYgaGFzRmFjaW5nTW9kZUNvbnN0cmFpbnRzKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgYWRkRGVmYXVsdFZpZGVvQ29uc3RyYWludHMobWFuZGF0b3J5Q29uc3RyYWlu
dHMsICFoYXNGcmFtZVJhdGVDb25zdHJhaW50cywgIWhhc1NpemVDb25zdHJhaW50cywgIWhhc0Zh
Y2luZ01vZGVDb25zdHJhaW50cyk7Cit9CisgICAgCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFDb25zdHJhaW50cy5oCmluZGV4IDY2MzZhYzAwZjI4N2M5MjczMGUzNWY1MTM2YzY4
MzgyYjU1ZTQyMjUuLjNjNDg2NGQ0NTFmMjMyMGJlY2EyNzg3Y2YyMThkNTNhMjUxYzMwMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3Ry
YWludHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNv
bnN0cmFpbnRzLmgKQEAgLTM1LDkgKzM1LDEwIEBACiAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCIKICNpbmNsdWRlIDxjc3RkbGliPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotCisgICAgCiBjbGFzcyBN
ZWRpYUNvbnN0cmFpbnQgewogcHVibGljOgogICAgIGVudW0gY2xhc3MgRGF0YVR5cGUgeyBOb25l
LCBJbnRlZ2VyLCBEb3VibGUsIEJvb2xlYW4sIFN0cmluZyB9OwpAQCAtODAzLDIxICs4MDQsMTYg
QEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotY2xhc3MgTWVkaWFDb25zdHJhaW50cyA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1lZGlhQ29uc3RyYWludHM+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5N
ZWRpYUNvbnN0cmFpbnRzKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwJiBtYW5kYXRvcnlDb25zdHJhaW50cygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIGNvbnN0IFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4mIGFkdmFuY2VkQ29u
c3RyYWludHMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCA9
IDA7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50cyB7CisgICAgdm9pZCBzZXREZWZhdWx0VmlkZW9D
b25zdHJhaW50cygpOworICAgIGJvb2wgaXNDb25zdHJhaW50U2V0KHN0ZDo6ZnVuY3Rpb248Ym9v
bChjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYpPiYmKTsKIAotICAgIHZpcnR1YWwg
Y29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBzZXREZXZpY2VJREhhc2hTYWx0KGNvbnN0IFN0cmluZyYpID0gMDsKLQotcHJvdGVjdGVk
OgotICAgIE1lZGlhQ29uc3RyYWludHMoKSB7IH0KKyAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNl
dE1hcCBtYW5kYXRvcnlDb25zdHJhaW50czsKKyAgICBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFp
bnRTZXRNYXA+IGFkdmFuY2VkQ29uc3RyYWludHM7CisgICAgU3RyaW5nIGRldmljZUlESGFzaFNh
bHQ7CisgICAgYm9vbCBpc1ZhbGlkIHsgZmFsc2UgfTsKIH07Ci0KKyAgICAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX01FRElBQ09OU1RS
QUlOVChDb25zdHJhaW50VHlwZSwgcHJlZGljYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlv
bkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnQuaAppbmRleCA5NzNjOWVlZTFjNTg0NzVjZjU1
NTBlY2Q4OThjODhiZGYxYjIwZDMyLi40OTk0NGE4NTVjYjMwNmE0ZjhkYmQyMjVjN2EzODVhZDNl
NTMzZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9u
Q2xpZW50LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRl
ZiBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudF9oCi0jZGVmaW5lIE1lZGlh
U3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50X2gKKyNwcmFnbWEgb25jZQogCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIApAQCAtMzMsOCArMzIsNiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIE1lZGlhQ29uc3RyYWludHM7Ci0KIGNsYXNzIE1lZGlhU3RyZWFtQ29u
c3RyYWludHNWYWxpZGF0aW9uQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1D
b25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnQ+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRp
YVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudCgpIHsgfQpAQCAtNDYsNSArNDMsMyBA
QCBwdWJsaWM6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRpb25D
bGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBmM2MxMjAxNjRhZTUxYzY1OWVmZTBm
ZjRiYTUwOWQ5MGM5ZTY3ZGRiLi40Mzc5YTkxNzg2NTBlYTE4Mzc4OWY0ZDc0ZjlkNGYxZTllZjlk
MDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtNTI2LDEyICs1MjYsMTIgQEAgYm9vbCBS
ZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncyhjb25zdCBNZWRpYUNvbnN0cmFpbnRz
JiBjb25zdHJhaW50cywgRmwKIAogICAgIGZhaWxlZENvbnN0cmFpbnQgPSBlbXB0eVN0cmluZygp
OwogCi0gICAgLy8gQ2hlY2sgd2lkdGgsIGhlaWdodCwgYW5kIGZyYW1lIHJhdGUgc2VwYXJhdGVs
eSwgYmVjYXVzZSB3aGlsZSB0aGV5IG1heSBiZSBzdXBwb3J0ZWQgaW5kaXZpZHVhbGx5IHRoZSBj
b21iaW5hdGlvbiBtYXkgbm90IGJlIHN1cHBvcnRlZC4KKyAgICAvLyBDaGVjayB3aWR0aCwgaGVp
Z2h0IGFuZCBmcmFtZSByYXRlIGpvaW50bHksIGJlY2F1c2Ugd2hpbGUgdGhleSBtYXkgYmUgc3Vw
cG9ydGVkIGluZGl2aWR1YWxseSB0aGUgY29tYmluYXRpb24gbWF5IG5vdCBiZSBzdXBwb3J0ZWQu
CiAgICAgZG91YmxlIGRpc3RhbmNlID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZp
bml0eSgpOwotICAgIGlmICghc3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKGNvbnN0cmFpbnRzLm1h
bmRhdG9yeUNvbnN0cmFpbnRzKCkud2lkdGgoKSwgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3Ry
YWludHMoKS5oZWlnaHQoKSwgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMoKS5mcmFt
ZVJhdGUoKSwgZmFpbGVkQ29uc3RyYWludCwgbV9maXRuZXNzU2NvcmUpKQorICAgIGlmICghc3Vw
cG9ydHNTaXplQW5kRnJhbWVSYXRlKGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLndp
ZHRoKCksIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmhlaWdodCgpLCBjb25zdHJh
aW50cy5tYW5kYXRvcnlDb25zdHJhaW50cy5mcmFtZVJhdGUoKSwgZmFpbGVkQ29uc3RyYWludCwg
bV9maXRuZXNzU2NvcmUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb25zdHJhaW50
cy5tYW5kYXRvcnlDb25zdHJhaW50cygpLmZpbHRlcihbJl0oY29uc3QgTWVkaWFDb25zdHJhaW50
JiBjb25zdHJhaW50KSB7CisgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuZmls
dGVyKFsmXShjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpIHsKICAgICAgICAgaWYg
KCFzdXBwb3J0c0NvbnN0cmFpbnQoY29uc3RyYWludCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTU0OCw5ICs1NDgsOSBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNlbGVj
dFNldHRpbmdzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBGbAogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgQVNTRVJUKGNvbnN0cmFpbnQu
aXNTdHJpbmcoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoIWNvbnN0cmFpbnRzLmRldmljZUlESGFz
aFNhbHQoKS5pc0VtcHR5KCkpOworICAgICAgICAgICAgQVNTRVJUKCFjb25zdHJhaW50cy5kZXZp
Y2VJREhhc2hTYWx0LmlzRW1wdHkoKSk7CiAKLSAgICAgICAgICAgIGF1dG8gaGFzaGVkSUQgPSBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQo
bV9wZXJzaXN0ZW50SUQsIGNvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQoKSk7CisgICAgICAg
ICAgICBhdXRvIGhhc2hlZElEID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkuaGFzaFN0cmluZ1dpdGhTYWx0KG1fcGVyc2lzdGVudElELCBjb25zdHJhaW50cy5kZXZpY2VJ
REhhc2hTYWx0KTsKICAgICAgICAgICAgIGRvdWJsZSBjb25zdHJhaW50RGlzdGFuY2UgPSBkb3du
Y2FzdDxTdHJpbmdDb25zdHJhaW50Pihjb25zdHJhaW50KS5maXRuZXNzRGlzdGFuY2UoaGFzaGVk
SUQpOwogICAgICAgICAgICAgaWYgKHN0ZDo6aXNpbmYoY29uc3RyYWludERpc3RhbmNlKSkgewog
ICAgICAgICAgICAgICAgIGZhaWxlZENvbnN0cmFpbnQgPSBjb25zdHJhaW50Lm5hbWUoKTsKQEAg
LTU4Nyw3ICs1ODcsNyBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNlbGVjdFNldHRpbmdz
KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBGbAogICAgIC8vICAgICB2YWx1
ZXMgb2YgcHJvcGVydGllcyBhcyBleGFjdC4KICAgICBWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwg
TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+PiBzdXBwb3J0ZWRDb25zdHJhaW50czsKIAotICAg
IGZvciAoY29uc3QgYXV0byYgYWR2YW5jZWRDb25zdHJhaW50IDogY29uc3RyYWludHMuYWR2YW5j
ZWRDb25zdHJhaW50cygpKSB7CisgICAgZm9yIChjb25zdCBhdXRvJiBhZHZhbmNlZENvbnN0cmFp
bnQgOiBjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzKSB7CiAgICAgICAgIGRvdWJsZSBj
b25zdHJhaW50RGlzdGFuY2UgPSAwOwogICAgICAgICBib29sIHN1cHBvcnRlZCA9IGZhbHNlOwog
CkBAIC02OTcsNyArNjk3LDcgQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzdXBwb3J0c0Nv
bnN0cmFpbnQoY29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KQogCiBib29sIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzQ29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpCiB7Ci0gICAgQVNTRVJU
KGNvbnN0cmFpbnRzLmlzVmFsaWQoKSk7CisgICAgQVNTRVJUKGNvbnN0cmFpbnRzLmlzVmFsaWQp
OwogCiAgICAgRmxhdHRlbmVkQ29uc3RyYWludCBjYW5kaWRhdGVzOwogICAgIGlmICghc2VsZWN0
U2V0dGluZ3MoY29uc3RyYWludHMsIGNhbmRpZGF0ZXMsIGludmFsaWRDb25zdHJhaW50LCBTZWxl
Y3RUeXBlOjpGb3JTdXBwb3J0c0NvbnN0cmFpbnRzKSkKQEAgLTc1OSw3ICs3NTksNyBAQCB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgRmxhdHRlbmVkQ29u
c3RyYWludCYgY29uc3RyYWludAogCiBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIFN0
cmluZz4+IFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFD
b25zdHJhaW50cyYgY29uc3RyYWludHMpCiB7Ci0gICAgQVNTRVJUKGNvbnN0cmFpbnRzLmlzVmFs
aWQoKSk7CisgICAgQVNTRVJUKGNvbnN0cmFpbnRzLmlzVmFsaWQpOwogCiAgICAgRmxhdHRlbmVk
Q29uc3RyYWludCBjYW5kaWRhdGVzOwogICAgIFN0cmluZyBmYWlsZWRDb25zdHJhaW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCA3OGQyZjgxNDAyZGQxOWUxNTQ5OWE3
NDg4NzZjMzdkMjM2ZDY4MzQ2Li4yN2VjZTdhM2QzNmU4M2ZhMWE3ZTNlOWM3ZmM2NTI3MmQ3MWU1
MDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMjMwLDExICsyMzAs
MTEgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25z
dHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwKIAogICAgICAgICBTdHJpbmcgaW52YWxpZENv
bnN0cmFpbnQ7CiAgICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7Ci0g
ICAgICAgIGlmIChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZp
ZGVvICYmIHZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCgpKSB7CisgICAgICAgIGlmIChkZXZpY2Uu
dHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvICYmIHZpZGVvQ29uc3Ry
YWludHMuaXNWYWxpZCkgewogICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gdmlkZW9G
YWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwg
bnVsbHB0cik7CiAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9y
LmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHModmlkZW9Db25zdHJhaW50cywgaW52
YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNlSW5mby5hcHBlbmQo
e3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZS5wZXJz
aXN0ZW50SWQoKX0pOwotICAgICAgICB9IGVsc2UgaWYgKGRldmljZS50eXBlKCkgPT0gQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW8gJiYgYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkKCkp
IHsKKyAgICAgICAgfSBlbHNlIGlmIChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkF1ZGlvICYmIGF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCkgewogICAgICAgICAg
ICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgbnVsbHB0cik7CiAgICAgICAgICAgICBpZiAo
c291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29u
c3RyYWludHMoYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAg
ICAgICAgIGF1ZGlvRGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJj
ZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZS5wZXJzaXN0ZW50SWQoKX0pOwpAQCAtMjQ0LDcgKzI0
NCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29u
c3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsCiAgICAgICAgICAgICBmaXJzdEludmFsaWRD
b25zdHJhaW50ID0gaW52YWxpZENvbnN0cmFpbnQ7CiAgICAgfQogCi0gICAgaWYgKChhdWRpb0Nv
bnN0cmFpbnRzLmlzVmFsaWQoKSAmJiBhdWRpb0RldmljZUluZm8uaXNFbXB0eSgpKSB8fCAodmlk
ZW9Db25zdHJhaW50cy5pc1ZhbGlkKCkgJiYgdmlkZW9EZXZpY2VJbmZvLmlzRW1wdHkoKSkpIHsK
KyAgICBpZiAoKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiBhdWRpb0RldmljZUluZm8uaXNF
bXB0eSgpKSB8fCAodmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkICYmIHZpZGVvRGV2aWNlSW5mby5p
c0VtcHR5KCkpKSB7CiAgICAgICAgIGludmFsaWRIYW5kbGVyKGZpcnN0SW52YWxpZENvbnN0cmFp
bnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
CmluZGV4IDU3ZDcxMzI3MDBjMjBlNGQxY2I1ODdiNWVmZDRlOGQwMWY3NWI0YjkuLmZlMjlmOWUy
NmFjMzJhZjUyY2UzM2Y4MTNhMTQxNzgyODRjOWU4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmgKQEAgLTQ0LDExICs0NCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENhcHR1cmVEZXZpY2U7CiBjbGFzcyBDYXB0dXJlRGV2aWNlTWFuYWdlcjsKLWNsYXNzIE1lZGlh
Q29uc3RyYWludHM7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CiBjbGFzcyBS
ZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHM7CiBjbGFzcyBUcmFja1NvdXJj
ZUluZm87CiAKK3N0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOworICAgIAogY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNw
cAppbmRleCBhYzgyYzY2N2ZkNTA0YTU3Yjc3OGQ4YzE5N2Q5ZTUzNGJkMThiMGExLi43NGJhMTc0
NDJhNjgyYzZlOGIwOTAxMmQ4ZDRiYWY0YmFhMjU0NzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApAQCAtMTQ0LDExICsxNDQsNiBAQCBjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c2V0
dGluZ3MoKSBjb25zdAogICAgIHJldHVybiBtX2N1cnJlbnRTZXR0aW5nczsKIH0KIAotUmVhbHRp
bWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBSZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2U6OnN1cHBvcnRlZENvbnN0cmFpbnRzKCkKLXsKLSAgICByZXR1cm4gbV9zdXBwb3J0ZWRD
b25zdHJhaW50czsKLX0KLQogQXVkaW9Tb3VyY2VQcm92aWRlciogUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlOjphdWRpb1NvdXJjZVByb3ZpZGVyKCkKIHsKICAgICBpZiAoIW1fYXVkaW9Tb3Vy
Y2VQcm92aWRlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCmlu
ZGV4IDYyNWUzZDk4OGI3MjQwYjc0NThjNDhiYzlhZmJjY2QyMGFhMzA1ZDkuLmJmNjZiZDlkNjU0
ZTc2MzUzNzgzMmM4Y2NkY2ZkZmY4NmM3MGI2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlLmgKQEAgLTY0LDE0ICs2NCw5IEBAIHByaXZhdGU6CiAgICAgY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3QgZmlu
YWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNv
bnN0IGZpbmFsOwogCi0gICAgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVy
biAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKTsKLQogICAgIEF1ZGlvU291cmNl
UHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBmaW5hbDsKIAogICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKLSAgICBSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBSZWZQ
dHI8TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKICAgICBydGM6OnNjb3BlZF9yZWZw
dHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiBtX2F1ZGlvVHJhY2s7CiAKICAgICBSZWZQ
dHI8V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IG1fYXVkaW9Tb3VyY2VQcm92aWRlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggMTRmOGUx
ODhhYjAwMDdkYzc1MDQxMjNjNjgxYmJjNDRhZmU5NjM4My4uM2Q4YTZjMGU5ODBlY2NjOTYzYjEy
OWY4ODI1MTU1NTMzNzBlMjE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZS5jcHAKQEAgLTIwOSwxMSArMjA5LDYgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnNldHRpbmdzKCkgY29uc3QK
ICAgICByZXR1cm4gbV9jdXJyZW50U2V0dGluZ3M7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpzdXBwb3J0
ZWRDb25zdHJhaW50cygpCi17Ci0gICAgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKaW5kZXggZDRhM2Y0M2Y4MDJi
YzkwNDQ4NzdiNzlhOWE3MjI2ODkwYTNiMjFjNi4uY2UyYTdiMjdjMGNhZmI3YzRlZjUxNGIwZTFi
NGI2ZDQxMGRiZGRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2Uu
aApAQCAtNjEsOSArNjEsNiBAQCBwcml2YXRlOgogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbDsKIAotICAg
IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4gKm1fY29uc3RyYWludHMu
Z2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1
cHBvcnRlZENvbnN0cmFpbnRzKCk7Ci0KICAgICB2b2lkIHByb2Nlc3NOZXdTYW1wbGUoQ01TYW1w
bGVCdWZmZXJSZWYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b24pOwogCiAgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KQEAgLTc1LDggKzcyLDYgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxJbWFnZT4g
bV9jdXJyZW50SW1hZ2U7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVu
dFNldHRpbmdzOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBt
X3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBtX2Nv
bnN0cmFpbnRzOwogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRl
cmZhY2U+IG1fdmlkZW9UcmFjazsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IG1f
YnVmZmVyOwogICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgbV9jb25mb3JtZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
LmgKaW5kZXggNTA2ZTQ4MmEyY2ZhYzZmYzM4NWEwZWUwNTFlZTUyMDdkYzc5NGE1Ni4uOTUwN2Yw
MWFhM2QzMjMwMjYzZmQ0YWZlYjlkMTY1MjhjZDk5YWMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNjgs
NyArNjgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAg
TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5n
ZXQoKTsgfQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3Vw
cG9ydGVkQ29uc3RyYWludHMoKTsKIAogICAgIHVuc2lnbmVkIGRldmljZUluZGV4KCkgeyByZXR1
cm4gbV9kZXZpY2VJbmRleDsgfQpAQCAtODQsNyArODMsNiBAQCBwcml2YXRlOgogICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICAgICBSZWFsdGltZU1l
ZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBh
YmlsaXRpZXM7Ci0gICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAg
ICAgdW5zaWduZWQgbV9kZXZpY2VJbmRleCB7IDAgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYTNmMDVkODRkY2U0ZDc3ZmQ4ZjFiMjhjMGYz
YzI2OWM0NjkyYjU4Ny4uZmU2YmY4OTZkZDg1ODc1NzlmMGE3MmYzZjBkOGM4NDY1NzVjZmQxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysr
IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM2MCw3ICsz
NjAsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6Okhp
Z2hsaWdodCc6IFsnPFdlYkNvcmUvSW5zcGVjdG9yT3ZlcmxheS5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6S2V5ZnJhbWVWYWx1ZUxpc3QnOiBbJzxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OktleXByZXNzQ29tbWFuZCc6IFsnPFdlYkNvcmUvS2V5Ym9hcmRF
dmVudC5oPiddLAotICAgICAgICAnV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEnOiBbJzxX
ZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzJzogWyc8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRVUkwnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JzogWyc8V2ViQ29y
ZS9QYXN0ZWJvYXJkLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IDRlNjRjZDQ1YTQwNGQ5YjBmYjVlMTYwOGRjODBlMjQ5N2Nk
OTY2NTAuLjQ2MTZhYWRmMTQ2MjdhMDFjNjM0ZDVkYjk4OGJlMWViM2MzZjEwODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMDIs
NyArMTAyLDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSA8V2ViQ29y
ZS9DYXB0dXJlRGV2aWNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzSW1w
bC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgogI2VuZGlmCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjM4OSw3ICsyMzg5LDcgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
V2ViQ29yZTo6UmUKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi12b2lkIEFyZ3VtZW50
Q29kZXI8TWVkaWFDb25zdHJhaW50c0RhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0cmFpbnQpCit2b2lkIEFyZ3Vt
ZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50KQogewogICAgIGVuY29kZXIg
PDwgY29uc3RyYWludC5tYW5kYXRvcnlDb25zdHJhaW50cwogICAgICAgICA8PCBjb25zdHJhaW50
LmFkdmFuY2VkQ29uc3RyYWludHMKQEAgLTIzOTcsNyArMjM5Nyw3IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxNZWRpYUNvbnN0cmFpbnRzRGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBXZWJDb3JlCiAgICAgICAgIDw8IGNvbnN0cmFpbnQuaXNWYWxpZDsKIH0KIAotYm9vbCBBcmd1
bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHNEYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50cykKK2Jvb2wgQXJndW1l
bnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQogewogICAgIHJldHVybiBkZWNvZGVy
LmRlY29kZShjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cykKICAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUoY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBmNzAyNTJkMGQyZjFi
NjU3NjQ1MDc1YzE5NTNiMmM3OTU3MjkyOTQ4Li5hNjczZjJhZjZlY2UwOWQ5MzU1MTY1MzAzM2Ux
ZGQzNTY4NDA4YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCkBAIC0xNjIsNyArMTYyLDcgQEAgY2xhc3MgTWVkaWFTZXNzaW9uTWV0YWRhdGE7
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENh
cHR1cmVEZXZpY2U7Ci1zdHJ1Y3QgTWVkaWFDb25zdHJhaW50c0RhdGE7CitzdHJ1Y3QgTWVkaWFD
b25zdHJhaW50czsKIH0KICNlbmRpZgogCkBAIC02NDAsOSArNjQwLDkgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4gewogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YT4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmKTsK
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHNEYXRhJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHM+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCmluZGV4IGVlODEyZDllZjUyNzczM2I0ODMwMjc3OGEyMjk2MWVjOTM4ZDUy
YjMuLjU4NjMzZGQ2YzhmN2FiNjFjNjk0MDJjMjUyYWQ4ZmZiNTBiNWVjNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJh
aW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KQEAg
LTEyNSwxNiArMTI1LDE1IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5KCkKICAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwg
Y29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzRGF0YSYgY29uc3RyYWludHNEYXRhLCBib29s
JiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWlu
dHMsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKLSAgICBhdXRvIGNvbnN0cmFpbnRzID0gTWVkaWFD
b25zdHJhaW50c0ltcGw6OmNyZWF0ZShNZWRpYUNvbnN0cmFpbnRzRGF0YShjb25zdHJhaW50c0Rh
dGEpKTsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGRldmljZUlELCBjb25zdHJhaW50cy5wdHIoKSk7CisgICAgICAgIHNvdXJj
ZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0Zh
Y3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsICZjb25zdHJhaW50cyk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6VmlkZW86Ci0gICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlSUQsIGNvbnN0cmFpbnRzLnB0cigpKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvRmFjdG9yeSgpLmNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25l
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE4NSw5ICsxODQsOCBAQCB2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnNldEVuYWJsZWQodWludDY0X3QgaWQsIGJv
b2wgZW5hYmxlZCkKICAgICAgICAgaXRlci0+dmFsdWUtPnNvdXJjZSgpLnNldEVuYWJsZWQoZW5h
YmxlZCk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6YXBwbHlDb25z
dHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEm
IGNvbnN0cmFpbnRzRGF0YSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6YXBw
bHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWlu
dHNJbXBsOjpjcmVhdGUoTWVkaWFDb25zdHJhaW50c0RhdGEoY29uc3RyYWludHNEYXRhKSk7CiAg
ICAgYXV0byBpdGVyID0gbV9wcm94aWVzLmZpbmQoaWQpOwogICAgIGlmIChpdGVyID09IG1fcHJv
eGllcy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5k
ZXggMmE1MWQ3YzI1YmI1Y2JlNzA2Njg1NDZmOGU2NDYwMGQ4ZTliNWZiMC4uODBlMzNmZjMwMTcy
ZmIxOGUwNTBlODM2ZDNmMDFkYWQ1MzcwMzZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CkBAIC00OSwxMyArNDksMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYg
aW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
KTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJv
b2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lk
IGNhcGFiaWxpdGllcyh1aW50NjRfdCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYpOwogICAgIHZvaWQgc2V0TXV0ZWQodWludDY0X3QsIGJvb2wpOwogICAgIHZvaWQg
c2V0RW5hYmxlZCh1aW50NjRfdCwgYm9vbCk7Ci0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKHVp
bnQ2NF90LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYpOworICAgIHZvaWQg
YXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYpOwogCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVBy
b3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBh
M2M4MTRmZWI5YzA4MmUzMDU1NGZjMzU5Yjk1NmE4ZmVmZTBkYWJhLi42MDUzMzcxYjdkMmIxNjA5
ZmJkZTdjZGRkMzk5Yjk5MGIxNmNlOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjIsMTEgKzIyLDExIEBACiAjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KHVpbnQ2NF90IGlkLCBTdHJpbmcgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUgdHlwZSwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0
cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisgICAgQ3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBTdHJp
bmcgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgc3Ry
dWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nl
c3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBzZXR0aW5ncykKICAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQp
CiAgICAgU3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgQ2FwYWJpbGl0aWVzKHVp
bnQ2NF90IGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBj
YXBhYmlsaXRpZXMpCiAgICAgU2V0TXV0ZWQodWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpCiAgICAg
U2V0RW5hYmxlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQotICAgIEFwcGx5Q29uc3RyYWlu
dHModWludDY0X3QgaWQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25z
dHJhaW50cykKKyAgICBBcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCmluZGV4IGMwYmJmNDFiYjk2YjdlNDkzMWE5MDJiNzA5MWZjZDZjZGMx
OTdhYTQuLjQzOTVkMzlkNDM5YjUyNWRjYzAxNmRhNTE1MTc3NWQwNTQxNDMyNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1
ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50
c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkRhdGEuaD4KQEAgLTI1MSw3ICsyNTEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpzY2hlZHVsZU5leHRSZWplY3Rpb24oKQogICAgICAgICBtX3Jl
amVjdGlvblRpbWVyLnN0YXJ0T25lU2hvdChTZWNvbmRzKG1pbWltdW1EZWxheUJlZm9yZVJlcGx5
aW5nICsgcmFuZG9tTnVtYmVyKCkpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYgYXVkaW9Db25zdHJhaW50
c0RhdGEsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiB2aWRlb0NvbnN0cmFp
bnRzRGF0YSkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIs
IFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cykKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIGF1dG8gaW52YWxpZEhhbmRsZXIgPSBbdGhpcywgdXNlck1lZGlhSURdKGNvbnN0IFN0
cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIHsKQEAgLTMwNiwxMiArMzA2LDExIEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUoCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHZhbGlk
YXRlQ29uc3RyYWludHNIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlELCB2YWxpZEhhbmRsZXIg
PSBXVEZNb3ZlKHZhbGlkSGFuZGxlciksIGludmFsaWRIYW5kbGVyID0gV1RGTW92ZShpbnZhbGlk
SGFuZGxlciksIGF1ZGlvQ29uc3RyYWludHNEYXRhLCB2aWRlb0NvbnN0cmFpbnRzRGF0YV0oU3Ry
aW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSBtdXRhYmxlIHsKKyAgICBhdXRvIHZhbGlk
YXRlQ29uc3RyYWludHNIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlELCB2YWxpZEhhbmRsZXIg
PSBXVEZNb3ZlKHZhbGlkSGFuZGxlciksIGludmFsaWRIYW5kbGVyID0gV1RGTW92ZShpbnZhbGlk
SGFuZGxlciksIGF1ZGlvQ29uc3RyYWludHMgPSBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKGF1
ZGlvQ29uc3RyYWludHMpLCB2aWRlb0NvbnN0cmFpbnRzID0gV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyh2aWRlb0NvbnN0cmFpbnRzKV0oU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
KSBtdXRhYmxlIHsKICAgICAgICAgc3luY1dpdGhXZWJDb3JlUHJlZnMoKTsKLQotICAgICAgICBh
dXRvIGF1ZGlvQ29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKE1lZGlh
Q29uc3RyYWludHNEYXRhKGF1ZGlvQ29uc3RyYWludHNEYXRhLCBkZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQpKTsKLSAgICAgICAgYXV0byB2aWRlb0NvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50
c0ltcGw6OmNyZWF0ZShNZWRpYUNvbnN0cmFpbnRzRGF0YSh2aWRlb0NvbnN0cmFpbnRzRGF0YSwg
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7Ci0KKyAgICAgICAgCisgICAgICAgIGF1ZGlvQ29u
c3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdDsKKyAg
ICAgICAgdmlkZW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0ID0gV1RGTW92ZShkZXZpY2VJ
ZGVudGlmaWVySGFzaFNhbHQpOwogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3ZlKHZhbGlkSGFuZGxl
ciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBhdWRpb0NvbnN0cmFpbnRzLCB2aWRlb0NvbnN0
cmFpbnRzKTsKICAgICB9OwogCkBAIC0zMzUsOCArMzM0LDggQEAgdm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSgKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllcik7CiAgICAgVU5VU0VEX1BBUkFNKHRvcExldmVs
RG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKTsKLSAgICBVTlVTRURfUEFSQU0oYXVkaW9Db25zdHJh
aW50c0RhdGEpOwotICAgIFVOVVNFRF9QQVJBTSh2aWRlb0NvbnN0cmFpbnRzRGF0YSk7CisgICAg
VU5VU0VEX1BBUkFNKGF1ZGlvQ29uc3RyYWludHMpOworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0Nv
bnN0cmFpbnRzKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
CmluZGV4IGZiYmVkNTlhNzNkNzgwYTgzMzljYTA3NmYyYTM1OWNjNDk3ZmVlOTkuLjRmZWNlZWMw
MmQ3ZTExNWI2YjhmYjFkNTgzMWQwMTgzN2MxODFlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIENhcHR1cmVEZXZpY2U7Ci1zdHJ1Y3QgTWVkaWFDb25zdHJhaW50c0RhdGE7CitzdHJ1Y3Qg
TWVkaWFDb25zdHJhaW50czsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogfTsKIApAQCAtNjUsNyAr
NjUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsK
IAotICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYgYXVkaW9Db25zdHJhaW50c0RhdGEs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiB2aWRlb0NvbnN0cmFpbnRzRGF0
YSk7CisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90
IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMpOwogCiAgICAgdm9p
ZCB1c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmIGF1ZGlv
RGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlEKTsKICAgICB2b2lkIHVzZXJN
ZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDYxOTllY2EwN2Q1MjUzYjY3YzVjMWU1MTgyZWY0
M2NlNTVhNTU2ZC4uNDM4ZGViZDgyYjFhYTRkNzFmY2MxZjk3YWI3YWI5N2MyNGYwZjQ2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE4Miw3ICsxODIs
NyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3Ry
YWludHMuaD4KICNlbmRpZgogCiAvLyBUaGlzIGNvbnRyb2xzIHdoYXQgc3RyYXRlZ3kgd2UgdXNl
IGZvciBtb3VzZSB3aGVlbCBjb2FsZXNjaW5nLgpAQCAtNTc0NCwxOSArNTc0NCwxOSBAQCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgV2ViUGFnZVByb3h5Ojp1c2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdAogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBT
dHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHNEYXRhJiBhdWRpb0NvbnN0cmFpbnRzRGF0YSwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50c0RhdGEmIHZpZGVvQ29uc3RyYWludHNEYXRhKQordm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIsIFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cykKIHsKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KSk7CiAKLSAgICB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5yZXF1ZXN0VXNl
ck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVzZXJNZWRpYUlELCBmcmFtZUlELCB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBhdWRpb0NvbnN0cmFpbnRzRGF0YSwgdmlkZW9Db25zdHJhaW50c0RhdGEpOworICAgIHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yRnJhbWUodXNlck1lZGlhSUQsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGF1ZGlvQ29uc3RyYWlu
dHMsIHZpZGVvQ29uc3RyYWludHMpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odXNlck1lZGlh
SUQpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0odXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKTsKICAgICBVTlVTRURfUEFSQU0odG9wTGV2ZWxE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIpOwotICAgIFVOVVNFRF9QQVJBTShhdWRpb0NvbnN0cmFp
bnRzRGF0YSk7Ci0gICAgVU5VU0VEX1BBUkFNKHZpZGVvQ29uc3RyYWludHNEYXRhKTsKKyAgICBV
TlVTRURfUEFSQU0oYXVkaW9Db25zdHJhaW50cyk7CisgICAgVU5VU0VEX1BBUkFNKHZpZGVvQ29u
c3RyYWludHMpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA3NWU3NDE4ZTE1OWJkZTU5MmI0MmQyNGUwODAzYTU1Y2FjODMxZDNjLi4xODhh
YzM2MTI4NWQ1MjM3NjE4MzRiNjAwMmM4OWEzNTA4NTgzYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjQsNyArMTY0LDcgQEAgY2xhc3MgVmFsaWRhdGlv
bkJ1YmJsZTsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwogc3RydWN0IEV4Y2VwdGlvbkRl
dGFpbHM7CiBzdHJ1Y3QgRmlsZUNob29zZXJTZXR0aW5nczsKLXN0cnVjdCBNZWRpYUNvbnN0cmFp
bnRzRGF0YTsKK3N0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwogc3RydWN0IFNlY3VyaXR5T3JpZ2lu
RGF0YTsKIHN0cnVjdCBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U7CiBzdHJ1Y3QgVGV4dENoZWNr
aW5nUmVzdWx0OwpAQCAtMTMxMyw3ICsxMzEzLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiB1
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKICNlbmRpZgotICAgIHZvaWQgcmVx
dWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwg
U3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzRGF0YSYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50c0RhdGEmIHZpZGVvQ29uc3RyYWludHMpOworICAgIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5n
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJiB2aWRlb0NvbnN0cmFpbnRzKTsKICAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0Zv
ckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIpOwogCiAgICAgdm9pZCBydW5Nb2RhbCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjUzY2VkYmY4
NjZhMGVmZmRmYjI5ZTkxYTczN2YwNWI3M2FlMjI1OC4uNTVhZmNkMDE5Y2EzYjQ5ZDAxY2UwNmNl
YzhmOWJiZjYwMmY1NGRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNjgsNyArMjY4LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICMgTWVkaWFT
dGVhbSBtZXNzYWdlcwotICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhIGF1ZGlvQ29uc3RyYWlu
dHNEYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgdmlkZW9Db25zdHJh
aW50c0RhdGEpCisgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBhdWRpb0NvbnN0cmFpbnRzLCBzdHJ1
Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyB2aWRlb0NvbnN0cmFpbnRzKQogICAgIEVudW1l
cmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDJkMjZhNDk2Nzkz
OGM1NTY5MWJkNDAwODkzM2M3YWQ5NDU4NGNkODkuLjNmYmNjYTkxNTc2NmE5ZjAzZmI5OTMwMGE1
OTNkMWRhMzA2ZmU4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVk
aWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3Vt
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVMb2FkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+
CiAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6c2VuZFVzZXJNZWRpYVJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcgogCiAgICAgU2Vj
dXJpdHlPcmlnaW4qIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSByZXF1ZXN0LnRvcExldmVsRG9j
dW1lbnRPcmlnaW4oKTsKICAgICBTdHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyA9
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPyBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0
eU9yaWdpbigqdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkgOiBl
bXB0eVN0cmluZygpOwotICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJh
bWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqcmVxdWVzdC51
c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpKS5kYXRhYmFzZUlkZW50aWZpZXIoKSwgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpblN0cmluZywgcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKCkuZGF0YSgpLCBy
ZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMoKS5kYXRhKCkpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHJl
cXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2Vj
dXJpdHlPcmlnaW4oKnJlcXVlc3QudXNlck1lZGlhRG9jdW1lbnRPcmlnaW4oKSkuZGF0YWJhc2VJ
ZGVudGlmaWVyKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcsIHJlcXVlc3QuYXVkaW9D
b25zdHJhaW50cygpLCByZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMoKSkpOwogfQogCiB2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsVXNlck1lZGlhUmVxdWVzdChV
c2VyTWVkaWFSZXF1ZXN0JiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCA4ZDU2
Y2IyNThiMmU0ZmY4MDM0MGQxOWE0YTE0NmU5NDkwMDVmMzI4Li5mYmQwZWIyNDIwMGVjYzU4OGM0
ZWJlNDY2YmQ0N2E3ZWE1ZjQ3YzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMzUsNyAr
MzUsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oPgpAQCAtMjc5
LDEyICsyNzksNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzZXRFbmFibGVkKHVp
bnQ2NF90IGlkLCBib29sIGVuYWJsZWQpCiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMmIGNvbnN0cmFpbnRzKQogewotICAgIE1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0cmFp
bnRzRGF0YTsKLSAgICBjb25zdHJhaW50c0RhdGEubWFuZGF0b3J5Q29uc3RyYWludHMgPSBjb25z
dHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cygpOwotICAgIGNvbnN0cmFpbnRzRGF0YS5hZHZh
bmNlZENvbnN0cmFpbnRzID0gY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cygpOwotICAg
IGNvbnN0cmFpbnRzRGF0YS5pc1ZhbGlkID0gY29uc3RyYWludHMuaXNWYWxpZCgpOwotCi0gICAg
bV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkFw
cGx5Q29uc3RyYWludHMoaWQsIGNvbnN0cmFpbnRzRGF0YSksIDApOworICAgIG1fcHJvY2Vzcy5z
ZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpBcHBseUNvbnN0cmFp
bnRzKGlkLCBjb25zdHJhaW50cyksIDApOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>