<?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>200767</bug_id>
          
          <creation_ts>2019-08-15 06:25:53 -0700</creation_ts>
          <short_desc>enumerateDevices should return the same JS objects if called twice</short_desc>
          <delta_ts>2019-08-19 01:25:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1561529</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-15 06:25:53 -0700</bug_when>
    <thetext>enumerateDevices should return the same JS objects if called twice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561573</commentid>
    <comment_count>1</comment_count>
      <attachid>376385</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-15 09:27:25 -0700</bug_when>
    <thetext>Created attachment 376385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561694</commentid>
    <comment_count>2</comment_count>
      <attachid>376407</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-15 12:35:16 -0700</bug_when>
    <thetext>Created attachment 376407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561966</commentid>
    <comment_count>3</comment_count>
      <attachid>376481</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-16 00:50:02 -0700</bug_when>
    <thetext>Created attachment 376481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562034</commentid>
    <comment_count>4</comment_count>
      <attachid>376499</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-16 08:06:11 -0700</bug_when>
    <thetext>Created attachment 376499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562039</commentid>
    <comment_count>5</comment_count>
      <attachid>376500</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-16 08:38:05 -0700</bug_when>
    <thetext>Created attachment 376500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562226</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-16 14:27:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/54407369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562663</commentid>
    <comment_count>7</comment_count>
      <attachid>376500</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-19 00:40:58 -0700</bug_when>
    <thetext>Comment on attachment 376500
Patch

Clearing flags on attachment: 376500

Committed r248847: &lt;https://trac.webkit.org/changeset/248847&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562664</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-19 00:41:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562682</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-08-19 01:25:29 -0700</bug_when>
    <thetext>Committed r248849: &lt;https://trac.webkit.org/changeset/248849&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376385</attachid>
            <date>2019-08-15 09:27:25 -0700</date>
            <delta_ts>2019-08-15 12:35:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200767-20190815182723.patch</filename>
            <type>text/plain</type>
            <size>73015</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgyNjU1ZGEyMzA2MjEz
NzIwYWQ5ZjNkYjQ1Y2JmMjI1ODlkNjIwOS4uMGQ3YTc1YzY4ZDhiMTI0YzdjYTVlZjg1NDUzY2Zj
NDUzZGY3NjJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA4LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2Vz
IHNob3VsZCByZXR1cm4gdGhlIHNhbWUgSlMgb2JqZWN0cyBpZiBjYWxsZWQgdHdpY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgTWVkaWFEZXZp
Y2VzIHN0b3JlIHRoZSBsYXN0IGxpc3Qgb2YgZW51bWVyYXRlZCBNZWRpYURldmljZUluZm8gb2Jq
ZWN0cy4KKyAgICAgICAgUmV1c2UgdGhlbSBmb3IgdGhlIG5leHQgZW51bWVyYXRlRGV2aWNlcyBj
YWxsIGlmIG5lZWRlZC4KKyAgICAgICAgSW4gY2FzZSBvZiBhIGRldmljZSBjaGFuZ2UgZXZlbnQs
IG1ha2Ugc3VyZSB0aGUgbmV4dCBlbnVtZXJhdGVEZXZpY2VzIGNhbGwgd2lsbCBmZXRjaCB0aGUg
bmV3IGxpc3Qgb2YgZGV2aWNlcy4KKyAgICAgICAgV2hlbiBjb25zdHJ1Y3RpbmcgdGhlIG5ldyBs
aXN0IG9mIGRldmljZXMsIHJldXNlIGFueSBwcmVleGlzdGluZyBkZXZpY2UgaW4gdGhlIG9sZCBs
aXN0IGFzIHNwZWNpZmllZCBieQorICAgICAgICBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFj
YXB0dXJlLW1haW4vI2RvbS1tZWRpYWRldmljZXMtZW51bWVyYXRlZGV2aWNlcy4KKworICAgICAg
ICBVcGRhdGUgZW51bWVyYXRlRGV2aWNlcyB0byB1c2UgYSBjb21wbGV0aW9uIGhhbmRsZXIuCisg
ICAgICAgIFJlbW92ZSBNZWRpYURldmljZXNSZXF1ZXN0IGFuZCBNZWRpYURldmljZXNFbnVtZXJh
dGlvblJlcXVlc3QuCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0IGFuZCBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6TWVkaWFEZXZpY2VJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmlj
ZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OnN0b3Ap
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmVudW1lcmF0ZURldmljZXMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpsaXN0ZW5Gb3JEZXZpY2VDaGFuZ2VzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Lmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
c1JlcXVlc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNlbmRlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGll
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBbGxvd2VkVG9Vc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6VXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdldFVzZXJNZWRpYSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyTWVkaWFDb250cm9sbGVyOjplbnVtZXJhdGVNZWRpYURldmljZXMpOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQWx3YXlzIGNyZWF0ZSBhIERvY3VtZW50IHdpdGggYSB2YWxpZCBTZXNz
aW9uSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNTRiNzk3NzZiMDU3NWIxYTg4M2NmNjk3OGZhY2QwYTE1NWNjYTlj
NS4uMjdiZmFkYjUyOGI4NGFkYTlmNzJkNmU2NWQzNzhlZmY4NDJhMTA5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAxOS0wOC0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQgcmV0dXJuIHRoZSBzYW1lIEpT
IG9iamVjdHMgaWYgY2FsbGVkIHR3aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgY29kZSBhcyBlbnVtZXJhdGUgZGV2aWNlIHJlcXVlc3Qg
aXMgbm93IGdvbmUuCisgICAgICAgIE1ha2UgdXNlIG9mIGFzeW5jIElQQyB0byBzaW1wbGlmeSBj
b2RlIHNpbmNlIHdlIGFyZSBub3cgcGFzc2luZyBhIGNvbXBsZXRpb24gaGFuZGxlciBkaXJlY3Rs
eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZmluaXNoR3JhbnRpbmdSZXF1
ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjplbnVtZXJhdGVN
ZWRpYURldmljZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTktMDgtMTQgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1c2Ugb2YgZW1w
dHlTZXNzaW9uSUQgZnJvbSBOZXR3b3JrTG9hZFBhcmFtZXRlcnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmNwcAppbmRleCBm
YzlhYTQ2Y2M0ZDk4ZGRkZjY4MjM2Y2Q2M2Y0MTEyNzhiMGVmNzNmLi5iN2ExN2ExNTFkMTRmN2Zm
MWVlMGM0Zjc1OGZiMTQyYTM4MjA5ZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDE4ICszNCwxNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChNZWRpYURl
dmljZUluZm8pOwogCi1pbmxpbmUgTWVkaWFEZXZpY2VJbmZvOjpNZWRpYURldmljZUluZm8oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qg
U3RyaW5nJiBkZXZpY2VJZCwgY29uc3QgU3RyaW5nJiBncm91cElkLCBLaW5kIGtpbmQpCi0gICAg
OiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihjb250ZXh0KQotICAgICwgbV9sYWJlbChsYWJl
bCkKK2lubGluZSBNZWRpYURldmljZUluZm86Ok1lZGlhRGV2aWNlSW5mbyhjb25zdCBTdHJpbmcm
IGxhYmVsLCBjb25zdCBTdHJpbmcmIGRldmljZUlkLCBjb25zdCBTdHJpbmcmIGdyb3VwSWQsIEtp
bmQga2luZCkKKyAgICA6IG1fbGFiZWwobGFiZWwpCiAgICAgLCBtX2RldmljZUlkKGRldmljZUlk
KQogICAgICwgbV9ncm91cElkKGdyb3VwSWQpCiAgICAgLCBtX2tpbmQoa2luZCkKIHsKIH0KIAot
UmVmPE1lZGlhRGV2aWNlSW5mbz4gTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBk
ZXZpY2VJZCwgY29uc3QgU3RyaW5nJiBncm91cElkLCBLaW5kIGtpbmQpCitSZWY8TWVkaWFEZXZp
Y2VJbmZvPiBNZWRpYURldmljZUluZm86OmNyZWF0ZShjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25z
dCBTdHJpbmcmIGRldmljZUlkLCBjb25zdCBTdHJpbmcmIGdyb3VwSWQsIEtpbmQga2luZCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURldmljZUluZm8oY29udGV4dCwgbGFiZWws
IGRldmljZUlkLCBncm91cElkLCBraW5kKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVk
aWFEZXZpY2VJbmZvKGxhYmVsLCBkZXZpY2VJZCwgZ3JvdXBJZCwga2luZCkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZUluZm8uaAppbmRleCA2N2IxNDcwNDlkZmRmYjFjNGFiMTQ3NWQ5
OWMwNDVkYmEwZWM2ZGYwLi4zYzkyNmE5MWFjNDZhYmM2OTcyYzk5Zjc1MDYzODg3NTZhMGQxNzY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VJbmZvLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzMsMTIgKzMzLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgTWVkaWFEZXZpY2VJbmZvIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFEZXZpY2VJ
bmZvPiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlciB7CitjbGFzcyBNZWRpYURldmljZUluZm8gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYURldmljZUluZm8+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKE1lZGlhRGV2aWNlSW5mbyk7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFz
cyBLaW5kIHsgQXVkaW9pbnB1dCwgQXVkaW9vdXRwdXQsIFZpZGVvaW5wdXQgfTsKIAotICAgIHN0
YXRpYyBSZWY8TWVkaWFEZXZpY2VJbmZvPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEtpbmQpOworICAg
IHN0YXRpYyBSZWY8TWVkaWFEZXZpY2VJbmZvPiBjcmVhdGUoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgS2luZCk7CiAKICAgICBjb25zdCBTdHJpbmcmIGxhYmVs
KCkgY29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQogICAgIGNvbnN0IFN0cmluZyYgZGV2aWNlSWQo
KSBjb25zdCB7IHJldHVybiBtX2RldmljZUlkOyB9CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoK
ICAgICBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KIAogcHJpdmF0ZToKLSAg
ICBNZWRpYURldmljZUluZm8oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEtpbmQpOworICAgIE1lZGlhRGV2aWNlSW5m
byhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBLaW5kKTsKIAog
ICAgIGNvbnN0IFN0cmluZyBtX2xhYmVsOwogICAgIGNvbnN0IFN0cmluZyBtX2RldmljZUlkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZUluZm8uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZUluZm8uaWRsCmluZGV4IGQyYjJjOWZmMjYyZWU3OGUxNTkyMTg3NGRlYmY3Yjk3OTQ3MDljYjQu
Ljk2MDAxZGNlOWNkZWIxMDE5M2U1ZGZiM2IwNjg1OTNmZjI1MjA5YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5pZGwK
QEAgLTI2LDYgKzI2LDcgQEAKIFsKICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QsCisgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiBdIGludGVy
ZmFjZSBNZWRpYURldmljZUluZm8gewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ZGV2aWNlSWQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhRGV2aWNlS2luZCBraW5kOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwCmluZGV4IDRiZDdhOWQ3Y2NiOTkzY2ExMTRiOTFhZWJlN2FhYzg5YjVmMzAxOTAuLjFhMDVm
ZGYwN2NhNWU0ZjU4Y2YxMTFiOGM2YmMwMTBiNjNlZTRhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTEsNiArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICsz
Nyw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJNZWRpYURldmljZXNSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiSlNNZWRpYURldmljZUluZm8uaCIKICNpbmNsdWRlICJNZWRpYVRyYWNrU3VwcG9ydGVk
Q29uc3RyYWludHMuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC02MSw2ICs2MSwxMSBAQCBp
bmxpbmUgTWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYURldmljZXM6OkRpc3BsYXlD
YXB0dXJlU3VyZmFjZVR5cGU6OldpbmRvdykgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6V2luZG93KSwgIk1lZGlh
RGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6V2luZG93IGlzIG5vdCBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6V2luZG93IGFzIGV4cGVj
dGVkIik7CiAgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhRGV2aWNl
czo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6QXBwbGljYXRpb24pID09IHN0YXRpY19jYXN0
PHNpemVfdD4oUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6
OkFwcGxpY2F0aW9uKSwgIk1lZGlhRGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6
QXBwbGljYXRpb24gaXMgbm90IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1
cmZhY2VUeXBlOjpBcHBsaWNhdGlvbiBhcyBleHBlY3RlZCIpOwogICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5
cGU6OkJyb3dzZXIpID09IHN0YXRpY19jYXN0PHNpemVfdD4oUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6OkJyb3dzZXIpLCAiTWVkaWFEZXZpY2VzOjpEaXNw
bGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpCcm93c2VyIGlzIG5vdCBSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6QnJvd3NlciBhcyBleHBlY3RlZCIpOworCisg
ICAgaWYgKGF1dG8qIGNvbnRyb2xsZXIgPSBVc2VyTWVkaWFDb250cm9sbGVyOjpmcm9tKGRvY3Vt
ZW50LnBhZ2UoKSkpIHsKKyAgICAgICAgbV9jYW5BY2Nlc3NDYW1lcmEgPSBjb250cm9sbGVyLT5j
YW5DYWxsR2V0VXNlck1lZGlhKGRvY3VtZW50LCB7IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1
cmVUeXBlOjpDYW1lcmEgfSkgPT0gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNj
ZXNzOjpDYW5DYWxsOworICAgICAgICBtX2NhbkFjY2Vzc01pY3JvcGhvbmUgPSBjb250cm9sbGVy
LT5jYW5DYWxsR2V0VXNlck1lZGlhKGRvY3VtZW50LCB7IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNh
cHR1cmVUeXBlOjpNaWNyb3Bob25lIH0pID09IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJN
ZWRpYUFjY2Vzczo6Q2FuQ2FsbDsKKyAgICB9CiB9CiAKIE1lZGlhRGV2aWNlczo6fk1lZGlhRGV2
aWNlcygpID0gZGVmYXVsdDsKQEAgLTczLDYgKzc4LDcgQEAgdm9pZCBNZWRpYURldmljZXM6OnN0
b3AoKQogICAgICAgICBpZiAoZG9jdW1lbnQgJiYgY29udHJvbGxlcikKICAgICAgICAgICAgIGNv
bnRyb2xsZXItPnJlbW92ZURldmljZUNoYW5nZU9ic2VydmVyKG1fZGV2aWNlQ2hhbmdlVG9rZW4p
OwogICAgIH0KKyAgICBtX2RldmljZXMuY2xlYXIoKTsKIH0KIAogUmVmPE1lZGlhRGV2aWNlcz4g
TWVkaWFEZXZpY2VzOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMTI5LDEyICsxMzUs
NDkgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYShjb25zdCBTdHJlYW1Db25z
dHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UKICAgICByZXF1ZXN0LT5zdGFydCgpOwogfQog
Ci12b2lkIE1lZGlhRGV2aWNlczo6ZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJv
bWlzZSYmIHByb21pc2UpIGNvbnN0Cit2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMo
Y29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQoreworICAgIFZlY3RvcjxS
ZWY8TWVkaWFEZXZpY2VJbmZvPj4gZGV2aWNlczsKKyAgICBmb3IgKGF1dG8mIG5ld0RldmljZSA6
IG5ld0RldmljZXMpIHsKKyAgICAgICAgaWYgKCFtX2NhbkFjY2Vzc01pY3JvcGhvbmUgJiYgbmV3
RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghbV9jYW5BY2Nlc3NDYW1lcmEgJiYg
bmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCisg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBhdXRvIGluZGV4ID0gbV9kZXZpY2VzLmZp
bmRNYXRjaGluZyhbJm5ld0RldmljZV0oYXV0byYgb2xkRGV2aWNlKSB7CisgICAgICAgICAgICBy
ZXR1cm4gb2xkRGV2aWNlLT5kZXZpY2VJZCgpID09IG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKTsK
KyAgICAgICAgfSk7CisgICAgICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkgeworICAgICAgICAg
ICAgZGV2aWNlcy5hcHBlbmQobV9kZXZpY2VzW2luZGV4XS5jb3B5UmVmKCkpOworICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIGRldmljZVR5cGUgPSBuZXdE
ZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgPyBN
ZWRpYURldmljZUluZm86OktpbmQ6OkF1ZGlvaW5wdXQgOiBNZWRpYURldmljZUluZm86OktpbmQ6
OlZpZGVvaW5wdXQ7CisgICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3Jl
YXRlKG5ld0RldmljZS5sYWJlbCgpLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIG5ld0Rldmlj
ZS5ncm91cElkKCksIGRldmljZVR5cGUpKTsKKyAgICB9CisgICAgbV9kZXZpY2VzID0gV1RGTW92
ZShkZXZpY2VzKTsKK30KKwordm9pZCBNZWRpYURldmljZXM6OmVudW1lcmF0ZURldmljZXMoRW51
bWVyYXRlRGV2aWNlc1Byb21pc2UmJiBwcm9taXNlKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0g
dGhpcy0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0g
ICAgTWVkaWFEZXZpY2VzUmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgV1RGTW92ZShwcm9taXNl
KSktPnN0YXJ0KCk7CisKKyAgICBhdXRvKiBjb250cm9sbGVyID0gVXNlck1lZGlhQ29udHJvbGxl
cjo6ZnJvbShkb2N1bWVudC0+cGFnZSgpKTsKKyAgICBpZiAoIWNvbnRyb2xsZXIgfHwgKCFtX2Nh
bkFjY2Vzc0NhbWVyYSAmJiAhbV9jYW5BY2Nlc3NNaWNyb3Bob25lKSkgeworICAgICAgICBwcm9t
aXNlLnJlc29sdmUoeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRyb2xs
ZXItPmVudW1lcmF0ZU1lZGlhRGV2aWNlcygqZG9jdW1lbnQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKHRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oY29uc3QgYXV0byYg
bmV3RGV2aWNlcywgY29uc3QgYXV0byYgZGV2aWNlSURIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMgfHwgaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHRoaXMtPmRvY3VtZW50KCktPnNldERldmljZUlESGFzaFNhbHQoZGV2
aWNlSURIYXNoU2FsdCk7CisgICAgICAgIHJlZnJlc2hEZXZpY2VzKG5ld0RldmljZXMpOworICAg
ICAgICBwcm9taXNlLnJlc29sdmUobV9kZXZpY2VzKTsKKyAgICB9KTsKIH0KIAogTWVkaWFUcmFj
a1N1cHBvcnRlZENvbnN0cmFpbnRzIE1lZGlhRGV2aWNlczo6Z2V0U3VwcG9ydGVkQ29uc3RyYWlu
dHMoKQpAQCAtMTU4LDggKzIwMSwxMCBAQCBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMg
TWVkaWFEZXZpY2VzOjpnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpCiAKIHZvaWQgTWVkaWFEZXZp
Y2VzOjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQoKQogewotICAgIGlmIChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCi0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuZGV2aWNlY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXND
YW5jZWxhYmxlOjpObykpOworICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGV2
aWNlY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOwogfQogCiBib29sIE1lZGlhRGV2aWNlczo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3QKQEAgLTE3NywzMyArMjIyLDMwIEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjYW5TdXNwZW5kRm9y
RG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBN
ZWRpYURldmljZXM6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBl
LCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9w
dGlvbnMmIG9wdGlvbnMpCit2b2lkIE1lZGlhRGV2aWNlczo6bGlzdGVuRm9yRGV2aWNlQ2hhbmdl
cygpCiB7Ci0gICAgaWYgKCFtX2xpc3RlbmluZ0ZvckRldmljZUNoYW5nZXMgJiYgZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5kZXZpY2VjaGFuZ2VFdmVudCkgewotICAgICAgICBhdXRvKiBkb2N1
bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBkb2N1
bWVudCA/IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSkgOiBudWxs
cHRyOwotICAgICAgICBpZiAoZG9jdW1lbnQgJiYgY29udHJvbGxlcikgewotICAgICAgICAgICAg
bV9saXN0ZW5pbmdGb3JEZXZpY2VDaGFuZ2VzID0gdHJ1ZTsKKyAgICBpZiAobV9saXN0ZW5pbmdG
b3JEZXZpY2VDaGFuZ2VzIHx8ICghbV9jYW5BY2Nlc3NNaWNyb3Bob25lICYmICFtX2NhbkFjY2Vz
c01pY3JvcGhvbmUpKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIG1fZGV2aWNlQ2hh
bmdlVG9rZW4gPSBjb250cm9sbGVyLT5hZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKCkgeworICAgIG1fbGlzdGVuaW5nRm9yRGV2aWNl
Q2hhbmdlcyA9IHRydWU7CiAKLSAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IG1fc2No
ZWR1bGVkRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGF1dG8qIGNvbnRy
b2xsZXIgPSBkb2N1bWVudCA/IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQtPnBh
Z2UoKSkgOiBudWxscHRyOworICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgICAgICAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAg
ICAgICAgICAgICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBkb2N1bWVudCA/IFVzZXJNZWRpYUNvbnRy
b2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSkgOiBudWxscHRyOwotICAgICAgICAgICAgICAg
IGlmICghY29udHJvbGxlcikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgIG1fZGV2
aWNlQ2hhbmdlVG9rZW4gPSBjb250cm9sbGVyLT5hZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKCkgeworICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8IG1fc2NoZWR1bGVkRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgICAgICAgICAgYm9vbCBjYW5BY2Nlc3NNaWNyb3Bob25lID0gY29udHJv
bGxlci0+Y2FuQ2FsbEdldFVzZXJNZWRpYSgqZG9jdW1lbnQsIHsgVXNlck1lZGlhQ29udHJvbGxl
cjo6Q2FwdHVyZVR5cGU6Ok1pY3JvcGhvbmUgfSkgPT0gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0
VXNlck1lZGlhQWNjZXNzOjpDYW5DYWxsOwotICAgICAgICAgICAgICAgIGJvb2wgY2FuQWNjZXNz
Q2FtZXJhID0gY29udHJvbGxlci0+Y2FuQ2FsbEdldFVzZXJNZWRpYSgqZG9jdW1lbnQsIHsgVXNl
ck1lZGlhQ29udHJvbGxlcjo6Q2FwdHVyZVR5cGU6OkNhbWVyYSB9KSA9PSBVc2VyTWVkaWFDb250
cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7Ci0gICAgICAgICAgICAgICAgaWYg
KCFjYW5BY2Nlc3NNaWNyb3Bob25lICYmICFjYW5BY2Nlc3NDYW1lcmEpCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zY2hlZHVsZWRFdmVudFRpbWVyLnN0YXJ0T25lU2hv
dChTZWNvbmRzKHJhbmRvbU51bWJlcigpIC8gMikpOworICAgIH0pOworfQogCi0gICAgICAgICAg
ICAgICAgbV9zY2hlZHVsZWRFdmVudFRpbWVyLnN0YXJ0T25lU2hvdChTZWNvbmRzKHJhbmRvbU51
bWJlcigpIC8gMikpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Citib29sIE1l
ZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUs
IFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0
aW9ucyYgb3B0aW9ucykKK3sKKyAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZp
Y2VjaGFuZ2VFdmVudCkKKyAgICAgICAgbGlzdGVuRm9yRGV2aWNlQ2hhbmdlcygpOwogCiAgICAg
cmV0dXJuIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGE6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRU
eXBlLCBXVEZNb3ZlKGxpc3RlbmVyKSwgb3B0aW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAppbmRleCBkZTNkYTA4YmQwZWFh
NmFiNmNmY2EyNTNhZjliYzcwNmI3YTQ5YzM1Li41MWNkMWI0Y2U5Yjk3MjE4OGIxYjEwN2RjNThh
NWI1YjFmOTc5YWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIH07CiAgICAg
dm9pZCBnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNv
bnN0OwogICAgIHZvaWQgZ2V0RGlzcGxheU1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiwg
UHJvbWlzZSYmKSBjb25zdDsKLSAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2
aWNlc1Byb21pc2UmJikgY29uc3Q7CisgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0
ZURldmljZXNQcm9taXNlJiYpOwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cyBn
ZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYURl
dmljZXM+OjpyZWY7CkBAIC05MSw2ICs5MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVs
ZWRFdmVudFRpbWVyRmlyZWQoKTsKICAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRM
aXN0ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsKIAorICAgIHZvaWQgcmVmcmVzaERldmljZXMoY29u
c3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+Jik7CisgICAgdm9pZCBsaXN0ZW5Gb3JEZXZpY2VDaGFu
Z2VzKCk7CisKICAgICBmcmllbmQgY2xhc3MgSlNNZWRpYURldmljZXNPd25lcjsKIAogICAgIC8v
IEFjdGl2ZURPTU9iamVjdApAQCAtMTEwLDYgKzExMywxMCBAQCBwcml2YXRlOgogICAgIGNvbnN0
IEV2ZW50TmFtZXMmIG1fZXZlbnROYW1lczsgLy8gTmVlZCB0byBjYWNoZSB0aGlzIHNvIHdlIGNh
biB1c2UgaXQgZnJvbSBHQyB0aHJlYWRzLgogICAgIGJvb2wgbV9saXN0ZW5pbmdGb3JEZXZpY2VD
aGFuZ2VzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZGlzYWJsZUdldERpc3BsYXlNZWRpYVVzZXJH
ZXN0dXJlQ29uc3RyYWludCB7IGZhbHNlIH07CisKKyAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNl
SW5mbz4+IG1fZGV2aWNlczsKKyAgICBib29sIG1fY2FuQWNjZXNzQ2FtZXJhIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fY2FuQWNjZXNzTWljcm9waG9uZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5pZGwKaW5kZXggNjFjN2ZkOTdkMjViOTA4ZTk3Y2RlNDVkZjIzYjRm
NmUxNDM5NmE3OC4uZTYxYjcwZmNiZTBiZDMxYjI2MTQxYzlmOGVmN2FhMTViNjQ4ZDZhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmlkbApAQCAtMzEsNyArMzEsNyBAQAogLy8gRklYTUUgMTY5ODcxOiBzaG91bGQgYmUgc3ViY2xh
c3Mgb2YgRXZlbnRUYXJnZXQKIFsKICAgICBBY3RpdmVET01PYmplY3QsCi0gICAgQ29uZGl0aW9u
YWw9TUVESUFfU1RSRUFNCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogXSBpbnRlcmZh
Y2UgTWVkaWFEZXZpY2VzIDogRXZlbnRUYXJnZXQgewogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRs
ZXIgb25kZXZpY2VjaGFuZ2U7CiAgICAgUHJvbWlzZTxzZXF1ZW5jZTxNZWRpYURldmljZUluZm8+
PiBlbnVtZXJhdGVEZXZpY2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1M2RmNjM3OTgyODdhNGEwM2Zm
ODQxYjViZGQxZTE1NWRjODQ2YWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Qu
aCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNl
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+
IE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwgQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoZG9jdW1lbnQsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7Ci19Ci0KLU1lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdDo6TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCi0g
ICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKLSAgICAsIG1fY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCi17Ci19Ci0KLU1lZGlhRGV2
aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6fk1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCgp
ID0gZGVmYXVsdDsKLQotU2VjdXJpdHlPcmlnaW4qIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVx
dWVzdDo6dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4oKSBjb25zdAotewotICAgIGlmICghc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVy
biBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCk7Ci19Ci0KLVNlY3Vy
aXR5T3JpZ2luKiBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6OnRvcExldmVsRG9jdW1l
bnRPcmlnaW4oKSBjb25zdAotewotICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiAmc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT50b3BPcmlnaW4oKTsKLX0KLQotdm9pZCBNZWRpYURldmljZXNFbnVtZXJhdGlvblJl
cXVlc3Q6OmNvbnRleHREZXN0cm95ZWQoKQotewotICAgIC8vIENhbGxpbmcgY2FuY2VsKCkgbWF5
IGRlc3Ryb3kgb3Vyc2VsdmVzLgotICAgIFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotCi0gICAgY2FuY2VsKCk7Ci0gICAgQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKLX0KLQotdm9pZCBNZWRpYURl
dmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6OnN0YXJ0KCkKLXsKLSAgICBBU1NFUlQoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKLQotICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1l
bnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBV
c2VyTWVkaWFDb250cm9sbGVyOjpmcm9tKGRvY3VtZW50LnBhZ2UoKSk7Ci0gICAgaWYgKCFjb250
cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWY8TWVkaWFEZXZpY2VzRW51bWVyYXRp
b25SZXF1ZXN0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBjb250cm9sbGVyLT5lbnVtZXJh
dGVNZWRpYURldmljZXMoKnRoaXMpOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdDo6Y2FuY2VsKCkKLXsKLSAgICBtX2NvbXBsZXRpb25IYW5kbGVyID0gbnVsbHB0cjsK
LX0KLQotdm9pZCBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6OnNldERldmljZUluZm8o
Y29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VMaXN0LCBjb25zdCBTdHJpbmcmIGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKQot
ewotICAgIGlmIChtX2NvbXBsZXRpb25IYW5kbGVyKQotICAgICAgICBtX2NvbXBsZXRpb25IYW5k
bGVyKGRldmljZUxpc3QsIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgb3JpZ2luSGFzUGVyc2lz
dGVudEFjY2Vzcyk7Ci0gICAgbV9jb21wbGV0aW9uSGFuZGxlciA9IG51bGxwdHI7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
c0VudW1lcmF0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMGJkMGRkNTgzZTE2MzVhOWM4ZTlkYzY2NTEwMDkxZjU3N2ExMTU0Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotCi0jaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgQ2FwdHVyZURldmljZTsKLWNsYXNzIERvY3VtZW50OwotY2xhc3MgU2Vj
dXJpdHlPcmlnaW47Ci0KLWNsYXNzIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCBmaW5h
bCA6IHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0PiB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQ29t
cGxldGlvbkhhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1cmVE
ZXZpY2U+JiwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJvb2wgb3Jp
Z2luSGFzUGVyc2lzdGVudEFjY2Vzcyk+OwotCi0gICAgc3RhdGljIFJlZjxNZWRpYURldmljZXNF
bnVtZXJhdGlvblJlcXVlc3Q+IGNyZWF0ZShEb2N1bWVudCYsIENvbXBsZXRpb25IYW5kbGVyJiYp
OwotCi0gICAgdmlydHVhbCB+TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KCk7Ci0KLSAg
ICB2b2lkIHN0YXJ0KCk7Ci0gICAgdm9pZCBjYW5jZWwoKTsKLQotICAgIGJvb2wgd2FzQ2FuY2Vs
ZWQoKSBjb25zdCB7IHJldHVybiAhbV9jb21wbGV0aW9uSGFuZGxlcjsgfQotCi0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXREZXZpY2VJbmZvKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYs
IGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9yaWdpbkhhc1Bl
cnNpc3RlbnRBY2Nlc3MpOwotCi0gICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJp
dHlPcmlnaW4qIHRvcExldmVsRG9jdW1lbnRPcmlnaW4oKSBjb25zdDsKLQotcHJpdmF0ZToKLSAg
ICBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IENvbXBsZXRpb25IYW5kbGVyJiYpOwotCi0gICAgLy8gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIKLSAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBmaW5hbDsKLQotICAgIENvbXBsZXRpb25I
YW5kbGVyIG1fY29tcGxldGlvbkhhbmRsZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwZmRkMDIzNzQ3ZmRhZDc4YWFmYTk5MmY3YTFh
MzI4NGM0NTYzYjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJNZWRpYURldmljZXNSZXF1ZXN0LmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotCi0jaW5jbHVkZSAiQ2FwdHVyZURldmljZS5oIgotI2luY2x1ZGUgIkRvY3VtZW50Lmgi
Ci0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJKU01lZGlhRGV2aWNlSW5mby5oIgotI2lu
Y2x1ZGUgIk1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oIgotI2luY2x1ZGUgIlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgotI2luY2x1ZGUgPHd0Zi9TSEExLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotaW5saW5l
IE1lZGlhRGV2aWNlc1JlcXVlc3Q6Ok1lZGlhRGV2aWNlc1JlcXVlc3QoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBNZWRpYURldmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSkKLSAg
ICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZkb2N1bWVudCkKLSAgICAsIG1fcHJvbWlz
ZShXVEZNb3ZlKHByb21pc2UpKQotewotfQotCi1SZWY8TWVkaWFEZXZpY2VzUmVxdWVzdD4gTWVk
aWFEZXZpY2VzUmVxdWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFEZXZpY2Vz
OjpFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmIHByb21pc2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTWVkaWFEZXZpY2VzUmVxdWVzdChkb2N1bWVudCwgV1RGTW92ZShwcm9taXNlKSkp
OwotfQotCi1NZWRpYURldmljZXNSZXF1ZXN0Ojp+TWVkaWFEZXZpY2VzUmVxdWVzdCgpCi17Ci0g
ICAgLy8gVGhpcyBzaG91bGQgb25seSBnZXQgZGVzdHJveWVkIGFmdGVyIHRoZSBlbnVtZXJhdGlv
biByZXF1ZXN0IGhhcyBjb21wbGV0ZWQgb3IgaGFzIGJlZW4gY2FuY2VsZWQuCi0gICAgQVNTRVJU
KCFtX2VudW1lcmF0aW9uUmVxdWVzdCB8fCBtX2VudW1lcmF0aW9uUmVxdWVzdC0+d2FzQ2FuY2Vs
ZWQoKSk7Ci19Ci0KLVNlY3VyaXR5T3JpZ2luKiBNZWRpYURldmljZXNSZXF1ZXN0OjpzZWN1cml0
eU9yaWdpbigpIGNvbnN0Ci17Ci0gICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAg
ICAgICAgcmV0dXJuIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKTsK
LQotICAgIHJldHVybiBudWxscHRyOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OmNv
bnRleHREZXN0cm95ZWQoKQotewotICAgIC8vIFRoZSBjYWxsIHRvIG1fZW51bWVyYXRpb25SZXF1
ZXN0LT5jYW5jZWwoKSBtaWdodCBkZWxldGUgdGhpcy4KLSAgICBhdXRvIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKTsKLQotICAgIGlmIChtX2VudW1lcmF0aW9uUmVxdWVzdCkgewotICAg
ICAgICBtX2VudW1lcmF0aW9uUmVxdWVzdC0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fZW51bWVyYXRp
b25SZXF1ZXN0ID0gbnVsbHB0cjsKLSAgICB9Ci0gICAgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKLX0KLQotdm9pZCBNZWRpYURldmljZXNSZXF1ZXN0Ojpz
dGFydCgpCi17Ci0gICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgYXV0byogY29udHJvbGxlciA9IFVzZXJNZWRpYUNv
bnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIpIHsK
LSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XSgpIHsKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJvbWlzZS5yZXNvbHZlKHsgfSk7
Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIG1pY3Jv
cGhvbmVBY2Nlc3MgPSBjb250cm9sbGVyLT5jYW5DYWxsR2V0VXNlck1lZGlhKGRvY3VtZW50LCB7
IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1cmVUeXBlOjpNaWNyb3Bob25lIH0pOwotICAgIGF1
dG8gY2FtZXJhQWNjZXNzID0gY29udHJvbGxlci0+Y2FuQ2FsbEdldFVzZXJNZWRpYShkb2N1bWVu
dCwgeyBVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZTo6Q2FtZXJhIH0pOwotICAgIGJv
b2wgY2FuQWNjZXNzTWljcm9waG9uZSA9IG1pY3JvcGhvbmVBY2Nlc3MgPT0gVXNlck1lZGlhQ29u
dHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzOjpDYW5DYWxsOwotICAgIGJvb2wgY2FuQWNjZXNz
Q2FtZXJhID0gY2FtZXJhQWNjZXNzID09IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRp
YUFjY2Vzczo6Q2FuQ2FsbDsKLSAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUgJiYgIWNhbkFj
Y2Vzc0NhbWVyYSkgewotICAgICAgICBjb250cm9sbGVyLT5sb2dHZXRVc2VyTWVkaWFEZW5pYWwo
ZG9jdW1lbnQsICFjYW5BY2Nlc3NNaWNyb3Bob25lID8gbWljcm9waG9uZUFjY2VzcyA6IGNhbWVy
YUFjY2VzcywgVXNlck1lZGlhQ29udHJvbGxlcjo6QmxvY2tlZENhbGxlcjo6RW51bWVyYXRlRGV2
aWNlcyk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oKSB7Ci0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Byb21pc2UucmVzb2x2
ZSh7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8g
VGhpcyBsYW1iZGEga2VlcHMgfHRoaXN8IGFsaXZlIHVudGlsIHRoZSByZXF1ZXN0IGNvbXBsZXRl
cyBvciBpcyBjYW5jZWxlZC4KLSAgICBhdXRvIGNvbXBsZXRpb24gPSBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYW5BY2Nlc3NNaWNyb3Bob25lLCBjYW5BY2Nlc3NDYW1l
cmFdIChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGNhcHR1cmVEZXZpY2VzLCBjb25zdCBT
dHJpbmcmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCkgbXV0YWJsZSB7Ci0KLSAgICAg
ICAgbV9lbnVtZXJhdGlvblJlcXVlc3QgPSBudWxscHRyOwotCi0gICAgICAgIGlmICghc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGF1dG8m
IGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwotICAgICAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRldmljZUlkZW50aWZpZXJI
YXNoU2FsdCk7Ci0KLSAgICAgICAgVmVjdG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2Vz
OwotICAgICAgICBmb3IgKGF1dG8mIGRldmljZUluZm8gOiBjYXB0dXJlRGV2aWNlcykgewotICAg
ICAgICAgICAgaWYgKCFjYW5BY2Nlc3NNaWNyb3Bob25lICYmIGRldmljZUluZm8udHlwZSgpID09
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBpZiAoIWNhbkFjY2Vzc0NhbWVyYSAmJiBkZXZpY2VJbmZv
LnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGF1dG8gZGV2aWNlVHlwZSA9IGRldmljZUlu
Zm8udHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgPyBNZWRp
YURldmljZUluZm86OktpbmQ6OkF1ZGlvaW5wdXQgOiBNZWRpYURldmljZUluZm86OktpbmQ6OlZp
ZGVvaW5wdXQ7Ci0gICAgICAgICAgICBkZXZpY2VzLmFwcGVuZChNZWRpYURldmljZUluZm86OmNy
ZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRldmljZUluZm8ubGFiZWwoKSwgZGV2aWNl
SW5mby5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlSW5mby5ncm91cElkKCksIGRldmljZVR5cGUpKTsK
LSAgICAgICAgfQotCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgZGV2aWNlcyA9IFdURk1vdmUoZGV2aWNlcyldKCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Byb21pc2UucmVzb2x2ZShkZXZpY2VzKTsKLSAg
ICAgICAgfSk7Ci0gICAgfTsKLQotICAgIG1fZW51bWVyYXRpb25SZXF1ZXN0ID0gTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0OjpjcmVhdGUoZG9jdW1lbnQsIFdURk1vdmUoY29tcGxldGlv
bikpOwotICAgIG1fZW51bWVyYXRpb25SZXF1ZXN0LT5zdGFydCgpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVl
c3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzUzZTY0YzU0MzY2OWYxNDY0ODY2
ZGRmMGFjMTFlYTlhNDAxZDI5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
c1JlcXVlc3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3Q7Ci1jbGFzcyBTZWN1cml0eU9yaWdpbjsKLQotY2xhc3MgTWVk
aWFEZXZpY2VzUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlc1JlcXVlc3Q+
LCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPE1lZGlhRGV2aWNlc1JlcXVlc3Q+IGNyZWF0ZShEb2N1bWVudCYsIE1lZGlhRGV2aWNl
czo6RW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJik7Ci0KLSAgICB2aXJ0dWFsIH5NZWRpYURldmlj
ZXNSZXF1ZXN0KCk7Ci0KLSAgICB2b2lkIHN0YXJ0KCk7Ci0KLSAgICBTZWN1cml0eU9yaWdpbiog
c2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBNZWRpYURldmljZXNSZXF1
ZXN0KERvY3VtZW50JiwgTWVkaWFEZXZpY2VzOjpFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKTsK
LQotICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIGZpbmFsOwotCi0gICAgTWVkaWFEZXZpY2Vz
OjpFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSBtX3Byb21pc2U7Ci0gICAgUmVmUHRyPE1lZGlhRGV2
aWNlc1JlcXVlc3Q+IG1fcHJvdGVjdG9yOwotICAgIFJlZlB0cjxNZWRpYURldmljZXNFbnVtZXJh
dGlvblJlcXVlc3Q+IG1fZW51bWVyYXRpb25SZXF1ZXN0OwotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNwcAppbmRleCA0ZDZl
Y2YzYTU2NjEwY2ZmMGEyZTE4OTc1ZDQ5ZTEyOTE2NDE5Y2U3Li4wMDdkMmMzYTRiOWViYTFjYWMx
MzA0OTc2ODZkNDQ2ZDJmMDUzMjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiUlRDRFRNRlNlbmRlci5oIgogI2luY2x1ZGUgIlJUQ0RUTUZTZW5kZXJCYWNrZW5kLmgiCiAj
aW5jbHVkZSAiUlRDUnRwQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAiUlRDUnRwVHJhbnNjZWl2
ZXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmgKaW5kZXggYjJhYTU2MDNmNTc1MTI3ZTVmNWE4
NjQ2YTlhODc3ZTIxNGE0YTYxOC4uNDNiMmEwZGRjZDUyYjVkMWFjNTYyYWU3YTEyOGU0MWQyMzNk
OTg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYUNsaWVudC5oCkBAIC0zMywxMSArMzMsMTIgQEAKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvT2JqZWN0SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CiBjbGFz
cyBQYWdlOwogY2xhc3MgVXNlck1lZGlhUmVxdWVzdDsKIApAQCAtNDgsOCArNDksNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBY2Nlc3MoVXNlck1lZGlhUmVx
dWVzdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsVXNlck1lZGlhQWNjZXNzUmVxdWVz
dChVc2VyTWVkaWFSZXF1ZXN0JikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGVudW1lcmF0ZU1l
ZGlhRGV2aWNlcyhNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVudW1lcmF0ZU1l
ZGlhRGV2aWNlcyhEb2N1bWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9y
PENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYpID0gMDsKIAogICAgIGVudW0gRGV2
aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlblR5cGUgeyB9OwogICAgIHVzaW5nIERldmljZUNoYW5nZU9i
c2VydmVyVG9rZW4gPSBPYmplY3RJZGVudGlmaWVyPERldmljZUNoYW5nZU9ic2VydmVyVG9rZW5U
eXBlPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwCmluZGV4IDhkN2U2M2NjNjA2ZDZkYTE5ZmJkYjEyZGU1
NGZiODU1ZmRmNjJjOTkuLjY1NjI0NjhhOWQ3OWY4M2Q4Mjg3NTVkN2JiMjc1ZTkyZjc3YTFhZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFDb250cm9sbGVyLmNwcApAQCAtODUsNyArODUsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KGNvbnN0IEZlYXR1cmVQb2xpY3kmIGZlYXR1cmVQ
b2xpY3ksCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBVc2VyTWVkaWFDb250cm9sbGVy
OjpHZXRVc2VyTWVkaWFBY2Nlc3MgaXNBbGxvd2VkVG9Vc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBE
b2N1bWVudCYgdG9wRG9jdW1lbnQsIE9wdGlvblNldDxVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0
dXJlVHlwZT4gdHlwZXMpCitzdGF0aWMgVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlh
QWNjZXNzIGlzQWxsb3dlZFRvVXNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRG9j
dW1lbnQmIHRvcERvY3VtZW50LCBPcHRpb25TZXQ8VXNlck1lZGlhQ29udHJvbGxlcjo6Q2FwdHVy
ZVR5cGU+IHR5cGVzKQogewogICAgIGlmICgmZG9jdW1lbnQgPT0gJnRvcERvY3VtZW50KQogICAg
ICAgICByZXR1cm4gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzOjpDYW5D
YWxsOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRV
c2VyTWVkaWFBY2Nlc3MgaXNBbGxvd2VkVG9Vc2UoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgcmV0
dXJuIFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2Vzczo6QmxvY2tlZEJ5RmVh
dHVyZVBvbGljeTsKIH0KIAotVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNz
IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmNhbkNhbGxHZXRVc2VyTWVkaWEoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBPcHRpb25TZXQ8VXNlck1lZGlhQ29udHJvbGxlcjo6Q2FwdHVyZVR5cGU+IHR5cGVzKQor
VXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzIFVzZXJNZWRpYUNvbnRyb2xs
ZXI6OmNhbkNhbGxHZXRVc2VyTWVkaWEoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBPcHRpb25T
ZXQ8VXNlck1lZGlhQ29udHJvbGxlcjo6Q2FwdHVyZVR5cGU+IHR5cGVzKSBjb25zdAogewogICAg
IEFTU0VSVCghdHlwZXMuaXNFbXB0eSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaAppbmRleCBkZmU4OTY5
ZTllYTVhODhhNTcwYjA5MTViN2ZkNDQyM2UwOGQ0MmY1Li5hNDVhZTM1NTU1MDk4YmRiN2E1NmY2
YTI0Nzg3MDNjODdlZGNmYzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaApAQCAtMjksNiArMjksNyBAQAog
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNsaWVudC5oIgorI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQ1LDggKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUFjY2VzcyhV
c2VyTWVkaWFSZXF1ZXN0Jik7CiAgICAgdm9pZCBjYW5jZWxVc2VyTWVkaWFBY2Nlc3NSZXF1ZXN0
KFVzZXJNZWRpYVJlcXVlc3QmKTsKIAotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgY2FuY2VsTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYpOwor
ICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKERvY3VtZW50JiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJik7
CiAKICAgICBVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4gYWRkRGV2
aWNlQ2hhbmdlT2JzZXJ2ZXIoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVt
b3ZlRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNl
cnZlclRva2VuKTsKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgICAgICBDYW1lcmEgPSAx
IDw8IDEsCiAgICAgICAgIERpc3BsYXkgPSAxIDw8IDMKICAgICB9OwotICAgIEdldFVzZXJNZWRp
YUFjY2VzcyBjYW5DYWxsR2V0VXNlck1lZGlhKERvY3VtZW50JiwgT3B0aW9uU2V0PENhcHR1cmVU
eXBlPik7CisgICAgR2V0VXNlck1lZGlhQWNjZXNzIGNhbkNhbGxHZXRVc2VyTWVkaWEoY29uc3Qg
RG9jdW1lbnQmLCBPcHRpb25TZXQ8Q2FwdHVyZVR5cGU+KSBjb25zdDsKIAogICAgIGVudW0gY2xh
c3MgQmxvY2tlZENhbGxlciB7CiAgICAgICAgIEdldFVzZXJNZWRpYSwKQEAgLTg5LDE1ICs4OSwx
MSBAQCBpbmxpbmUgdm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjpjYW5jZWxVc2VyTWVkaWFBY2Nl
c3NSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmCiAgICAgbV9jbGllbnQtPmNhbmNlbFVzZXJNZWRp
YUFjY2Vzc1JlcXVlc3QocmVxdWVzdCk7CiB9CiAKLWlubGluZSB2b2lkIFVzZXJNZWRpYUNvbnRy
b2xsZXI6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3QmIHJlcXVlc3QpCitpbmxpbmUgdm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjplbnVtZXJhdGVN
ZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIG1fY2xpZW50LT5lbnVtZXJhdGVNZWRpYURldmljZXMocmVxdWVzdCk7
CisgICAgbV9jbGllbnQtPmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhkb2N1bWVudCwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi1pbmxpbmUgdm9pZCBVc2VyTWVkaWFDb250cm9sbGVy
OjpjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoTWVkaWFEZXZpY2VzRW51bWVy
YXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIG1fY2xpZW50LT5jYW5jZWxNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QocmVxdWVzdCk7Ci19CiAKIGlubGluZSBVc2VyTWVkaWFDbGll
bnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhQ29udHJvbGxlcjo6YWRkRGV2
aWNlQ2hhbmdlT2JzZXJ2ZXIoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgb2JzZXJ2ZXIpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IGNhNDYxNDIzNjUwMTI2NzRiYWRkMGQzNWE4NGQwMDIyOTFkNTc1MDYu
LjkzOWFhZDhkZTZmNGEwZmNkZWVlNTVmMzZjMTQwNmJkZjM0YmVkZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0xNTksOCArMTU5LDYgQEAgTW9kdWxlcy9tZWRpYXNvdXJjZS9WaWRlb1BsYXliYWNrUXVh
bGl0eS5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJh
Y2suY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5jcHAKIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAotTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwCi1Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlc1JlcXVlc3QuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjdiZTc0OTNmYjM0N2U3YWVjNWQxMTdj
YzVjYzY5YThhMWVmYzFlMy4uN2RhYmI5MTBmZDhjZDJjMTJjNmZiOGFkZWE2ZTk4OTI2MWVjM2Vh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTIxLDcgKzEyMSw2IEBACiAJCTA3Mzc5NEVDMTlFRTM0MUUwMEU1QTA0NSAvKiBK
U1JUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDczNzk0RUExOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVyLmggKi87IH07
CiAJCTA3Mzc5NEZBMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2Nr
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRG
NDE5RjU4NjRFMDBFNUEwNDUgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oICovOyB9Owog
CQkwNzM3OTRGRTE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjgxOUY1ODY0RTAw
RTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCAqLzsgfTsKLQkJMDczOTRFQ0ExQkFCMkNENzAw
QkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzk0RUM5MUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRpYURl
dmljZXNSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDczQTE1NTQyMTc3QTQyNjAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNBMTU1MzIx
NzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVC
dWZmZXJMaXN0LmggKi87IH07CiAJCTA3M0I4NzY5MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2Uu
aCAqLzsgfTsKQEAgLTE5Niw3ICsxOTUsNiBAQAogCQkwN0FBNkI2QzE2NkQyQzEzMDBENDU2NzEg
LyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUE2QjY5MTY2RDAxOTUwMEQ0NTY3MSAvKiBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3QUI5OTY5MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25m
aWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwN0FCOTk2NTE4REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oICovOyB9Owog
CQkwN0FCOTk2QjE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0FCOTk2NzE4REEzQzAxMDAxODc3
MUUgLyogUlRDSWNlU2VydmVyLmggKi87IH07Ci0JCTA3QUJFRjZFMUQ4QTFDNzYwMEYyMTk3MiAv
KiBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUJFRjZEMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRp
YURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0FGRjQyMjFFRkIxNDQ5MDBCNTQ1QjMgLyogQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDdBRkY0MjAxRUZCMTQ0NzAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MuaCAqLzsgfTsKIAkJMDdBRkY0MjMxRUZCMTQ0OTAwQjU0NUIzIC8qIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2VJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwN0FGRjQyMTFFRkIxNDQ3MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZUlPUy5tbSAqLzsgfTsKIAkJMDdCMDExM0YxMDMyMjQyMjAwRkJEQzMzIC8qIEFjY2Vzc2li
aWxpdHlNZWRpYUNvbnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwN0IwMTEzRTEwMzIyNDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlh
Q29udHJvbHMuaCAqLzsgfTsKQEAgLTUzNDksOCArNTM0Nyw2IEBACiAJCTA3Mzc5NEY0MTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RjcxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlm
aWVyc01vY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTm90
aWZpZXJzTW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEY4MTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJUQ05vdGlmaWVyc01vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMDczOTRFQzcxQkFCMkNDRDAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFEZXZpY2VzUmVxdWVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3Mzk0RUM5MUJBQjJDRDcwMEJF
OTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhRGV2aWNlc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU0NDIsOCArNTQzOCw2
IEBACiAJCTA3QUI5OTY2MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDdBQjk5NjcxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENJY2VTZXJ2ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBQjk5NjgxOERBM0MwMTAwMTg3NzFFIC8qIFJU
Q0ljZVNlcnZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDSWNlU2VydmVyLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdBQkVGNkIxRDhBMUM1ODAwRjIxOTcyIC8q
IE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0FCRUY2RDFEOEExQzc2MDBGMjE5NzIgLyogTWVk
aWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwN0FGRjQyMDFFRkIxNDQ3MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUlPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QUZGNDIx
MUVGQjE0NDcwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCMDExM0UxMDMyMjQyMjAwRkJE
QzMzIC8qIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNTY2OCwxMCArMTU2NjIsNiBAQAogCQkJCTVFQTcyNUNEMUFDQUJD
RDkwMEVBRDE3QiAvKiBNZWRpYURldmljZXMuY3BwICovLAogCQkJCTVFQTcyNUNFMUFDQUJDRDkw
MEVBRDE3QiAvKiBNZWRpYURldmljZXMuaCAqLywKIAkJCQk1RUE3MjVDRjFBQ0FCQ0Q5MDBFQUQx
N0IgLyogTWVkaWFEZXZpY2VzLmlkbCAqLywKLQkJCQkwN0FCRUY2QjFEOEExQzU4MDBGMjE5NzIg
LyogTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmNwcCAqLywKLQkJCQkwN0FCRUY2RDFE
OEExQzc2MDBGMjE5NzIgLyogTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmggKi8sCi0J
CQkJMDczOTRFQzcxQkFCMkNDRDAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuY3BwICov
LAotCQkJCTA3Mzk0RUM5MUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0Lmgg
Ki8sCiAJCQkJMDcyMjFCNEMxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtLmNwcCAqLywK
IAkJCQkwNzIyMUI0RDE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW0uaCAqLywKIAkJCQkw
NzIyMUI0RTE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW0uaWRsICovLApAQCAtMzA2NjQs
OCArMzA2NTQsNiBAQAogCQkJCUNERjJCMDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2Ny
aXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNTE0NUI5MDFCM0ExQ0UwMDA2NjJCRjcgLyog
TWVkaWFEZXZpY2VJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RUE3MjVEMzFBQ0FCRDQ3MDBF
QUQxN0IgLyogTWVkaWFEZXZpY2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwN0FCRUY2RTFEOEEx
Qzc2MDBGMjE5NzIgLyogTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwNzM5NEVDQTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyMDVBQjgxMjM5MjkxMDAwQjE3MzgwIC8qIE1lZGlh
RG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENkYyNTJEMTNGNUVGMEUwMDY1MTY1RiAv
KiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RkU5
OUREMTg4MDdBN0QwMDI1NjY0OCAvKiBNZWRpYUVsZW1lbnRTZXNzaW9uLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBkMzQwMzc2ZmYyOTA3
Yjg3MjkzNTY0NjQyODlkNDM0OTZkNDAwOTkxLi43ODM4NzhkZmY3ZTExYTEzMjczYjA4NmE2MDJl
Mzc3YjYxZDQ3YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VzZXJNZWRpYVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEyMSwyOCArMTIyLDMzIEBA
IHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVEZXZp
Y2VzQ2hhbmdlZCgpCiAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSB8fCAhbV9w
YWdlLm1haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGhhbmRsZXIgPSBb
dGhpc10oUGVybWlzc2lvbkluZm8gcGVybWlzc2lvbkluZm8pIG11dGFibGUgewotICAgICAgICBz
d2l0Y2ggKHBlcm1pc3Npb25JbmZvKSB7Ci0gICAgICAgIGNhc2UgUGVybWlzc2lvbkluZm86OkVy
cm9yOgotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpV
bmtub3duOgotICAgICAgICAgICAgaWYgKG1fZ3JhbnRlZFJlcXVlc3RzLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQ
ZXJtaXNzaW9uSW5mbzo6R3JhbnRlZDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpD
YXB0dXJlRGV2aWNlc0NoYW5nZWQoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKLSAgICB9OwotCiAgICAg
YXV0byBvcmlnaW4gPSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fcGFnZS5tYWlu
RnJhbWUoKS0+dXJsKCkpOwotICAgIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKG1fcGFnZS5t
YWluRnJhbWUoKS0+ZnJhbWVJRCgpLCBvcmlnaW4uZ2V0KCksIFdURk1vdmUob3JpZ2luKSwgV1RG
TW92ZShoYW5kbGVyKSk7CisgICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8obV9wYWdlLm1h
aW5GcmFtZSgpLT5mcmFtZUlEKCksIG9yaWdpbi5nZXQoKSwgV1RGTW92ZShvcmlnaW4pLCBbdGhp
c10oUGVybWlzc2lvbkluZm8gcGVybWlzc2lvbkluZm8pIHsKKyAgICAgICAgY2FwdHVyZURldmlj
ZXNDaGFuZ2VkKHBlcm1pc3Npb25JbmZvKTsKKyAgICB9KTsKICNlbmRpZgogfQogCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZChQZXJtaXNzaW9uSW5mbyBwZXJtaXNzaW9uSW5m
bykKK3sKKyAgICBzd2l0Y2ggKHBlcm1pc3Npb25JbmZvKSB7CisgICAgY2FzZSBQZXJtaXNzaW9u
SW5mbzo6RXJyb3I6CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpV
bmtub3duOgorICAgICAgICBpZiAobV9ncmFudGVkUmVxdWVzdHMuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpH
cmFudGVkOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmlu
Z1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKSwgbV9wYWdlLnBhZ2VJ
RCgpKTsKK30KKyNlbmRpZgorCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpjbGVhckNhY2hlZFN0YXRlKCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOwpAQCAtMjI2LDggKzIzMiw5IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVkaWFQZXJtCiAgICAgaWYg
KHJlcXVlc3QucmVxdWVzdFR5cGUoKSA9PSBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJN
ZWRpYSkKICAgICAgICAgbV9ncmFudGVkUmVxdWVzdHMuYXBwZW5kKG1ha2VSZWYocmVxdWVzdCkp
OwogCisgICAgLy8gRklYTUU6IG1faGFzRmlsdGVyZWREZXZpY2VMaXN0IHdpbGwgdHJpZ2dlciBv
bmRldmljZWNoYW5nZSBldmVudHMgZm9yIHZhcmlvdXMgZG9jdW1lbnRzIGZyb20gZGlmZmVyZW50
IG9yaWdpbnMuCiAgICAgaWYgKG1faGFzRmlsdGVyZWREZXZpY2VMaXN0KQotICAgICAgICBjYXB0
dXJlRGV2aWNlc0NoYW5nZWQoKTsKKyAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKFBlcm1p
c3Npb25JbmZvOjpHcmFudGVkKTsKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNlTGlzdCA9IGZhbHNl
OwogCiAgICAgKyttX2hhc1BlbmRpbmdDYXB0dXJlOwpAQCAtNjA0LDEyICs2MTEsMTUgQEAgVmVj
dG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Ojpjb21wdXRlRmlsdGVyZWREZXYKIH0KICNlbmRpZgogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsIHVzZXJNZWRpYUlEKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwog
Ci0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCB1c2VyTWVkaWFJRCwgZnJhbWVJ
RCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5jb3B5
UmVmKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmNv
cHlSZWYoKV0oUGVybWlzc2lvbkluZm8gcGVybWlzc2lvbkluZm8pIG11dGFibGUgeworICAgIGF1
dG8gY2FsbGJhY2sgPSBbdGhpcywgZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4gPSB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5jb3B5UmVmKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4g
PSB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmNvcHlSZWYoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oUGVybWlzc2lvbkluZm8gcGVybWlzc2lvbkluZm8p
IG11dGFibGUgeworICAgICAgICBhdXRvIGNhbGxDb21wbGV0aW9uSGFuZGxlciA9IG1ha2VTY29w
ZUV4aXQoWyZjb21wbGV0aW9uSGFuZGxlcl0geworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoeyB9LCB7IH0pOworICAgICAgICB9KTsKIAogICAgICAgICBib29sIG9yaWdpbkhhc1BlcnNp
c3RlbnRBY2Nlc3M7CiAgICAgICAgIHN3aXRjaCAocGVybWlzc2lvbkluZm8pIHsKQEAgLTYzMSw3
ICs2NDEsMTMgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDYKIAogICAgICAgICBhdXRvJiByZXF1
ZXN0T3JpZ2luID0gdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uZ2V0KCk7CiAgICAgICAgIGF1dG8m
IHRvcE9yaWdpbiA9IHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCk7Ci0gICAgICAgIG1fcGFn
ZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoKS5kZXZpY2VJZEhh
c2hTYWx0Rm9yT3JpZ2luKHJlcXVlc3RPcmlnaW4sIHRvcE9yaWdpbiwgW3RoaXMsIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCByZXF1ZXN0SUQsIGZyYW1lSUQsIHVzZXJNZWRpYUlELCB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiA9IFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4p
LCB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0gV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KSwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2Vzc10gKFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQp
IHsKKworICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRsZXIucmVsZWFzZSgpOworICAgICAgICBt
X3BhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2aWNl
SWRIYXNoU2FsdEZvck9yaWdpbihyZXF1ZXN0T3JpZ2luLCB0b3BPcmlnaW4sIFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVxdWVzdElELCBmcmFtZUlELCB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiA9IFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCB0b3BMZXZl
bERvY3VtZW50T3JpZ2luID0gV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgb3JpZ2lu
SGFzUGVyc2lzdGVudEFjY2VzcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oU3RyaW5nJiYgZGV2aWNlSURIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAgICAg
ICAgICBhdXRvIGNhbGxDb21wbGV0aW9uSGFuZGxlciA9IG1ha2VTY29wZUV4aXQoWyZjb21wbGV0
aW9uSGFuZGxlcl0geworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgeyB9
KTsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFtX3Bl
bmRpbmdEZXZpY2VSZXF1ZXN0cy5yZW1vdmUocmVxdWVzdElEKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKQEAgLTY0MiwxNiArNjU4LDE3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2CiAK
ICAgICAgICAgICAgIGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzID0gb3JpZ2luSGFzUGVyc2lzdGVu
dEFjY2VzcyB8fCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKGZyYW1lSUQsIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKTsKIAot
ICAgICAgICAgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRD
b21wbGV0ZU1lZGlhRGV2aWNlRW51bWVyYXRpb24geyB1c2VyTWVkaWFJRCwgY29tcHV0ZUZpbHRl
cmVkRGV2aWNlTGlzdChyZXZlYWxJZHNBbmRMYWJlbHMsIGRldmljZUlESGFzaFNhbHQpLCBkZXZp
Y2VJREhhc2hTYWx0LCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzIH0sIG1fcGFnZS5wYWdlSUQo
KSk7CisgICAgICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRsZXIucmVsZWFzZSgpOworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChyZXZlYWxJ
ZHNBbmRMYWJlbHMsIGRldmljZUlESGFzaFNhbHQpLCBkZXZpY2VJREhhc2hTYWx0KTsKICAgICAg
ICAgfSk7CiAgICAgfTsKIAotICAgIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKGZyYW1lSUQs
IFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgZ2V0VXNlck1lZGlh
UGVybWlzc2lvbkluZm8oZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiks
IFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoY2FsbGJhY2spKTsKICNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsKICAgICBVTlVTRURfUEFSQU0oZnJh
bWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKTsKICAgICBV
TlVTRURfUEFSQU0odG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoeyB9LCB7IH0pOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
CmluZGV4IGY1MDVlMjgwYzQ0MjkwYTgwM2RiZGI2OGM5OGVlYTYzMGIxYzliYjYuLjg0Mzk3MjQ0
MTVkZWNkYTk0MDVlMDYzYWE2YWZhN2Q1ZDgwYzFlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBncmFudFJlcXVl
c3QoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwogICAgIHZvaWQgZGVueVJlcXVl
c3QoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBp
bnZhbGlkQ29uc3RyYWludCA9IHsgfSk7CiAKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICB2b2lk
IGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiwgY29uc3Qg
U3RyaW5nJik+JiYpOwogCiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgpOwogICAgIHZvaWQgc2NoZWR1
bGVOZXh0UmVqZWN0aW9uKCk7CkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0ZToKIAogICAgIHVz
aW5nIFBlcm1pc3Npb25JbmZvID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlBlcm1p
c3Npb25JbmZvOwogICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3Qg
ZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYpOworICAgIHZv
aWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKFBlcm1pc3Npb25JbmZvKTsKIAogICAgIFJlcXVlc3RB
Y3Rpb24gZ2V0UmVxdWVzdEFjdGlvbihjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDMy
NjMxYzQ1MGViMjZkNzU0NTQ2OGI3MjZjMTVhNDQ5ODVjOTk4YTkuLjE4MjJmMGJlYTYyNDAwMjFh
NzM5ODBhNzFhMDUyZDk4Nzg1OTQxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNzQ2MSwxMyArNzQ2MSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWlu
dAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNG
b3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRh
dGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
VmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3By
b2Nlc3MsIGZyYW1lKTsKIAotICAgIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigp
LmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVzZXJNZWRpYUlELCBmcmFtZUlELCB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSwgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgdXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCkuZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoZnJhbWVJRCwgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCksIHRvcExldmVsRG9jdW1l
bnRPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsKICAgICBVTlVTRURfUEFS
QU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGI0
MzgzY2FmODhmMzcyNzJjZjk0NzdiNjQwMzljZTllZjVjOTQ5YTEuLjJmMDE5ZDM1N2YxMWJiYjEw
ZjNjODU0MjhjNzZkNTdjYjM5MWUzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC0xNzE1LDcgKzE3MTUsNyBAQCBwcml2YXRlOgogICAgIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKTsKICNlbmRpZgogICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKLSAgICB2b2lkIGVudW1l
cmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luRGF0YSk7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4m
Jik7CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpOwogCiAgICAgdm9p
ZCBydW5Nb2RhbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IGVjYWQ5NWU0NmI1NDNhYzkxNTA0MGU2MGVmNDA0YmVkNjQyNjcx
NjEuLmMzMjFhZmJjZTczZjI4ZjQ4MjI5MGEyNjRjZjQzZTZkN2E1MWE1ZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4Niw3
ICsyODYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCiAgICAgUmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVl
c3QgcmVxdWVzdCkKLSAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpCisg
ICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50
aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbklkZW50aWZpZXIpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZGV2
aWNlcywgU3RyaW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSBBc3luYwogICAgIEJl
Z2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDg2ODI4ODJhMGI1OGM2OWIy
NmJmNWIyNjFiYWY0ZjExM2Q1ODQyMjYuLjYyNzdlMzFiMjc5YzhjNTQ3OGMwZTlkNDBiZGQ5ZjZk
MDUyNDc5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwCkBAIC0xNTksNDUgKzE1OSwxNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHJlcXVlcwogICAg
IHJlcXVlc3QtPmRlbnkocmVhc29uLCBXVEZNb3ZlKGludmFsaWRDb25zdHJhaW50KSk7CiB9CiAK
LXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjplbnVtZXJhdGVNZWRpYURl
dmljZXMoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhEb2N1
bWVudCYgZG9jdW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1
cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
YXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4ocmVxdWVzdC5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOwotICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+ZnJh
bWUoKSA6IG51bGxwdHI7Ci0KKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAg
ICAgaWYgKCFmcmFtZSkgewotICAgICAgICByZXF1ZXN0LnNldERldmljZUluZm8oVmVjdG9yPENh
cHR1cmVEZXZpY2U+KCksIGVtcHR5U3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoeyB9LCBlbXB0eVN0cmluZygpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7Ci0gICAgbV9pZFRv
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0TWFwLmFkZChyZXF1ZXN0SUQsICZyZXF1ZXN0
KTsKLSAgICBtX21lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdFRvSURNYXAuYWRkKCZyZXF1
ZXN0LCByZXF1ZXN0SUQpOwotCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoKmZyYW1lKTsKLSAgICBBU1NFUlQod2ViRnJhbWUpOwotCi0gICAgU2VjdXJp
dHlPcmlnaW4qIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSByZXF1ZXN0LnRvcExldmVsRG9jdW1l
bnRPcmlnaW4oKTsKLSAgICBBU1NFUlQodG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7Ci0gICAgbV9w
YWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCByZXF1ZXN0LnVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luKCktPmRhdGEoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi0+ZGF0YSgpKSk7
Ci19Ci0KLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxNZWRp
YURldmljZXNFbnVtZXJhdGlvbihXZWJDb3JlOjpNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3QmIHJlcXVlc3QpCi17Ci0gICAgdWludDY0X3QgcmVxdWVzdElEID0gbV9tZWRpYURldmljZXNF
bnVtZXJhdGlvblJlcXVlc3RUb0lETWFwLnRha2UoJnJlcXVlc3QpOwotICAgIGlmICghcmVxdWVz
dElEKQotICAgICAgICByZXR1cm47Ci0gICAgcmVxdWVzdC5zZXREZXZpY2VJbmZvKFZlY3RvcjxD
YXB0dXJlRGV2aWNlPigpLCBlbXB0eVN0cmluZygpLCBmYWxzZSk7Ci0gICAgbV9pZFRvTWVkaWFE
ZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOwotfQotCi12b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkQ29tcGxldGVNZWRpYURldmlj
ZUVudW1lcmF0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiBkZXZpY2VMaXN0LCBTdHJpbmcmJiBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCwg
Ym9vbCBoYXNQZXJzaXN0ZW50QWNjZXNzKQotewotICAgIFJlZlB0cjxNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3Q+IHJlcXVlc3QgPSBtX2lkVG9NZWRpYURldmljZXNFbnVtZXJhdGlvblJl
cXVlc3RNYXAudGFrZShyZXF1ZXN0SUQpOwotICAgIGlmICghcmVxdWVzdCkKLSAgICAgICAgcmV0
dXJuOwotICAgIG1fbWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0VG9JRE1hcC5yZW1vdmUo
cmVxdWVzdCk7Ci0gICAgCi0gICAgcmVxdWVzdC0+c2V0RGV2aWNlSW5mbyhkZXZpY2VMaXN0LCBX
VEZNb3ZlKG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSwgaGFzUGVyc2lzdGVudEFjY2Vz
cyk7CisgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUgbWVzc2FnZSB7IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSktPmZyYW1lSUQo
KSwgZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCksIGRvY3VtZW50LnRvcE9yaWdpbigp
LmRhdGEoKSB9OworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkobWVzc2FnZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiBVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5n
ZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjphZGREZXZp
Y2VDaGFuZ2VPYnNlcnZlcihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAppbmRleCBkN2M1YzY4MzQ0
YjcyNzM4ZDk0OTdkZjAxMmNhMzc2YmI4NDE4OGRhLi5iZGJhM2Q3MmQyODQ0MTQyNWM0NWNiOWMx
NTI1YTJiNGFjMGFjMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVk
aWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDYW5TdGFydExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYUNsaWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CkBAIC00NSw5ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVzZXJNZWRp
YUFjY2Vzc1dhc0dyYW50ZWQodWludDY0X3QsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiBhdWRp
b0RldmljZSwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlLCBTdHJpbmcmJiBk
ZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3QsIFdlYkNvcmU6OlVzZXJN
ZWRpYVJlcXVlc3Q6Ok1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBTdHJpbmcmJik7CiAKLSAgICB2
b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlcyhXZWJDb3JlOjpNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QmKTsKLSAgICB2b2lkIGNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uKFdlYkNv
cmU6Ok1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgZGlkQ29tcGxl
dGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVpbnQ2NF90LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
Q2FwdHVyZURldmljZT4mIGRldmljZUxpc3QsIFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNo
U2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKTsKKyAgICB2b2lkIGVudW1lcmF0
ZU1lZGlhRGV2aWNlcyhXZWJDb3JlOjpEb2N1bWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYp
OwogCiAgICAgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRv
a2VuIGFkZERldmljZUNoYW5nZU9ic2VydmVyKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHJlbW92ZURldmljZUNoYW5nZU9ic2VydmVyKFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVu
dDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbik7CkBAIC02OCw5ICs2NSw2IEBAIHByaXZhdGU6
CiAgICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4sIHVpbnQ2NF90
PiBtX3VzZXJNZWRpYVJlcXVlc3RUb0lETWFwOwogICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6
OkRvY3VtZW50PiwgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pj4+IG1f
YmxvY2tlZFVzZXJNZWRpYVJlcXVlc3RzOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PFdlYkNvcmU6Ok1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4+IG1faWRUb01lZGlhRGV2
aWNlc0VudW1lcmF0aW9uUmVxdWVzdE1hcDsKLSAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpN
ZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+LCB1aW50NjRfdD4gbV9tZWRpYURldmljZXNF
bnVtZXJhdGlvblJlcXVlc3RUb0lETWFwOwotCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpVc2VyTWVk
aWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4sIFdURjo6RnVuY3Rpb248dm9pZCgp
Pj4gbV9kZXZpY2VDaGFuZ2VPYnNlcnZlck1hcDsKICAgICBib29sIG1fbW9uaXRvcmluZ0Rldmlj
ZUNoYW5nZSB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAppbmRleCA4
ZjY2N2ZjYjNkZmQxMjc5Njk4ZGFjZGQ1YjgxN2M2ZDA4ODYwMTBmLi4zNWFlN2QyOWU1ODU0ZmIy
NjczOGYxNWUyYWUxMTBkOTA2NGIxOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApA
QCAtNTAsMTQgKzUwLDkgQEAgdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFVzZXJNZWRp
YUFjY2Vzc1JlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCkKICAgICBtX3BhZ2UudXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsVXNlck1lZGlhUmVxdWVzdChy
ZXF1ZXN0KTsKIH0KIAotdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmVudW1lcmF0ZU1lZGlhRGV2
aWNlcyhNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIFdlYlVz
ZXJNZWRpYUNsaWVudDo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKERvY3VtZW50JiBkb2N1bWVudCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25z
dCBTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3BhZ2UudXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuZW51bWVyYXRlTWVkaWFEZXZpY2VzKHJlcXVlc3Qp
OwotfQotCi12b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsTWVkaWFEZXZpY2VzRW51bWVy
YXRpb25SZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsK
LSAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVk
aWFEZXZpY2VzRW51bWVyYXRpb24ocmVxdWVzdCk7CisgICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigpLmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhkb2N1bWVudCwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiBXZWJVc2VyTWVkaWFDbGllbnQ6OkRldmlj
ZUNoYW5nZU9ic2VydmVyVG9rZW4gV2ViVXNlck1lZGlhQ2xpZW50OjphZGREZXZpY2VDaGFuZ2VP
YnNlcnZlcihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuaAppbmRleCAxMDkzMDQ1M2NlNzk3ZWRkOTBkZTc2ZjAzNTRiOWExZDQwNmYyZTZlLi5k
ZWNmN2VmMjQzMWVhZmE3ODYyNDBiNGVlNzk4ZjI2ZmEwZTVmODZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRp
YUNsaWVudC5oCkBAIC0zOSw4ICszOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0VXNl
ck1lZGlhQWNjZXNzKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QmKSBvdmVycmlkZTsKICAgICB2
b2lkIGNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVz
dCYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXMoV2ViQ29yZTo6
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0JikgZmluYWw7Ci0gICAgdm9pZCBjYW5jZWxN
ZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoV2ViQ29yZTo6TWVkaWFEZXZpY2VzRW51bWVy
YXRpb25SZXF1ZXN0JikgZmluYWw7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXMoV2Vi
Q29yZTo6RG9jdW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmKSBmaW5hbDsKIAogICAgIERl
dmljZUNoYW5nZU9ic2VydmVyVG9rZW4gYWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlRGV2aWNlQ2hhbmdlT2JzZXJ2
ZXIoRGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDEzMzY1NzBkOTNhYTUxMTA2OTc4NTYx
MTcwMjYwODkzYjhhM2NkYjQuLmI1MjFmYzY0MWY4MGNmM2RmYjY1N2IyODgyZWZlNGMxYjI4MjUz
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC00MjAwLDExICs0MjAwLDYgQEAgdm9pZCBXZWJQYWdlOjp1c2VyTWVkaWFBY2Nlc3NXYXNEZW5p
ZWQodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNvbiwgU3QKICAgICBtX3VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci0+dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVz
ZXJNZWRpYUlELCBzdGF0aWNfY2FzdDxVc2VyTWVkaWFSZXF1ZXN0OjpNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbj4ocmVhc29uKSwgV1RGTW92ZShpbnZhbGlkQ29uc3RyYWludCkpOwogfQogCi12b2lk
IFdlYlBhZ2U6OmRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVtZXJhdGlvbih1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VzLCBTdHJpbmcmJiBk
ZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJvb2wgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcykK
LXsKLSAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci0+ZGlkQ29tcGxldGVN
ZWRpYURldmljZUVudW1lcmF0aW9uKHVzZXJNZWRpYUlELCBkZXZpY2VzLCBXVEZNb3ZlKGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCksIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpOwotfQotCiB2
b2lkIFdlYlBhZ2U6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiB7CiAgICAgbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXItPmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDcwOTkyNzAxNDI0M2Mx
MTI4ZmY2ZmFjOWU0ZWE5MmRkNjUxMjJjNmYuLjE2ZTgyMzM0YTY3Yzk4MDg5NzQ0YjJhZDc3MzBm
ZTVjYjZlMTFlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTE0ODIsNyArMTQ4Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nl
c3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiYgYXVkaW9EZXZpY2VVSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZVVJ
RCwgU3RyaW5nJiYgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0
X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNvbiwgU3RyaW5nJiYgaW52YWxpZENvbnN0cmFp
bnQpOwogCi0gICAgdm9pZCBkaWRDb21wbGV0ZU1lZGlhRGV2aWNlRW51bWVyYXRpb24odWludDY0
X3QgdXNlck1lZGlhSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYgZGV2
aWNlcywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9yaWdpbkhhc1Bl
cnNpc3RlbnRBY2Nlc3MpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IGE1MmUyNTFkMjVkYTZkODg3MWIyNzJkNzE0MjI5MTMyOWM1ZjI0MzguLjZmMmM3MjRmYWU4
MDRhNjcwYzFjODQ0MGUwMTQxNTE5MjM1OTM2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzU5LDcgKzM1OSw2
IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgIyBNZWRpYVN0ZWFtCiAgICAgVXNlck1l
ZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSBhdWRpb0RldmljZSwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSB2aWRlb0RldmljZSwg
U3RyaW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSAtPiAoKSBBc3luYwogICAgIFVz
ZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVh
c29uLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQpCi0gICAgRGlkQ29tcGxldGVNZWRpYURldmlj
ZUVudW1lcmF0aW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVy
ZURldmljZT4gZGV2aWNlcywgU3RyaW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBi
b29sIGhhc1BlcnNpc3RlbnRBY2Nlc3MpCiAgICAgQ2FwdHVyZURldmljZXNDaGFuZ2VkKCkKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMzJjMzZhMmQ3ZWViMDE1NmZkMzAyNmQwNTIzMDIyYjYyNjJmNTkwNC4u
NzhhNDI2MjhjZWJmYzhjNzk4ODBhZjYxMjFkYWQ0MTE3ZWNjZjM2NCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDE5LTA4LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBlbnVtZXJhdGVEZXZpY2VzIHNob3VsZCByZXR1cm4gdGhlIHNhbWUgSlMgb2JqZWN0
cyBpZiBjYWxsZWQgdHdpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTIuaHRtbDoK
KwogMjAxOS0wOC0xNCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV2ViQXV0aE5dIEVuYWJsZSBMb2NhbEF1dGhlbnRpY2F0b3IgZm9yIG1hY09TCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQt
Mi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50
LTIuaHRtbAppbmRleCBlNzgwZjExNTZmNjY3MGJiZWVkNDA1NmZmYmNjYmVhNGU4NGMzY2Y0Li5k
ZWZlNDE4ZTBkODE4ZmE2YzlkNjE3NGExZDBlNWZhMWQ4NzNkYjE1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLmh0bWwK
QEAgLTI3LDMzICsyNywzOSBAQAogICAgICAgICAgICAgLnRoZW4ocyA9PiBzdHJlYW0gPSBzKQog
CiAgICAgICAgIGxldCBkZXZpY2VzID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVt
ZXJhdGVEZXZpY2VzKCk7CisgICAgICAgIGxldCBkZXZpY2VzMiA9IGF3YWl0IG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOwogCiAgICAgICAgIGFzc2VydF90cnVlKCEh
ZGV2aWNlcy5sZW5ndGgsICJjaGVjayB0aGVyZSBhcmUgc29tZSBkZXZpY2VzIik7CisgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoZGV2aWNlcywgZGV2aWNlczIpOwogCiAgICAgICAgIHRlc3RS
dW5uZXIuY2xlYXJNb2NrTWVkaWFEZXZpY2VzKCk7Ci0KKyAgICAgICAgYXdhaXQgbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5vbmRldmljZWNoYW5nZSA9IHJlc29sdmU7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgp
ID0+IHsKKyAgICAgICAgICAgICAgICByZWplY3QoImV2ZW50IDEgdG9vayB0b28gbG9uZyIpOwor
ICAgICAgICAgICAgfSwgNTAwMCk7CisgICAgICAgIH0pOwogICAgICAgICBkZXZpY2VzID0gYXdh
aXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CiAgICAgICAgIGFz
c2VydF9mYWxzZSghIWRldmljZXMubGVuZ3RoLCAiY2hlY2sgdGhlcmUgYXJlIG5vIG1vcmUgZGV2
aWNlcyIpOwogCisgICAgICAgIHRlc3RSdW5uZXIuYWRkTW9ja0NhbWVyYURldmljZSgiaWQxIiwg
Im15IGNhbWVyYSIpOwogICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CiAgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLm9uZGV2aWNlY2hhbmdl
ID0gcmVzb2x2ZTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICAgICAg
ICAgIGNvbnNvbGUubG9nKCJldmVudCAxIHRvb2sgdG9vIGxvbmciKTsKLSAgICAgICAgICAgICAg
ICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgcmVqZWN0KCJldmVudCAyIHRvb2sgdG9vIGxv
bmciKTsKICAgICAgICAgICAgIH0sIDUwMDApOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRN
b2NrQ2FtZXJhRGV2aWNlKCJpZDEiLCAibXkgY2FtZXJhIik7CiAgICAgICAgIH0pOworCiAgICAg
ICAgIGRldmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmlj
ZXMoKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXZpY2VzWzBdLmtpbmQsICJ2aWRlb2lucHV0
Iik7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoZGV2aWNlc1swXS5sYWJlbCwgIm15IGNhbWVyYSIp
OwogCisgICAgICAgIHRlc3RSdW5uZXIuYWRkTW9ja01pY3JvcGhvbmVEZXZpY2UoImlkMiIsICJt
eSBtaWMiKTsKICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
ewogICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5vbmRldmljZWNoYW5nZSA9IHJl
c29sdmU7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgICBj
b25zb2xlLmxvZygiZXZlbnQgMiB0b29rIHRvbyBsb25nIik7Ci0gICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICAgICAgICAgIHJlamVjdCgiZXZlbnQgMyB0b29rIHRvbyBsb25nIik7
CiAgICAgICAgICAgICB9LCA1MDAwKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkTW9ja01p
Y3JvcGhvbmVEZXZpY2UoImlkMiIsICJteSBtaWMiKTsKICAgICAgICAgfSk7CiAgICAgICAgIGRl
dmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTsK
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXZpY2VzWzBdLmtpbmQsICJhdWRpb2lucHV0Iik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376407</attachid>
            <date>2019-08-15 12:35:16 -0700</date>
            <delta_ts>2019-08-15 14:15:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200767-20190815213514.patch</filename>
            <type>text/plain</type>
            <size>73297</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRlOGMzNjNhNTdkNGVh
Yzc2ZWZiYzI1NGQxNjBmM2EzYmJlMDY0OS4uNDdjMTQ3NTA0YmEwZjhmMjljNzBmMjllYmRjMWJj
NDUzNTllZjJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA4LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2Vz
IHNob3VsZCByZXR1cm4gdGhlIHNhbWUgSlMgb2JqZWN0cyBpZiBjYWxsZWQgdHdpY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgTWVkaWFEZXZp
Y2VzIHN0b3JlIHRoZSBsYXN0IGxpc3Qgb2YgZW51bWVyYXRlZCBNZWRpYURldmljZUluZm8gb2Jq
ZWN0cy4KKyAgICAgICAgUmV1c2UgdGhlbSBmb3IgdGhlIG5leHQgZW51bWVyYXRlRGV2aWNlcyBj
YWxsIGlmIG5lZWRlZC4KKyAgICAgICAgSW4gY2FzZSBvZiBhIGRldmljZSBjaGFuZ2UgZXZlbnQs
IG1ha2Ugc3VyZSB0aGUgbmV4dCBlbnVtZXJhdGVEZXZpY2VzIGNhbGwgd2lsbCBmZXRjaCB0aGUg
bmV3IGxpc3Qgb2YgZGV2aWNlcy4KKyAgICAgICAgV2hlbiBjb25zdHJ1Y3RpbmcgdGhlIG5ldyBs
aXN0IG9mIGRldmljZXMsIHJldXNlIGFueSBwcmVleGlzdGluZyBkZXZpY2UgaW4gdGhlIG9sZCBs
aXN0IGFzIHNwZWNpZmllZCBieQorICAgICAgICBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFj
YXB0dXJlLW1haW4vI2RvbS1tZWRpYWRldmljZXMtZW51bWVyYXRlZGV2aWNlcy4KKworICAgICAg
ICBVcGRhdGUgZW51bWVyYXRlRGV2aWNlcyB0byB1c2UgYSBjb21wbGV0aW9uIGhhbmRsZXIuCisg
ICAgICAgIFJlbW92ZSBNZWRpYURldmljZXNSZXF1ZXN0IGFuZCBNZWRpYURldmljZXNFbnVtZXJh
dGlvblJlcXVlc3QuCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0IGFuZCBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6TWVkaWFEZXZpY2VJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmlj
ZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OnN0b3Ap
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmVudW1lcmF0ZURldmljZXMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpsaXN0ZW5Gb3JEZXZpY2VDaGFuZ2VzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Lmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
c1JlcXVlc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNlbmRlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGll
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBbGxvd2VkVG9Vc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6VXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdldFVzZXJNZWRpYSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyTWVkaWFDb250cm9sbGVyOjplbnVtZXJhdGVNZWRpYURldmljZXMpOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQWx3YXlzIGNyZWF0ZSBhIERvY3VtZW50IHdpdGggYSB2YWxpZCBTZXNz
aW9uSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZDE0ZGMzOTEzNTllMTM5NGY2MTdiMTdhYjc2M2I5MjE4ZWYwMmQ4
OS4uODQ2Yzk1MmRiZDUwNzUxNWI5YjZmZjA2ODM1MGIzYmQwNDY3NDI0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAxOS0wOC0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQgcmV0dXJuIHRoZSBzYW1lIEpT
IG9iamVjdHMgaWYgY2FsbGVkIHR3aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgY29kZSBhcyBlbnVtZXJhdGUgZGV2aWNlIHJlcXVlc3Qg
aXMgbm93IGdvbmUuCisgICAgICAgIE1ha2UgdXNlIG9mIGFzeW5jIElQQyB0byBzaW1wbGlmeSBj
b2RlIHNpbmNlIHdlIGFyZSBub3cgcGFzc2luZyBhIGNvbXBsZXRpb24gaGFuZGxlciBkaXJlY3Rs
eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZmluaXNoR3JhbnRpbmdSZXF1
ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjplbnVtZXJhdGVN
ZWRpYURldmljZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTktMDgtMTUgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBXS1VJRGVs
ZWdhdGUncyB3ZWJWaWV3OmNvbnRleHRNZW51RGlkRW5kRm9yRWxlbWVudDogc2hvdWxkIGJlIGNh
bGxlZCB3aGVuIGNvbnRleHQgbWVudXMgZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5jcHAKaW5kZXggZmM5YWE0NmNjNGQ5
OGRkZGY2ODIzNmNkNjNmNDExMjc4YjBlZjczZi4uYzNkYWNhMWNiMjQ1OGU1YjhmOWRkOTgzZTA0
NmU4Yzc0Yjk3YWU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxOCArMzQsMTcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFEZXZpY2VJbmZvKTsK
IAotaW5saW5lIE1lZGlhRGV2aWNlSW5mbzo6TWVkaWFEZXZpY2VJbmZvKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgZGV2
aWNlSWQsIGNvbnN0IFN0cmluZyYgZ3JvdXBJZCwgS2luZCBraW5kKQotICAgIDogQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIoY29udGV4dCkKLSAgICAsIG1fbGFiZWwobGFiZWwpCi0gICAgLCBt
X2RldmljZUlkKGRldmljZUlkKQotICAgICwgbV9ncm91cElkKGdyb3VwSWQpCi0gICAgLCBtX2tp
bmQoa2luZCkKK1JlZjxNZWRpYURldmljZUluZm8+IE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKGNv
bnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWQsIGNvbnN0IFN0cmluZyYg
Z3JvdXBJZCwgS2luZCBraW5kKQogeworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhRGV2
aWNlSW5mbyhsYWJlbCwgZGV2aWNlSWQsIGdyb3VwSWQsIGtpbmQpKTsKIH0KIAotUmVmPE1lZGlh
RGV2aWNlSW5mbz4gTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCwg
Y29uc3QgU3RyaW5nJiBncm91cElkLCBLaW5kIGtpbmQpCitNZWRpYURldmljZUluZm86Ok1lZGlh
RGV2aWNlSW5mbyhjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGRldmljZUlkLCBj
b25zdCBTdHJpbmcmIGdyb3VwSWQsIEtpbmQga2luZCkKKyAgICA6IG1fbGFiZWwobGFiZWwpCisg
ICAgLCBtX2RldmljZUlkKGRldmljZUlkKQorICAgICwgbV9ncm91cElkKGdyb3VwSWQpCisgICAg
LCBtX2tpbmQoa2luZCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURldmljZUlu
Zm8oY29udGV4dCwgbGFiZWwsIGRldmljZUlkLCBncm91cElkLCBraW5kKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlSW5mby5oCmluZGV4IDY3YjE0NzA0OWRmZGZiMWM0YWIxNDc1ZDk5
YzA0NWRiYTBlYzZkZjAuLjNjOTI2YTkxYWM0NmFiYzY5NzJjOTlmNzUwNjM4ODc1NmEwZDE3NjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZUluZm8uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMywxMiArMzMsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBNZWRpYURldmljZUluZm8gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYURldmljZUlu
Zm8+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyIHsKK2NsYXNzIE1lZGlhRGV2aWNlSW5mbyBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVk
PE1lZGlhRGV2aWNlSW5mbz4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoTWVkaWFEZXZpY2VJbmZvKTsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNz
IEtpbmQgeyBBdWRpb2lucHV0LCBBdWRpb291dHB1dCwgVmlkZW9pbnB1dCB9OwogCi0gICAgc3Rh
dGljIFJlZjxNZWRpYURldmljZUluZm8+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgS2luZCk7CisgICAg
c3RhdGljIFJlZjxNZWRpYURldmljZUluZm8+IGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBLaW5kKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbGFiZWwo
KSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSWQ7IH0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgog
ICAgIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQogCiBwcml2YXRlOgotICAg
IE1lZGlhRGV2aWNlSW5mbyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgS2luZCk7CisgICAgTWVkaWFEZXZpY2VJbmZv
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEtpbmQpOwogCiAg
ICAgY29uc3QgU3RyaW5nIG1fbGFiZWw7CiAgICAgY29uc3QgU3RyaW5nIG1fZGV2aWNlSWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
SW5mby5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
SW5mby5pZGwKaW5kZXggZDJiMmM5ZmYyNjJlZTc4ZTE1OTIxODc0ZGViZjdiOTc5NDcwOWNiNC4u
OTYwMDFkY2U5Y2RlYjEwMTkzZTVkZmIzYjA2ODU5M2ZmMjUyMDliYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbApA
QCAtMjYsNiArMjYsNyBAQAogWwogICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKICAgICBK
U0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKIF0gaW50ZXJm
YWNlIE1lZGlhRGV2aWNlSW5mbyB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBk
ZXZpY2VJZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFEZXZpY2VLaW5kIGtpbmQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5j
cHAKaW5kZXggNGJkN2E5ZDdjY2I5OTNjYTExNGI5MWFlYmU3YWFjODliNWYzMDE5MC4uMWEwNWZk
ZjA3Y2E1ZTRmNThjZjExMWI4YzZiYzAxMGI2M2VlNGE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3
LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIk1lZGlhRGV2aWNlc1JlcXVlc3QuaCIKKyNpbmNs
dWRlICJKU01lZGlhRGV2aWNlSW5mby5oIgogI2luY2x1ZGUgIk1lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTYxLDYgKzYxLDExIEBAIGlu
bGluZSBNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhRGV2aWNlczo6RGlzcGxheUNh
cHR1cmVTdXJmYWNlVHlwZTo6V2luZG93KSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpXaW5kb3cpLCAiTWVkaWFE
ZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpXaW5kb3cgaXMgbm90IFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpXaW5kb3cgYXMgZXhwZWN0
ZWQiKTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFEZXZpY2Vz
OjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpBcHBsaWNhdGlvbikgPT0gc3RhdGljX2Nhc3Q8
c2l6ZV90PihSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6
QXBwbGljYXRpb24pLCAiTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpB
cHBsaWNhdGlvbiBpcyBub3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3Vy
ZmFjZVR5cGU6OkFwcGxpY2F0aW9uIGFzIGV4cGVjdGVkIik7CiAgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhRGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlw
ZTo6QnJvd3NlcikgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6QnJvd3NlciksICJNZWRpYURldmljZXM6OkRpc3Bs
YXlDYXB0dXJlU3VyZmFjZVR5cGU6OkJyb3dzZXIgaXMgbm90IFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpCcm93c2VyIGFzIGV4cGVjdGVkIik7CisKKyAg
ICBpZiAoYXV0byogY29udHJvbGxlciA9IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1l
bnQucGFnZSgpKSkgeworICAgICAgICBtX2NhbkFjY2Vzc0NhbWVyYSA9IGNvbnRyb2xsZXItPmNh
bkNhbGxHZXRVc2VyTWVkaWEoZG9jdW1lbnQsIHsgVXNlck1lZGlhQ29udHJvbGxlcjo6Q2FwdHVy
ZVR5cGU6OkNhbWVyYSB9KSA9PSBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nl
c3M6OkNhbkNhbGw7CisgICAgICAgIG1fY2FuQWNjZXNzTWljcm9waG9uZSA9IGNvbnRyb2xsZXIt
PmNhbkNhbGxHZXRVc2VyTWVkaWEoZG9jdW1lbnQsIHsgVXNlck1lZGlhQ29udHJvbGxlcjo6Q2Fw
dHVyZVR5cGU6Ok1pY3JvcGhvbmUgfSkgPT0gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1l
ZGlhQWNjZXNzOjpDYW5DYWxsOworICAgIH0KIH0KIAogTWVkaWFEZXZpY2VzOjp+TWVkaWFEZXZp
Y2VzKCkgPSBkZWZhdWx0OwpAQCAtNzMsNiArNzgsNyBAQCB2b2lkIE1lZGlhRGV2aWNlczo6c3Rv
cCgpCiAgICAgICAgIGlmIChkb2N1bWVudCAmJiBjb250cm9sbGVyKQogICAgICAgICAgICAgY29u
dHJvbGxlci0+cmVtb3ZlRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIobV9kZXZpY2VDaGFuZ2VUb2tlbik7
CiAgICAgfQorICAgIG1fZGV2aWNlcy5jbGVhcigpOwogfQogCiBSZWY8TWVkaWFEZXZpY2VzPiBN
ZWRpYURldmljZXM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC0xMjksMTIgKzEzNSw0
OSBAQCB2b2lkIE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxheU1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0
cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZQogICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAK
LXZvaWQgTWVkaWFEZXZpY2VzOjplbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0ZURldmljZXNQcm9t
aXNlJiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgTWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyhj
b25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCit7CisgICAgVmVjdG9yPFJl
ZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOworICAgIGZvciAoYXV0byYgbmV3RGV2aWNlIDog
bmV3RGV2aWNlcykgeworICAgICAgICBpZiAoIW1fY2FuQWNjZXNzTWljcm9waG9uZSAmJiBuZXdE
ZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFtX2NhbkFjY2Vzc0NhbWVyYSAmJiBu
ZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8gaW5kZXggPSBtX2RldmljZXMuZmlu
ZE1hdGNoaW5nKFsmbmV3RGV2aWNlXShhdXRvJiBvbGREZXZpY2UpIHsKKyAgICAgICAgICAgIHJl
dHVybiBvbGREZXZpY2UtPmRldmljZUlkKCkgPT0gbmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpOwor
ICAgICAgICB9KTsKKyAgICAgICAgaWYgKGluZGV4ICE9IG5vdEZvdW5kKSB7CisgICAgICAgICAg
ICBkZXZpY2VzLmFwcGVuZChtX2RldmljZXNbaW5kZXhdLmNvcHlSZWYoKSk7CisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gZGV2aWNlVHlwZSA9IG5ld0Rl
dmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSA/IE1l
ZGlhRGV2aWNlSW5mbzo6S2luZDo6QXVkaW9pbnB1dCA6IE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6
VmlkZW9pbnB1dDsKKyAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVh
dGUobmV3RGV2aWNlLmxhYmVsKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgbmV3RGV2aWNl
Lmdyb3VwSWQoKSwgZGV2aWNlVHlwZSkpOworICAgIH0KKyAgICBtX2RldmljZXMgPSBXVEZNb3Zl
KGRldmljZXMpOworfQorCit2b2lkIE1lZGlhRGV2aWNlczo6ZW51bWVyYXRlRGV2aWNlcyhFbnVt
ZXJhdGVEZXZpY2VzUHJvbWlzZSYmIHByb21pc2UpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSB0
aGlzLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAg
ICBNZWRpYURldmljZXNSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCBXVEZNb3ZlKHByb21pc2Up
KS0+c3RhcnQoKTsKKworICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBVc2VyTWVkaWFDb250cm9sbGVy
Ojpmcm9tKGRvY3VtZW50LT5wYWdlKCkpOworICAgIGlmICghY29udHJvbGxlciB8fCAoIW1fY2Fu
QWNjZXNzQ2FtZXJhICYmICFtX2NhbkFjY2Vzc01pY3JvcGhvbmUpKSB7CisgICAgICAgIHByb21p
c2UucmVzb2x2ZSh7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29udHJvbGxl
ci0+ZW51bWVyYXRlTWVkaWFEZXZpY2VzKCpkb2N1bWVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShjb25zdCBhdXRvJiBu
ZXdEZXZpY2VzLCBjb25zdCBhdXRvJiBkZXZpY2VJREhhc2hTYWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCBpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgdGhpcy0+ZG9jdW1lbnQoKS0+c2V0RGV2aWNlSURIYXNoU2FsdChkZXZp
Y2VJREhhc2hTYWx0KTsKKyAgICAgICAgcmVmcmVzaERldmljZXMobmV3RGV2aWNlcyk7CisgICAg
ICAgIHByb21pc2UucmVzb2x2ZShtX2RldmljZXMpOworICAgIH0pOwogfQogCiBNZWRpYVRyYWNr
U3VwcG9ydGVkQ29uc3RyYWludHMgTWVkaWFEZXZpY2VzOjpnZXRTdXBwb3J0ZWRDb25zdHJhaW50
cygpCkBAIC0xNTgsOCArMjAxLDEwIEBAIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cyBN
ZWRpYURldmljZXM6OmdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCkKIAogdm9pZCBNZWRpYURldmlj
ZXM6OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCgpCiB7Ci0gICAgaWYgKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKLSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5kZXZpY2VjaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7CisgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kZXZp
Y2VjaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7CiB9CiAKIGJvb2wgTWVkaWFEZXZpY2VzOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25z
dApAQCAtMTc3LDMzICsyMjIsMzAgQEAgYm9vbCBNZWRpYURldmljZXM6OmNhblN1c3BlbmRGb3JE
b2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE1l
ZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUs
IFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0
aW9ucyYgb3B0aW9ucykKK3ZvaWQgTWVkaWFEZXZpY2VzOjpsaXN0ZW5Gb3JEZXZpY2VDaGFuZ2Vz
KCkKIHsKLSAgICBpZiAoIW1fbGlzdGVuaW5nRm9yRGV2aWNlQ2hhbmdlcyAmJiBldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLmRldmljZWNoYW5nZUV2ZW50KSB7Ci0gICAgICAgIGF1dG8qIGRvY3Vt
ZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAgICAgICAgYXV0byogY29udHJvbGxlciA9IGRvY3Vt
ZW50ID8gVXNlck1lZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC0+cGFnZSgpKSA6IG51bGxw
dHI7Ci0gICAgICAgIGlmIChkb2N1bWVudCAmJiBjb250cm9sbGVyKSB7Ci0gICAgICAgICAgICBt
X2xpc3RlbmluZ0ZvckRldmljZUNoYW5nZXMgPSB0cnVlOworICAgIGlmIChtX2xpc3RlbmluZ0Zv
ckRldmljZUNoYW5nZXMgfHwgKCFtX2NhbkFjY2Vzc01pY3JvcGhvbmUgJiYgIW1fY2FuQWNjZXNz
TWljcm9waG9uZSkpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgbV9kZXZpY2VDaGFu
Z2VUb2tlbiA9IGNvbnRyb2xsZXItPmFkZERldmljZUNoYW5nZU9ic2VydmVyKFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oKSB7CisgICAgbV9saXN0ZW5pbmdGb3JEZXZpY2VD
aGFuZ2VzID0gdHJ1ZTsKIAotICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgbV9zY2hl
ZHVsZWRFdmVudFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgYXV0byogY29udHJv
bGxlciA9IGRvY3VtZW50ID8gVXNlck1lZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC0+cGFn
ZSgpKSA6IG51bGxwdHI7CisgICAgaWYgKCFjb250cm9sbGVyKQorICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgICAgICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAg
ICAgICAgICAgICAgYXV0byogY29udHJvbGxlciA9IGRvY3VtZW50ID8gVXNlck1lZGlhQ29udHJv
bGxlcjo6ZnJvbShkb2N1bWVudC0+cGFnZSgpKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAg
aWYgKCFjb250cm9sbGVyKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgbV9kZXZp
Y2VDaGFuZ2VUb2tlbiA9IGNvbnRyb2xsZXItPmFkZERldmljZUNoYW5nZU9ic2VydmVyKFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oKSB7CisgICAgICAgIGlmICghd2Vha1Ro
aXMgfHwgbV9zY2hlZHVsZWRFdmVudFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgICAgICAgICBib29sIGNhbkFjY2Vzc01pY3JvcGhvbmUgPSBjb250cm9s
bGVyLT5jYW5DYWxsR2V0VXNlck1lZGlhKCpkb2N1bWVudCwgeyBVc2VyTWVkaWFDb250cm9sbGVy
OjpDYXB0dXJlVHlwZTo6TWljcm9waG9uZSB9KSA9PSBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRV
c2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7Ci0gICAgICAgICAgICAgICAgYm9vbCBjYW5BY2Nlc3ND
YW1lcmEgPSBjb250cm9sbGVyLT5jYW5DYWxsR2V0VXNlck1lZGlhKCpkb2N1bWVudCwgeyBVc2Vy
TWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZTo6Q2FtZXJhIH0pID09IFVzZXJNZWRpYUNvbnRy
b2xsZXI6OkdldFVzZXJNZWRpYUFjY2Vzczo6Q2FuQ2FsbDsKLSAgICAgICAgICAgICAgICBpZiAo
IWNhbkFjY2Vzc01pY3JvcGhvbmUgJiYgIWNhbkFjY2Vzc0NhbWVyYSkKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBtX3NjaGVkdWxlZEV2ZW50VGltZXIuc3RhcnRPbmVTaG90
KFNlY29uZHMocmFuZG9tTnVtYmVyKCkgLyAyKSk7CisgICAgfSk7Cit9CiAKLSAgICAgICAgICAg
ICAgICBtX3NjaGVkdWxlZEV2ZW50VGltZXIuc3RhcnRPbmVTaG90KFNlY29uZHMocmFuZG9tTnVt
YmVyKCkgLyAyKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KK2Jvb2wgTWVk
aWFEZXZpY2VzOjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwg
UmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRp
b25zJiBvcHRpb25zKQoreworICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmlj
ZWNoYW5nZUV2ZW50KQorICAgICAgICBsaXN0ZW5Gb3JEZXZpY2VDaGFuZ2VzKCk7CiAKICAgICBy
ZXR1cm4gRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5
cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCmluZGV4IGRlM2RhMDhiZDBlYWE2
YWI2Y2ZjYTI1M2FmOWJjNzA2YjdhNDljMzUuLjUxY2QxYjRjZTliOTcyMTg4YjFiMTA3ZGM1OGE1
YjViMWY5NzlhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2
b2lkIGdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJikgY29u
c3Q7CiAgICAgdm9pZCBnZXREaXNwbGF5TWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQ
cm9taXNlJiYpIGNvbnN0OwotICAgIHZvaWQgZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZp
Y2VzUHJvbWlzZSYmKSBjb25zdDsKKyAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVyYXRl
RGV2aWNlc1Byb21pc2UmJik7CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdl
dFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhRGV2
aWNlcz46OnJlZjsKQEAgLTkxLDYgKzkxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxl
ZEV2ZW50VGltZXJGaXJlZCgpOwogICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9t
U3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExp
c3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwogCisgICAgdm9pZCByZWZyZXNoRGV2aWNlcyhjb25z
dCBWZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKKyAgICB2b2lkIGxpc3RlbkZvckRldmljZUNoYW5n
ZXMoKTsKKwogICAgIGZyaWVuZCBjbGFzcyBKU01lZGlhRGV2aWNlc093bmVyOwogCiAgICAgLy8g
QWN0aXZlRE9NT2JqZWN0CkBAIC0xMTAsNiArMTEzLDEwIEBAIHByaXZhdGU6CiAgICAgY29uc3Qg
RXZlbnROYW1lcyYgbV9ldmVudE5hbWVzOyAvLyBOZWVkIHRvIGNhY2hlIHRoaXMgc28gd2UgY2Fu
IHVzZSBpdCBmcm9tIEdDIHRocmVhZHMuCiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvckRldmljZUNo
YW5nZXMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaXNhYmxlR2V0RGlzcGxheU1lZGlhVXNlckdl
c3R1cmVDb25zdHJhaW50IHsgZmFsc2UgfTsKKworICAgIFZlY3RvcjxSZWY8TWVkaWFEZXZpY2VJ
bmZvPj4gbV9kZXZpY2VzOworICAgIGJvb2wgbV9jYW5BY2Nlc3NDYW1lcmEgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9jYW5BY2Nlc3NNaWNyb3Bob25lIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzUzZGY2Mzc5ODI4N2E0YTAzZmY4NDFiNWJk
ZDFlMTU1ZGM4NDZhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1l
cmF0aW9uUmVxdWVzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oIgotCi0j
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNp
bmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKLSNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotUmVmPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gTWVkaWFE
ZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChkb2N1bWVudCwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpKTsKLX0KLQotTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0
OjpNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICA6IENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZjb250ZXh0KQotICAgICwgbV9jb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKLXsKLX0KLQotTWVkaWFEZXZpY2VzRW51
bWVyYXRpb25SZXF1ZXN0Ojp+TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KCkgPSBkZWZh
dWx0OwotCi1TZWN1cml0eU9yaWdpbiogTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Ojp1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpIGNvbnN0Ci17Ci0gICAgaWYgKCFzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLX0KLQotU2VjdXJpdHlPcmln
aW4qIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6dG9wTGV2ZWxEb2N1bWVudE9yaWdp
bigpIGNvbnN0Ci17Ci0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuICZzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnRvcE9yaWdpbigpOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6
Y29udGV4dERlc3Ryb3llZCgpCi17Ci0gICAgLy8gQ2FsbGluZyBjYW5jZWwoKSBtYXkgZGVzdHJv
eSBvdXJzZWx2ZXMuCi0gICAgUmVmPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gcHJv
dGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAgICBjYW5jZWwoKTsKLSAgICBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgpOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdDo6c3RhcnQoKQotewotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOwotCi0gICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgYXV0byogY29udHJvbGxlciA9IFVzZXJNZWRp
YUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlh
RGV2aWNlcygqdGhpcyk7Ci19Ci0KLXZvaWQgTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0
OjpjYW5jZWwoKQotewotICAgIG1fY29tcGxldGlvbkhhbmRsZXIgPSBudWxscHRyOwotfQotCi12
b2lkIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6c2V0RGV2aWNlSW5mbyhjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mIGRldmljZUxpc3QsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRl
bnRpZmllckhhc2hTYWx0LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpCi17Ci0gICAg
aWYgKG1fY29tcGxldGlvbkhhbmRsZXIpCi0gICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIoZGV2
aWNlTGlzdCwgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNj
ZXNzKTsKLSAgICBtX2NvbXBsZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVy
YXRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwYmQwZGQ1ODNlMTYzNWE5YzhlOWRjNjY1MTAwOTFmNTc3YTExNTQyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmgKKysrIC9kZXYvbnVs
bApAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0K
LSNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBDYXB0dXJlRGV2aWNlOwotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBTZWN1cml0eU9y
aWdpbjsKLQotY2xhc3MgTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0IGZpbmFsIDogcHVi
bGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYURl
dmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+IHsKLXB1YmxpYzoKLSAgICB1c2luZyBDb21wbGV0aW9u
SGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4m
LCBjb25zdCBTdHJpbmcmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBvcmlnaW5IYXNQ
ZXJzaXN0ZW50QWNjZXNzKT47Ci0KLSAgICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdD4gY3JlYXRlKERvY3VtZW50JiwgQ29tcGxldGlvbkhhbmRsZXImJik7Ci0KLSAg
ICB2aXJ0dWFsIH5NZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoKTsKLQotICAgIHZvaWQg
c3RhcnQoKTsKLSAgICB2b2lkIGNhbmNlbCgpOwotCi0gICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNv
bnN0IHsgcmV0dXJuICFtX2NvbXBsZXRpb25IYW5kbGVyOyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldERldmljZUluZm8oY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3Qg
U3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJvb2wgb3JpZ2luSGFzUGVyc2lzdGVu
dEFjY2Vzcyk7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4oKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdp
biogdG9wTGV2ZWxEb2N1bWVudE9yaWdpbigpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgQ29tcGxl
dGlvbkhhbmRsZXImJik7Ci0KLSAgICAvLyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgotICAg
IHZvaWQgY29udGV4dERlc3Ryb3llZCgpIGZpbmFsOwotCi0gICAgQ29tcGxldGlvbkhhbmRsZXIg
bV9jb21wbGV0aW9uSGFuZGxlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTBmZGQwMjM3NDdmZGFkNzhhYWZhOTkyZjdhMWEzMjg0YzQ1
NjNiMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIk1lZGlhRGV2aWNlc1JlcXVlc3QuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0K
LSNpbmNsdWRlICJDYXB0dXJlRGV2aWNlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkpTTWVkaWFEZXZpY2VJbmZvLmgiCi0jaW5jbHVkZSAi
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAi
VXNlck1lZGlhQ29udHJvbGxlci5oIgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5j
bHVkZSA8d3RmL1NIQTEuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1pbmxpbmUgTWVkaWFE
ZXZpY2VzUmVxdWVzdDo6TWVkaWFEZXZpY2VzUmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQsIE1l
ZGlhRGV2aWNlczo6RW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJiBwcm9taXNlKQotICAgIDogQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQotICAgICwgbV9wcm9taXNlKFdURk1v
dmUocHJvbWlzZSkpCi17Ci19Ci0KLVJlZjxNZWRpYURldmljZXNSZXF1ZXN0PiBNZWRpYURldmlj
ZXNSZXF1ZXN0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYURldmljZXM6OkVudW1l
cmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNZWRpYURldmljZXNSZXF1ZXN0KGRvY3VtZW50LCBXVEZNb3ZlKHByb21pc2UpKSk7Ci19Ci0K
LU1lZGlhRGV2aWNlc1JlcXVlc3Q6On5NZWRpYURldmljZXNSZXF1ZXN0KCkKLXsKLSAgICAvLyBU
aGlzIHNob3VsZCBvbmx5IGdldCBkZXN0cm95ZWQgYWZ0ZXIgdGhlIGVudW1lcmF0aW9uIHJlcXVl
c3QgaGFzIGNvbXBsZXRlZCBvciBoYXMgYmVlbiBjYW5jZWxlZC4KLSAgICBBU1NFUlQoIW1fZW51
bWVyYXRpb25SZXF1ZXN0IHx8IG1fZW51bWVyYXRpb25SZXF1ZXN0LT53YXNDYW5jZWxlZCgpKTsK
LX0KLQotU2VjdXJpdHlPcmlnaW4qIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OnNlY3VyaXR5T3JpZ2lu
KCkgY29uc3QKLXsKLSAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBy
ZXR1cm4gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpOwotCi0gICAg
cmV0dXJuIG51bGxwdHI7Ci19Ci0KLXZvaWQgTWVkaWFEZXZpY2VzUmVxdWVzdDo6Y29udGV4dERl
c3Ryb3llZCgpCi17Ci0gICAgLy8gVGhlIGNhbGwgdG8gbV9lbnVtZXJhdGlvblJlcXVlc3QtPmNh
bmNlbCgpIG1pZ2h0IGRlbGV0ZSB0aGlzLgotICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpOwotCi0gICAgaWYgKG1fZW51bWVyYXRpb25SZXF1ZXN0KSB7Ci0gICAgICAgIG1f
ZW51bWVyYXRpb25SZXF1ZXN0LT5jYW5jZWwoKTsKLSAgICAgICAgbV9lbnVtZXJhdGlvblJlcXVl
c3QgPSBudWxscHRyOwotICAgIH0KLSAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29u
dGV4dERlc3Ryb3llZCgpOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OnN0YXJ0KCkK
LXsKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLSAgICBhdXRvKiBjb250cm9sbGVyID0gVXNlck1lZGlhQ29udHJvbGxl
cjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpOwotICAgIGlmICghY29udHJvbGxlcikgewotICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgewot
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wcm9taXNlLnJlc29sdmUoeyB9KTsKLSAgICAg
ICAgfSk7Ci0KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gbWljcm9waG9uZUFj
Y2VzcyA9IGNvbnRyb2xsZXItPmNhbkNhbGxHZXRVc2VyTWVkaWEoZG9jdW1lbnQsIHsgVXNlck1l
ZGlhQ29udHJvbGxlcjo6Q2FwdHVyZVR5cGU6Ok1pY3JvcGhvbmUgfSk7Ci0gICAgYXV0byBjYW1l
cmFBY2Nlc3MgPSBjb250cm9sbGVyLT5jYW5DYWxsR2V0VXNlck1lZGlhKGRvY3VtZW50LCB7IFVz
ZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1cmVUeXBlOjpDYW1lcmEgfSk7Ci0gICAgYm9vbCBjYW5B
Y2Nlc3NNaWNyb3Bob25lID0gbWljcm9waG9uZUFjY2VzcyA9PSBVc2VyTWVkaWFDb250cm9sbGVy
OjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7Ci0gICAgYm9vbCBjYW5BY2Nlc3NDYW1lcmEg
PSBjYW1lcmFBY2Nlc3MgPT0gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNz
OjpDYW5DYWxsOwotICAgIGlmICghY2FuQWNjZXNzTWljcm9waG9uZSAmJiAhY2FuQWNjZXNzQ2Ft
ZXJhKSB7Ci0gICAgICAgIGNvbnRyb2xsZXItPmxvZ0dldFVzZXJNZWRpYURlbmlhbChkb2N1bWVu
dCwgIWNhbkFjY2Vzc01pY3JvcGhvbmUgPyBtaWNyb3Bob25lQWNjZXNzIDogY2FtZXJhQWNjZXNz
LCBVc2VyTWVkaWFDb250cm9sbGVyOjpCbG9ja2VkQ2FsbGVyOjpFbnVtZXJhdGVEZXZpY2VzKTsK
LSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XSgpIHsKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJvbWlzZS5yZXNvbHZlKHsgfSk7
Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBUaGlzIGxh
bWJkYSBrZWVwcyB8dGhpc3wgYWxpdmUgdW50aWwgdGhlIHJlcXVlc3QgY29tcGxldGVzIG9yIGlz
IGNhbmNlbGVkLgotICAgIGF1dG8gY29tcGxldGlvbiA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGNhbkFjY2Vzc01pY3JvcGhvbmUsIGNhbkFjY2Vzc0NhbWVyYV0gKGNv
bnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgY2FwdHVyZURldmljZXMsIGNvbnN0IFN0cmluZyYg
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sKSBtdXRhYmxlIHsKLQotICAgICAgICBtX2Vu
dW1lcmF0aW9uUmVxdWVzdCA9IG51bGxwdHI7Ci0KLSAgICAgICAgaWYgKCFzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byYgZG9jdW1l
bnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAg
ICAgIGRvY3VtZW50LnNldERldmljZUlESGFzaFNhbHQoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
KTsKLQotICAgICAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+IGRldmljZXM7Ci0gICAg
ICAgIGZvciAoYXV0byYgZGV2aWNlSW5mbyA6IGNhcHR1cmVEZXZpY2VzKSB7Ci0gICAgICAgICAg
ICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUgJiYgZGV2aWNlSW5mby50eXBlKCkgPT0gQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgICAgIGlmICghY2FuQWNjZXNzQ2FtZXJhICYmIGRldmljZUluZm8udHlwZSgp
ID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgICAgICAgICBj
b250aW51ZTsKLQotICAgICAgICAgICAgYXV0byBkZXZpY2VUeXBlID0gZGV2aWNlSW5mby50eXBl
KCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSA/IE1lZGlhRGV2aWNl
SW5mbzo6S2luZDo6QXVkaW9pbnB1dCA6IE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6VmlkZW9pbnB1
dDsKLSAgICAgICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgZGV2aWNlSW5mby5sYWJlbCgpLCBkZXZpY2VJbmZvLnBl
cnNpc3RlbnRJZCgpLCBkZXZpY2VJbmZvLmdyb3VwSWQoKSwgZGV2aWNlVHlwZSkpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBkZXZpY2VzID0gV1RGTW92ZShkZXZpY2VzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPm1fcHJvbWlzZS5yZXNvbHZlKGRldmljZXMpOwotICAgICAgICB9
KTsKLSAgICB9OwotCi0gICAgbV9lbnVtZXJhdGlvblJlcXVlc3QgPSBNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3Q6OmNyZWF0ZShkb2N1bWVudCwgV1RGTW92ZShjb21wbGV0aW9uKSk7Ci0g
ICAgbV9lbnVtZXJhdGlvblJlcXVlc3QtPnN0YXJ0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTNlNjRjNTQzNjY5ZjE0NjQ4NjZkZGYwYWMx
MWVhOWE0MDFkMjljLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVz
dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJNZWRpYURldmljZXMuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIE1lZGlhRGV2aWNlc0VudW1l
cmF0aW9uUmVxdWVzdDsKLWNsYXNzIFNlY3VyaXR5T3JpZ2luOwotCi1jbGFzcyBNZWRpYURldmlj
ZXNSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFEZXZpY2VzUmVxdWVzdD4sIHByaXZh
dGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8
TWVkaWFEZXZpY2VzUmVxdWVzdD4gY3JlYXRlKERvY3VtZW50JiwgTWVkaWFEZXZpY2VzOjpFbnVt
ZXJhdGVEZXZpY2VzUHJvbWlzZSYmKTsKLQotICAgIHZpcnR1YWwgfk1lZGlhRGV2aWNlc1JlcXVl
c3QoKTsKLQotICAgIHZvaWQgc3RhcnQoKTsKLQotICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0
eU9yaWdpbigpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlhRGV2aWNlc1JlcXVlc3QoRG9j
dW1lbnQmLCBNZWRpYURldmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpOwotCi0gICAg
dm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7Ci0KLSAgICBNZWRpYURldmljZXM6OkVudW1l
cmF0ZURldmljZXNQcm9taXNlIG1fcHJvbWlzZTsKLSAgICBSZWZQdHI8TWVkaWFEZXZpY2VzUmVx
dWVzdD4gbV9wcm90ZWN0b3I7Ci0gICAgUmVmUHRyPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVx
dWVzdD4gbV9lbnVtZXJhdGlvblJlcXVlc3Q7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3BwCmluZGV4IDRkNmVjZjNhNTY2
MTBjZmYwYTJlMTg5NzVkNDllMTI5MTY0MTljZTcuLjAwN2QyYzNhNGI5ZWJhMWNhYzEzMDQ5NzY4
NmQ0NDZkMmYwNTMyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2VuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSVENE
VE1GU2VuZGVyLmgiCiAjaW5jbHVkZSAiUlRDRFRNRlNlbmRlckJhY2tlbmQuaCIKICNpbmNsdWRl
ICJSVENSdHBDYXBhYmlsaXRpZXMuaCIKKyNpbmNsdWRlICJSVENSdHBUcmFuc2NlaXZlci5oIgog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFDbGllbnQuaAppbmRleCBiMmFhNTYwM2Y1NzUxMjdlNWY1YTg2NDZhOWE4
NzdlMjE0YTRhNjE4Li40M2IyYTBkZGNkNTJiNWQxYWM1NjJhZTdhMTI4ZTQxZDIzM2Q5ODRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q2xpZW50LmgKQEAgLTMzLDExICszMywxMiBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
IAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0OworY2xhc3MgQ2FwdHVyZURldmljZTsKIGNsYXNzIFBhZ2U7
CiBjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0OwogCkBAIC00OCw4ICs0OSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUFjY2VzcyhVc2VyTWVkaWFSZXF1ZXN0Jikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxVc2VyTWVkaWFBY2Nlc3NSZXF1ZXN0KFVzZXJN
ZWRpYVJlcXVlc3QmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZp
Y2VzKE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1l
cmF0aW9uUmVxdWVzdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZp
Y2VzKERvY3VtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8Q2FwdHVy
ZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJikgPSAwOwogCiAgICAgZW51bSBEZXZpY2VDaGFu
Z2VPYnNlcnZlclRva2VuVHlwZSB7IH07CiAgICAgdXNpbmcgRGV2aWNlQ2hhbmdlT2JzZXJ2ZXJU
b2tlbiA9IE9iamVjdElkZW50aWZpZXI8RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlblR5cGU+Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhQ29udHJvbGxlci5jcHAKaW5kZXggOGQ3ZTYzY2M2MDZkNmRhMTlmYmRiMTJkZTU0ZmI4NTVm
ZGY2MmM5OS4uNjU2MjQ2OGE5ZDc5ZjgzZDgyODc1NWQ3YmIyNzVlOTJmNzdhMWFkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YUNvbnRyb2xsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0Fs
bG93ZWRCeUZlYXR1cmVQb2xpY3koY29uc3QgRmVhdHVyZVBvbGljeSYgZmVhdHVyZVBvbGljeSwK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVz
ZXJNZWRpYUFjY2VzcyBpc0FsbG93ZWRUb1VzZShEb2N1bWVudCYgZG9jdW1lbnQsIERvY3VtZW50
JiB0b3BEb2N1bWVudCwgT3B0aW9uU2V0PFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1cmVUeXBl
PiB0eXBlcykKK3N0YXRpYyBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3Mg
aXNBbGxvd2VkVG9Vc2UoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBEb2N1bWVudCYg
dG9wRG9jdW1lbnQsIE9wdGlvblNldDxVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZT4g
dHlwZXMpCiB7CiAgICAgaWYgKCZkb2N1bWVudCA9PSAmdG9wRG9jdW1lbnQpCiAgICAgICAgIHJl
dHVybiBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7CkBA
IC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRp
YUFjY2VzcyBpc0FsbG93ZWRUb1VzZShEb2N1bWVudCYgZG9jdW1lbnQKICAgICByZXR1cm4gVXNl
ck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzOjpCbG9ja2VkQnlGZWF0dXJlUG9s
aWN5OwogfQogCi1Vc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3MgVXNlck1l
ZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdldFVzZXJNZWRpYShEb2N1bWVudCYgZG9jdW1lbnQsIE9w
dGlvblNldDxVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZT4gdHlwZXMpCitVc2VyTWVk
aWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3MgVXNlck1lZGlhQ29udHJvbGxlcjo6Y2Fu
Q2FsbEdldFVzZXJNZWRpYShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIE9wdGlvblNldDxVc2Vy
TWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZT4gdHlwZXMpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KCF0eXBlcy5pc0VtcHR5KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5oCmluZGV4IGRmZTg5NjllOWVhNWE4
OGE1NzBiMDkxNWI3ZmQ0NDIzZTA4ZDQyZjUuLmE0NWFlMzU1NTUwOThiZGI3YTU2ZjZhMjQ3ODcw
M2M4N2VkY2ZjNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vVXNlck1lZGlhQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2xpZW50LmgiCisjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUsOCAr
NDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhQWNjZXNzKFVzZXJNZWRp
YVJlcXVlc3QmKTsKICAgICB2b2lkIGNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3QoVXNlck1l
ZGlhUmVxdWVzdCYpOwogCi0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXMoTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBjYW5jZWxNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3QoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Jik7CisgICAgdm9p
ZCBlbnVtZXJhdGVNZWRpYURldmljZXMoRG9jdW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmKTsKIAogICAg
IFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBhZGREZXZpY2VDaGFu
Z2VPYnNlcnZlcihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVEZXZp
Y2VDaGFuZ2VPYnNlcnZlcihVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9r
ZW4pOwpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIENhbWVyYSA9IDEgPDwgMSwK
ICAgICAgICAgRGlzcGxheSA9IDEgPDwgMwogICAgIH07Ci0gICAgR2V0VXNlck1lZGlhQWNjZXNz
IGNhbkNhbGxHZXRVc2VyTWVkaWEoRG9jdW1lbnQmLCBPcHRpb25TZXQ8Q2FwdHVyZVR5cGU+KTsK
KyAgICBHZXRVc2VyTWVkaWFBY2Nlc3MgY2FuQ2FsbEdldFVzZXJNZWRpYShjb25zdCBEb2N1bWVu
dCYsIE9wdGlvblNldDxDYXB0dXJlVHlwZT4pIGNvbnN0OwogCiAgICAgZW51bSBjbGFzcyBCbG9j
a2VkQ2FsbGVyIHsKICAgICAgICAgR2V0VXNlck1lZGlhLApAQCAtODksMTUgKzg5LDExIEBAIGlu
bGluZSB2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OmNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVl
c3QoVXNlck1lZGlhUmVxdWVzdCYKICAgICBtX2NsaWVudC0+Y2FuY2VsVXNlck1lZGlhQWNjZXNz
UmVxdWVzdChyZXF1ZXN0KTsKIH0KIAotaW5saW5lIHZvaWQgVXNlck1lZGlhQ29udHJvbGxlcjo6
ZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcmVx
dWVzdCkKK2lubGluZSB2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OmVudW1lcmF0ZU1lZGlhRGV2
aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVj
dG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgbV9jbGllbnQtPmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhyZXF1ZXN0KTsKKyAgICBt
X2NsaWVudC0+ZW51bWVyYXRlTWVkaWFEZXZpY2VzKGRvY3VtZW50LCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKLWlubGluZSB2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OmNhbmNl
bE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChNZWRpYURldmljZXNFbnVtZXJhdGlvblJl
cXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgbV9jbGllbnQtPmNhbmNlbE1lZGlhRGV2aWNlc0VudW1l
cmF0aW9uUmVxdWVzdChyZXF1ZXN0KTsKLX0KIAogaW5saW5lIFVzZXJNZWRpYUNsaWVudDo6RGV2
aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBVc2VyTWVkaWFDb250cm9sbGVyOjphZGREZXZpY2VDaGFu
Z2VPYnNlcnZlcihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggY2E0NjE0MjM2NTAxMjY3NGJhZGQwZDM1YTg0ZDAwMjI5MWQ1NzUwNi4uOTM5YWFk
OGRlNmY0YTBmY2RlZWU1NWYzNmMxNDA2YmRmMzRiZWRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE1
OSw4ICsxNTksNiBAQCBNb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNw
cAogTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHAK
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmNwcAogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCi1Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdC5jcHAKLU1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVx
dWVzdC5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0OTU3YmFiYzk3YjE3MTA0YTQ0NTM1ZTQzODNmZGZh
OGIxMjc0MjAxLi5kYWE5OTBmZGEwZTMyNDc3OWUxZWNhMTM1OGQ5OTM5MTRjNzY1NjdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMjEsNyArMTIxLDYgQEAKIAkJMDczNzk0RUMxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNl
U2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzM3OTRFQTE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIuaCAqLzsgfTsKIAkJMDcz
Nzk0RkExOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY0MTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggKi87IH07CiAJCTA3Mzc5
NEZFMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUg
LyogUlRDTm90aWZpZXJzTW9jay5oICovOyB9OwotCQkwNzM5NEVDQTFCQUIyQ0Q3MDBCRTk5Q0Qg
LyogTWVkaWFEZXZpY2VzUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDczOTRFQzkxQkFCMkNENzAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1Jl
cXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEw
MEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRp
b1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxp
c3QuaCAqLzsgfTsKIAkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9
OwpAQCAtMTk2LDcgKzE5NSw2IEBACiAJCTA3QUE2QjZDMTY2RDJDMTMwMEQ0NTY3MSAvKiBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDdBQTZCNjkxNjZEMDE5NTAwRDQ1NjcxIC8qIEluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkZPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMDdBQjk5NjkxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUI5
OTY1MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uLmggKi87IH07CiAJCTA3QUI5
OTZCMThEQTNDMDEwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUI5OTY3MThEQTNDMDEwMDE4NzcxRSAvKiBS
VENJY2VTZXJ2ZXIuaCAqLzsgfTsKLQkJMDdBQkVGNkUxRDhBMUM3NjAwRjIxOTcyIC8qIE1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDdBQkVGNkQxRDhBMUM3NjAwRjIxOTcyIC8qIE1lZGlhRGV2aWNl
c0VudW1lcmF0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTA3QUZGNDIyMUVGQjE0NDkwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0
dXJlU291cmNlSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwN0FGRjQyMDFFRkIxNDQ3MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlP
Uy5oICovOyB9OwogCQkwN0FGRjQyMzFFRkIxNDQ5MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3QUZGNDIxMUVGQjE0NDcwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9T
Lm1tICovOyB9OwogCQkwN0IwMTEzRjEwMzIyNDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1l
ZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3QjAxMTNFMTAzMjI0MjIwMEZCREMzMyAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9s
cy5oICovOyB9OwpAQCAtNTM1MCw4ICs1MzQ4LDYgQEAKIAkJMDczNzk0RjQxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzM3OTRGNzE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9j
ay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENOb3RpZmllcnNN
b2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RjgxOUY1ODY0RTAw
RTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUlRDTm90aWZpZXJzTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
NzM5NEVDNzFCQUIyQ0NEMDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYURldmljZXNSZXF1ZXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczOTRFQzkxQkFCMkNENzAwQkU5OUNEIC8q
IE1lZGlhRGV2aWNlc1JlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFEZXZpY2VzUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNB
MTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlVmlkZW9TYW1wbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlVmlkZW9TYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDczQjg3NTYxRTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTQ0Myw4ICs1NDM5LDYgQEAKIAkJ
MDdBQjk5NjYxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJUQ0NvbmZpZ3VyYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0FCOTk2NzE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0ljZVNlcnZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwN0FCOTk2ODE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2Vy
dmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VTZXJ2ZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwN0FCRUY2QjFEOEExQzU4MDBGMjE5NzIgLyogTWVkaWFE
ZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTA3QUJFRjZEMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3QUZGNDIwMUVGQjE0NDcwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBRkY0MjExRUZCMTQ0
NzAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0IwMTEzRTEwMzIyNDIyMDBGQkRDMzMgLyog
QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE1NjcwLDEwICsxNTY2NCw2IEBACiAJCQkJNUVBNzI1Q0QxQUNBQkNEOTAwRUFE
MTdCIC8qIE1lZGlhRGV2aWNlcy5jcHAgKi8sCiAJCQkJNUVBNzI1Q0UxQUNBQkNEOTAwRUFEMTdC
IC8qIE1lZGlhRGV2aWNlcy5oICovLAogCQkJCTVFQTcyNUNGMUFDQUJDRDkwMEVBRDE3QiAvKiBN
ZWRpYURldmljZXMuaWRsICovLAotCQkJCTA3QUJFRjZCMUQ4QTFDNTgwMEYyMTk3MiAvKiBNZWRp
YURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwICovLAotCQkJCTA3QUJFRjZEMUQ4QTFDNzYw
MEYyMTk3MiAvKiBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuaCAqLywKLQkJCQkwNzM5
NEVDNzFCQUIyQ0NEMDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgKi8sCi0JCQkJ
MDczOTRFQzkxQkFCMkNENzAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCAqLywKIAkJ
CQkwNzIyMUI0QzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW0uY3BwICovLAogCQkJCTA3
MjIxQjREMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbS5oICovLAogCQkJCTA3MjIxQjRF
MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbS5pZGwgKi8sCkBAIC0zMDY2OCw4ICszMDY1
OCw2IEBACiAJCQkJQ0RGMkIwMDQxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTE1MTQ1QjkwMUIzQTFDRTAwMDY2MkJGNyAvKiBNZWRpYURl
dmljZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTVFQTcyNUQzMUFDQUJENDcwMEVBRDE3QiAv
KiBNZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTA3QUJFRjZFMUQ4QTFDNzYwMEYy
MTk3MiAvKiBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAot
CQkJCTA3Mzk0RUNBMUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NzIwNUFCODEyMzkyOTEwMDBCMTczODAgLyogTWVkaWFEb2N1bWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ2RjI1MkQxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlh
RWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGRTk5REQxODgw
N0E3RDAwMjU2NjQ4IC8qIE1lZGlhRWxlbWVudFNlc3Npb24uaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGRiNGNkYTExMTYxZDIyMjgyOTg0
ZmVlOWFlYWQ0MGE0ZWVjMWE0OTEuLjAyMzg3ZDQzYmNjYWNkZTViYTE0OGY1MDk1MDdhNGZjNWFm
OGVmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTM4LDYgKzM4
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1l
ZGlhUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTIxLDI4ICsxMjIsMzMgQEAgdm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFu
Z2VkKCkKICAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpIHx8ICFtX3BhZ2UubWFp
bkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gaGFuZGxlciA9IFt0aGlzXShQ
ZXJtaXNzaW9uSW5mbyBwZXJtaXNzaW9uSW5mbykgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAo
cGVybWlzc2lvbkluZm8pIHsKLSAgICAgICAgY2FzZSBQZXJtaXNzaW9uSW5mbzo6RXJyb3I6Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgUGVybWlzc2lvbkluZm86OlVua25vd246
Ci0gICAgICAgICAgICBpZiAobV9ncmFudGVkUmVxdWVzdHMuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBlcm1pc3Np
b25JbmZvOjpHcmFudGVkOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhcHR1cmVE
ZXZpY2VzQ2hhbmdlZCgpLCBtX3BhZ2UucGFnZUlEKCkpOwotICAgIH07Ci0KICAgICBhdXRvIG9y
aWdpbiA9IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV9wYWdlLm1haW5GcmFtZSgp
LT51cmwoKSk7Ci0gICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8obV9wYWdlLm1haW5GcmFt
ZSgpLT5mcmFtZUlEKCksIG9yaWdpbi5nZXQoKSwgV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKGhh
bmRsZXIpKTsKKyAgICBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyhtX3BhZ2UubWFpbkZyYW1l
KCktPmZyYW1lSUQoKSwgb3JpZ2luLmdldCgpLCBXVEZNb3ZlKG9yaWdpbiksIFt0aGlzXShQZXJt
aXNzaW9uSW5mbyBwZXJtaXNzaW9uSW5mbykgeworICAgICAgICBjYXB0dXJlRGV2aWNlc0NoYW5n
ZWQocGVybWlzc2lvbkluZm8pOworICAgIH0pOwogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Y2FwdHVyZURldmljZXNDaGFuZ2VkKFBlcm1pc3Npb25JbmZvIHBlcm1pc3Npb25JbmZvKQorewor
ICAgIHN3aXRjaCAocGVybWlzc2lvbkluZm8pIHsKKyAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpF
cnJvcjoKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgUGVybWlzc2lvbkluZm86OlVua25vd246
CisgICAgICAgIGlmIChtX2dyYW50ZWRSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGVybWlzc2lvbkluZm86OkdyYW50ZWQ6
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2Vz
cygpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpLCBtX3BhZ2UucGFnZUlEKCkpOwor
fQorI2VuZGlmCisKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmNsZWFyQ2FjaGVkU3RhdGUoKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CkBA
IC0yMjYsOCArMjMyLDkgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJNZWRpYVBlcm0KICAgICBpZiAocmVxdWVz
dC5yZXF1ZXN0VHlwZSgpID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6VXNlck1lZGlhKQog
ICAgICAgICBtX2dyYW50ZWRSZXF1ZXN0cy5hcHBlbmQobWFrZVJlZihyZXF1ZXN0KSk7CiAKKyAg
ICAvLyBGSVhNRTogbV9oYXNGaWx0ZXJlZERldmljZUxpc3Qgd2lsbCB0cmlnZ2VyIG9uZGV2aWNl
Y2hhbmdlIGV2ZW50cyBmb3IgdmFyaW91cyBkb2N1bWVudHMgZnJvbSBkaWZmZXJlbnQgb3JpZ2lu
cy4KICAgICBpZiAobV9oYXNGaWx0ZXJlZERldmljZUxpc3QpCi0gICAgICAgIGNhcHR1cmVEZXZp
Y2VzQ2hhbmdlZCgpOworICAgICAgICBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoUGVybWlzc2lvbklu
Zm86OkdyYW50ZWQpOwogICAgIG1faGFzRmlsdGVyZWREZXZpY2VMaXN0ID0gZmFsc2U7CiAKICAg
ICArK21faGFzUGVuZGluZ0NhcHR1cmU7CkBAIC02MDQsMTIgKzYxMSwxNSBAQCBWZWN0b3I8Q2Fw
dHVyZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1
dGVGaWx0ZXJlZERldgogfQogI2VuZGlmCiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSLCB1c2VyTWVkaWFJRCk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKIAotICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgdXNlck1lZGlhSUQs
IGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luID0gdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4uY29weVJlZigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbi5jb3B5UmVmKCldKFBlcm1pc3Npb25JbmZvIHBlcm1pc3Npb25JbmZvKSBtdXRhYmxlIHsK
KyAgICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luID0gdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uY29weVJlZigpLCB0b3BMZXZlbERvY3VtZW50
T3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5jb3B5UmVmKCksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFBlcm1pc3Npb25JbmZvIHBlcm1pc3Np
b25JbmZvKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjYWxsQ29tcGxldGlvbkhhbmRsZXIgPSBt
YWtlU2NvcGVFeGl0KFsmY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHsgfSwgeyB9KTsKKyAgICAgICAgfSk7CiAKICAgICAgICAgYm9vbCBvcmlnaW5I
YXNQZXJzaXN0ZW50QWNjZXNzOwogICAgICAgICBzd2l0Y2ggKHBlcm1pc3Npb25JbmZvKSB7CkBA
IC02MzEsNyArNjQxLDEzIEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2CiAKICAgICAgICAgYXV0
byYgcmVxdWVzdE9yaWdpbiA9IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpOwogICAgICAg
ICBhdXRvJiB0b3BPcmlnaW4gPSB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpOwotICAgICAg
ICBtX3BhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2
aWNlSWRIYXNoU2FsdEZvck9yaWdpbihyZXF1ZXN0T3JpZ2luLCB0b3BPcmlnaW4sIFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVxdWVzdElELCBmcmFtZUlELCB1c2VyTWVk
aWFJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4gPSBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IFdURk1vdmUodG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiksIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3NdIChTdHJpbmcmJiBkZXZpY2VJREhh
c2hTYWx0KSB7CisKKyAgICAgICAgY2FsbENvbXBsZXRpb25IYW5kbGVyLnJlbGVhc2UoKTsKKyAg
ICAgICAgbV9wYWdlLndlYnNpdGVEYXRhU3RvcmUoKS5kZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgp
LmRldmljZUlkSGFzaFNhbHRGb3JPcmlnaW4ocmVxdWVzdE9yaWdpbiwgdG9wT3JpZ2luLCBbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHJlcXVlc3RJRCwgZnJhbWVJRCwgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4gPSBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiks
IG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpIG11dGFibGUgewor
ICAgICAgICAgICAgYXV0byBjYWxsQ29tcGxldGlvbkhhbmRsZXIgPSBtYWtlU2NvcGVFeGl0KFsm
Y29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7
IH0sIHsgfSk7CisgICAgICAgICAgICB9KTsKKwogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCAhbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMucmVtb3ZlKHJlcXVlc3RJRCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC02NDIsMTYgKzY1OCwxNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1
aW50NgogCiAgICAgICAgICAgICBib29sIHJldmVhbElkc0FuZExhYmVscyA9IG9yaWdpbkhhc1Bl
cnNpc3RlbnRBY2Nlc3MgfHwgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhmcmFtZUlELCB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQo
KSk7CiAKLSAgICAgICAgICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6RGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uIHsgdXNlck1lZGlhSUQsIGNvbXB1
dGVGaWx0ZXJlZERldmljZUxpc3QocmV2ZWFsSWRzQW5kTGFiZWxzLCBkZXZpY2VJREhhc2hTYWx0
KSwgZGV2aWNlSURIYXNoU2FsdCwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyB9LCBtX3BhZ2Uu
cGFnZUlEKCkpOworICAgICAgICAgICAgY2FsbENvbXBsZXRpb25IYW5kbGVyLnJlbGVhc2UoKTsK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3Qo
cmV2ZWFsSWRzQW5kTGFiZWxzLCBkZXZpY2VJREhhc2hTYWx0KSwgZGV2aWNlSURIYXNoU2FsdCk7
CiAgICAgICAgIH0pOwogICAgIH07CiAKLSAgICBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyhm
cmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGdldFVz
ZXJNZWRpYVBlcm1pc3Npb25JbmZvKGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGNhbGxiYWNr
KSk7CiAjZWxzZQotICAgIFVOVVNFRF9QQVJBTSh1c2VyTWVkaWFJRCk7CiAgICAgVU5VU0VEX1BB
UkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbik7
CiAgICAgVU5VU0VEX1BBUkFNKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIGNvbXBsZXRp
b25IYW5kbGVyKHsgfSwgeyB9KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaAppbmRleCBiYmJhNDRhYzgyYmQyODA3NWJkZGZiYjQ1NDQ0Y2E1NjlhY2NmYjk3Li5i
NzRlNjgzNTBlNmUwM2NkOGM0NWI4MmYwOGY1YWQzNDIzOTM5YjBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ3Jh
bnRSZXF1ZXN0KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKICAgICB2b2lkIGRl
bnlSZXF1ZXN0KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmLCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIGNvbnN0IFN0
cmluZyYgaW52YWxpZENvbnN0cmFpbnQgPSB7IH0pOwogCi0gICAgdm9pZCBlbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6
Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJik7CiAKICAgICB2b2lkIHN0b3BDYXB0
dXJlKCk7CiAgICAgdm9pZCBzY2hlZHVsZU5leHRSZWplY3Rpb24oKTsKQEAgLTEwNCw2ICsxMDQs
NyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUGVybWlzc2lvbkluZm8gPSBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eTo6UGVybWlzc2lvbkluZm87CiAgICAgdm9pZCBnZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uSW5mbyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUGVybWlzc2lvbkluZm8pPiYmKTsKKyAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZChQ
ZXJtaXNzaW9uSW5mbyk7CiAKICAgICBSZXF1ZXN0QWN0aW9uIGdldFJlcXVlc3RBY3Rpb24oY29u
c3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkMmY5YTg4NzA1N2IwZGNkNzk0NzhiMTBiNzAw
NzNjNmQ4NmM3YmIyLi42NGE5OTU4OTg1Nzk0Y2E0NDg3NTBkMzQyYThmMDUyZmY0MmNlOGY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0NjMsMTMgKzc0
NjMsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIEZyYW0KICNlbmRpZgogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlh
SUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbkRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1
cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1l
KTsKIAotICAgIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmVudW1lcmF0ZU1l
ZGlhRGV2aWNlc0ZvckZyYW1lKHVzZXJNZWRpYUlELCBmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEu
c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KCkuZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRh
LnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDIwNzY5NTkxYWMxZTMy
MmY1MWNkY2Y1MjBlNWFjZWViMmUzZjljYTkuLjAwYzY4MGQzNTZmZTcyMGI0ODg4ODA4ODNmMDFh
ZTY3OWJkNzljNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0x
NzE1LDcgKzE3MTUsNyBAQCBwcml2YXRlOgogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5JiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKICNlbmRp
ZgogICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRp
ZmllciwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwotICAgIHZvaWQgZW51bWVyYXRl
TWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpOworICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mLCBjb25z
dCBTdHJpbmcmKT4mJik7CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygp
OwogCiAgICAgdm9pZCBydW5Nb2RhbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE1ODkxOWUzMTYwMTFkNjk5NDBkZDliMWUy
ZjdjY2MzMWVhNGU0M2IuLjc5ZjYyZGZkOWMyY2M1ZWIyYTYxYzE5NzM4NTQxYjlhOWEzMzU2Yjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTI4MiwxMSArMjgyLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAg
ICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lv
bkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKLSAgICAKKwogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCiAgICAgUmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCi0gICAgRW51bWVyYXRlTWVkaWFEZXZp
Y2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikKKyAgICBFbnVtZXJhdGVNZWRpYURl
dmljZXNGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZGV2aWNl
cywgU3RyaW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSBBc3luYwogICAgIEJlZ2lu
TW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNlbmRpZgogCkBAIC0yOTgsNyArMjk4LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWREZXN0cm95Tm90aWZpY2F0aW9uKHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEKQogCiAgICAgIyBTcGVsbGluZyBhbmQgZ3JhbW1hciBtZXNz
YWdlcwotI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpICAKKyNpZiBVU0UoVU5JRklFRF9U
RVhUX0NIRUNLSU5HKQogICAgIENoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZyB0ZXh0LCBPcHRp
b25TZXQ8V2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZT4gY2hlY2tpbmdUeXBlcywgaW50MzJfdCBp
bnNlcnRpb25Qb2ludCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJl
c3VsdHMpIFN5bmNocm9ub3VzCiAjZW5kaWYKICAgICBDaGVja1NwZWxsaW5nT2ZTdHJpbmcoU3Ry
aW5nIHRleHQpIC0+IChpbnQzMl90IG1pc3NwZWxsaW5nTG9jYXRpb24sIGludDMyX3QgbWlzc3Bl
bGxpbmdMZW5ndGgpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDg2ODI4ODJhMGI1OGM2OWIyNmJmNWIyNjFiYWY0ZjEx
M2Q1ODQyMjYuLjYyNzdlMzFiMjc5YzhjNTQ3OGMwZTlkNDBiZGQ5ZjZkMDUyNDc5ZjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0xNTks
NDUgKzE1OSwxNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6dXNl
ck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHJlcXVlcwogICAgIHJlcXVlc3QtPmRlbnko
cmVhc29uLCBXVEZNb3ZlKGludmFsaWRDb25zdHJhaW50KSk7CiB9CiAKLXZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjplbnVtZXJhdGVNZWRpYURldmljZXMoTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29u
c3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byogZG9jdW1lbnQg
PSBkb3duY2FzdDxEb2N1bWVudD4ocmVxdWVzdC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwot
ICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+ZnJhbWUoKSA6IG51bGxwdHI7
Ci0KKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkg
ewotICAgICAgICByZXF1ZXN0LnNldERldmljZUluZm8oVmVjdG9yPENhcHR1cmVEZXZpY2U+KCks
IGVtcHR5U3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBl
bXB0eVN0cmluZygpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IHJl
cXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7Ci0gICAgbV9pZFRvTWVkaWFEZXZpY2VzRW51
bWVyYXRpb25SZXF1ZXN0TWFwLmFkZChyZXF1ZXN0SUQsICZyZXF1ZXN0KTsKLSAgICBtX21lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdFRvSURNYXAuYWRkKCZyZXF1ZXN0LCByZXF1ZXN0SUQp
OwotCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZy
YW1lKTsKLSAgICBBU1NFUlQod2ViRnJhbWUpOwotCi0gICAgU2VjdXJpdHlPcmlnaW4qIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4gPSByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKTsKLSAg
ICBBU1NFUlQodG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUocmVxdWVzdElE
LCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCByZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKCkt
PmRhdGEoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi0+ZGF0YSgpKSk7Ci19Ci0KLXZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxNZWRpYURldmljZXNFbnVtZXJh
dGlvbihXZWJDb3JlOjpNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgdWludDY0X3QgcmVxdWVzdElEID0gbV9tZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3RUb0lETWFwLnRha2UoJnJlcXVlc3QpOwotICAgIGlmICghcmVxdWVzdElEKQotICAgICAgICBy
ZXR1cm47Ci0gICAgcmVxdWVzdC5zZXREZXZpY2VJbmZvKFZlY3RvcjxDYXB0dXJlRGV2aWNlPigp
LCBlbXB0eVN0cmluZygpLCBmYWxzZSk7Ci0gICAgbV9pZFRvTWVkaWFEZXZpY2VzRW51bWVyYXRp
b25SZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOwotfQotCi12b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VMaXN0
LCBTdHJpbmcmJiBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBoYXNQZXJzaXN0
ZW50QWNjZXNzKQotewotICAgIFJlZlB0cjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+
IHJlcXVlc3QgPSBtX2lkVG9NZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3RNYXAudGFrZShy
ZXF1ZXN0SUQpOwotICAgIGlmICghcmVxdWVzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fbWVk
aWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7Ci0gICAg
Ci0gICAgcmVxdWVzdC0+c2V0RGV2aWNlSW5mbyhkZXZpY2VMaXN0LCBXVEZNb3ZlKG1lZGlhRGV2
aWNlSWRlbnRpZmllckhhc2hTYWx0KSwgaGFzUGVyc2lzdGVudEFjY2Vzcyk7CisgICAgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUgbWVzc2FnZSB7
IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSktPmZyYW1lSUQoKSwgZG9jdW1lbnQuc2Vj
dXJpdHlPcmlnaW4oKS5kYXRhKCksIGRvY3VtZW50LnRvcE9yaWdpbigpLmRhdGEoKSB9OworICAg
IG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkobWVzc2FnZSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCiBVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4g
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjphZGREZXZpY2VDaGFuZ2VPYnNlcnZl
cihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAppbmRleCBkN2M1YzY4MzQ0YjcyNzM4ZDk0OTdkZjAx
MmNhMzc2YmI4NDE4OGRhLi5iZGJhM2Q3MmQyODQ0MTQyNWM0NWNiOWMxNTI1YTJiNGFjMGFjMjA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC0y
NCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFDYW5TdGFydExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNv
bnN0cmFpbnRzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYURldmljZXNFbnVtZXJhdGlvblJl
cXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYUNsaWVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBA
IC00NSw5ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50
ZWQodWludDY0X3QsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlLCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB1c2VyTWVk
aWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3QsIFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6Ok1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBTdHJpbmcmJik7CiAKLSAgICB2b2lkIGVudW1lcmF0ZU1l
ZGlhRGV2aWNlcyhXZWJDb3JlOjpNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmKTsKLSAg
ICB2b2lkIGNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uKFdlYkNvcmU6Ok1lZGlhRGV2aWNl
c0VudW1lcmF0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgZGlkQ29tcGxldGVNZWRpYURldmljZUVu
dW1lcmF0aW9uKHVpbnQ2NF90LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4m
IGRldmljZUxpc3QsIFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBvcmln
aW5IYXNQZXJzaXN0ZW50QWNjZXNzKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlcyhX
ZWJDb3JlOjpEb2N1bWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYpOwogCiAgICAgV2ViQ29y
ZTo6VXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuIGFkZERldmljZUNo
YW5nZU9ic2VydmVyKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlbW92ZURl
dmljZUNoYW5nZU9ic2VydmVyKFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdl
T2JzZXJ2ZXJUb2tlbik7CkBAIC02OCw5ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxS
ZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4sIHVpbnQ2NF90PiBtX3VzZXJNZWRpYVJl
cXVlc3RUb0lETWFwOwogICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50PiwgVmVj
dG9yPFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Pj4+IG1fYmxvY2tlZFVzZXJNZWRp
YVJlcXVlc3RzOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6Ok1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4+IG1faWRUb01lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdE1hcDsKLSAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3Q+LCB1aW50NjRfdD4gbV9tZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3RUb0lETWFwOwotCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQ6OkRldmlj
ZUNoYW5nZU9ic2VydmVyVG9rZW4sIFdURjo6RnVuY3Rpb248dm9pZCgpPj4gbV9kZXZpY2VDaGFu
Z2VPYnNlcnZlck1hcDsKICAgICBib29sIG1fbW9uaXRvcmluZ0RldmljZUNoYW5nZSB7IGZhbHNl
IH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAppbmRleCA4ZjY2N2ZjYjNkZmQxMjc5
Njk4ZGFjZGQ1YjgxN2M2ZDA4ODYwMTBmLi4zNWFlN2QyOWU1ODU0ZmIyNjczOGYxNWUyYWUxMTBk
OTA2NGIxOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApAQCAtNTAsMTQgKzUwLDkg
QEAgdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3Qo
VXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCkKICAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsVXNlck1lZGlhUmVxdWVzdChyZXF1ZXN0KTsKIH0KIAot
dm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6
ZW51bWVyYXRlTWVkaWFEZXZpY2VzKERvY3VtZW50JiBkb2N1bWVudCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCkuZW51bWVyYXRlTWVkaWFEZXZpY2VzKHJlcXVlc3QpOwotfQotCi12b2lkIFdl
YlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBtX3BhZ2UudXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVy
YXRpb24ocmVxdWVzdCk7CisgICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcigpLmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhkb2N1bWVudCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCiBXZWJVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVy
VG9rZW4gV2ViVXNlck1lZGlhQ2xpZW50OjphZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAppbmRleCAx
MDkzMDQ1M2NlNzk3ZWRkOTBkZTc2ZjAzNTRiOWExZDQwNmYyZTZlLi5kZWNmN2VmMjQzMWVhZmE3
ODYyNDBiNGVlNzk4ZjI2ZmEwZTVmODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBAIC0z
OSw4ICszOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhQWNjZXNzKFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QmKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFVzZXJN
ZWRpYUFjY2Vzc1JlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCYpIG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXMoV2ViQ29yZTo6TWVkaWFEZXZpY2VzRW51
bWVyYXRpb25SZXF1ZXN0JikgZmluYWw7Ci0gICAgdm9pZCBjYW5jZWxNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3QoV2ViQ29yZTo6TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Jikg
ZmluYWw7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXMoV2ViQ29yZTo6RG9jdW1lbnQm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmKSBmaW5hbDsKIAogICAgIERldmljZUNoYW5nZU9ic2Vy
dmVyVG9rZW4gYWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYp
IGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoRGV2aWNlQ2hhbmdl
T2JzZXJ2ZXJUb2tlbikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDAxZmYxYTRmNDU3ZTUzOTM1NjE0MzI0YTA5NDg4NDAzYTc1MDU1
YTEuLjllMDBmNTNmZDJlYTZkMzQ1YzBhNGRhNzAzZWVjYjhkMTEwODRiNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MjAwLDExICs0MjAw
LDYgQEAgdm9pZCBXZWJQYWdlOjp1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNvbiwgU3QKICAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci0+dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVzZXJNZWRpYUlELCBzdGF0
aWNfY2FzdDxVc2VyTWVkaWFSZXF1ZXN0OjpNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbj4ocmVhc29u
KSwgV1RGTW92ZShpbnZhbGlkQ29uc3RyYWludCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZENv
bXBsZXRlTWVkaWFEZXZpY2VFbnVtZXJhdGlvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgY29uc3Qg
VmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VzLCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQsIGJvb2wgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcykKLXsKLSAgICBtX3VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci0+ZGlkQ29tcGxldGVNZWRpYURldmljZUVudW1l
cmF0aW9uKHVzZXJNZWRpYUlELCBkZXZpY2VzLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNo
U2FsdCksIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpOwotfQotCiB2b2lkIFdlYlBhZ2U6OmNh
cHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiB7CiAgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXItPmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGUxZTVlMzkwMDI4MjI0YjYzY2FiZTRkMjZmMWIx
ZjI1ZmJiZThiMWUuLmMxNzIyMjAzMmZiYWY4YWFlOWM0YTRiNTNmZGE1MGUwOWVkODE4Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0ODIsNyAr
MTQ4Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2VV
SUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZVVJRCwgU3RyaW5nJiYgbWVk
aWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IHJlYXNvbiwgU3RyaW5nJiYgaW52YWxpZENvbnN0cmFpbnQpOwogCi0gICAgdm9p
ZCBkaWRDb21wbGV0ZU1lZGlhRGV2aWNlRW51bWVyYXRpb24odWludDY0X3QgdXNlck1lZGlhSUQs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYgZGV2aWNlcywgU3RyaW5nJiYg
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3Mp
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGJhN2Y2NGJmZGNi
Y2NmOGFiMmMzM2Y2YzI3OGI0NmQxNTE4ODhmMDEuLmI4NDNiMjgxM2YyMDFlMTdhNjM2NTA1YzQx
Y2U3NzllNmI1ZTQzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzU5LDcgKzM1OSw2IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAgICAgIyBNZWRpYVN0ZWFtCiAgICAgVXNlck1lZGlhQWNjZXNzV2FzR3Jh
bnRlZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBhdWRpb0Rl
dmljZSwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSB2aWRlb0RldmljZSwgU3RyaW5nIG1lZGlhRGV2
aWNlSWRlbnRpZmllckhhc2hTYWx0KSAtPiAoKSBBc3luYwogICAgIFVzZXJNZWRpYUFjY2Vzc1dh
c0RlbmllZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdHJpbmcgaW52
YWxpZENvbnN0cmFpbnQpCi0gICAgRGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZGV2aWNl
cywgU3RyaW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIGhhc1BlcnNpc3Rl
bnRBY2Nlc3MpCiAgICAgQ2FwdHVyZURldmljZXNDaGFuZ2VkKCkKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NmE2ZGMxOTFiZGFlYTFkYmMyMzdhOTZkODUzZDZiODk2ZjIxZTUzNy4uN2I0ZjBiNmQxYzZiOTU1
NjAxYjJlNjY4MDIxYTQ0NzYxNTMyZTgzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA4
LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJh
dGVEZXZpY2VzIHNob3VsZCByZXR1cm4gdGhlIHNhbWUgSlMgb2JqZWN0cyBpZiBjYWxsZWQgdHdp
Y2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc2
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTIuaHRtbDoKKwogMjAxOS0wOC0xNCAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSExT
TF0gVmFyaWFibGVzIHNob3VsZG4ndCBiZSBhYmxlIHRvIGhhdmUgdm9pZCB0eXBlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTIu
aHRtbAppbmRleCBlNzgwZjExNTZmNjY3MGJiZWVkNDA1NmZmYmNjYmVhNGU4NGMzY2Y0Li5kZWZl
NDE4ZTBkODE4ZmE2YzlkNjE3NGExZDBlNWZhMWQ4NzNkYjE1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLmh0bWwKQEAg
LTI3LDMzICsyNywzOSBAQAogICAgICAgICAgICAgLnRoZW4ocyA9PiBzdHJlYW0gPSBzKQogCiAg
ICAgICAgIGxldCBkZXZpY2VzID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJh
dGVEZXZpY2VzKCk7CisgICAgICAgIGxldCBkZXZpY2VzMiA9IGF3YWl0IG5hdmlnYXRvci5tZWRp
YURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOwogCiAgICAgICAgIGFzc2VydF90cnVlKCEhZGV2
aWNlcy5sZW5ndGgsICJjaGVjayB0aGVyZSBhcmUgc29tZSBkZXZpY2VzIik7CisgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoZGV2aWNlcywgZGV2aWNlczIpOwogCiAgICAgICAgIHRlc3RSdW5u
ZXIuY2xlYXJNb2NrTWVkaWFEZXZpY2VzKCk7Ci0KKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5vbmRldmljZWNoYW5nZSA9IHJlc29sdmU7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+
IHsKKyAgICAgICAgICAgICAgICByZWplY3QoImV2ZW50IDEgdG9vayB0b28gbG9uZyIpOworICAg
ICAgICAgICAgfSwgNTAwMCk7CisgICAgICAgIH0pOwogICAgICAgICBkZXZpY2VzID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CiAgICAgICAgIGFzc2Vy
dF9mYWxzZSghIWRldmljZXMubGVuZ3RoLCAiY2hlY2sgdGhlcmUgYXJlIG5vIG1vcmUgZGV2aWNl
cyIpOwogCisgICAgICAgIHRlc3RSdW5uZXIuYWRkTW9ja0NhbWVyYURldmljZSgiaWQxIiwgIm15
IGNhbWVyYSIpOwogICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7CiAgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLm9uZGV2aWNlY2hhbmdlID0g
cmVzb2x2ZTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICAgICAgICAg
IGNvbnNvbGUubG9nKCJldmVudCAxIHRvb2sgdG9vIGxvbmciKTsKLSAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgcmVqZWN0KCJldmVudCAyIHRvb2sgdG9vIGxvbmci
KTsKICAgICAgICAgICAgIH0sIDUwMDApOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRNb2Nr
Q2FtZXJhRGV2aWNlKCJpZDEiLCAibXkgY2FtZXJhIik7CiAgICAgICAgIH0pOworCiAgICAgICAg
IGRldmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMo
KTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXZpY2VzWzBdLmtpbmQsICJ2aWRlb2lucHV0Iik7
CiAgICAgICAgIGFzc2VydF9lcXVhbHMoZGV2aWNlc1swXS5sYWJlbCwgIm15IGNhbWVyYSIpOwog
CisgICAgICAgIHRlc3RSdW5uZXIuYWRkTW9ja01pY3JvcGhvbmVEZXZpY2UoImlkMiIsICJteSBt
aWMiKTsKICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewog
ICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5vbmRldmljZWNoYW5nZSA9IHJlc29s
dmU7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgICBjb25z
b2xlLmxvZygiZXZlbnQgMiB0b29rIHRvbyBsb25nIik7Ci0gICAgICAgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgICAgICAgICAgIHJlamVjdCgiZXZlbnQgMyB0b29rIHRvbyBsb25nIik7CiAg
ICAgICAgICAgICB9LCA1MDAwKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkTW9ja01pY3Jv
cGhvbmVEZXZpY2UoImlkMiIsICJteSBtaWMiKTsKICAgICAgICAgfSk7CiAgICAgICAgIGRldmlj
ZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTsKICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhkZXZpY2VzWzBdLmtpbmQsICJhdWRpb2lucHV0Iik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376481</attachid>
            <date>2019-08-16 00:50:02 -0700</date>
            <delta_ts>2019-08-16 08:06:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200767-20190816094959.patch</filename>
            <type>text/plain</type>
            <size>73862</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRlOGMzNjNhNTdkNGVh
Yzc2ZWZiYzI1NGQxNjBmM2EzYmJlMDY0OS4uNDdjMTQ3NTA0YmEwZjhmMjljNzBmMjllYmRjMWJj
NDUzNTllZjJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA4LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2Vz
IHNob3VsZCByZXR1cm4gdGhlIHNhbWUgSlMgb2JqZWN0cyBpZiBjYWxsZWQgdHdpY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgTWVkaWFEZXZp
Y2VzIHN0b3JlIHRoZSBsYXN0IGxpc3Qgb2YgZW51bWVyYXRlZCBNZWRpYURldmljZUluZm8gb2Jq
ZWN0cy4KKyAgICAgICAgUmV1c2UgdGhlbSBmb3IgdGhlIG5leHQgZW51bWVyYXRlRGV2aWNlcyBj
YWxsIGlmIG5lZWRlZC4KKyAgICAgICAgSW4gY2FzZSBvZiBhIGRldmljZSBjaGFuZ2UgZXZlbnQs
IG1ha2Ugc3VyZSB0aGUgbmV4dCBlbnVtZXJhdGVEZXZpY2VzIGNhbGwgd2lsbCBmZXRjaCB0aGUg
bmV3IGxpc3Qgb2YgZGV2aWNlcy4KKyAgICAgICAgV2hlbiBjb25zdHJ1Y3RpbmcgdGhlIG5ldyBs
aXN0IG9mIGRldmljZXMsIHJldXNlIGFueSBwcmVleGlzdGluZyBkZXZpY2UgaW4gdGhlIG9sZCBs
aXN0IGFzIHNwZWNpZmllZCBieQorICAgICAgICBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFj
YXB0dXJlLW1haW4vI2RvbS1tZWRpYWRldmljZXMtZW51bWVyYXRlZGV2aWNlcy4KKworICAgICAg
ICBVcGRhdGUgZW51bWVyYXRlRGV2aWNlcyB0byB1c2UgYSBjb21wbGV0aW9uIGhhbmRsZXIuCisg
ICAgICAgIFJlbW92ZSBNZWRpYURldmljZXNSZXF1ZXN0IGFuZCBNZWRpYURldmljZXNFbnVtZXJh
dGlvblJlcXVlc3QuCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0IGFuZCBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6TWVkaWFEZXZpY2VJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmlj
ZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OnN0b3Ap
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmVudW1lcmF0ZURldmljZXMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpsaXN0ZW5Gb3JEZXZpY2VDaGFuZ2VzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Lmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
c1JlcXVlc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNlbmRlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGll
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBbGxvd2VkVG9Vc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6VXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdldFVzZXJNZWRpYSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyTWVkaWFDb250cm9sbGVyOjplbnVtZXJhdGVNZWRpYURldmljZXMpOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQWx3YXlzIGNyZWF0ZSBhIERvY3VtZW50IHdpdGggYSB2YWxpZCBTZXNz
aW9uSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZDE0ZGMzOTEzNTllMTM5NGY2MTdiMTdhYjc2M2I5MjE4ZWYwMmQ4
OS4uODQ2Yzk1MmRiZDUwNzUxNWI5YjZmZjA2ODM1MGIzYmQwNDY3NDI0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAxOS0wOC0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQgcmV0dXJuIHRoZSBzYW1lIEpT
IG9iamVjdHMgaWYgY2FsbGVkIHR3aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgY29kZSBhcyBlbnVtZXJhdGUgZGV2aWNlIHJlcXVlc3Qg
aXMgbm93IGdvbmUuCisgICAgICAgIE1ha2UgdXNlIG9mIGFzeW5jIElQQyB0byBzaW1wbGlmeSBj
b2RlIHNpbmNlIHdlIGFyZSBub3cgcGFzc2luZyBhIGNvbXBsZXRpb24gaGFuZGxlciBkaXJlY3Rs
eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZmluaXNoR3JhbnRpbmdSZXF1
ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50OjplbnVtZXJhdGVN
ZWRpYURldmljZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTktMDgtMTUgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBXS1VJRGVs
ZWdhdGUncyB3ZWJWaWV3OmNvbnRleHRNZW51RGlkRW5kRm9yRWxlbWVudDogc2hvdWxkIGJlIGNh
bGxlZCB3aGVuIGNvbnRleHQgbWVudXMgZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2ZTM5YmU0
MThhZDhlMTAwOWJkYTNkYjBhZjEwYTRiYjM0YWZmY2Q2Li43YjgyODBlYmQwMjRmMzRjYzY3MTEy
ZmYwMDE3MWU2OTFhZmU3ZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTkwLDcgKzkwLDYgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9Eb3VibGVSYW5nZS5oCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Mb25nUmFuZ2Uu
aAotICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0
LmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0NvbnRyb2xsZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uY3BwCmluZGV4IGZjOWFhNDZjYzRkOThkZGRm
NjgyMzZjZDYzZjQxMTI3OGIwZWY3M2YuLmMzZGFjYTFjYjI0NThlNWI4ZjlkZDk4M2UwNDZlOGM3
NGI5N2FlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlSW5mby5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTggKzM0LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE1lZGlhRGV2aWNlSW5mbyk7CiAKLWlu
bGluZSBNZWRpYURldmljZUluZm86Ok1lZGlhRGV2aWNlSW5mbyhTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGRldmljZUlk
LCBjb25zdCBTdHJpbmcmIGdyb3VwSWQsIEtpbmQga2luZCkKLSAgICA6IENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyKGNvbnRleHQpCi0gICAgLCBtX2xhYmVsKGxhYmVsKQotICAgICwgbV9kZXZp
Y2VJZChkZXZpY2VJZCkKLSAgICAsIG1fZ3JvdXBJZChncm91cElkKQotICAgICwgbV9raW5kKGtp
bmQpCitSZWY8TWVkaWFEZXZpY2VJbmZvPiBNZWRpYURldmljZUluZm86OmNyZWF0ZShjb25zdCBT
dHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGRldmljZUlkLCBjb25zdCBTdHJpbmcmIGdyb3Vw
SWQsIEtpbmQga2luZCkKIHsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURldmljZUlu
Zm8obGFiZWwsIGRldmljZUlkLCBncm91cElkLCBraW5kKSk7CiB9CiAKLVJlZjxNZWRpYURldmlj
ZUluZm8+IE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWQsIGNvbnN0
IFN0cmluZyYgZ3JvdXBJZCwgS2luZCBraW5kKQorTWVkaWFEZXZpY2VJbmZvOjpNZWRpYURldmlj
ZUluZm8oY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCwgY29uc3Qg
U3RyaW5nJiBncm91cElkLCBLaW5kIGtpbmQpCisgICAgOiBtX2xhYmVsKGxhYmVsKQorICAgICwg
bV9kZXZpY2VJZChkZXZpY2VJZCkKKyAgICAsIG1fZ3JvdXBJZChncm91cElkKQorICAgICwgbV9r
aW5kKGtpbmQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFEZXZpY2VJbmZvKGNv
bnRleHQsIGxhYmVsLCBkZXZpY2VJZCwgZ3JvdXBJZCwga2luZCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZUluZm8uaAppbmRleCA2N2IxNDcwNDlkZmRmYjFjNGFiMTQ3NWQ5OWMwNDVk
YmEwZWM2ZGYwLi4zYzkyNmE5MWFjNDZhYmM2OTcyYzk5Zjc1MDYzODg3NTZhMGQxNzY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5m
by5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJ
bmZvLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzMsMTIgKzMzLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVk
aWFEZXZpY2VJbmZvIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFEZXZpY2VJbmZvPiwg
cHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ciB7CitjbGFzcyBNZWRpYURldmljZUluZm8gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YURldmljZUluZm8+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKE1lZGlhRGV2aWNlSW5mbyk7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBLaW5k
IHsgQXVkaW9pbnB1dCwgQXVkaW9vdXRwdXQsIFZpZGVvaW5wdXQgfTsKIAotICAgIHN0YXRpYyBS
ZWY8TWVkaWFEZXZpY2VJbmZvPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEtpbmQpOworICAgIHN0YXRp
YyBSZWY8TWVkaWFEZXZpY2VJbmZvPiBjcmVhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgS2luZCk7CiAKICAgICBjb25zdCBTdHJpbmcmIGxhYmVsKCkgY29u
c3QgeyByZXR1cm4gbV9sYWJlbDsgfQogICAgIGNvbnN0IFN0cmluZyYgZGV2aWNlSWQoKSBjb25z
dCB7IHJldHVybiBtX2RldmljZUlkOyB9CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBL
aW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KIAogcHJpdmF0ZToKLSAgICBNZWRp
YURldmljZUluZm8oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEtpbmQpOworICAgIE1lZGlhRGV2aWNlSW5mbyhjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBLaW5kKTsKIAogICAgIGNv
bnN0IFN0cmluZyBtX2xhYmVsOwogICAgIGNvbnN0IFN0cmluZyBtX2RldmljZUlkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8u
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8u
aWRsCmluZGV4IGQyYjJjOWZmMjYyZWU3OGUxNTkyMTg3NGRlYmY3Yjk3OTQ3MDljYjQuLjk2MDAx
ZGNlOWNkZWIxMDE5M2U1ZGZiM2IwNjg1OTNmZjI1MjA5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5pZGwKQEAgLTI2
LDYgKzI2LDcgQEAKIFsKICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgSlNHZW5l
cmF0ZVRvSlNPYmplY3QsCisgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiBdIGludGVyZmFjZSBN
ZWRpYURldmljZUluZm8gewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZGV2aWNl
SWQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhRGV2aWNlS2luZCBraW5kOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmlu
ZGV4IDRiZDdhOWQ3Y2NiOTkzY2ExMTRiOTFhZWJlN2FhYzg5YjVmMzAxOTAuLjFhMDVmZGYwN2Nh
NWU0ZjU4Y2YxMTFiOGM2YmMwMTBiNjNlZTRhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDE1IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw3IEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJNZWRpYURldmljZXNSZXF1ZXN0LmgiCisjaW5jbHVkZSAi
SlNNZWRpYURldmljZUluZm8uaCIKICNpbmNsdWRlICJNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3Ry
YWludHMuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC02MSw2ICs2MSwxMSBAQCBpbmxpbmUg
TWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJl
U3VyZmFjZVR5cGU6OldpbmRvdykgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6V2luZG93KSwgIk1lZGlhRGV2aWNl
czo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6V2luZG93IGlzIG5vdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6V2luZG93IGFzIGV4cGVjdGVkIik7
CiAgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhRGV2aWNlczo6RGlz
cGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6QXBwbGljYXRpb24pID09IHN0YXRpY19jYXN0PHNpemVf
dD4oUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6OkFwcGxp
Y2F0aW9uKSwgIk1lZGlhRGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6QXBwbGlj
YXRpb24gaXMgbm90IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VU
eXBlOjpBcHBsaWNhdGlvbiBhcyBleHBlY3RlZCIpOwogICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6OkJy
b3dzZXIpID09IHN0YXRpY19jYXN0PHNpemVfdD4oUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
OjpEaXNwbGF5U3VyZmFjZVR5cGU6OkJyb3dzZXIpLCAiTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2Fw
dHVyZVN1cmZhY2VUeXBlOjpCcm93c2VyIGlzIG5vdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6QnJvd3NlciBhcyBleHBlY3RlZCIpOworCisgICAgaWYg
KGF1dG8qIGNvbnRyb2xsZXIgPSBVc2VyTWVkaWFDb250cm9sbGVyOjpmcm9tKGRvY3VtZW50LnBh
Z2UoKSkpIHsKKyAgICAgICAgbV9jYW5BY2Nlc3NDYW1lcmEgPSBjb250cm9sbGVyLT5jYW5DYWxs
R2V0VXNlck1lZGlhKGRvY3VtZW50LCB7IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1cmVUeXBl
OjpDYW1lcmEgfSkgPT0gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzOjpD
YW5DYWxsOworICAgICAgICBtX2NhbkFjY2Vzc01pY3JvcGhvbmUgPSBjb250cm9sbGVyLT5jYW5D
YWxsR2V0VXNlck1lZGlhKGRvY3VtZW50LCB7IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1cmVU
eXBlOjpNaWNyb3Bob25lIH0pID09IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFj
Y2Vzczo6Q2FuQ2FsbDsKKyAgICB9CiB9CiAKIE1lZGlhRGV2aWNlczo6fk1lZGlhRGV2aWNlcygp
ID0gZGVmYXVsdDsKQEAgLTczLDYgKzc4LDcgQEAgdm9pZCBNZWRpYURldmljZXM6OnN0b3AoKQog
ICAgICAgICBpZiAoZG9jdW1lbnQgJiYgY29udHJvbGxlcikKICAgICAgICAgICAgIGNvbnRyb2xs
ZXItPnJlbW92ZURldmljZUNoYW5nZU9ic2VydmVyKG1fZGV2aWNlQ2hhbmdlVG9rZW4pOwogICAg
IH0KKyAgICBtX2RldmljZXMuY2xlYXIoKTsKIH0KIAogUmVmPE1lZGlhRGV2aWNlcz4gTWVkaWFE
ZXZpY2VzOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMTI5LDEyICsxMzUsNDkgQEAg
dm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50
cyYgY29uc3RyYWludHMsIFByb21pc2UKICAgICByZXF1ZXN0LT5zdGFydCgpOwogfQogCi12b2lk
IE1lZGlhRGV2aWNlczo6ZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYm
IHByb21pc2UpIGNvbnN0Cit2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMoY29uc3Qg
VmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQoreworICAgIFZlY3RvcjxSZWY8TWVk
aWFEZXZpY2VJbmZvPj4gZGV2aWNlczsKKyAgICBmb3IgKGF1dG8mIG5ld0RldmljZSA6IG5ld0Rl
dmljZXMpIHsKKyAgICAgICAgaWYgKCFtX2NhbkFjY2Vzc01pY3JvcGhvbmUgJiYgbmV3RGV2aWNl
LnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGlmICghbV9jYW5BY2Nlc3NDYW1lcmEgJiYgbmV3RGV2
aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBhdXRvIGluZGV4ID0gbV9kZXZpY2VzLmZpbmRNYXRj
aGluZyhbJm5ld0RldmljZV0oYXV0byYgb2xkRGV2aWNlKSB7CisgICAgICAgICAgICByZXR1cm4g
b2xkRGV2aWNlLT5kZXZpY2VJZCgpID09IG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkgeworICAgICAgICAgICAgZGV2
aWNlcy5hcHBlbmQobV9kZXZpY2VzW2luZGV4XS5jb3B5UmVmKCkpOworICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIGRldmljZVR5cGUgPSBuZXdEZXZpY2Uu
dHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgPyBNZWRpYURl
dmljZUluZm86OktpbmQ6OkF1ZGlvaW5wdXQgOiBNZWRpYURldmljZUluZm86OktpbmQ6OlZpZGVv
aW5wdXQ7CisgICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKG5l
d0RldmljZS5sYWJlbCgpLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIG5ld0RldmljZS5ncm91
cElkKCksIGRldmljZVR5cGUpKTsKKyAgICB9CisgICAgbV9kZXZpY2VzID0gV1RGTW92ZShkZXZp
Y2VzKTsKK30KKwordm9pZCBNZWRpYURldmljZXM6OmVudW1lcmF0ZURldmljZXMoRW51bWVyYXRl
RGV2aWNlc1Byb21pc2UmJiBwcm9taXNlKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+
ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgTWVk
aWFEZXZpY2VzUmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgV1RGTW92ZShwcm9taXNlKSktPnN0
YXJ0KCk7CisKKyAgICBhdXRvKiBjb250cm9sbGVyID0gVXNlck1lZGlhQ29udHJvbGxlcjo6ZnJv
bShkb2N1bWVudC0+cGFnZSgpKTsKKyAgICBpZiAoIWNvbnRyb2xsZXIgfHwgKCFtX2NhbkFjY2Vz
c0NhbWVyYSAmJiAhbV9jYW5BY2Nlc3NNaWNyb3Bob25lKSkgeworICAgICAgICBwcm9taXNlLnJl
c29sdmUoeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRyb2xsZXItPmVu
dW1lcmF0ZU1lZGlhRGV2aWNlcygqZG9jdW1lbnQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKHRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oY29uc3QgYXV0byYgbmV3RGV2
aWNlcywgY29uc3QgYXV0byYgZGV2aWNlSURIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICghd2Vha1RoaXMgfHwgaXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIHRoaXMtPmRvY3VtZW50KCktPnNldERldmljZUlESGFzaFNhbHQoZGV2aWNlSURI
YXNoU2FsdCk7CisgICAgICAgIHJlZnJlc2hEZXZpY2VzKG5ld0RldmljZXMpOworICAgICAgICBw
cm9taXNlLnJlc29sdmUobV9kZXZpY2VzKTsKKyAgICB9KTsKIH0KIAogTWVkaWFUcmFja1N1cHBv
cnRlZENvbnN0cmFpbnRzIE1lZGlhRGV2aWNlczo6Z2V0U3VwcG9ydGVkQ29uc3RyYWludHMoKQpA
QCAtMTU4LDggKzIwMSwxMCBAQCBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMgTWVkaWFE
ZXZpY2VzOjpnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpCiAKIHZvaWQgTWVkaWFEZXZpY2VzOjpz
Y2hlZHVsZWRFdmVudFRpbWVyRmlyZWQoKQogewotICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCi0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZGV2aWNlY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxh
YmxlOjpObykpOworICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGV2aWNlY2hh
bmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykp
OwogfQogCiBib29sIE1lZGlhRGV2aWNlczo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKQEAg
LTE3NywzMyArMjIyLDMwIEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjYW5TdXNwZW5kRm9yRG9jdW1l
bnRTdXNwZW5zaW9uKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBNZWRpYURl
dmljZXM6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8
RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMm
IG9wdGlvbnMpCit2b2lkIE1lZGlhRGV2aWNlczo6bGlzdGVuRm9yRGV2aWNlQ2hhbmdlcygpCiB7
Ci0gICAgaWYgKCFtX2xpc3RlbmluZ0ZvckRldmljZUNoYW5nZXMgJiYgZXZlbnRUeXBlID09IGV2
ZW50TmFtZXMoKS5kZXZpY2VjaGFuZ2VFdmVudCkgewotICAgICAgICBhdXRvKiBkb2N1bWVudCA9
IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBkb2N1bWVudCA/
IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSkgOiBudWxscHRyOwot
ICAgICAgICBpZiAoZG9jdW1lbnQgJiYgY29udHJvbGxlcikgewotICAgICAgICAgICAgbV9saXN0
ZW5pbmdGb3JEZXZpY2VDaGFuZ2VzID0gdHJ1ZTsKKyAgICBpZiAobV9saXN0ZW5pbmdGb3JEZXZp
Y2VDaGFuZ2VzIHx8ICghbV9jYW5BY2Nlc3NNaWNyb3Bob25lICYmICFtX2NhbkFjY2Vzc01pY3Jv
cGhvbmUpKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIG1fZGV2aWNlQ2hhbmdlVG9r
ZW4gPSBjb250cm9sbGVyLT5hZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIHRoaXNdKCkgeworICAgIG1fbGlzdGVuaW5nRm9yRGV2aWNlQ2hhbmdl
cyA9IHRydWU7CiAKLSAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IG1fc2NoZWR1bGVk
RXZlbnRUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
YXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGF1dG8qIGNvbnRyb2xsZXIg
PSBkb2N1bWVudCA/IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSkg
OiBudWxscHRyOworICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgICAgICAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgICAgICAg
ICAgICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBkb2N1bWVudCA/IFVzZXJNZWRpYUNvbnRyb2xsZXI6
OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSkgOiBudWxscHRyOwotICAgICAgICAgICAgICAgIGlmICgh
Y29udHJvbGxlcikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgIG1fZGV2aWNlQ2hh
bmdlVG9rZW4gPSBjb250cm9sbGVyLT5hZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8
IG1fc2NoZWR1bGVkRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgICAgICAgICAgYm9vbCBjYW5BY2Nlc3NNaWNyb3Bob25lID0gY29udHJvbGxlci0+
Y2FuQ2FsbEdldFVzZXJNZWRpYSgqZG9jdW1lbnQsIHsgVXNlck1lZGlhQ29udHJvbGxlcjo6Q2Fw
dHVyZVR5cGU6Ok1pY3JvcGhvbmUgfSkgPT0gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1l
ZGlhQWNjZXNzOjpDYW5DYWxsOwotICAgICAgICAgICAgICAgIGJvb2wgY2FuQWNjZXNzQ2FtZXJh
ID0gY29udHJvbGxlci0+Y2FuQ2FsbEdldFVzZXJNZWRpYSgqZG9jdW1lbnQsIHsgVXNlck1lZGlh
Q29udHJvbGxlcjo6Q2FwdHVyZVR5cGU6OkNhbWVyYSB9KSA9PSBVc2VyTWVkaWFDb250cm9sbGVy
OjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7Ci0gICAgICAgICAgICAgICAgaWYgKCFjYW5B
Y2Nlc3NNaWNyb3Bob25lICYmICFjYW5BY2Nlc3NDYW1lcmEpCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgbV9zY2hlZHVsZWRFdmVudFRpbWVyLnN0YXJ0T25lU2hvdChTZWNv
bmRzKHJhbmRvbU51bWJlcigpIC8gMikpOworICAgIH0pOworfQogCi0gICAgICAgICAgICAgICAg
bV9zY2hlZHVsZWRFdmVudFRpbWVyLnN0YXJ0T25lU2hvdChTZWNvbmRzKHJhbmRvbU51bWJlcigp
IC8gMikpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Citib29sIE1lZGlhRGV2
aWNlczo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxF
dmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYg
b3B0aW9ucykKK3sKKyAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VjaGFu
Z2VFdmVudCkKKyAgICAgICAgbGlzdGVuRm9yRGV2aWNlQ2hhbmdlcygpOwogCiAgICAgcmV0dXJu
IEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGE6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBX
VEZNb3ZlKGxpc3RlbmVyKSwgb3B0aW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAppbmRleCBkZTNkYTA4YmQwZWFhNmFiNmNm
Y2EyNTNhZjliYzcwNmI3YTQ5YzM1Li41MWNkMWI0Y2U5Yjk3MjE4OGIxYjEwN2RjNThhNWI1YjFm
OTc5YWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIH07CiAgICAgdm9pZCBn
ZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNvbnN0Owog
ICAgIHZvaWQgZ2V0RGlzcGxheU1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiwgUHJvbWlz
ZSYmKSBjb25zdDsKLSAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1By
b21pc2UmJikgY29uc3Q7CisgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0ZURldmlj
ZXNQcm9taXNlJiYpOwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cyBnZXRTdXBw
b3J0ZWRDb25zdHJhaW50cygpOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYURldmljZXM+
OjpyZWY7CkBAIC05MSw2ICs5MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZWRFdmVu
dFRpbWVyRmlyZWQoKTsKICAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmlu
ZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5l
ck9wdGlvbnMmKSBvdmVycmlkZTsKIAorICAgIHZvaWQgcmVmcmVzaERldmljZXMoY29uc3QgVmVj
dG9yPENhcHR1cmVEZXZpY2U+Jik7CisgICAgdm9pZCBsaXN0ZW5Gb3JEZXZpY2VDaGFuZ2VzKCk7
CisKICAgICBmcmllbmQgY2xhc3MgSlNNZWRpYURldmljZXNPd25lcjsKIAogICAgIC8vIEFjdGl2
ZURPTU9iamVjdApAQCAtMTEwLDYgKzExMywxMCBAQCBwcml2YXRlOgogICAgIGNvbnN0IEV2ZW50
TmFtZXMmIG1fZXZlbnROYW1lczsgLy8gTmVlZCB0byBjYWNoZSB0aGlzIHNvIHdlIGNhbiB1c2Ug
aXQgZnJvbSBHQyB0aHJlYWRzLgogICAgIGJvb2wgbV9saXN0ZW5pbmdGb3JEZXZpY2VDaGFuZ2Vz
IHsgZmFsc2UgfTsKICAgICBib29sIG1fZGlzYWJsZUdldERpc3BsYXlNZWRpYVVzZXJHZXN0dXJl
Q29uc3RyYWludCB7IGZhbHNlIH07CisKKyAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+
IG1fZGV2aWNlczsKKyAgICBib29sIG1fY2FuQWNjZXNzQ2FtZXJhIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fY2FuQWNjZXNzTWljcm9waG9uZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1M2RmNjM3OTgyODdhNGEwM2ZmODQxYjViZGQxZTE1
NWRjODQ2YWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuaCIKLQotI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNlLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLVJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+IE1lZGlhRGV2aWNl
c0VudW1lcmF0aW9uUmVxdWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgQ29tcGxldGlv
bkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoZG9jdW1lbnQsIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKSk7Ci19Ci0KLU1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6TWVk
aWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCi0gICAgOiBDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKLSAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCi17Ci19Ci0KLU1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdDo6fk1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCgpID0gZGVmYXVsdDsK
LQotU2VjdXJpdHlPcmlnaW4qIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6dXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4oKSBjb25zdAotewotICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCk7Ci19Ci0KLVNlY3VyaXR5T3JpZ2luKiBN
ZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6OnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKSBj
b25zdAotewotICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiAmc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT50b3BP
cmlnaW4oKTsKLX0KLQotdm9pZCBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6OmNvbnRl
eHREZXN0cm95ZWQoKQotewotICAgIC8vIENhbGxpbmcgY2FuY2VsKCkgbWF5IGRlc3Ryb3kgb3Vy
c2VsdmVzLgotICAgIFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOwotCi0gICAgY2FuY2VsKCk7Ci0gICAgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKLX0KLQotdm9pZCBNZWRpYURldmljZXNFbnVtZXJh
dGlvblJlcXVlc3Q6OnN0YXJ0KCkKLXsKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLQotICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOwotICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBVc2VyTWVkaWFDb250
cm9sbGVyOjpmcm9tKGRvY3VtZW50LnBhZ2UoKSk7Ci0gICAgaWYgKCFjb250cm9sbGVyKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBSZWY8TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0PiBw
cm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBjb250cm9sbGVyLT5lbnVtZXJhdGVNZWRpYURldmlj
ZXMoKnRoaXMpOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6Y2Fu
Y2VsKCkKLXsKLSAgICBtX2NvbXBsZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKLX0KLQotdm9pZCBN
ZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6OnNldERldmljZUluZm8oY29uc3QgVmVjdG9y
PENhcHR1cmVEZXZpY2U+JiBkZXZpY2VMaXN0LCBjb25zdCBTdHJpbmcmIGRldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKQotewotICAgIGlmICht
X2NvbXBsZXRpb25IYW5kbGVyKQotICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKGRldmljZUxp
c3QsIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2Vzcyk7
Ci0gICAgbV9jb21wbGV0aW9uSGFuZGxlciA9IG51bGxwdHI7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGJk
MGRkNTgzZTE2MzVhOWM4ZTlkYzY2NTEwMDkxZjU3N2ExMTU0Mi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oCisrKyAvZGV2L251bGwKQEAg
LTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5j
bHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgQ2FwdHVyZURldmljZTsKLWNsYXNzIERvY3VtZW50OwotY2xhc3MgU2VjdXJpdHlPcmlnaW47
Ci0KLWNsYXNzIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCBmaW5hbCA6IHB1YmxpYyBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFEZXZpY2Vz
RW51bWVyYXRpb25SZXF1ZXN0PiB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQ29tcGxldGlvbkhhbmRs
ZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29u
c3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJvb2wgb3JpZ2luSGFzUGVyc2lz
dGVudEFjY2Vzcyk+OwotCi0gICAgc3RhdGljIFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJl
cXVlc3Q+IGNyZWF0ZShEb2N1bWVudCYsIENvbXBsZXRpb25IYW5kbGVyJiYpOwotCi0gICAgdmly
dHVhbCB+TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KCk7Ci0KLSAgICB2b2lkIHN0YXJ0
KCk7Ci0gICAgdm9pZCBjYW5jZWwoKTsKLQotICAgIGJvb2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7
IHJldHVybiAhbV9jb21wbGV0aW9uSGFuZGxlcjsgfQotCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXREZXZpY2VJbmZvKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nl
c3MpOwotCi0gICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4oKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIENvbXBsZXRpb25I
YW5kbGVyJiYpOwotCi0gICAgLy8gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKLSAgICB2b2lk
IGNvbnRleHREZXN0cm95ZWQoKSBmaW5hbDsKLQotICAgIENvbXBsZXRpb25IYW5kbGVyIG1fY29t
cGxldGlvbkhhbmRsZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDEwZmRkMDIzNzQ3ZmRhZDc4YWFmYTk5MmY3YTFhMzI4NGM0NTYzYjIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJN
ZWRpYURldmljZXNSZXF1ZXN0LmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5j
bHVkZSAiQ2FwdHVyZURldmljZS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAi
RnJhbWUuaCIKLSNpbmNsdWRlICJKU01lZGlhRGV2aWNlSW5mby5oIgotI2luY2x1ZGUgIk1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oIgotI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIlVzZXJN
ZWRpYUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUg
PHd0Zi9TSEExLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotaW5saW5lIE1lZGlhRGV2aWNl
c1JlcXVlc3Q6Ok1lZGlhRGV2aWNlc1JlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYURl
dmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSkKLSAgICA6IENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyKCZkb2N1bWVudCkKLSAgICAsIG1fcHJvbWlzZShXVEZNb3ZlKHBy
b21pc2UpKQotewotfQotCi1SZWY8TWVkaWFEZXZpY2VzUmVxdWVzdD4gTWVkaWFEZXZpY2VzUmVx
dWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFEZXZpY2VzOjpFbnVtZXJhdGVE
ZXZpY2VzUHJvbWlzZSYmIHByb21pc2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVk
aWFEZXZpY2VzUmVxdWVzdChkb2N1bWVudCwgV1RGTW92ZShwcm9taXNlKSkpOwotfQotCi1NZWRp
YURldmljZXNSZXF1ZXN0Ojp+TWVkaWFEZXZpY2VzUmVxdWVzdCgpCi17Ci0gICAgLy8gVGhpcyBz
aG91bGQgb25seSBnZXQgZGVzdHJveWVkIGFmdGVyIHRoZSBlbnVtZXJhdGlvbiByZXF1ZXN0IGhh
cyBjb21wbGV0ZWQgb3IgaGFzIGJlZW4gY2FuY2VsZWQuCi0gICAgQVNTRVJUKCFtX2VudW1lcmF0
aW9uUmVxdWVzdCB8fCBtX2VudW1lcmF0aW9uUmVxdWVzdC0+d2FzQ2FuY2VsZWQoKSk7Ci19Ci0K
LVNlY3VyaXR5T3JpZ2luKiBNZWRpYURldmljZXNSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpIGNv
bnN0Ci17Ci0gICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJu
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLQotICAgIHJldHVy
biBudWxscHRyOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OmNvbnRleHREZXN0cm95
ZWQoKQotewotICAgIC8vIFRoZSBjYWxsIHRvIG1fZW51bWVyYXRpb25SZXF1ZXN0LT5jYW5jZWwo
KSBtaWdodCBkZWxldGUgdGhpcy4KLSAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKTsKLQotICAgIGlmIChtX2VudW1lcmF0aW9uUmVxdWVzdCkgewotICAgICAgICBtX2VudW1l
cmF0aW9uUmVxdWVzdC0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fZW51bWVyYXRpb25SZXF1ZXN0ID0g
bnVsbHB0cjsKLSAgICB9Ci0gICAgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OmNvbnRleHRE
ZXN0cm95ZWQoKTsKLX0KLQotdm9pZCBNZWRpYURldmljZXNSZXF1ZXN0OjpzdGFydCgpCi17Ci0g
ICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7Ci0gICAgYXV0byogY29udHJvbGxlciA9IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZy
b20oZG9jdW1lbnQucGFnZSgpKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIpIHsKLSAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIHsKLSAgICAg
ICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJvbWlzZS5yZXNvbHZlKHsgfSk7Ci0gICAgICAgIH0p
OwotCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIG1pY3JvcGhvbmVBY2Nlc3Mg
PSBjb250cm9sbGVyLT5jYW5DYWxsR2V0VXNlck1lZGlhKGRvY3VtZW50LCB7IFVzZXJNZWRpYUNv
bnRyb2xsZXI6OkNhcHR1cmVUeXBlOjpNaWNyb3Bob25lIH0pOwotICAgIGF1dG8gY2FtZXJhQWNj
ZXNzID0gY29udHJvbGxlci0+Y2FuQ2FsbEdldFVzZXJNZWRpYShkb2N1bWVudCwgeyBVc2VyTWVk
aWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZTo6Q2FtZXJhIH0pOwotICAgIGJvb2wgY2FuQWNjZXNz
TWljcm9waG9uZSA9IG1pY3JvcGhvbmVBY2Nlc3MgPT0gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0
VXNlck1lZGlhQWNjZXNzOjpDYW5DYWxsOwotICAgIGJvb2wgY2FuQWNjZXNzQ2FtZXJhID0gY2Ft
ZXJhQWNjZXNzID09IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2Vzczo6Q2Fu
Q2FsbDsKLSAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUgJiYgIWNhbkFjY2Vzc0NhbWVyYSkg
ewotICAgICAgICBjb250cm9sbGVyLT5sb2dHZXRVc2VyTWVkaWFEZW5pYWwoZG9jdW1lbnQsICFj
YW5BY2Nlc3NNaWNyb3Bob25lID8gbWljcm9waG9uZUFjY2VzcyA6IGNhbWVyYUFjY2VzcywgVXNl
ck1lZGlhQ29udHJvbGxlcjo6QmxvY2tlZENhbGxlcjo6RW51bWVyYXRlRGV2aWNlcyk7Ci0gICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSB7
Ci0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Byb21pc2UucmVzb2x2ZSh7IH0pOwotICAg
ICAgICB9KTsKLQotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gVGhpcyBsYW1iZGEg
a2VlcHMgfHRoaXN8IGFsaXZlIHVudGlsIHRoZSByZXF1ZXN0IGNvbXBsZXRlcyBvciBpcyBjYW5j
ZWxlZC4KLSAgICBhdXRvIGNvbXBsZXRpb24gPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBjYW5BY2Nlc3NNaWNyb3Bob25lLCBjYW5BY2Nlc3NDYW1lcmFdIChjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mIGNhcHR1cmVEZXZpY2VzLCBjb25zdCBTdHJpbmcmIGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCkgbXV0YWJsZSB7Ci0KLSAgICAgICAgbV9lbnVtZXJh
dGlvblJlcXVlc3QgPSBudWxscHRyOwotCi0gICAgICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGF1dG8mIGRvY3VtZW50ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICBk
b2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCk7Ci0K
LSAgICAgICAgVmVjdG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOwotICAgICAgICBm
b3IgKGF1dG8mIGRldmljZUluZm8gOiBjYXB0dXJlRGV2aWNlcykgewotICAgICAgICAgICAgaWYg
KCFjYW5BY2Nlc3NNaWNyb3Bob25lICYmIGRldmljZUluZm8udHlwZSgpID09IENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICBpZiAoIWNhbkFjY2Vzc0NhbWVyYSAmJiBkZXZpY2VJbmZvLnR5cGUoKSA9PSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0KLSAgICAgICAgICAgIGF1dG8gZGV2aWNlVHlwZSA9IGRldmljZUluZm8udHlwZSgpID09
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgPyBNZWRpYURldmljZUluZm86
OktpbmQ6OkF1ZGlvaW5wdXQgOiBNZWRpYURldmljZUluZm86OktpbmQ6OlZpZGVvaW5wdXQ7Ci0g
ICAgICAgICAgICBkZXZpY2VzLmFwcGVuZChNZWRpYURldmljZUluZm86OmNyZWF0ZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIGRldmljZUluZm8ubGFiZWwoKSwgZGV2aWNlSW5mby5wZXJzaXN0
ZW50SWQoKSwgZGV2aWNlSW5mby5ncm91cElkKCksIGRldmljZVR5cGUpKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgZGV2aWNlcyA9IFdURk1vdmUoZGV2aWNlcyldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5tX3Byb21pc2UucmVzb2x2ZShkZXZpY2VzKTsKLSAgICAgICAgfSk7Ci0g
ICAgfTsKLQotICAgIG1fZW51bWVyYXRpb25SZXF1ZXN0ID0gTWVkaWFEZXZpY2VzRW51bWVyYXRp
b25SZXF1ZXN0OjpjcmVhdGUoZG9jdW1lbnQsIFdURk1vdmUoY29tcGxldGlvbikpOwotICAgIG1f
ZW51bWVyYXRpb25SZXF1ZXN0LT5zdGFydCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzUzZTY0YzU0MzY2OWYxNDY0ODY2ZGRmMGFjMTFlYTlh
NDAxZDI5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuaAor
KysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3Q7Ci1jbGFzcyBTZWN1cml0eU9yaWdpbjsKLQotY2xhc3MgTWVkaWFEZXZpY2VzUmVx
dWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlc1JlcXVlc3Q+LCBwcml2YXRlIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE1lZGlh
RGV2aWNlc1JlcXVlc3Q+IGNyZWF0ZShEb2N1bWVudCYsIE1lZGlhRGV2aWNlczo6RW51bWVyYXRl
RGV2aWNlc1Byb21pc2UmJik7Ci0KLSAgICB2aXJ0dWFsIH5NZWRpYURldmljZXNSZXF1ZXN0KCk7
Ci0KLSAgICB2b2lkIHN0YXJ0KCk7Ci0KLSAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4oKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBNZWRpYURldmljZXNSZXF1ZXN0KERvY3VtZW50
JiwgTWVkaWFEZXZpY2VzOjpFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKTsKLQotICAgIHZvaWQg
Y29udGV4dERlc3Ryb3llZCgpIGZpbmFsOwotCi0gICAgTWVkaWFEZXZpY2VzOjpFbnVtZXJhdGVE
ZXZpY2VzUHJvbWlzZSBtX3Byb21pc2U7Ci0gICAgUmVmUHRyPE1lZGlhRGV2aWNlc1JlcXVlc3Q+
IG1fcHJvdGVjdG9yOwotICAgIFJlZlB0cjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+
IG1fZW51bWVyYXRpb25SZXF1ZXN0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNwcAppbmRleCA0ZDZlY2YzYTU2NjEwY2Zm
MGEyZTE4OTc1ZDQ5ZTEyOTE2NDE5Y2U3Li4wMDdkMmMzYTRiOWViYTFjYWMxMzA0OTc2ODZkNDQ2
ZDJmMDUzMjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNlbmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTZW5kZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUlRDRFRNRlNl
bmRlci5oIgogI2luY2x1ZGUgIlJUQ0RUTUZTZW5kZXJCYWNrZW5kLmgiCiAjaW5jbHVkZSAiUlRD
UnRwQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAiUlRDUnRwVHJhbnNjZWl2ZXIuaCIKICNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhQ2xpZW50LmgKaW5kZXggYjJhYTU2MDNmNTc1MTI3ZTVmNWE4NjQ2YTlhODc3ZTIx
NGE0YTYxOC4uNDNiMmEwZGRjZDUyYjVkMWFjNTYyYWU3YTEyOGU0MWQyMzNkOTg0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVu
dC5oCkBAIC0zMywxMSArMzMsMTIgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvT2JqZWN0SWRl
bnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdDsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CiBjbGFzcyBQYWdlOwogY2xh
c3MgVXNlck1lZGlhUmVxdWVzdDsKIApAQCAtNDgsOCArNDksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RVc2VyTWVkaWFBY2Nlc3MoVXNlck1lZGlhUmVxdWVzdCYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsVXNlck1lZGlhQWNjZXNzUmVxdWVzdChVc2VyTWVkaWFS
ZXF1ZXN0JikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlcyhN
ZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNh
bmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlcyhE
b2N1bWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiwgY29uc3QgU3RyaW5nJik+JiYpID0gMDsKIAogICAgIGVudW0gRGV2aWNlQ2hhbmdlT2Jz
ZXJ2ZXJUb2tlblR5cGUgeyB9OwogICAgIHVzaW5nIERldmljZUNoYW5nZU9ic2VydmVyVG9rZW4g
PSBPYmplY3RJZGVudGlmaWVyPERldmljZUNoYW5nZU9ic2VydmVyVG9rZW5UeXBlPjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNv
bnRyb2xsZXIuY3BwCmluZGV4IDhkN2U2M2NjNjA2ZDZkYTE5ZmJkYjEyZGU1NGZiODU1ZmRmNjJj
OTkuLjY1NjI0NjhhOWQ3OWY4M2Q4Mjg3NTVkN2JiMjc1ZTkyZjc3YTFhZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250
cm9sbGVyLmNwcApAQCAtODUsNyArODUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBbGxvd2Vk
QnlGZWF0dXJlUG9saWN5KGNvbnN0IEZlYXR1cmVQb2xpY3kmIGZlYXR1cmVQb2xpY3ksCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVk
aWFBY2Nlc3MgaXNBbGxvd2VkVG9Vc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBEb2N1bWVudCYgdG9w
RG9jdW1lbnQsIE9wdGlvblNldDxVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZT4gdHlw
ZXMpCitzdGF0aWMgVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzIGlzQWxs
b3dlZFRvVXNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRG9jdW1lbnQmIHRvcERv
Y3VtZW50LCBPcHRpb25TZXQ8VXNlck1lZGlhQ29udHJvbGxlcjo6Q2FwdHVyZVR5cGU+IHR5cGVz
KQogewogICAgIGlmICgmZG9jdW1lbnQgPT0gJnRvcERvY3VtZW50KQogICAgICAgICByZXR1cm4g
VXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzOjpDYW5DYWxsOwpAQCAtMTA2
LDcgKzEwNiw3IEBAIHN0YXRpYyBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nl
c3MgaXNBbGxvd2VkVG9Vc2UoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgcmV0dXJuIFVzZXJNZWRp
YUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2Vzczo6QmxvY2tlZEJ5RmVhdHVyZVBvbGljeTsK
IH0KIAotVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzIFVzZXJNZWRpYUNv
bnRyb2xsZXI6OmNhbkNhbGxHZXRVc2VyTWVkaWEoRG9jdW1lbnQmIGRvY3VtZW50LCBPcHRpb25T
ZXQ8VXNlck1lZGlhQ29udHJvbGxlcjo6Q2FwdHVyZVR5cGU+IHR5cGVzKQorVXNlck1lZGlhQ29u
dHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI6OmNhbkNhbGxH
ZXRVc2VyTWVkaWEoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBPcHRpb25TZXQ8VXNlck1lZGlh
Q29udHJvbGxlcjo6Q2FwdHVyZVR5cGU+IHR5cGVzKSBjb25zdAogewogICAgIEFTU0VSVCghdHlw
ZXMuaXNFbXB0eSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaAppbmRleCBkZmU4OTY5ZTllYTVhODhhNTcw
YjA5MTViN2ZkNDQyM2UwOGQ0MmY1Li5hNDVhZTM1NTU1MDk4YmRiN2E1NmY2YTI0Nzg3MDNjODdl
ZGNmYzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ1LDggKzQ2LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUFjY2VzcyhVc2VyTWVkaWFSZXF1
ZXN0Jik7CiAgICAgdm9pZCBjYW5jZWxVc2VyTWVkaWFBY2Nlc3NSZXF1ZXN0KFVzZXJNZWRpYVJl
cXVlc3QmKTsKIAotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRp
b25SZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgZW51
bWVyYXRlTWVkaWFEZXZpY2VzKERvY3VtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJik7CiAKICAgICBVc2Vy
TWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4gYWRkRGV2aWNlQ2hhbmdlT2Jz
ZXJ2ZXIoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlRGV2aWNlQ2hh
bmdlT2JzZXJ2ZXIoVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuKTsK
QEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgICAgICBDYW1lcmEgPSAxIDw8IDEsCiAgICAg
ICAgIERpc3BsYXkgPSAxIDw8IDMKICAgICB9OwotICAgIEdldFVzZXJNZWRpYUFjY2VzcyBjYW5D
YWxsR2V0VXNlck1lZGlhKERvY3VtZW50JiwgT3B0aW9uU2V0PENhcHR1cmVUeXBlPik7CisgICAg
R2V0VXNlck1lZGlhQWNjZXNzIGNhbkNhbGxHZXRVc2VyTWVkaWEoY29uc3QgRG9jdW1lbnQmLCBP
cHRpb25TZXQ8Q2FwdHVyZVR5cGU+KSBjb25zdDsKIAogICAgIGVudW0gY2xhc3MgQmxvY2tlZENh
bGxlciB7CiAgICAgICAgIEdldFVzZXJNZWRpYSwKQEAgLTg5LDE1ICs4OSwxMSBAQCBpbmxpbmUg
dm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjpjYW5jZWxVc2VyTWVkaWFBY2Nlc3NSZXF1ZXN0KFVz
ZXJNZWRpYVJlcXVlc3QmCiAgICAgbV9jbGllbnQtPmNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVl
c3QocmVxdWVzdCk7CiB9CiAKLWlubGluZSB2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OmVudW1l
cmF0ZU1lZGlhRGV2aWNlcyhNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmIHJlcXVlc3Qp
CitpbmxpbmUgdm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjplbnVtZXJhdGVNZWRpYURldmljZXMo
RG9jdW1lbnQmIGRvY3VtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxD
YXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIG1fY2xpZW50LT5lbnVtZXJhdGVNZWRpYURldmljZXMocmVxdWVzdCk7CisgICAgbV9jbGll
bnQtPmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhkb2N1bWVudCwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCi1pbmxpbmUgdm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjpjYW5jZWxNZWRp
YURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0
JiByZXF1ZXN0KQotewotICAgIG1fY2xpZW50LT5jYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QocmVxdWVzdCk7Ci19CiAKIGlubGluZSBVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNo
YW5nZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhQ29udHJvbGxlcjo6YWRkRGV2aWNlQ2hhbmdlT2Jz
ZXJ2ZXIoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgb2JzZXJ2ZXIpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IGNhNDYxNDIzNjUwMTI2NzRiYWRkMGQzNWE4NGQwMDIyOTFkNTc1MDYuLjkzOWFhZDhkZTZm
NGEwZmNkZWVlNTVmMzZjMTQwNmJkZjM0YmVkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNTksOCAr
MTU5LDYgQEAgTW9kdWxlcy9tZWRpYXNvdXJjZS9WaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAKIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3BwCiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzLmNwcAotTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNFbnVtZXJh
dGlvblJlcXVlc3QuY3BwCi1Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3Qu
Y3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNDk1N2JhYmM5N2IxNzEwNGE0NDUzNWU0MzgzZmRmYThiMTI3
NDIwMS4uZGFhOTkwZmRhMGUzMjQ3NzllMWVjYTEzNThkOTkzOTE0Yzc2NTY3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIx
LDcgKzEyMSw2IEBACiAJCTA3Mzc5NEVDMTlFRTM0MUUwMEU1QTA0NSAvKiBKU1JUQ0ljZVNlcnZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0
RUExOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVyLmggKi87IH07CiAJCTA3Mzc5NEZB
MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRGNDE5RjU4NjRFMDBF
NUEwNDUgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oICovOyB9OwogCQkwNzM3OTRGRTE5
RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjgxOUY1ODY0RTAwRTVBMDQ1IC8qIFJU
Q05vdGlmaWVyc01vY2suaCAqLzsgfTsKLQkJMDczOTRFQ0ExQkFCMkNENzAwQkU5OUNEIC8qIE1l
ZGlhRGV2aWNlc1JlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Mzk0RUM5MUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcz
QTE1NTQyMTc3QTQyNjAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNBMTU1MzIxNzdBMzlBMDBFQTA4
RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1w
bGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmgg
Ki87IH07CiAJCTA3M0I4NzY5MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4
NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLzsgfTsKQEAg
LTE5Niw3ICsxOTUsNiBAQAogCQkwN0FBNkI2QzE2NkQyQzEzMDBENDU2NzEgLyogSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3QUE2QjY5MTY2RDAxOTUwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGT2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTA3QUI5OTY5MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0FCOTk2NTE4
REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oICovOyB9OwogCQkwN0FCOTk2QjE4
REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0FCOTk2NzE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNl
U2VydmVyLmggKi87IH07Ci0JCTA3QUJFRjZFMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3QUJFRjZEMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwN0FGRjQyMjFFRkIxNDQ5MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZUlPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDdBRkY0MjAxRUZCMTQ0NzAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCAq
LzsgfTsKIAkJMDdBRkY0MjMxRUZCMTQ0OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
N0FGRjQyMTFFRkIxNDQ3MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbSAq
LzsgfTsKIAkJMDdCMDExM0YxMDMyMjQyMjAwRkJEQzMzIC8qIEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
N0IwMTEzRTEwMzIyNDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaCAq
LzsgfTsKQEAgLTUzNTAsOCArNTM0OCw2IEBACiAJCTA3Mzc5NEY0MTlGNTg2NEUwMEU1QTA0NSAv
KiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDczNzk0RjcxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTm90aWZpZXJzTW9jay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0
NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ05vdGlmaWVyc01vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczOTRF
QzcxQkFCMkNDRDAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3Mzk0RUM5MUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRp
YURldmljZXNSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
RGV2aWNlc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQTE1NTEy
MTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU0NDMsOCArNTQzOSw2IEBACiAJCTA3QUI5
OTY2MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSVENDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDdBQjk5NjcxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENJY2VTZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDdBQjk5NjgxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDSWNlU2VydmVyLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMDdBQkVGNkIxRDhBMUM1ODAwRjIxOTcyIC8qIE1lZGlhRGV2aWNl
c0VudW1lcmF0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwN0FCRUY2RDFEOEExQzc2MDBGMjE5NzIgLyogTWVkaWFEZXZpY2VzRW51
bWVyYXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0FGRjQyMDFFRkIxNDQ3MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlQXVkaW9DYXB0dXJlU291cmNl
SU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QUZGNDIxMUVGQjE0NDcwMEI1
NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCMDExM0UxMDMyMjQyMjAwRkJEQzMzIC8qIEFjY2Vz
c2liaWxpdHlNZWRpYUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNTY3MCwxMCArMTU2NjQsNiBAQAogCQkJCTVFQTcyNUNEMUFDQUJDRDkwMEVBRDE3QiAv
KiBNZWRpYURldmljZXMuY3BwICovLAogCQkJCTVFQTcyNUNFMUFDQUJDRDkwMEVBRDE3QiAvKiBN
ZWRpYURldmljZXMuaCAqLywKIAkJCQk1RUE3MjVDRjFBQ0FCQ0Q5MDBFQUQxN0IgLyogTWVkaWFE
ZXZpY2VzLmlkbCAqLywKLQkJCQkwN0FCRUY2QjFEOEExQzU4MDBGMjE5NzIgLyogTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0LmNwcCAqLywKLQkJCQkwN0FCRUY2RDFEOEExQzc2MDBGMjE5
NzIgLyogTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmggKi8sCi0JCQkJMDczOTRFQzcx
QkFCMkNDRDAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuY3BwICovLAotCQkJCTA3Mzk0
RUM5MUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggKi8sCiAJCQkJMDcy
MjFCNEMxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtLmNwcCAqLywKIAkJCQkwNzIyMUI0
RDE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW0uaCAqLywKIAkJCQkwNzIyMUI0RTE3Q0VD
MzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW0uaWRsICovLApAQCAtMzA2NjgsOCArMzA2NTgsNiBA
QAogCQkJCUNERjJCMDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNTE0NUI5MDFCM0ExQ0UwMDA2NjJCRjcgLyogTWVkaWFEZXZpY2VJ
bmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RUE3MjVEMzFBQ0FCRDQ3MDBFQUQxN0IgLyogTWVk
aWFEZXZpY2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwN0FCRUY2RTFEOEExQzc2MDBGMjE5NzIg
LyogTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQkw
NzM5NEVDQTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTcyMDVBQjgxMjM5MjkxMDAwQjE3MzgwIC8qIE1lZGlhRG9jdW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZENkYyNTJEMTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RkU5OUREMTg4MDdBN0Qw
MDI1NjY0OCAvKiBNZWRpYUVsZW1lbnRTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBkYjRjZGExMTE2MWQyMjI4Mjk4NGZlZTlh
ZWFkNDBhNGVlYzFhNDkxLi4wMjM4N2Q0M2JjY2FjZGU1YmExNDhmNTA5NTA3YTRmYzVhZjhlZjZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJl
cXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEyMSwyOCArMTIyLDMzIEBAIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgp
CiAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSB8fCAhbV9wYWdlLm1haW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGhhbmRsZXIgPSBbdGhpc10oUGVybWlz
c2lvbkluZm8gcGVybWlzc2lvbkluZm8pIG11dGFibGUgewotICAgICAgICBzd2l0Y2ggKHBlcm1p
c3Npb25JbmZvKSB7Ci0gICAgICAgIGNhc2UgUGVybWlzc2lvbkluZm86OkVycm9yOgotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpVbmtub3duOgotICAg
ICAgICAgICAgaWYgKG1fZ3JhbnRlZFJlcXVlc3RzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQZXJtaXNzaW9uSW5m
bzo6R3JhbnRlZDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGlmICgh
bV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDYXB0dXJlRGV2aWNl
c0NoYW5nZWQoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKLSAgICB9OwotCiAgICAgYXV0byBvcmlnaW4g
PSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fcGFnZS5tYWluRnJhbWUoKS0+dXJs
KCkpOwotICAgIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKG1fcGFnZS5tYWluRnJhbWUoKS0+
ZnJhbWVJRCgpLCBvcmlnaW4uZ2V0KCksIFdURk1vdmUob3JpZ2luKSwgV1RGTW92ZShoYW5kbGVy
KSk7CisgICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8obV9wYWdlLm1haW5GcmFtZSgpLT5m
cmFtZUlEKCksIG9yaWdpbi5nZXQoKSwgV1RGTW92ZShvcmlnaW4pLCBbdGhpc10oUGVybWlzc2lv
bkluZm8gcGVybWlzc2lvbkluZm8pIHsKKyAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKHBl
cm1pc3Npb25JbmZvKTsKKyAgICB9KTsKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1
cmVEZXZpY2VzQ2hhbmdlZChQZXJtaXNzaW9uSW5mbyBwZXJtaXNzaW9uSW5mbykKK3sKKyAgICBz
d2l0Y2ggKHBlcm1pc3Npb25JbmZvKSB7CisgICAgY2FzZSBQZXJtaXNzaW9uSW5mbzo6RXJyb3I6
CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpVbmtub3duOgorICAg
ICAgICBpZiAobV9ncmFudGVkUmVxdWVzdHMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpHcmFudGVkOgorICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKK30KKyNl
bmRpZgorCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjbGVh
ckNhY2hlZFN0YXRlKCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwpAQCAtMjI2
LDggKzIzMiw5IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVkaWFQZXJtCiAgICAgaWYgKHJlcXVlc3QucmVx
dWVzdFR5cGUoKSA9PSBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSkKICAgICAg
ICAgbV9ncmFudGVkUmVxdWVzdHMuYXBwZW5kKG1ha2VSZWYocmVxdWVzdCkpOwogCisgICAgLy8g
RklYTUU6IG1faGFzRmlsdGVyZWREZXZpY2VMaXN0IHdpbGwgdHJpZ2dlciBvbmRldmljZWNoYW5n
ZSBldmVudHMgZm9yIHZhcmlvdXMgZG9jdW1lbnRzIGZyb20gZGlmZmVyZW50IG9yaWdpbnMuCiAg
ICAgaWYgKG1faGFzRmlsdGVyZWREZXZpY2VMaXN0KQotICAgICAgICBjYXB0dXJlRGV2aWNlc0No
YW5nZWQoKTsKKyAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKFBlcm1pc3Npb25JbmZvOjpH
cmFudGVkKTsKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNlTGlzdCA9IGZhbHNlOwogCiAgICAgKytt
X2hhc1BlbmRpbmdDYXB0dXJlOwpAQCAtNjA0LDEyICs2MTEsMTUgQEAgVmVjdG9yPENhcHR1cmVE
ZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmls
dGVyZWREZXYKIH0KICNlbmRpZgogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpl
bnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgdXNlck1lZGlhSUQpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7
CiAKLSAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlELCBmcmFt
ZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiA9IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmNv
cHlSZWYoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IHRvcExldmVsRG9jdW1lbnRPcmlnaW4u
Y29weVJlZigpXShQZXJtaXNzaW9uSW5mbyBwZXJtaXNzaW9uSW5mbykgbXV0YWJsZSB7CisgICAg
YXV0byBjYWxsYmFjayA9IFt0aGlzLCBmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiA9
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmNvcHlSZWYoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biA9IHRvcExldmVsRG9jdW1lbnRPcmlnaW4uY29weVJlZigpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShQZXJtaXNzaW9uSW5mbyBwZXJtaXNzaW9uSW5m
bykgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gY2FsbENvbXBsZXRpb25IYW5kbGVyID0gbWFrZVNj
b3BlRXhpdChbJmNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0sIHsgfSk7CisgICAgICAgIH0pOwogCiAgICAgICAgIGJvb2wgb3JpZ2luSGFzUGVy
c2lzdGVudEFjY2VzczsKICAgICAgICAgc3dpdGNoIChwZXJtaXNzaW9uSW5mbykgewpAQCAtNjMx
LDcgKzY0MSwxMyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NgogCiAgICAgICAgIGF1dG8mIHJl
cXVlc3RPcmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKTsKICAgICAgICAgYXV0
byYgdG9wT3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKTsKLSAgICAgICAgbV9w
YWdlLndlYnNpdGVEYXRhU3RvcmUoKS5kZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpLmRldmljZUlk
SGFzaFNhbHRGb3JPcmlnaW4ocmVxdWVzdE9yaWdpbiwgdG9wT3JpZ2luLCBbdGhpcywgd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHJlcXVlc3RJRCwgZnJhbWVJRCwgdXNlck1lZGlhSUQs
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luID0gV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmln
aW4pLCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzXSAoU3RyaW5nJiYgZGV2aWNlSURIYXNoU2Fs
dCkgeworCisgICAgICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlci5yZWxlYXNlKCk7CisgICAgICAg
IG1fcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoKS5kZXZp
Y2VJZEhhc2hTYWx0Rm9yT3JpZ2luKHJlcXVlc3RPcmlnaW4sIHRvcE9yaWdpbiwgW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCByZXF1ZXN0SUQsIGZyYW1lSUQsIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luID0gV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4gPSBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCBvcmln
aW5IYXNQZXJzaXN0ZW50QWNjZXNzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShTdHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIGF1dG8gY2FsbENvbXBsZXRpb25IYW5kbGVyID0gbWFrZVNjb3BlRXhpdChbJmNvbXBs
ZXRpb25IYW5kbGVyXSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCB7
IH0pOworICAgICAgICAgICAgfSk7CisKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIW1f
cGVuZGluZ0RldmljZVJlcXVlc3RzLnJlbW92ZShyZXF1ZXN0SUQpKQogICAgICAgICAgICAgICAg
IHJldHVybjsKIApAQCAtNjQyLDE2ICs2NTgsMTcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDYK
IAogICAgICAgICAgICAgYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMgPSBvcmlnaW5IYXNQZXJzaXN0
ZW50QWNjZXNzIHx8IHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoZnJhbWVJRCwgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4uZ2V0KCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkpOwog
Ci0gICAgICAgICAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRp
ZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVtZXJhdGlvbiB7IHVzZXJNZWRpYUlELCBjb21wdXRlRmls
dGVyZWREZXZpY2VMaXN0KHJldmVhbElkc0FuZExhYmVscywgZGV2aWNlSURIYXNoU2FsdCksIGRl
dmljZUlESGFzaFNhbHQsIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MgfSwgbV9wYWdlLnBhZ2VJ
RCgpKTsKKyAgICAgICAgICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlci5yZWxlYXNlKCk7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KHJldmVh
bElkc0FuZExhYmVscywgZGV2aWNlSURIYXNoU2FsdCksIGRldmljZUlESGFzaFNhbHQpOwogICAg
ICAgICB9KTsKICAgICB9OwogCi0gICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8oZnJhbWVJ
RCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBnZXRVc2VyTWVk
aWFQZXJtaXNzaW9uSW5mbyhmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
KSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShjYWxsYmFjaykpOwog
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0odXNlck1lZGlhSUQpOwogICAgIFVOVVNFRF9QQVJBTShm
cmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0odXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pOwogICAg
IFVOVVNFRF9QQVJBTSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0sIHsgfSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgKaW5kZXggYmJiYTQ0YWM4MmJkMjgwNzViZGRmYmI0NTQ0NGNhNTY5YWNjZmI5Ny4uYjc0ZTY4
MzUwZTZlMDNjZDhjNDViODJmMDhmNWFkMzQyMzkzOWIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdyYW50UmVx
dWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAgICAgdm9pZCBkZW55UmVx
dWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiwgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJpbmcm
IGludmFsaWRDb25zdHJhaW50ID0geyB9KTsKIAotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZp
Y2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7
CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYpOwogCiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgp
OwogICAgIHZvaWQgc2NoZWR1bGVOZXh0UmVqZWN0aW9uKCk7CkBAIC0xMDQsNiArMTA0LDcgQEAg
cHJpdmF0ZToKIAogICAgIHVzaW5nIFBlcm1pc3Npb25JbmZvID0gVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHk6OlBlcm1pc3Npb25JbmZvOwogICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlz
c2lvbkluZm8oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBl
cm1pc3Npb25JbmZvKT4mJik7CisgICAgdm9pZCBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoUGVybWlz
c2lvbkluZm8pOwogCiAgICAgUmVxdWVzdEFjdGlvbiBnZXRSZXF1ZXN0QWN0aW9uKGNvbnN0IFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZDJmOWE4ODcwNTdiMGRjZDc5NDc4YjEwYjcwMDczYzZk
ODZjN2JiMi4uNjRhOTk1ODk4NTc5NGNhNDQ4NzUwZDM0MmE4ZjA1MmZmNDJjZThmNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03NDYzLDEzICs3NDYzLDEz
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1l
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5E
YXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW5EYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndl
YkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CiAK
LSAgICB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5lbnVtZXJhdGVNZWRpYURl
dmljZXNGb3JGcmFtZSh1c2VyTWVkaWFJRCwgZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW5EYXRhLnNlY3VyaXR5T3JpZ2luKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3Vy
aXR5T3JpZ2luKCkpOworICAgIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmVu
dW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luRGF0YS5zZWN1cml0eU9yaWdpbigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1
cml0eU9yaWdpbigpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTSh1c2VyTWVkaWFJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyMDc2OTU5MWFjMWUzMjJmNTFj
ZGNmNTIwZTVhY2VlYjJlM2Y5Y2E5Li4wMGM2ODBkMzU2ZmU3MjBiNDg4ODgwODgzZjAxYWU2Nzli
ZDc5Yzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTcxNSw3
ICsxNzE1LDcgQEAgcHJpdmF0ZToKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CiAjZW5kaWYKICAg
ICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1l
ZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlh
RGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW5EYXRhKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3Ry
aW5nJik+JiYpOwogICAgIHZvaWQgYmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKTsKIAog
ICAgIHZvaWQgcnVuTW9kYWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxNTg5MTllMzE2MDExZDY5OTQwZGQ5YjFlMmY3Y2Nj
MzFlYTRlNDNiLi43OWY2MmRmZDljMmNjNWViMmE2MWMxOTczODU0MWI5YTlhMzM1NmI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0yODIsMTEgKzI4MiwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBH
ZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCi0gICAgCisKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcwogICAgIFJlcXVlc3RVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0KQotICAgIEVudW1lcmF0ZU1lZGlhRGV2aWNlc0Zv
ckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpCisgICAgRW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5J
ZGVudGlmaWVyKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGRldmljZXMsIFN0
cmluZyBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgQXN5bmMKICAgICBCZWdpbk1vbml0
b3JpbmdDYXB0dXJlRGV2aWNlcygpCiAjZW5kaWYKIApAQCAtMjk4LDcgKzI5OCw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKIAogICAgICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIgbWVzc2FnZXMK
LSNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKSAgCisjaWYgVVNFKFVOSUZJRURfVEVYVF9D
SEVDS0lORykKICAgICBDaGVja1RleHRPZlBhcmFncmFwaChTdHJpbmcgdGV4dCwgT3B0aW9uU2V0
PFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGU+IGNoZWNraW5nVHlwZXMsIGludDMyX3QgaW5zZXJ0
aW9uUG9pbnQpIC0+IChWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRz
KSBTeW5jaHJvbm91cwogI2VuZGlmCiAgICAgQ2hlY2tTcGVsbGluZ09mU3RyaW5nKFN0cmluZyB0
ZXh0KSAtPiAoaW50MzJfdCBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQzMl90IG1pc3NwZWxsaW5n
TGVuZ3RoKSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAppbmRleCA4NjgyODgyYTBiNThjNjliMjZiZjViMjYxYmFmNGYxMTNkNTg0
MjI2Li42Mjc3ZTMxYjI3OWM4YzU0NzhjMGU5ZDQwYmRkOWY2ZDA1MjQ3OWY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFT
dHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMTU5LDQ1ICsx
NTksMTYgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnVzZXJNZWRp
YUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCByZXF1ZXMKICAgICByZXF1ZXN0LT5kZW55KHJlYXNv
biwgV1RGTW92ZShpbnZhbGlkQ29uc3RyYWludCkpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjplbnVtZXJhdGVNZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0
cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGF1dG8qIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KHJlcXVlc3Quc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBh
dXRvKiBmcmFtZSA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBudWxscHRyOwotCisg
ICAgYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsKLSAg
ICAgICAgcmVxdWVzdC5zZXREZXZpY2VJbmZvKFZlY3RvcjxDYXB0dXJlRGV2aWNlPigpLCBlbXB0
eVN0cmluZygpLCBmYWxzZSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgZW1wdHlT
dHJpbmcoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCByZXF1ZXN0
SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwotICAgIG1faWRUb01lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdE1hcC5hZGQocmVxdWVzdElELCAmcmVxdWVzdCk7Ci0gICAgbV9tZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3RUb0lETWFwLmFkZCgmcmVxdWVzdCwgcmVxdWVzdElEKTsKLQot
ICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7
Ci0gICAgQVNTRVJUKHdlYkZyYW1lKTsKLQotICAgIFNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luID0gcmVxdWVzdC50b3BMZXZlbERvY3VtZW50T3JpZ2luKCk7Ci0gICAgQVNT
RVJUKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwotICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHJlcXVlc3RJRCwgd2Vi
RnJhbWUtPmZyYW1lSUQoKSwgcmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpLT5kYXRh
KCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4tPmRhdGEoKSkpOwotfQotCi12b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb24o
V2ViQ29yZTo6TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IHVpbnQ2NF90IHJlcXVlc3RJRCA9IG1fbWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0VG9J
RE1hcC50YWtlKCZyZXF1ZXN0KTsKLSAgICBpZiAoIXJlcXVlc3RJRCkKLSAgICAgICAgcmV0dXJu
OwotICAgIHJlcXVlc3Quc2V0RGV2aWNlSW5mbyhWZWN0b3I8Q2FwdHVyZURldmljZT4oKSwgZW1w
dHlTdHJpbmcoKSwgZmFsc2UpOwotICAgIG1faWRUb01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVx
dWVzdE1hcC5yZW1vdmUocmVxdWVzdElEKTsKLX0KLQotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6OmRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVtZXJhdGlvbih1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgZGV2aWNlTGlzdCwgU3Ry
aW5nJiYgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJvb2wgaGFzUGVyc2lzdGVudEFj
Y2VzcykKLXsKLSAgICBSZWZQdHI8TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0PiByZXF1
ZXN0ID0gbV9pZFRvTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0TWFwLnRha2UocmVxdWVz
dElEKTsKLSAgICBpZiAoIXJlcXVlc3QpCi0gICAgICAgIHJldHVybjsKLSAgICBtX21lZGlhRGV2
aWNlc0VudW1lcmF0aW9uUmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOwotICAgIAotICAg
IHJlcXVlc3QtPnNldERldmljZUluZm8oZGV2aWNlTGlzdCwgV1RGTW92ZShtZWRpYURldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCksIGhhc1BlcnNpc3RlbnRBY2Nlc3MpOworICAgIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lIG1lc3NhZ2UgeyBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpLT5mcmFtZUlEKCksIGRvY3VtZW50LnNlY3VyaXR5
T3JpZ2luKCkuZGF0YSgpLCBkb2N1bWVudC50b3BPcmlnaW4oKS5kYXRhKCkgfTsKKyAgICBtX3Bh
Z2Uuc2VuZFdpdGhBc3luY1JlcGx5KG1lc3NhZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAogVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6YWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoV1RG
OjpGdW5jdGlvbjx2b2lkKCk+JiYgb2JzZXJ2ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggZDdjNWM2ODM0NGI3MjczOGQ5NDk3ZGYwMTJjYTM3
NmJiODQxODhkYS4uYmRiYTNkNzJkMjg0NDE0MjVjNDVjYjljMTUyNWEyYjRhYzBhYzIwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtMjQsNyAr
MjQsNiBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJh
aW50cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDUs
OSArNDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVp
bnQ2NF90LCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZSwgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hT
YWx0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgdXNlck1lZGlhQWNj
ZXNzV2FzRGVuaWVkKHVpbnQ2NF90LCBXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpNZWRpYUFj
Y2Vzc0RlbmlhbFJlYXNvbiwgU3RyaW5nJiYpOwogCi0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURl
dmljZXMoV2ViQ29yZTo6TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9p
ZCBjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvbihXZWJDb3JlOjpNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIGRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVtZXJh
dGlvbih1aW50NjRfdCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBkZXZp
Y2VMaXN0LCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJvb2wgb3JpZ2luSGFz
UGVyc2lzdGVudEFjY2Vzcyk7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXMoV2ViQ29y
ZTo6RG9jdW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmKTsKIAogICAgIFdlYkNvcmU6OlVz
ZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBhZGREZXZpY2VDaGFuZ2VP
YnNlcnZlcihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVEZXZpY2VD
aGFuZ2VPYnNlcnZlcihXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2Vy
dmVyVG9rZW4pOwpAQCAtNjgsOSArNjUsNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8UmVmUHRy
PFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+LCB1aW50NjRfdD4gbV91c2VyTWVkaWFSZXF1ZXN0
VG9JRE1hcDsKICAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVudD4sIFZlY3RvcjxS
ZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4+PiBtX2Jsb2NrZWRVc2VyTWVkaWFSZXF1
ZXN0czsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3Q+PiBtX2lkVG9NZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3RNYXA7Ci0gICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6TWVkaWFEZXZpY2VzRW51bWVyYXRp
b25SZXF1ZXN0PiwgdWludDY0X3Q+IG1fbWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0VG9J
RE1hcDsKLQogICAgIEhhc2hNYXA8V2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFu
Z2VPYnNlcnZlclRva2VuLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4+IG1fZGV2aWNlQ2hhbmdlT2Jz
ZXJ2ZXJNYXA7CiAgICAgYm9vbCBtX21vbml0b3JpbmdEZXZpY2VDaGFuZ2UgeyBmYWxzZSB9Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJVc2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKaW5kZXggOGY2NjdmY2IzZGZkMTI3OTY5OGRh
Y2RkNWI4MTdjNmQwODg2MDEwZi4uMzVhZTdkMjllNTg1NGZiMjY3MzhmMTVlMmFlMTEwZDkwNjRi
MTkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTUwLDE0ICs1MCw5IEBAIHZv
aWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxVc2VyTWVkaWFBY2Nlc3NSZXF1ZXN0KFVzZXJN
ZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcigpLmNhbmNlbFVzZXJNZWRpYVJlcXVlc3QocmVxdWVzdCk7CiB9CiAKLXZvaWQg
V2ViVXNlck1lZGlhQ2xpZW50OjplbnVtZXJhdGVNZWRpYURldmljZXMoTWVkaWFEZXZpY2VzRW51
bWVyYXRpb25SZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmVudW1l
cmF0ZU1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcigpLmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhyZXF1ZXN0KTsKLX0KLQotdm9pZCBXZWJVc2Vy
TWVkaWFDbGllbnQ6OmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChNZWRpYURl
dmljZXNFbnVtZXJhdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgbV9wYWdlLnVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9u
KHJlcXVlc3QpOworICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KS5lbnVtZXJhdGVNZWRpYURldmljZXMoZG9jdW1lbnQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KIAogV2ViVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2Vu
IFdlYlVzZXJNZWRpYUNsaWVudDo6YWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYgb2JzZXJ2ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmgKaW5kZXggMTA5MzA0
NTNjZTc5N2VkZDkwZGU3NmYwMzU0YjlhMWQ0MDZmMmU2ZS4uZGVjZjdlZjI0MzFlYWZhNzg2MjQw
YjRlZTc5OGYyNmZhMGU1Zjg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaApAQCAtMzksOCAr
MzksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYUFjY2VzcyhXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxVc2VyTWVkaWFB
Y2Nlc3NSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QmKSBvdmVycmlkZTsKIAotICAg
IHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKFdlYkNvcmU6Ok1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdCYpIGZpbmFsOwotICAgIHZvaWQgY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRp
b25SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYpIGZpbmFs
OworICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKFdlYkNvcmU6OkRvY3VtZW50JiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4m
LCBjb25zdCBTdHJpbmcmKT4mJikgZmluYWw7CiAKICAgICBEZXZpY2VDaGFuZ2VPYnNlcnZlclRv
a2VuIGFkZERldmljZUNoYW5nZU9ic2VydmVyKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKSBmaW5h
bDsKICAgICB2b2lkIHJlbW92ZURldmljZUNoYW5nZU9ic2VydmVyKERldmljZUNoYW5nZU9ic2Vy
dmVyVG9rZW4pIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCAwMWZmMWE0ZjQ1N2U1MzkzNTYxNDMyNGEwOTQ4ODQwM2E3NTA1NWExLi45
ZTAwZjUzZmQyZWE2ZDM0NWMwYTRkYTcwM2VlY2I4ZDExMDg0YjUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDIwMCwxMSArNDIwMCw2IEBA
IHZvaWQgV2ViUGFnZTo6dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCByZWFzb24sIFN0CiAgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXItPnVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1c2VyTWVkaWFJRCwgc3RhdGljX2Nh
c3Q8VXNlck1lZGlhUmVxdWVzdDo6TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24+KHJlYXNvbiksIFdU
Rk1vdmUoaW52YWxpZENvbnN0cmFpbnQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRDb21wbGV0
ZU1lZGlhRGV2aWNlRW51bWVyYXRpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGNvbnN0IFZlY3Rv
cjxDYXB0dXJlRGV2aWNlPiYgZGV2aWNlcywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hT
YWx0LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpCi17Ci0gICAgbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXItPmRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVtZXJhdGlv
bih1c2VyTWVkaWFJRCwgZGV2aWNlcywgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQp
LCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKTsKLX0KLQogdm9pZCBXZWJQYWdlOjpjYXB0dXJl
RGV2aWNlc0NoYW5nZWQoKQogewogICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLT5jYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlMWU1ZTM5MDAyODIyNGI2M2NhYmU0ZDI2ZjFiMWYyNWZi
YmU4YjFlLi5jMTcyMjIwMzJmYmFmOGFhZTljNGE0YjUzZmRhNTBlMDllZDgxOGNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNDgyLDcgKzE0ODIs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlVUlELCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2VVSUQsIFN0cmluZyYmIG1lZGlhRGV2
aWNlSWRlbnRpZmllckhhc2hTYWx0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50
NjRfdCByZWFzb24sIFN0cmluZyYmIGludmFsaWRDb25zdHJhaW50KTsKIAotICAgIHZvaWQgZGlk
Q29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIGRldmljZXMsIFN0cmluZyYmIGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKTsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBiYTdmNjRiZmRjYmNjZjhh
YjJjMzNmNmMyNzhiNDZkMTUxODg4ZjAxLi5iODQzYjI4MTNmMjAxZTE3YTYzNjUwNWM0MWNlNzc5
ZTZiNWU0M2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM1OSw3ICszNTksNiBAQCBHZW5lcmF0ZVN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kVHlwZQogICAgICMgTWVkaWFTdGVhbQogICAgIFVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQo
dWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgYXVkaW9EZXZpY2Us
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgdmlkZW9EZXZpY2UsIFN0cmluZyBtZWRpYURldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCkgLT4gKCkgQXN5bmMKICAgICBVc2VyTWVkaWFBY2Nlc3NXYXNEZW5p
ZWQodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNvbiwgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50KQotICAgIERpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVtZXJhdGlvbih1aW50NjRf
dCB1c2VyTWVkaWFJRCwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGRldmljZXMsIFN0
cmluZyBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBoYXNQZXJzaXN0ZW50QWNj
ZXNzKQogICAgIENhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZhNmRj
MTkxYmRhZWExZGJjMjM3YTk2ZDg1M2Q2Yjg5NmYyMWU1MzcuLjdiNGYwYjZkMWM2Yjk1NTYwMWIy
ZTY2ODAyMWE0NDc2MTUzMmU4MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0wOC0xNSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgZW51bWVyYXRlRGV2
aWNlcyBzaG91bGQgcmV0dXJuIHRoZSBzYW1lIEpTIG9iamVjdHMgaWYgY2FsbGVkIHR3aWNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA3NjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLmh0bWw6CisKIDIwMTktMDgtMTQgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0hMU0xdIFZh
cmlhYmxlcyBzaG91bGRuJ3QgYmUgYWJsZSB0byBoYXZlIHZvaWQgdHlwZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTIuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLmh0bWwK
aW5kZXggZTc4MGYxMTU2ZjY2NzBiYmVlZDQwNTZmZmJjY2JlYTRlODRjM2NmNC4uZGVmZTQxOGUw
ZDgxOGZhNmM5ZDYxNzRhMWQwZTVmYTFkODczZGIxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTIuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi5odG1sCkBAIC0yNywz
MyArMjcsMzkgQEAKICAgICAgICAgICAgIC50aGVuKHMgPT4gc3RyZWFtID0gcykKIAogICAgICAg
ICBsZXQgZGV2aWNlcyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2
aWNlcygpOworICAgICAgICBsZXQgZGV2aWNlczIgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmVudW1lcmF0ZURldmljZXMoKTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSghIWRldmljZXMu
bGVuZ3RoLCAiY2hlY2sgdGhlcmUgYXJlIHNvbWUgZGV2aWNlcyIpOworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGRldmljZXMsIGRldmljZXMyKTsKIAogICAgICAgICB0ZXN0UnVubmVyLmNs
ZWFyTW9ja01lZGlhRGV2aWNlcygpOwotCisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNv
bHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMub25k
ZXZpY2VjaGFuZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Cisg
ICAgICAgICAgICAgICAgcmVqZWN0KCJldmVudCAxIHRvb2sgdG9vIGxvbmciKTsKKyAgICAgICAg
ICAgIH0sIDUwMDApOworICAgICAgICB9KTsKICAgICAgICAgZGV2aWNlcyA9IGF3YWl0IG5hdmln
YXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOwogICAgICAgICBhc3NlcnRfZmFs
c2UoISFkZXZpY2VzLmxlbmd0aCwgImNoZWNrIHRoZXJlIGFyZSBubyBtb3JlIGRldmljZXMiKTsK
IAorICAgICAgICB0ZXN0UnVubmVyLmFkZE1vY2tDYW1lcmFEZXZpY2UoImlkMSIsICJteSBjYW1l
cmEiKTsKICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewog
ICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5vbmRldmljZWNoYW5nZSA9IHJlc29s
dmU7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgICBjb25z
b2xlLmxvZygiZXZlbnQgMSB0b29rIHRvbyBsb25nIik7Ci0gICAgICAgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgICAgICAgICAgIHJlamVjdCgiZXZlbnQgMiB0b29rIHRvbyBsb25nIik7CiAg
ICAgICAgICAgICB9LCA1MDAwKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkTW9ja0NhbWVy
YURldmljZSgiaWQxIiwgIm15IGNhbWVyYSIpOwogICAgICAgICB9KTsKKwogICAgICAgICBkZXZp
Y2VzID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CiAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGV2aWNlc1swXS5raW5kLCAidmlkZW9pbnB1dCIpOwogICAg
ICAgICBhc3NlcnRfZXF1YWxzKGRldmljZXNbMF0ubGFiZWwsICJteSBjYW1lcmEiKTsKIAorICAg
ICAgICB0ZXN0UnVubmVyLmFkZE1vY2tNaWNyb3Bob25lRGV2aWNlKCJpZDIiLCAibXkgbWljIik7
CiAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAg
ICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMub25kZXZpY2VjaGFuZ2UgPSByZXNvbHZlOwog
ICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5s
b2coImV2ZW50IDIgdG9vayB0b28gbG9uZyIpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsK
KyAgICAgICAgICAgICAgICByZWplY3QoImV2ZW50IDMgdG9vayB0b28gbG9uZyIpOwogICAgICAg
ICAgICAgfSwgNTAwMCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZE1vY2tNaWNyb3Bob25l
RGV2aWNlKCJpZDIiLCAibXkgbWljIik7CiAgICAgICAgIH0pOwogICAgICAgICBkZXZpY2VzID0g
YXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CiAgICAgICAg
IGFzc2VydF9lcXVhbHMoZGV2aWNlc1swXS5raW5kLCAiYXVkaW9pbnB1dCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376499</attachid>
            <date>2019-08-16 08:06:11 -0700</date>
            <delta_ts>2019-08-16 08:38:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200767-20190816170609.patch</filename>
            <type>text/plain</type>
            <size>74012</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNmN2M1NTg5Mjk3NGE2
NDQyNjc3OTc3ZjdkMTVjNGI4NmJmM2ExMi4uMzg4NWYxY2VkM2I4MjkzNmY3MWFhOGNmYmEwYTli
YzFmMjk4ZTAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA4LTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2Vz
IHNob3VsZCByZXR1cm4gdGhlIHNhbWUgSlMgb2JqZWN0cyBpZiBjYWxsZWQgdHdpY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgTWVkaWFEZXZp
Y2VzIHN0b3JlIHRoZSBsYXN0IGxpc3Qgb2YgZW51bWVyYXRlZCBNZWRpYURldmljZUluZm8gb2Jq
ZWN0cy4KKyAgICAgICAgUmV1c2UgdGhlbSBmb3IgdGhlIG5leHQgZW51bWVyYXRlRGV2aWNlcyBj
YWxsIGlmIG5lZWRlZC4KKyAgICAgICAgSW4gY2FzZSBvZiBhIGRldmljZSBjaGFuZ2UgZXZlbnQs
IG1ha2Ugc3VyZSB0aGUgbmV4dCBlbnVtZXJhdGVEZXZpY2VzIGNhbGwgd2lsbCBmZXRjaCB0aGUg
bmV3IGxpc3Qgb2YgZGV2aWNlcy4KKyAgICAgICAgV2hlbiBjb25zdHJ1Y3RpbmcgdGhlIG5ldyBs
aXN0IG9mIGRldmljZXMsIHJldXNlIGFueSBwcmVleGlzdGluZyBkZXZpY2UgaW4gdGhlIG9sZCBs
aXN0IGFzIHNwZWNpZmllZCBieQorICAgICAgICBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFj
YXB0dXJlLW1haW4vI2RvbS1tZWRpYWRldmljZXMtZW51bWVyYXRlZGV2aWNlcy4KKworICAgICAg
ICBVcGRhdGUgZW51bWVyYXRlRGV2aWNlcyB0byB1c2UgYSBjb21wbGV0aW9uIGhhbmRsZXIuCisg
ICAgICAgIFJlbW92ZSBNZWRpYURldmljZXNSZXF1ZXN0IGFuZCBNZWRpYURldmljZXNFbnVtZXJh
dGlvblJlcXVlc3QuCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0IGFuZCBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6TWVkaWFEZXZpY2VJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmlj
ZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OnN0b3Ap
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmVudW1lcmF0ZURldmljZXMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpsaXN0ZW5Gb3JEZXZpY2VDaGFuZ2VzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Lmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
c1JlcXVlc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNlbmRlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGll
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBbGxvd2VkVG9Vc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6VXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdldFVzZXJNZWRpYSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyTWVkaWFDb250cm9sbGVyOjplbnVtZXJhdGVNZWRpYURldmljZXMpOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOS0wOC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBiYTc3YzQzZGU1NzZmMGFlYzIzYTlmY2Y3NjMwNWNmMWE0MjU5YmM2Li4xZjFkMTI1NzAy
ZjgyOTU5ZWU0ODIwNmJlZGNkZDQ0ZWNjM2Y1NWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBA
CisyMDE5LTA4LTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBlbnVtZXJhdGVEZXZpY2VzIHNob3VsZCByZXR1cm4gdGhlIHNhbWUgSlMgb2JqZWN0cyBpZiBj
YWxsZWQgdHdpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMDc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSBjb2RlIGFzIGVudW1lcmF0ZSBkZXZpY2UgcmVxdWVzdCBpcyBub3cgZ29uZS4K
KyAgICAgICAgTWFrZSB1c2Ugb2YgYXN5bmMgSVBDIHRvIHNpbXBsaWZ5IGNvZGUgc2luY2Ugd2Ug
YXJlIG5vdyBwYXNzaW5nIGEgY29tcGxldGlvbiBoYW5kbGVyIGRpcmVjdGx5LgorCisgICAgICAg
ICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpmaW5pc2hHcmFudGluZ1JlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVy
YXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1heWJlSW5pdGlh
bGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjplbnVtZXJhdGVNZWRpYURldmljZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOS0wOC0xNiAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9u
SUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNmUzOWJlNDE4YWQ4ZTEwMDliZGEzZGIwYWYxMGE0
YmIzNGFmZmNkNi4uN2I4MjgwZWJkMDI0ZjM0Y2M2NzExMmZmMDAxNzFlNjkxYWZlN2QyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC05MCw3ICs5MCw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKIAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vRG91YmxlUmFuZ2UuaAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTG9uZ1JhbmdlLmgKLSAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJh
Y2tDb25zdHJhaW50cy5oCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VJbmZvLmNwcAppbmRleCBmYzlhYTQ2Y2M0ZDk4ZGRkZjY4MjM2Y2Q2M2Y0MTEyNzhiMGVmNzNm
Li5jM2RhY2ExY2IyNDU4ZTViOGY5ZGQ5ODNlMDQ2ZThjNzRiOTdhZTljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM0LDE4ICszNCwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChNZWRpYURldmljZUluZm8pOwogCi1pbmxpbmUgTWVkaWFEZXZpY2VJbmZvOjpN
ZWRpYURldmljZUluZm8oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCwgY29uc3QgU3RyaW5nJiBncm91cElk
LCBLaW5kIGtpbmQpCi0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihjb250ZXh0KQot
ICAgICwgbV9sYWJlbChsYWJlbCkKLSAgICAsIG1fZGV2aWNlSWQoZGV2aWNlSWQpCi0gICAgLCBt
X2dyb3VwSWQoZ3JvdXBJZCkKLSAgICAsIG1fa2luZChraW5kKQorUmVmPE1lZGlhRGV2aWNlSW5m
bz4gTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3Ry
aW5nJiBkZXZpY2VJZCwgY29uc3QgU3RyaW5nJiBncm91cElkLCBLaW5kIGtpbmQpCiB7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFEZXZpY2VJbmZvKGxhYmVsLCBkZXZpY2VJZCwgZ3Jv
dXBJZCwga2luZCkpOwogfQogCi1SZWY8TWVkaWFEZXZpY2VJbmZvPiBNZWRpYURldmljZUluZm86
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGxh
YmVsLCBjb25zdCBTdHJpbmcmIGRldmljZUlkLCBjb25zdCBTdHJpbmcmIGdyb3VwSWQsIEtpbmQg
a2luZCkKK01lZGlhRGV2aWNlSW5mbzo6TWVkaWFEZXZpY2VJbmZvKGNvbnN0IFN0cmluZyYgbGFi
ZWwsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWQsIGNvbnN0IFN0cmluZyYgZ3JvdXBJZCwgS2luZCBr
aW5kKQorICAgIDogbV9sYWJlbChsYWJlbCkKKyAgICAsIG1fZGV2aWNlSWQoZGV2aWNlSWQpCisg
ICAgLCBtX2dyb3VwSWQoZ3JvdXBJZCkKKyAgICAsIG1fa2luZChraW5kKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE1lZGlhRGV2aWNlSW5mbyhjb250ZXh0LCBsYWJlbCwgZGV2aWNlSWQs
IGdyb3VwSWQsIGtpbmQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmgKaW5k
ZXggNjdiMTQ3MDQ5ZGZkZmIxYzRhYjE0NzVkOTljMDQ1ZGJhMGVjNmRmMC4uM2M5MjZhOTFhYzQ2
YWJjNjk3MmM5OWY3NTA2Mzg4NzU2YTBkMTc2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEyICszMywxMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhRGV2aWNlSW5mbyBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlSW5mbz4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUs
IHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeworY2xhc3MgTWVkaWFEZXZpY2VJ
bmZvIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFEZXZpY2VJbmZvPiwgcHVibGljIFNj
cmlwdFdyYXBwYWJsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChNZWRpYURldmljZUlu
Zm8pOwogcHVibGljOgogICAgIGVudW0gY2xhc3MgS2luZCB7IEF1ZGlvaW5wdXQsIEF1ZGlvb3V0
cHV0LCBWaWRlb2lucHV0IH07CiAKLSAgICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlSW5mbz4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmLCBLaW5kKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlSW5mbz4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEtpbmQp
OwogCiAgICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0K
ICAgICBjb25zdCBTdHJpbmcmIGRldmljZUlkKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VJZDsg
fQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgS2luZCBraW5kKCkgY29uc3QgeyByZXR1
cm4gbV9raW5kOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFEZXZpY2VJbmZvKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBLaW5kKTsKKyAgICBNZWRpYURldmljZUluZm8oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgS2luZCk7CiAKICAgICBjb25zdCBTdHJpbmcgbV9sYWJlbDsKICAg
ICBjb25zdCBTdHJpbmcgbV9kZXZpY2VJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbAppbmRleCBkMmIyYzlmZjI2MmVl
NzhlMTU5MjE4NzRkZWJmN2I5Nzk0NzA5Y2I0Li45NjAwMWRjZTljZGViMTAxOTNlNWRmYjNiMDY4
NTkzZmYyNTIwOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlSW5mby5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZUluZm8uaWRsCkBAIC0yNiw2ICsyNiw3IEBACiBbCiAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorICAgIFNr
aXBWVGFibGVWYWxpZGF0aW9uLAogXSBpbnRlcmZhY2UgTWVkaWFEZXZpY2VJbmZvIHsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRldmljZUlkOwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBNZWRpYURldmljZUtpbmQga2luZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA0YmQ3YTlkN2NjYjk5M2NhMTE0
YjkxYWViZTdhYWM4OWI1ZjMwMTkwLi4wMDU3NTg3NDhmY2Y3NzNmMWU3ZjZlMDExNDMyN2IzN2Zl
ODljNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
NSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAi
TWVkaWFEZXZpY2VzUmVxdWVzdC5oIgorI2luY2x1ZGUgIkpTTWVkaWFEZXZpY2VJbmZvLmgiCiAj
aW5jbHVkZSAiTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIgpAQCAtNjEsNiArNjEsMTEgQEAgaW5saW5lIE1lZGlhRGV2aWNlczo6TWVkaWFEZXZp
Y2VzKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpXaW5kb3cpID09
IHN0YXRpY19jYXN0PHNpemVfdD4oUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5
U3VyZmFjZVR5cGU6OldpbmRvdyksICJNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFj
ZVR5cGU6OldpbmRvdyBpcyBub3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5
U3VyZmFjZVR5cGU6OldpbmRvdyBhcyBleHBlY3RlZCIpOwogICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6
OkFwcGxpY2F0aW9uKSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpBcHBsaWNhdGlvbiksICJNZWRpYURldmljZXM6
OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6OkFwcGxpY2F0aW9uIGlzIG5vdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6QXBwbGljYXRpb24gYXMgZXhw
ZWN0ZWQiKTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFEZXZp
Y2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpCcm93c2VyKSA9PSBzdGF0aWNfY2FzdDxz
aXplX3Q+KFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpC
cm93c2VyKSwgIk1lZGlhRGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6QnJvd3Nl
ciBpcyBub3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6
OkJyb3dzZXIgYXMgZXhwZWN0ZWQiKTsKKworICAgIGlmIChhdXRvKiBjb250cm9sbGVyID0gVXNl
ck1lZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpKSB7CisgICAgICAgIG1fY2Fu
QWNjZXNzQ2FtZXJhID0gY29udHJvbGxlci0+Y2FuQ2FsbEdldFVzZXJNZWRpYShkb2N1bWVudCwg
eyBVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZTo6Q2FtZXJhIH0pID09IFVzZXJNZWRp
YUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2Vzczo6Q2FuQ2FsbDsKKyAgICAgICAgbV9jYW5B
Y2Nlc3NNaWNyb3Bob25lID0gY29udHJvbGxlci0+Y2FuQ2FsbEdldFVzZXJNZWRpYShkb2N1bWVu
dCwgeyBVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZTo6TWljcm9waG9uZSB9KSA9PSBV
c2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7CisgICAgfQog
fQogCiBNZWRpYURldmljZXM6On5NZWRpYURldmljZXMoKSA9IGRlZmF1bHQ7CkBAIC03Myw2ICs3
OCw3IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpzdG9wKCkKICAgICAgICAgaWYgKGRvY3VtZW50ICYm
IGNvbnRyb2xsZXIpCiAgICAgICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVEZXZpY2VDaGFuZ2VP
YnNlcnZlcihtX2RldmljZUNoYW5nZVRva2VuKTsKICAgICB9CisgICAgbV9kZXZpY2VzLmNsZWFy
KCk7CiB9CiAKIFJlZjxNZWRpYURldmljZXM+IE1lZGlhRGV2aWNlczo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKQEAgLTEyOSwxMiArMTM1LDU0IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRE
aXNwbGF5TWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNl
CiAgICAgcmVxdWVzdC0+c3RhcnQoKTsKIH0KIAotdm9pZCBNZWRpYURldmljZXM6OmVudW1lcmF0
ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJiBwcm9taXNlKSBjb25zdAordm9pZCBN
ZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
bmV3RGV2aWNlcykKK3sKKyAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+IGRldmljZXM7
CisgICAgZm9yIChhdXRvJiBuZXdEZXZpY2UgOiBuZXdEZXZpY2VzKSB7CisgICAgICAgIGlmICgh
bV9jYW5BY2Nlc3NNaWNyb3Bob25lICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBpZiAoIW1fY2FuQWNjZXNzQ2FtZXJhICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgYXV0byBpbmRleCA9IG1fZGV2aWNlcy5maW5kTWF0Y2hpbmcoWyZuZXdEZXZpY2VdKGF1dG8m
IG9sZERldmljZSkgeworICAgICAgICAgICAgcmV0dXJuIG9sZERldmljZS0+ZGV2aWNlSWQoKSA9
PSBuZXdEZXZpY2UucGVyc2lzdGVudElkKCk7CisgICAgICAgIH0pOworICAgICAgICBpZiAoaW5k
ZXggIT0gbm90Rm91bmQpIHsKKyAgICAgICAgICAgIGRldmljZXMuYXBwZW5kKG1fZGV2aWNlc1tp
bmRleF0uY29weVJlZigpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAg
ICAgICAgYXV0byBkZXZpY2VUeXBlID0gbmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lID8gTWVkaWFEZXZpY2VJbmZvOjpLaW5kOjpBdWRpb2lu
cHV0IDogTWVkaWFEZXZpY2VJbmZvOjpLaW5kOjpWaWRlb2lucHV0OworICAgICAgICBkZXZpY2Vz
LmFwcGVuZChNZWRpYURldmljZUluZm86OmNyZWF0ZShuZXdEZXZpY2UubGFiZWwoKSwgbmV3RGV2
aWNlLnBlcnNpc3RlbnRJZCgpLCBuZXdEZXZpY2UuZ3JvdXBJZCgpLCBkZXZpY2VUeXBlKSk7Cisg
ICAgfQorICAgIG1fZGV2aWNlcyA9IFdURk1vdmUoZGV2aWNlcyk7Cit9CisKK3ZvaWQgTWVkaWFE
ZXZpY2VzOjplbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlz
ZSkKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYgKCFk
b2N1bWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OmNyZWF0
ZSgqZG9jdW1lbnQsIFdURk1vdmUocHJvbWlzZSkpLT5zdGFydCgpOworCisgICAgYXV0byogY29u
dHJvbGxlciA9IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSk7Cisg
ICAgaWYgKCFjb250cm9sbGVyKSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZSh7IH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghbV9jYW5BY2Nlc3NDYW1lcmEgJiYgIW1fY2Fu
QWNjZXNzTWljcm9waG9uZSkgeworICAgICAgICBjb250cm9sbGVyLT5sb2dHZXRVc2VyTWVkaWFE
ZW5pYWwoKmRvY3VtZW50LCBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6
OkJsb2NrZWRCeUZlYXR1cmVQb2xpY3ksIFVzZXJNZWRpYUNvbnRyb2xsZXI6OkJsb2NrZWRDYWxs
ZXI6OkVudW1lcmF0ZURldmljZXMpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoeyB9KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2
aWNlcygqZG9jdW1lbnQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oY29uc3QgYXV0byYgbmV3RGV2aWNlcywgY29uc3QgYXV0
byYgZGV2aWNlSURIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwg
aXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMt
PmRvY3VtZW50KCktPnNldERldmljZUlESGFzaFNhbHQoZGV2aWNlSURIYXNoU2FsdCk7CisgICAg
ICAgIHJlZnJlc2hEZXZpY2VzKG5ld0RldmljZXMpOworICAgICAgICBwcm9taXNlLnJlc29sdmUo
bV9kZXZpY2VzKTsKKyAgICB9KTsKIH0KIAogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRz
IE1lZGlhRGV2aWNlczo6Z2V0U3VwcG9ydGVkQ29uc3RyYWludHMoKQpAQCAtMTU4LDggKzIwNiwx
MCBAQCBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMgTWVkaWFEZXZpY2VzOjpnZXRTdXBw
b3J0ZWRDb25zdHJhaW50cygpCiAKIHZvaWQgTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRp
bWVyRmlyZWQoKQogewotICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAg
IGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGV2aWNlY2hhbmdlRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAg
IGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGV2aWNlY2hhbmdlRXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogfQogCiBib29sIE1l
ZGlhRGV2aWNlczo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKQEAgLTE3NywzMyArMjI3LDMw
IEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkg
Y29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBNZWRpYURldmljZXM6OmFkZEV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4m
JiBsaXN0ZW5lciwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmIG9wdGlvbnMpCit2b2lk
IE1lZGlhRGV2aWNlczo6bGlzdGVuRm9yRGV2aWNlQ2hhbmdlcygpCiB7Ci0gICAgaWYgKCFtX2xp
c3RlbmluZ0ZvckRldmljZUNoYW5nZXMgJiYgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZp
Y2VjaGFuZ2VFdmVudCkgewotICAgICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50
KCk7Ci0gICAgICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBkb2N1bWVudCA/IFVzZXJNZWRpYUNvbnRy
b2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSkgOiBudWxscHRyOwotICAgICAgICBpZiAoZG9j
dW1lbnQgJiYgY29udHJvbGxlcikgewotICAgICAgICAgICAgbV9saXN0ZW5pbmdGb3JEZXZpY2VD
aGFuZ2VzID0gdHJ1ZTsKKyAgICBpZiAobV9saXN0ZW5pbmdGb3JEZXZpY2VDaGFuZ2VzIHx8ICgh
bV9jYW5BY2Nlc3NDYW1lcmEgJiYgIW1fY2FuQWNjZXNzTWljcm9waG9uZSkpCisgICAgICAgIHJl
dHVybjsKIAotICAgICAgICAgICAgbV9kZXZpY2VDaGFuZ2VUb2tlbiA9IGNvbnRyb2xsZXItPmFk
ZERldmljZUNoYW5nZU9ic2VydmVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhp
c10oKSB7CisgICAgbV9saXN0ZW5pbmdGb3JEZXZpY2VDaGFuZ2VzID0gdHJ1ZTsKIAotICAgICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgbV9zY2hlZHVsZWRFdmVudFRpbWVyLmlzQWN0aXZl
KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRo
aXMtPmRvY3VtZW50KCk7CisgICAgYXV0byogY29udHJvbGxlciA9IGRvY3VtZW50ID8gVXNlck1l
ZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC0+cGFnZSgpKSA6IG51bGxwdHI7CisgICAgaWYg
KCFjb250cm9sbGVyKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgICAgICBhdXRvKiBk
b2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgICAgICAgICAgICAgYXV0byogY29udHJv
bGxlciA9IGRvY3VtZW50ID8gVXNlck1lZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC0+cGFn
ZSgpKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgaWYgKCFjb250cm9sbGVyKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgbV9kZXZpY2VDaGFuZ2VUb2tlbiA9IGNvbnRyb2xs
ZXItPmFkZERldmljZUNoYW5nZU9ic2VydmVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KSwgdGhpc10oKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgbV9zY2hlZHVsZWRFdmVudFRp
bWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgICAgICBi
b29sIGNhbkFjY2Vzc01pY3JvcGhvbmUgPSBjb250cm9sbGVyLT5jYW5DYWxsR2V0VXNlck1lZGlh
KCpkb2N1bWVudCwgeyBVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZTo6TWljcm9waG9u
ZSB9KSA9PSBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7
Ci0gICAgICAgICAgICAgICAgYm9vbCBjYW5BY2Nlc3NDYW1lcmEgPSBjb250cm9sbGVyLT5jYW5D
YWxsR2V0VXNlck1lZGlhKCpkb2N1bWVudCwgeyBVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJl
VHlwZTo6Q2FtZXJhIH0pID09IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2Vz
czo6Q2FuQ2FsbDsKLSAgICAgICAgICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUgJiYg
IWNhbkFjY2Vzc0NhbWVyYSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBt
X3NjaGVkdWxlZEV2ZW50VGltZXIuc3RhcnRPbmVTaG90KFNlY29uZHMocmFuZG9tTnVtYmVyKCkg
LyAyKSk7CisgICAgfSk7Cit9CiAKLSAgICAgICAgICAgICAgICBtX3NjaGVkdWxlZEV2ZW50VGlt
ZXIuc3RhcnRPbmVTaG90KFNlY29uZHMocmFuZG9tTnVtYmVyKCkgLyAyKSk7Ci0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgfQotICAgIH0KK2Jvb2wgTWVkaWFEZXZpY2VzOjphZGRFdmVudExpc3Rl
bmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlz
dGVuZXIsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQoreworICAgIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZWNoYW5nZUV2ZW50KQorICAgICAgICBs
aXN0ZW5Gb3JEZXZpY2VDaGFuZ2VzKCk7CiAKICAgICByZXR1cm4gRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBv
cHRpb25zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5oCmluZGV4IGRlM2RhMDhiZDBlYWE2YWI2Y2ZjYTI1M2FmOWJjNzA2YjdhNDlj
MzUuLjUxY2QxYjRjZTliOTcyMTg4YjFiMTA3ZGM1OGE1YjViMWY5NzlhYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtNzcs
NyArNzcsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2b2lkIGdldFVzZXJNZWRpYShjb25zdCBT
dHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CiAgICAgdm9pZCBnZXREaXNwbGF5
TWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNvbnN0OwotICAgIHZv
aWQgZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKSBjb25zdDsKKyAg
ICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJik7CiAgICAg
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7
CiAKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlcz46OnJlZjsKQEAgLTkxLDYgKzkx
LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCgpOwogICAg
IGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxF
dmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRl
OwogCisgICAgdm9pZCByZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4m
KTsKKyAgICB2b2lkIGxpc3RlbkZvckRldmljZUNoYW5nZXMoKTsKKwogICAgIGZyaWVuZCBjbGFz
cyBKU01lZGlhRGV2aWNlc093bmVyOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CkBAIC0xMTAs
NiArMTEzLDEwIEBAIHByaXZhdGU6CiAgICAgY29uc3QgRXZlbnROYW1lcyYgbV9ldmVudE5hbWVz
OyAvLyBOZWVkIHRvIGNhY2hlIHRoaXMgc28gd2UgY2FuIHVzZSBpdCBmcm9tIEdDIHRocmVhZHMu
CiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvckRldmljZUNoYW5nZXMgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9kaXNhYmxlR2V0RGlzcGxheU1lZGlhVXNlckdlc3R1cmVDb25zdHJhaW50IHsgZmFsc2Ug
fTsKKworICAgIFZlY3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gbV9kZXZpY2VzOworICAgIGJv
b2wgbV9jYW5BY2Nlc3NDYW1lcmEgeyBmYWxzZSB9OworICAgIGJvb2wgbV9jYW5BY2Nlc3NNaWNy
b3Bob25lIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVy
YXRpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzUzZGY2Mzc5ODI4N2E0YTAzZmY4NDFiNWJkZDFlMTU1ZGM4NDZhYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LQotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2lu
Y2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJV
c2VyTWVkaWFDb250cm9sbGVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVmPE1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhRGV2aWNlc0VudW1l
cmF0aW9uUmVxdWVzdChkb2N1bWVudCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKLX0K
LQotTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OjpNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgQ29tcGxldGlvbkhhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
KCZjb250ZXh0KQotICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSkKLXsKLX0KLQotTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Ojp+TWVkaWFE
ZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KCkgPSBkZWZhdWx0OwotCi1TZWN1cml0eU9yaWdpbiog
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Ojp1c2VyTWVkaWFEb2N1bWVudE9yaWdpbigp
IGNvbnN0Ci17Ci0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2Vj
dXJpdHlPcmlnaW4oKTsKLX0KLQotU2VjdXJpdHlPcmlnaW4qIE1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdDo6dG9wTGV2ZWxEb2N1bWVudE9yaWdpbigpIGNvbnN0Ci17Ci0gICAgaWYgKCFz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
cmV0dXJuICZzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRvcE9yaWdpbigpOwotfQotCi12b2lk
IE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6Y29udGV4dERlc3Ryb3llZCgpCi17Ci0g
ICAgLy8gQ2FsbGluZyBjYW5jZWwoKSBtYXkgZGVzdHJveSBvdXJzZWx2ZXMuCi0gICAgUmVmPE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAg
ICBjYW5jZWwoKTsKLSAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ry
b3llZCgpOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6c3RhcnQo
KQotewotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgYXV0byYg
ZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
Ci0gICAgYXV0byogY29udHJvbGxlciA9IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1l
bnQucGFnZSgpKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwotICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2aWNlcygqdGhpcyk7Ci19Ci0KLXZv
aWQgTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OjpjYW5jZWwoKQotewotICAgIG1fY29t
cGxldGlvbkhhbmRsZXIgPSBudWxscHRyOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdDo6c2V0RGV2aWNlSW5mbyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRl
dmljZUxpc3QsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9y
aWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpCi17Ci0gICAgaWYgKG1fY29tcGxldGlvbkhhbmRsZXIp
Ci0gICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIoZGV2aWNlTGlzdCwgZGV2aWNlSWRlbnRpZmll
ckhhc2hTYWx0LCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKTsKLSAgICBtX2NvbXBsZXRpb25I
YW5kbGVyID0gbnVsbHB0cjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYmQwZGQ1ODNlMTYzNWE5YzhlOWRj
NjY1MTAwOTFmNTc3YTExNTQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
RW51bWVyYXRpb25SZXF1ZXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDYXB0dXJlRGV2aWNlOwot
Y2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBTZWN1cml0eU9yaWdpbjsKLQotY2xhc3MgTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0IGZpbmFsIDogcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+
IHsKLXB1YmxpYzoKLSAgICB1c2luZyBDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248
dm9pZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmIGRldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKT47Ci0KLSAg
ICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gY3JlYXRlKERvY3Vt
ZW50JiwgQ29tcGxldGlvbkhhbmRsZXImJik7Ci0KLSAgICB2aXJ0dWFsIH5NZWRpYURldmljZXNF
bnVtZXJhdGlvblJlcXVlc3QoKTsKLQotICAgIHZvaWQgc3RhcnQoKTsKLSAgICB2b2lkIGNhbmNl
bCgpOwotCi0gICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2NvbXBsZXRp
b25IYW5kbGVyOyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERldmljZUluZm8oY29u
c3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQsIGJvb2wgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2Vzcyk7Ci0KLSAgICBXRUJDT1JF
X0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4oKSBjb25zdDsK
LSAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bigpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgQ29tcGxldGlvbkhhbmRsZXImJik7Ci0KLSAgICAv
LyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgotICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgp
IGZpbmFsOwotCi0gICAgQ29tcGxldGlvbkhhbmRsZXIgbV9jb21wbGV0aW9uSGFuZGxlcjsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlc1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXNSZXF1ZXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTBm
ZGQwMjM3NDdmZGFkNzhhYWZhOTkyZjdhMWEzMjg0YzQ1NjNiMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhRGV2aWNlc1JlcXVlc3Qu
aCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNl
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUg
IkpTTWVkaWFEZXZpY2VJbmZvLmgiCi0jaW5jbHVkZSAiTWVkaWFEZXZpY2VzRW51bWVyYXRpb25S
ZXF1ZXN0LmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgotI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgot
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1NIQTEuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1pbmxpbmUgTWVkaWFEZXZpY2VzUmVxdWVzdDo6TWVkaWFEZXZp
Y2VzUmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhRGV2aWNlczo6RW51bWVyYXRlRGV2
aWNlc1Byb21pc2UmJiBwcm9taXNlKQotICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIo
JmRvY3VtZW50KQotICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkpCi17Ci19Ci0KLVJl
ZjxNZWRpYURldmljZXNSZXF1ZXN0PiBNZWRpYURldmljZXNSZXF1ZXN0OjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBNZWRpYURldmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJv
bWlzZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURldmljZXNSZXF1ZXN0KGRv
Y3VtZW50LCBXVEZNb3ZlKHByb21pc2UpKSk7Ci19Ci0KLU1lZGlhRGV2aWNlc1JlcXVlc3Q6On5N
ZWRpYURldmljZXNSZXF1ZXN0KCkKLXsKLSAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGdldCBkZXN0
cm95ZWQgYWZ0ZXIgdGhlIGVudW1lcmF0aW9uIHJlcXVlc3QgaGFzIGNvbXBsZXRlZCBvciBoYXMg
YmVlbiBjYW5jZWxlZC4KLSAgICBBU1NFUlQoIW1fZW51bWVyYXRpb25SZXF1ZXN0IHx8IG1fZW51
bWVyYXRpb25SZXF1ZXN0LT53YXNDYW5jZWxlZCgpKTsKLX0KLQotU2VjdXJpdHlPcmlnaW4qIE1l
ZGlhRGV2aWNlc1JlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKLXsKLSAgICBpZiAoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICByZXR1cm4gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5zZWN1cml0eU9yaWdpbigpOwotCi0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLXZv
aWQgTWVkaWFEZXZpY2VzUmVxdWVzdDo6Y29udGV4dERlc3Ryb3llZCgpCi17Ci0gICAgLy8gVGhl
IGNhbGwgdG8gbV9lbnVtZXJhdGlvblJlcXVlc3QtPmNhbmNlbCgpIG1pZ2h0IGRlbGV0ZSB0aGlz
LgotICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwotCi0gICAgaWYgKG1f
ZW51bWVyYXRpb25SZXF1ZXN0KSB7Ci0gICAgICAgIG1fZW51bWVyYXRpb25SZXF1ZXN0LT5jYW5j
ZWwoKTsKLSAgICAgICAgbV9lbnVtZXJhdGlvblJlcXVlc3QgPSBudWxscHRyOwotICAgIH0KLSAg
ICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgpOwotfQotCi12
b2lkIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OnN0YXJ0KCkKLXsKLSAgICBhdXRvJiBkb2N1bWVudCA9
IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBhdXRv
KiBjb250cm9sbGVyID0gVXNlck1lZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkp
OwotICAgIGlmICghY29udHJvbGxlcikgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgewotICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9wcm9taXNlLnJlc29sdmUoeyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGF1dG8gbWljcm9waG9uZUFjY2VzcyA9IGNvbnRyb2xsZXItPmNhbkNh
bGxHZXRVc2VyTWVkaWEoZG9jdW1lbnQsIHsgVXNlck1lZGlhQ29udHJvbGxlcjo6Q2FwdHVyZVR5
cGU6Ok1pY3JvcGhvbmUgfSk7Ci0gICAgYXV0byBjYW1lcmFBY2Nlc3MgPSBjb250cm9sbGVyLT5j
YW5DYWxsR2V0VXNlck1lZGlhKGRvY3VtZW50LCB7IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1
cmVUeXBlOjpDYW1lcmEgfSk7Ci0gICAgYm9vbCBjYW5BY2Nlc3NNaWNyb3Bob25lID0gbWljcm9w
aG9uZUFjY2VzcyA9PSBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNh
bkNhbGw7Ci0gICAgYm9vbCBjYW5BY2Nlc3NDYW1lcmEgPSBjYW1lcmFBY2Nlc3MgPT0gVXNlck1l
ZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzOjpDYW5DYWxsOwotICAgIGlmICghY2Fu
QWNjZXNzTWljcm9waG9uZSAmJiAhY2FuQWNjZXNzQ2FtZXJhKSB7Ci0gICAgICAgIGNvbnRyb2xs
ZXItPmxvZ0dldFVzZXJNZWRpYURlbmlhbChkb2N1bWVudCwgIWNhbkFjY2Vzc01pY3JvcGhvbmUg
PyBtaWNyb3Bob25lQWNjZXNzIDogY2FtZXJhQWNjZXNzLCBVc2VyTWVkaWFDb250cm9sbGVyOjpC
bG9ja2VkQ2FsbGVyOjpFbnVtZXJhdGVEZXZpY2VzKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIHsKLSAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fcHJvbWlzZS5yZXNvbHZlKHsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBUaGlzIGxhbWJkYSBrZWVwcyB8dGhpc3wgYWxpdmUg
dW50aWwgdGhlIHJlcXVlc3QgY29tcGxldGVzIG9yIGlzIGNhbmNlbGVkLgotICAgIGF1dG8gY29t
cGxldGlvbiA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbkFjY2Vz
c01pY3JvcGhvbmUsIGNhbkFjY2Vzc0NhbWVyYV0gKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiYgY2FwdHVyZURldmljZXMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
LCBib29sKSBtdXRhYmxlIHsKLQotICAgICAgICBtX2VudW1lcmF0aW9uUmVxdWVzdCA9IG51bGxw
dHI7Ci0KLSAgICAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4o
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIGRvY3VtZW50LnNldERldmljZUlE
SGFzaFNhbHQoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKLQotICAgICAgICBWZWN0b3I8UmVm
PE1lZGlhRGV2aWNlSW5mbz4+IGRldmljZXM7Ci0gICAgICAgIGZvciAoYXV0byYgZGV2aWNlSW5m
byA6IGNhcHR1cmVEZXZpY2VzKSB7Ci0gICAgICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhv
bmUgJiYgZGV2aWNlSW5mby50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWlj
cm9waG9uZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICghY2Fu
QWNjZXNzQ2FtZXJhICYmIGRldmljZUluZm8udHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAg
YXV0byBkZXZpY2VUeXBlID0gZGV2aWNlSW5mby50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6TWljcm9waG9uZSA/IE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6QXVkaW9pbnB1dCA6
IE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6VmlkZW9pbnB1dDsKLSAgICAgICAgICAgIGRldmljZXMu
YXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
ZGV2aWNlSW5mby5sYWJlbCgpLCBkZXZpY2VJbmZvLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2VJbmZv
Lmdyb3VwSWQoKSwgZGV2aWNlVHlwZSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkZXZpY2VzID0gV1RGTW92
ZShkZXZpY2VzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJv
bWlzZS5yZXNvbHZlKGRldmljZXMpOwotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgbV9lbnVt
ZXJhdGlvblJlcXVlc3QgPSBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6OmNyZWF0ZShk
b2N1bWVudCwgV1RGTW92ZShjb21wbGV0aW9uKSk7Ci0gICAgbV9lbnVtZXJhdGlvblJlcXVlc3Qt
PnN0YXJ0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NTNlNjRjNTQzNjY5ZjE0NjQ4NjZkZGYwYWMxMWVhOWE0MDFkMjljLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5oCisrKyAvZGV2L251bGwKQEAgLTEs
NjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNp
bmNsdWRlICJNZWRpYURldmljZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBE
b2N1bWVudDsKLWNsYXNzIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDsKLWNsYXNzIFNl
Y3VyaXR5T3JpZ2luOwotCi1jbGFzcyBNZWRpYURldmljZXNSZXF1ZXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8TWVkaWFEZXZpY2VzUmVxdWVzdD4sIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8TWVkaWFEZXZpY2VzUmVxdWVzdD4gY3Jl
YXRlKERvY3VtZW50JiwgTWVkaWFEZXZpY2VzOjpFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKTsK
LQotICAgIHZpcnR1YWwgfk1lZGlhRGV2aWNlc1JlcXVlc3QoKTsKLQotICAgIHZvaWQgc3RhcnQo
KTsKLQotICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwotCi1wcml2
YXRlOgotICAgIE1lZGlhRGV2aWNlc1JlcXVlc3QoRG9jdW1lbnQmLCBNZWRpYURldmljZXM6OkVu
dW1lcmF0ZURldmljZXNQcm9taXNlJiYpOwotCi0gICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkg
ZmluYWw7Ci0KLSAgICBNZWRpYURldmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlIG1fcHJv
bWlzZTsKLSAgICBSZWZQdHI8TWVkaWFEZXZpY2VzUmVxdWVzdD4gbV9wcm90ZWN0b3I7Ci0gICAg
UmVmUHRyPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gbV9lbnVtZXJhdGlvblJlcXVl
c3Q7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXIuY3BwCmluZGV4IDRkNmVjZjNhNTY2MTBjZmYwYTJlMTg5NzVkNDllMTI5MTY0
MTljZTcuLjAwN2QyYzNhNGI5ZWJhMWNhYzEzMDQ5NzY4NmQ0NDZkMmYwNTMyM2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSVENEVE1GU2VuZGVyLmgiCiAjaW5jbHVkZSAi
UlRDRFRNRlNlbmRlckJhY2tlbmQuaCIKICNpbmNsdWRlICJSVENSdHBDYXBhYmlsaXRpZXMuaCIK
KyNpbmNsdWRlICJSVENSdHBUcmFuc2NlaXZlci5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaApp
bmRleCBiMmFhNTYwM2Y1NzUxMjdlNWY1YTg2NDZhOWE4NzdlMjE0YTRhNjE4Li40M2IyYTBkZGNk
NTJiNWQxYWM1NjJhZTdhMTI4ZTQxZDIzM2Q5ODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmgKQEAgLTMzLDExICszMywx
MiBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Owor
Y2xhc3MgQ2FwdHVyZURldmljZTsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0
OwogCkBAIC00OCw4ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYUFjY2VzcyhVc2VyTWVkaWFSZXF1ZXN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxVc2VyTWVkaWFBY2Nlc3NSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTWVkaWFEZXZpY2VzRW51
bWVyYXRpb25SZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKERvY3VtZW50JiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcm
KT4mJikgPSAwOwogCiAgICAgZW51bSBEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuVHlwZSB7IH07
CiAgICAgdXNpbmcgRGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiA9IE9iamVjdElkZW50aWZpZXI8
RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlblR5cGU+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKaW5kZXgg
OGQ3ZTYzY2M2MDZkNmRhMTlmYmRiMTJkZTU0ZmI4NTVmZGY2MmM5OS4uNjU2MjQ2OGE5ZDc5Zjgz
ZDgyODc1NWQ3YmIyNzVlOTJmNzdhMWFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC04NSw3
ICs4NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3koY29u
c3QgRmVhdHVyZVBvbGljeSYgZmVhdHVyZVBvbGljeSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
c3RhdGljIFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2VzcyBpc0FsbG93ZWRU
b1VzZShEb2N1bWVudCYgZG9jdW1lbnQsIERvY3VtZW50JiB0b3BEb2N1bWVudCwgT3B0aW9uU2V0
PFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1cmVUeXBlPiB0eXBlcykKK3N0YXRpYyBVc2VyTWVk
aWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3MgaXNBbGxvd2VkVG9Vc2UoY29uc3QgRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBEb2N1bWVudCYgdG9wRG9jdW1lbnQsIE9wdGlvblNldDxV
c2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZT4gdHlwZXMpCiB7CiAgICAgaWYgKCZkb2N1
bWVudCA9PSAmdG9wRG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBVc2VyTWVkaWFDb250cm9sbGVy
OjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGlj
IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2VzcyBpc0FsbG93ZWRUb1VzZShE
b2N1bWVudCYgZG9jdW1lbnQKICAgICByZXR1cm4gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNl
ck1lZGlhQWNjZXNzOjpCbG9ja2VkQnlGZWF0dXJlUG9saWN5OwogfQogCi1Vc2VyTWVkaWFDb250
cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3MgVXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdl
dFVzZXJNZWRpYShEb2N1bWVudCYgZG9jdW1lbnQsIE9wdGlvblNldDxVc2VyTWVkaWFDb250cm9s
bGVyOjpDYXB0dXJlVHlwZT4gdHlwZXMpCitVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVk
aWFBY2Nlc3MgVXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdldFVzZXJNZWRpYShjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQsIE9wdGlvblNldDxVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJl
VHlwZT4gdHlwZXMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCF0eXBlcy5pc0VtcHR5KCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q29udHJvbGxlci5oCmluZGV4IGRmZTg5NjllOWVhNWE4OGE1NzBiMDkxNWI3ZmQ0NDIzZTA4ZDQy
ZjUuLmE0NWFlMzU1NTUwOThiZGI3YTU2ZjZhMjQ3ODcwM2M4N2VkY2ZjNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJv
bGxlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
VXNlck1lZGlhQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUsOCArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXF1ZXN0VXNlck1lZGlhQWNjZXNzKFVzZXJNZWRpYVJlcXVlc3QmKTsKICAgICB2b2lkIGNh
bmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYpOwogCi0gICAgdm9p
ZCBlbnVtZXJhdGVNZWRpYURldmljZXMoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Jik7
Ci0gICAgdm9pZCBjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXMo
RG9jdW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmKTsKIAogICAgIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNl
Q2hhbmdlT2JzZXJ2ZXJUb2tlbiBhZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVEZXZpY2VDaGFuZ2VPYnNlcnZlcihVc2VyTWVk
aWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4pOwpAQCAtNjMsNyArNjMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIENhbWVyYSA9IDEgPDwgMSwKICAgICAgICAgRGlzcGxheSA9IDEgPDwg
MwogICAgIH07Ci0gICAgR2V0VXNlck1lZGlhQWNjZXNzIGNhbkNhbGxHZXRVc2VyTWVkaWEoRG9j
dW1lbnQmLCBPcHRpb25TZXQ8Q2FwdHVyZVR5cGU+KTsKKyAgICBHZXRVc2VyTWVkaWFBY2Nlc3Mg
Y2FuQ2FsbEdldFVzZXJNZWRpYShjb25zdCBEb2N1bWVudCYsIE9wdGlvblNldDxDYXB0dXJlVHlw
ZT4pIGNvbnN0OwogCiAgICAgZW51bSBjbGFzcyBCbG9ja2VkQ2FsbGVyIHsKICAgICAgICAgR2V0
VXNlck1lZGlhLApAQCAtODksMTUgKzg5LDExIEBAIGlubGluZSB2b2lkIFVzZXJNZWRpYUNvbnRy
b2xsZXI6OmNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYKICAg
ICBtX2NsaWVudC0+Y2FuY2VsVXNlck1lZGlhQWNjZXNzUmVxdWVzdChyZXF1ZXN0KTsKIH0KIAot
aW5saW5lIHZvaWQgVXNlck1lZGlhQ29udHJvbGxlcjo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcmVxdWVzdCkKK2lubGluZSB2b2lkIFVzZXJN
ZWRpYUNvbnRyb2xsZXI6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29u
c3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgbV9jbGllbnQtPmVudW1l
cmF0ZU1lZGlhRGV2aWNlcyhyZXF1ZXN0KTsKKyAgICBtX2NsaWVudC0+ZW51bWVyYXRlTWVkaWFE
ZXZpY2VzKGRvY3VtZW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLWlubGlu
ZSB2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdChNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
bV9jbGllbnQtPmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChyZXF1ZXN0KTsK
LX0KIAogaW5saW5lIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBV
c2VyTWVkaWFDb250cm9sbGVyOjphZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJiBvYnNlcnZlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggODNiNjEzYzczNTQ3ZTUz
MDhkMjg2YjMwNzJjMzRiN2Q3NTA1NDdiNi4uMjNlMGQzZjcwMTE1MWVmNTM3YzZmNzllM2NmNTFh
YzNiN2U5MmNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE2MCw4ICsxNjAsNiBAQCBNb2R1bGVzL21l
ZGlhc291cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9D
YW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VJbmZvLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCi1N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5jcHAKLU1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0uY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBhN2JjM2E5MDU4NTI2YTI4ZGJlNzU1OGFlNjRmOTI3OGU5ZTUxMDlkLi4zNGI5ODJiZWQwMWQz
M2Y1NTU0YmI3ZTMxN2EwZDIyMDYxMTNmODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjEsNyArMTIxLDYgQEAKIAkJMDcz
Nzk0RUMxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRFQTE5RUUzNDFFMDBFNUEwNDUg
LyogSlNSVENJY2VTZXJ2ZXIuaCAqLzsgfTsKIAkJMDczNzk0RkExOUY1ODY0RTAwRTVBMDQ1IC8q
IFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY0MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENEYXRhQ2hh
bm5lbEhhbmRsZXJNb2NrLmggKi87IH07CiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1QTA0NSAvKiBS
VENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oICov
OyB9OwotCQkwNzM5NEVDQTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczOTRFQzkx
QkFCMkNENzAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4
RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1Nh
bXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1
OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgfTsKIAkJMDczQjg3Njkx
RTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVD
IC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OwpAQCAtMTk2LDcgKzE5NSw2IEBACiAJ
CTA3QUE2QjZDMTY2RDJDMTMwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2Jq
Qy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdBQTZC
NjkxNjZEMDE5NTAwRDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdBQjk5Njkx
OERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUI5OTY1MThEQTNDMDEwMDE4NzcxRSAvKiBS
VENDb25maWd1cmF0aW9uLmggKi87IH07CiAJCTA3QUI5OTZCMThEQTNDMDEwMDE4NzcxRSAvKiBS
VENJY2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3QUI5OTY3MThEQTNDMDEwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXIuaCAqLzsgfTsKLQkJ
MDdBQkVGNkUxRDhBMUM3NjAwRjIxOTcyIC8qIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdBQkVG
NkQxRDhBMUM3NjAwRjIxOTcyIC8qIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3QUZGNDIy
MUVGQjE0NDkwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0FGRjQyMDFFRkIxNDQ3MDBC
NTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oICovOyB9OwogCQkwN0FGRjQyMzFF
RkIxNDQ5MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUZGNDIxMUVGQjE0NDcwMEI1
NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tICovOyB9OwogCQkwN0IwMTEzRjEw
MzIyNDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QjAxMTNFMTAzMjI0MjIwMEZC
REMzMyAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oICovOyB9OwpAQCAtNTM1MSw4ICs1
MzQ5LDYgQEAKIAkJMDczNzk0RjQxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFu
ZGxlck1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTRGNzE5
RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSVENOb3RpZmllcnNNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDczNzk0RjgxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01v
Y2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDTm90aWZpZXJzTW9jay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzM5NEVDNzFCQUIyQ0NEMDBCRTk5Q0Qg
LyogTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNZWRpYURldmljZXNSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMDczOTRFQzkxQkFCMkNENzAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VzUmVxdWVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4RjIgLyog
UmVtb3RlVmlkZW9TYW1wbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlVmlkZW9TYW1w
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNBMTU1MzIxNzdBMzlBMDBF
QTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9T
YW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NTYxRTQwRENFNTAw
NzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTQ0NCw4ICs1NDQwLDYgQEAKIAkJMDdBQjk5NjYxOERBM0MwMTAwMTg3NzFF
IC8qIFJUQ0NvbmZpZ3VyYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0NvbmZp
Z3VyYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0FCOTk2NzE4REEz
QzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJUQ0ljZVNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0FC
OTk2ODE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSVENJY2VTZXJ2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
N0FCRUY2QjFEOEExQzU4MDBGMjE5NzIgLyogTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3QUJF
RjZEMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VzRW51bWVyYXRpb25S
ZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QUZGNDIwMUVGQjE0NDcw
MEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDdBRkY0MjExRUZCMTQ0NzAwQjU0NUIzIC8qIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0IwMTEzRTEwMzIyNDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eU1lZGlh
Q29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NjczLDEwICsxNTY2
Nyw2IEBACiAJCQkJNUVBNzI1Q0QxQUNBQkNEOTAwRUFEMTdCIC8qIE1lZGlhRGV2aWNlcy5jcHAg
Ki8sCiAJCQkJNUVBNzI1Q0UxQUNBQkNEOTAwRUFEMTdCIC8qIE1lZGlhRGV2aWNlcy5oICovLAog
CQkJCTVFQTcyNUNGMUFDQUJDRDkwMEVBRDE3QiAvKiBNZWRpYURldmljZXMuaWRsICovLAotCQkJ
CTA3QUJFRjZCMUQ4QTFDNTgwMEYyMTk3MiAvKiBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3QuY3BwICovLAotCQkJCTA3QUJFRjZEMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRpYURldmljZXNF
bnVtZXJhdGlvblJlcXVlc3QuaCAqLywKLQkJCQkwNzM5NEVDNzFCQUIyQ0NEMDBCRTk5Q0QgLyog
TWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgKi8sCi0JCQkJMDczOTRFQzkxQkFCMkNENzAwQkU5OUNE
IC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCAqLywKIAkJCQkwNzIyMUI0QzE3Q0VDMzI3MDA4NDhF
NTEgLyogTWVkaWFTdHJlYW0uY3BwICovLAogCQkJCTA3MjIxQjREMTdDRUMzMjcwMDg0OEU1MSAv
KiBNZWRpYVN0cmVhbS5oICovLAogCQkJCTA3MjIxQjRFMTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRp
YVN0cmVhbS5pZGwgKi8sCkBAIC0zMDY3NCw4ICszMDY2NCw2IEBACiAJCQkJQ0RGMkIwMDQxODFG
MDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE1
MTQ1QjkwMUIzQTFDRTAwMDY2MkJGNyAvKiBNZWRpYURldmljZUluZm8uaCBpbiBIZWFkZXJzICov
LAogCQkJCTVFQTcyNUQzMUFDQUJENDcwMEVBRDE3QiAvKiBNZWRpYURldmljZXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTA3QUJFRjZFMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTA3Mzk0RUNBMUJBQjJDRDcwMEJF
OTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFC
ODEyMzkyOTEwMDBCMTczODAgLyogTWVkaWFEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkQ2RjI1MkQxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGRTk5REQxODgwN0E3RDAwMjU2NjQ4IC8qIE1lZGlhRWxl
bWVudFNlc3Npb24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IGRiNGNkYTExMTYxZDIyMjgyOTg0ZmVlOWFlYWQ0MGE0ZWVjMWE0OTEuLjAy
Mzg3ZDQzYmNjYWNkZTViYTE0OGY1MDk1MDdhNGZjNWFmOGVmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorI2luY2x1ZGUg
PHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpAQCAtMTIxLDI4ICsxMjIsMzMgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKICAgICBpZiAoIW1fcGFnZS5o
YXNSdW5uaW5nUHJvY2VzcygpIHx8ICFtX3BhZ2UubWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGF1dG8gaGFuZGxlciA9IFt0aGlzXShQZXJtaXNzaW9uSW5mbyBwZXJtaXNzaW9u
SW5mbykgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAocGVybWlzc2lvbkluZm8pIHsKLSAgICAg
ICAgY2FzZSBQZXJtaXNzaW9uSW5mbzo6RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGNhc2UgUGVybWlzc2lvbkluZm86OlVua25vd246Ci0gICAgICAgICAgICBpZiAobV9ncmFu
dGVkUmVxdWVzdHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpHcmFudGVkOgotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1By
b2Nlc3MoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX3BhZ2UucHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpLCBtX3BhZ2Uu
cGFnZUlEKCkpOwotICAgIH07Ci0KICAgICBhdXRvIG9yaWdpbiA9IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUobV9wYWdlLm1haW5GcmFtZSgpLT51cmwoKSk7Ci0gICAgZ2V0VXNlck1l
ZGlhUGVybWlzc2lvbkluZm8obV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIG9yaWdpbi5n
ZXQoKSwgV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBnZXRVc2VyTWVk
aWFQZXJtaXNzaW9uSW5mbyhtX3BhZ2UubWFpbkZyYW1lKCktPmZyYW1lSUQoKSwgb3JpZ2luLmdl
dCgpLCBXVEZNb3ZlKG9yaWdpbiksIFt0aGlzXShQZXJtaXNzaW9uSW5mbyBwZXJtaXNzaW9uSW5m
bykgeworICAgICAgICBjYXB0dXJlRGV2aWNlc0NoYW5nZWQocGVybWlzc2lvbkluZm8pOworICAg
IH0pOwogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKFBl
cm1pc3Npb25JbmZvIHBlcm1pc3Npb25JbmZvKQoreworICAgIHN3aXRjaCAocGVybWlzc2lvbklu
Zm8pIHsKKyAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpFcnJvcjoKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgUGVybWlzc2lvbkluZm86OlVua25vd246CisgICAgICAgIGlmIChtX2dyYW50ZWRS
ZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUGVybWlzc2lvbkluZm86OkdyYW50ZWQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhcHR1cmVEZXZp
Y2VzQ2hhbmdlZCgpLCBtX3BhZ2UucGFnZUlEKCkpOworfQorI2VuZGlmCisKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNsZWFyQ2FjaGVkU3RhdGUoKQogewog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CkBAIC0yMjYsOCArMjMyLDkgQEAgdm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZmluaXNoR3JhbnRpbmdSZXF1
ZXN0KFVzZXJNZWRpYVBlcm0KICAgICBpZiAocmVxdWVzdC5yZXF1ZXN0VHlwZSgpID09IE1lZGlh
U3RyZWFtUmVxdWVzdDo6VHlwZTo6VXNlck1lZGlhKQogICAgICAgICBtX2dyYW50ZWRSZXF1ZXN0
cy5hcHBlbmQobWFrZVJlZihyZXF1ZXN0KSk7CiAKKyAgICAvLyBGSVhNRTogbV9oYXNGaWx0ZXJl
ZERldmljZUxpc3Qgd2lsbCB0cmlnZ2VyIG9uZGV2aWNlY2hhbmdlIGV2ZW50cyBmb3IgdmFyaW91
cyBkb2N1bWVudHMgZnJvbSBkaWZmZXJlbnQgb3JpZ2lucy4KICAgICBpZiAobV9oYXNGaWx0ZXJl
ZERldmljZUxpc3QpCi0gICAgICAgIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOworICAgICAgICBj
YXB0dXJlRGV2aWNlc0NoYW5nZWQoUGVybWlzc2lvbkluZm86OkdyYW50ZWQpOwogICAgIG1faGFz
RmlsdGVyZWREZXZpY2VMaXN0ID0gZmFsc2U7CiAKICAgICArK21faGFzUGVuZGluZ0NhcHR1cmU7
CkBAIC02MDQsMTIgKzYxMSwxNSBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldgogfQogI2VuZGlm
CiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0
ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK3ZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB1c2VyTWVk
aWFJRCk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAotICAgIGF1dG8gY29tcGxl
dGlvbkhhbmRsZXIgPSBbdGhpcywgdXNlck1lZGlhSUQsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luID0gdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uY29weVJlZigpLCB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5jb3B5UmVmKCldKFBlcm1pc3Np
b25JbmZvIHBlcm1pc3Npb25JbmZvKSBtdXRhYmxlIHsKKyAgICBhdXRvIGNhbGxiYWNrID0gW3Ro
aXMsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luID0gdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4uY29weVJlZigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbi5jb3B5UmVmKCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKFBlcm1pc3Npb25JbmZvIHBlcm1pc3Npb25JbmZvKSBtdXRhYmxlIHsKKyAgICAg
ICAgYXV0byBjYWxsQ29tcGxldGlvbkhhbmRsZXIgPSBtYWtlU2NvcGVFeGl0KFsmY29tcGxldGlv
bkhhbmRsZXJdIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgeyB9KTsKKyAg
ICAgICAgfSk7CiAKICAgICAgICAgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzOwogICAg
ICAgICBzd2l0Y2ggKHBlcm1pc3Npb25JbmZvKSB7CkBAIC02MzEsNyArNjQxLDEzIEBAIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2
aWNlc0ZvckZyYW1lKHVpbnQ2CiAKICAgICAgICAgYXV0byYgcmVxdWVzdE9yaWdpbiA9IHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLmdldCgpOwogICAgICAgICBhdXRvJiB0b3BPcmlnaW4gPSB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLmdldCgpOwotICAgICAgICBtX3BhZ2Uud2Vic2l0ZURhdGFTdG9y
ZSgpLmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2aWNlSWRIYXNoU2FsdEZvck9yaWdpbihy
ZXF1ZXN0T3JpZ2luLCB0b3BPcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgcmVxdWVzdElELCBmcmFtZUlELCB1c2VyTWVkaWFJRCwgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4gPSBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiA9IFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIG9yaWdpbkhhc1BlcnNp
c3RlbnRBY2Nlc3NdIChTdHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0KSB7CisKKyAgICAgICAgY2Fs
bENvbXBsZXRpb25IYW5kbGVyLnJlbGVhc2UoKTsKKyAgICAgICAgbV9wYWdlLndlYnNpdGVEYXRh
U3RvcmUoKS5kZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpLmRldmljZUlkSGFzaFNhbHRGb3JPcmln
aW4ocmVxdWVzdE9yaWdpbiwgdG9wT3JpZ2luLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyksIHJlcXVlc3RJRCwgZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4gPSBX
VEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9
IFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nl
c3MsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFN0cmlu
ZyYmIGRldmljZUlESGFzaFNhbHQpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjYWxsQ29t
cGxldGlvbkhhbmRsZXIgPSBtYWtlU2NvcGVFeGl0KFsmY29tcGxldGlvbkhhbmRsZXJdIHsKKyAg
ICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0sIHsgfSk7CisgICAgICAgICAgICB9
KTsKKwogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhbV9wZW5kaW5nRGV2aWNlUmVxdWVz
dHMucmVtb3ZlKHJlcXVlc3RJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02NDIs
MTYgKzY1OCwxNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NgogCiAgICAgICAgICAgICBib29s
IHJldmVhbElkc0FuZExhYmVscyA9IG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MgfHwgd2FzR3Jh
bnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5n
ZXQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSk7CiAKLSAgICAgICAgICAgIG1fcGFn
ZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ29tcGxldGVNZWRpYURldmlj
ZUVudW1lcmF0aW9uIHsgdXNlck1lZGlhSUQsIGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QocmV2
ZWFsSWRzQW5kTGFiZWxzLCBkZXZpY2VJREhhc2hTYWx0KSwgZGV2aWNlSURIYXNoU2FsdCwgb3Jp
Z2luSGFzUGVyc2lzdGVudEFjY2VzcyB9LCBtX3BhZ2UucGFnZUlEKCkpOworICAgICAgICAgICAg
Y2FsbENvbXBsZXRpb25IYW5kbGVyLnJlbGVhc2UoKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QocmV2ZWFsSWRzQW5kTGFiZWxzLCBkZXZp
Y2VJREhhc2hTYWx0KSwgZGV2aWNlSURIYXNoU2FsdCk7CiAgICAgICAgIH0pOwogICAgIH07CiAK
LSAgICBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyhmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKGZy
YW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZWxzZQotICAgIFVOVVNFRF9Q
QVJBTSh1c2VyTWVkaWFJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNF
RF9QQVJBTSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbik7CiAgICAgVU5VU0VEX1BBUkFNKHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4pOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgeyB9KTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA5N2FhMTZiOTJj
ZGRkNTE0MTQ0NGYwYTViZWI1OGFlNjhjZTM2YWJlLi4yYjM0NTM1ODc0YzQ5ZWY4ODkzZTI3MTRk
N2VhM2ExZTE2YWFlNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTY5
LDcgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmKTsKICAgICB2b2lkIGRlbnlSZXF1ZXN0KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2Vy
TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQg
PSB7IH0pOwogCi0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICB2b2lkIGVudW1lcmF0
ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mLCBjb25zdCBT
dHJpbmcmKT4mJik7CiAKICAgICB2b2lkIHN0b3BDYXB0dXJlKCk7CiAgICAgdm9pZCBzY2hlZHVs
ZU5leHRSZWplY3Rpb24oKTsKQEAgLTEwNSw2ICsxMDUsNyBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgUGVybWlzc2lvbkluZm8gPSBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6UGVybWlz
c2lvbkluZm87CiAgICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmKTsK
KyAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZChQZXJtaXNzaW9uSW5mbyk7CiAKICAgICBS
ZXF1ZXN0QWN0aW9uIGdldFJlcXVlc3RBY3Rpb24oY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCA0ODViMzFkNGFlZmYyYTIwNGFlMGNhNjZhZWYyN2QzNzI4NTM3ZDdlLi5jZDdkZjFmNTlk
NTgyMmIxZDdiNWUzNWQ4YTU0NTBjMzExN2RjZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0NTMsMTMgKzc0NTMsMTMgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlh
SUQsIEZyYW0KICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFE
ZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmlj
ZXNGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5n
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAg
ICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAgIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigpLmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVzZXJN
ZWRpYUlELCBmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlPcmln
aW4oKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAg
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUoZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3VyaXR5T3Jp
Z2luKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRp
YUlEKTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IGU2NTUwZjJmOWRiYmRiYTcyYjM3ZjY0OWM4OWJhZDkwM2Q1OTI1
MGQuLmU1Zjk1MDNlN2Q0YjY2NTdhNmE1MGQ3OWYxN2E4N2RhMzhmMDE5NGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNzE0LDcgKzE3MTQsNyBAQCBwcml2YXRl
OgogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKICNlbmRpZgogICAgIHZvaWQgcmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFTdHJl
YW1SZXF1ZXN0JiYpOwotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEp
OworICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0
b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJik7CiAgICAgdm9p
ZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpOwogCiAgICAgdm9pZCBydW5Nb2RhbCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDE1ODkxOWUzMTYwMTFkNjk5NDBkZDliMWUyZjdjY2MzMWVhNGU0M2IuLjc5ZjYyZGZk
OWMyY2M1ZWIyYTYxYzE5NzM4NTQxYjlhOWEzMzU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4MiwxMSArMjgyLDExIEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2Vz
CiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xv
Y2F0aW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgb3JpZ2lu
SWRlbnRpZmllcikKLSAgICAKKwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgIyBNZWRp
YVN0ZWFtIG1lc3NhZ2VzCiAgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5J
ZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9j
dW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0
IHJlcXVlc3QpCi0gICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNl
ck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
SWRlbnRpZmllcikKKyAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpIC0+IChWZWN0
b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZGV2aWNlcywgU3RyaW5nIG1lZGlhRGV2aWNlSWRl
bnRpZmllckhhc2hTYWx0KSBBc3luYwogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2Vz
KCkKICNlbmRpZgogCkBAIC0yOTgsNyArMjk4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKICAgICBEaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQog
CiAgICAgIyBTcGVsbGluZyBhbmQgZ3JhbW1hciBtZXNzYWdlcwotI2lmIFVTRShVTklGSUVEX1RF
WFRfQ0hFQ0tJTkcpICAKKyNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQogICAgIENoZWNr
VGV4dE9mUGFyYWdyYXBoKFN0cmluZyB0ZXh0LCBPcHRpb25TZXQ8V2ViQ29yZTo6VGV4dENoZWNr
aW5nVHlwZT4gY2hlY2tpbmdUeXBlcywgaW50MzJfdCBpbnNlcnRpb25Qb2ludCkgLT4gKFZlY3Rv
cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdHMpIFN5bmNocm9ub3VzCiAjZW5k
aWYKICAgICBDaGVja1NwZWxsaW5nT2ZTdHJpbmcoU3RyaW5nIHRleHQpIC0+IChpbnQzMl90IG1p
c3NwZWxsaW5nTG9jYXRpb24sIGludDMyX3QgbWlzc3BlbGxpbmdMZW5ndGgpIFN5bmNocm9ub3Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4
IDg2ODI4ODJhMGI1OGM2OWIyNmJmNWIyNjFiYWY0ZjExM2Q1ODQyMjYuLjhiM2M2ZGU2ZmY0ZWUz
NzFlZmI0YTM4ZWVmMzU0OTA2NWQzZjNlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0xNTksNDUgKzE1OSwxNSBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVp
bnQ2NF90IHJlcXVlcwogICAgIHJlcXVlc3QtPmRlbnkocmVhc29uLCBXVEZNb3ZlKGludmFsaWRD
b25zdHJhaW50KSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjplbnVtZXJhdGVNZWRpYURldmljZXMoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0JiBy
ZXF1ZXN0KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmVudW1lcmF0
ZU1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0gICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4ocmVx
dWVzdC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGF1dG8qIGZyYW1lID0gZG9jdW1l
bnQgPyBkb2N1bWVudC0+ZnJhbWUoKSA6IG51bGxwdHI7Ci0KKyAgICBhdXRvKiBmcmFtZSA9IGRv
Y3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICByZXF1ZXN0LnNldERl
dmljZUluZm8oVmVjdG9yPENhcHR1cmVEZXZpY2U+KCksIGVtcHR5U3RyaW5nKCksIGZhbHNlKTsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBlbXB0eVN0cmluZygpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVz
dElEKCk7Ci0gICAgbV9pZFRvTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0TWFwLmFkZChy
ZXF1ZXN0SUQsICZyZXF1ZXN0KTsKLSAgICBtX21lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dFRvSURNYXAuYWRkKCZyZXF1ZXN0LCByZXF1ZXN0SUQpOwotCi0gICAgV2ViRnJhbWUqIHdlYkZy
YW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKLSAgICBBU1NFUlQod2ViRnJh
bWUpOwotCi0gICAgU2VjdXJpdHlPcmlnaW4qIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSByZXF1
ZXN0LnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKTsKLSAgICBBU1NFUlQodG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbik7Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RW51bWVy
YXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBy
ZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKCktPmRhdGEoKSwgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbi0+ZGF0YSgpKSk7Ci19Ci0KLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvbihXZWJDb3JlOjpNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgdWludDY0X3QgcmVxdWVzdElE
ID0gbV9tZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3RUb0lETWFwLnRha2UoJnJlcXVlc3Qp
OwotICAgIGlmICghcmVxdWVzdElEKQotICAgICAgICByZXR1cm47Ci0gICAgcmVxdWVzdC5zZXRE
ZXZpY2VJbmZvKFZlY3RvcjxDYXB0dXJlRGV2aWNlPigpLCBlbXB0eVN0cmluZygpLCBmYWxzZSk7
Ci0gICAgbV9pZFRvTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0TWFwLnJlbW92ZShyZXF1
ZXN0SUQpOwotfQotCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlk
Q29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
VmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VMaXN0LCBTdHJpbmcmJiBtZWRpYURldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBoYXNQZXJzaXN0ZW50QWNjZXNzKQotewotICAgIFJlZlB0
cjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+IHJlcXVlc3QgPSBtX2lkVG9NZWRpYURl
dmljZXNFbnVtZXJhdGlvblJlcXVlc3RNYXAudGFrZShyZXF1ZXN0SUQpOwotICAgIGlmICghcmVx
dWVzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fbWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1
ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7Ci0gICAgCi0gICAgcmVxdWVzdC0+c2V0RGV2aWNl
SW5mbyhkZXZpY2VMaXN0LCBXVEZNb3ZlKG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSwg
aGFzUGVyc2lzdGVudEFjY2Vzcyk7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSB7IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSktPmZyYW1lSUQoKSwgZG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKS5kYXRhKCksIGRvY3VtZW50LnRvcE9yaWdpbigpLmRhdGEoKSB9LCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2Jz
ZXJ2ZXJUb2tlbiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmFkZERldmljZUNo
YW5nZU9ic2VydmVyKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFt
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCmluZGV4IGIwYmQ1MzRjZTE5ZDcz
ODYxZDgxNzZhODIwNWNkY2U2MTk1ZmQwNjguLjFkODQ3M2E4YjEzODMwNzgyZTY4YzY0OTE5MGRm
ZWM4NTUwZmViMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNhblN0YXJ0TGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhQ29uc3RyYWludHMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KQEAgLTQ2LDkgKzQ1LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXNlck1lZGlhQWNj
ZXNzV2FzR3JhbnRlZCh1aW50NjRfdCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIGF1ZGlvRGV2
aWNlLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIFN0cmluZyYmIGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCwgV2ViQ29yZTo6VXNlck1lZGlh
UmVxdWVzdDo6TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIFN0cmluZyYmKTsKIAotICAgIHZvaWQg
ZW51bWVyYXRlTWVkaWFEZXZpY2VzKFdlYkNvcmU6Ok1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVx
dWVzdCYpOwotICAgIHZvaWQgY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb24oV2ViQ29yZTo6
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBkaWRDb21wbGV0ZU1l
ZGlhRGV2aWNlRW51bWVyYXRpb24odWludDY0X3QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYgZGV2aWNlTGlzdCwgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpOworICAgIHZvaWQgZW51bWVyYXRlTWVk
aWFEZXZpY2VzKFdlYkNvcmU6OkRvY3VtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJik7CiAK
ICAgICBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4g
YWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgcmVtb3ZlRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50OjpE
ZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuKTsKQEAgLTY5LDkgKzY2LDYgQEAgcHJpdmF0ZToKICAg
ICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0X3Q+IG1f
dXNlck1lZGlhUmVxdWVzdFRvSURNYXA7CiAgICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6RG9j
dW1lbnQ+LCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+Pj4gbV9ibG9j
a2VkVXNlck1lZGlhUmVxdWVzdHM7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2Vi
Q29yZTo6TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Pj4gbV9pZFRvTWVkaWFEZXZpY2Vz
RW51bWVyYXRpb25SZXF1ZXN0TWFwOwotICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6Ok1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4sIHVpbnQ2NF90PiBtX21lZGlhRGV2aWNlc0VudW1l
cmF0aW9uUmVxdWVzdFRvSURNYXA7Ci0KICAgICBIYXNoTWFwPFdlYkNvcmU6OlVzZXJNZWRpYUNs
aWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBt
X2RldmljZUNoYW5nZU9ic2VydmVyTWFwOwogICAgIGJvb2wgbV9tb25pdG9yaW5nRGV2aWNlQ2hh
bmdlIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCmluZGV4IDhmNjY3
ZmNiM2RmZDEyNzk2OThkYWNkZDViODE3YzZkMDg4NjAxMGYuLjM1YWU3ZDI5ZTU4NTRmYjI2NzM4
ZjE1ZTJhZTExMGQ5MDY0YjE5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCkBAIC01
MCwxNCArNTAsOSBAQCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsVXNlck1lZGlhQWNj
ZXNzUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0JiByZXF1ZXN0KQogICAgIG1fcGFnZS51c2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxVc2VyTWVkaWFSZXF1ZXN0KHJlcXVl
c3QpOwogfQogCi12b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
KE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgV2ViVXNlck1l
ZGlhQ2xpZW50OjplbnVtZXJhdGVNZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0
cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIG1fcGFnZS51c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5lbnVtZXJhdGVNZWRpYURldmljZXMocmVxdWVzdCk7Ci19
Ci0KLXZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRpYURl
dmljZXNFbnVtZXJhdGlvbihyZXF1ZXN0KTsKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCkuZW51bWVyYXRlTWVkaWFEZXZpY2VzKGRvY3VtZW50LCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIFdlYlVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hh
bmdlT2JzZXJ2ZXJUb2tlbiBXZWJVc2VyTWVkaWFDbGllbnQ6OmFkZERldmljZUNoYW5nZU9ic2Vy
dmVyKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVu
dC5oCmluZGV4IDY5NTIxNzRiOTEyYzk3MWUzNTc4NmUyN2M0ODIyNWQyZmNhMTQwMmQuLjc2ZDQx
ZjY4Mjc4OTNhOTlkYmViN2I3NTExZDUyYmMxMjM3ZmYwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmgKQEAgLTQwLDggKzQwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RVc2VyTWVk
aWFBY2Nlc3MoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCYpIG92ZXJyaWRlOwogICAgIHZvaWQg
Y2FuY2VsVXNlck1lZGlhQWNjZXNzUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Jikg
b3ZlcnJpZGU7CiAKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlcyhXZWJDb3JlOjpNZWRp
YURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmKSBmaW5hbDsKLSAgICB2b2lkIGNhbmNlbE1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChXZWJDb3JlOjpNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QmKSBmaW5hbDsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlcyhXZWJDb3Jl
OjpEb2N1bWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYpIGZpbmFsOwogCiAgICAgRGV2aWNl
Q2hhbmdlT2JzZXJ2ZXJUb2tlbiBhZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVEZXZpY2VDaGFuZ2VPYnNlcnZlcihE
ZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNmU1ZDA1MWU0ZDgyMDA5ODYyOGFhNWEwYmNi
MzFjN2Y4NmU4MGE5ZC4uOWJlNTJmZjdkZGM3Mzc5MTdmYjgxNTlkMmMwYjUwYzEyNmE1MDQ0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQx
OTgsMTEgKzQxOTgsNiBAQCB2b2lkIFdlYlBhZ2U6OnVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdAogICAgIG1fdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT51c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodXNlck1l
ZGlhSUQsIHN0YXRpY19jYXN0PFVzZXJNZWRpYVJlcXVlc3Q6Ok1lZGlhQWNjZXNzRGVuaWFsUmVh
c29uPihyZWFzb24pLCBXVEZNb3ZlKGludmFsaWRDb25zdHJhaW50KSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6ZGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRldmljZXMsIFN0cmluZyYmIGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKQotewot
ICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5kaWRDb21wbGV0ZU1lZGlh
RGV2aWNlRW51bWVyYXRpb24odXNlck1lZGlhSUQsIGRldmljZXMsIFdURk1vdmUoZGV2aWNlSWRl
bnRpZmllckhhc2hTYWx0KSwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2Vzcyk7Ci19Ci0KIHZvaWQg
V2ViUGFnZTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKIHsKICAgICBtX3VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci0+Y2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZTFlNWUzOTAwMjgyMjRiNjNj
YWJlNGQyNmYxYjFmMjVmYmJlOGIxZS4uYzE3MjIyMDMyZmJhZjhhYWU5YzRhNGI1M2ZkYTUwZTA5
ZWQ4MThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMTQ4Miw3ICsxNDgyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dh
c0dyYW50ZWQodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiBh
dWRpb0RldmljZVVJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlVUlELCBT
dHJpbmcmJiBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdHJpbmcmJiBpbnZhbGlkQ29uc3RyYWludCk7
CiAKLSAgICB2b2lkIGRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVtZXJhdGlvbih1aW50NjRfdCB1
c2VyTWVkaWFJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBkZXZpY2Vz
LCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJvb2wgb3JpZ2luSGFzUGVyc2lz
dGVudEFjY2Vzcyk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
YmE3ZjY0YmZkY2JjY2Y4YWIyYzMzZjZjMjc4YjQ2ZDE1MTg4OGYwMS4uYjg0M2IyODEzZjIwMWUx
N2E2MzY1MDVjNDFjZTc3OWU2YjVlNDNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zNTksNyArMzU5LDYgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICAjIE1lZGlhU3RlYW0KICAgICBVc2VyTWVkaWFB
Y2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlIGF1ZGlvRGV2aWNlLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHZpZGVvRGV2aWNlLCBTdHJp
bmcgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpIC0+ICgpIEFzeW5jCiAgICAgVXNlck1l
ZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCByZWFzb24s
IFN0cmluZyBpbnZhbGlkQ29uc3RyYWludCkKLSAgICBEaWRDb21wbGV0ZU1lZGlhRGV2aWNlRW51
bWVyYXRpb24odWludDY0X3QgdXNlck1lZGlhSUQsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiBkZXZpY2VzLCBTdHJpbmcgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJvb2wg
aGFzUGVyc2lzdGVudEFjY2VzcykKICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAzMTI3MjBkMTNjM2FkMWRjN2M0M2RjYjhhZTQ0MzQ1MWMwMGIwODEwLi5jZWNk
ZTVlNzkxOWU0MTJjYmVhNTJkMDBkMmE4NmJhZjJlZWNiYTg3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTktMDgtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIGVudW1lcmF0ZURldmljZXMgc2hvdWxkIHJldHVybiB0aGUgc2FtZSBKUyBvYmplY3RzIGlm
IGNhbGxlZCB0d2ljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAwNzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi5odG1sOgorCiAy
MDE5LTA4LTE1ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogVXBkYXRlIEVzcHJpbWEgdG8gc3VwcG9ydCBtb2Rlcm4gSmF2YVNj
cmlwdCBsYW5ndWFnZSBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLmh0bWwKaW5kZXggZTc4MGYxMTU2ZjY2NzBi
YmVlZDQwNTZmZmJjY2JlYTRlODRjM2NmNC4uZGVmZTQxOGUwZDgxOGZhNmM5ZDYxNzRhMWQwZTVm
YTFkODczZGIxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZXZp
Y2UtY2hhbmdlLWV2ZW50LTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2RldmljZS1jaGFuZ2UtZXZlbnQtMi5odG1sCkBAIC0yNywzMyArMjcsMzkgQEAKICAgICAgICAg
ICAgIC50aGVuKHMgPT4gc3RyZWFtID0gcykKIAogICAgICAgICBsZXQgZGV2aWNlcyA9IGF3YWl0
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOworICAgICAgICBsZXQg
ZGV2aWNlczIgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMo
KTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSghIWRldmljZXMubGVuZ3RoLCAiY2hlY2sgdGhlcmUg
YXJlIHNvbWUgZGV2aWNlcyIpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRldmljZXMs
IGRldmljZXMyKTsKIAogICAgICAgICB0ZXN0UnVubmVyLmNsZWFyTW9ja01lZGlhRGV2aWNlcygp
OwotCisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAg
ICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMub25kZXZpY2VjaGFuZ2UgPSByZXNvbHZl
OworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgcmVqZWN0
KCJldmVudCAxIHRvb2sgdG9vIGxvbmciKTsKKyAgICAgICAgICAgIH0sIDUwMDApOworICAgICAg
ICB9KTsKICAgICAgICAgZGV2aWNlcyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51
bWVyYXRlRGV2aWNlcygpOwogICAgICAgICBhc3NlcnRfZmFsc2UoISFkZXZpY2VzLmxlbmd0aCwg
ImNoZWNrIHRoZXJlIGFyZSBubyBtb3JlIGRldmljZXMiKTsKIAorICAgICAgICB0ZXN0UnVubmVy
LmFkZE1vY2tDYW1lcmFEZXZpY2UoImlkMSIsICJteSBjYW1lcmEiKTsKICAgICAgICAgYXdhaXQg
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICAgICAgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5vbmRldmljZWNoYW5nZSA9IHJlc29sdmU7CiAgICAgICAgICAgICBzZXRU
aW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiZXZlbnQgMSB0b29r
IHRvbyBsb25nIik7Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAg
IHJlamVjdCgiZXZlbnQgMiB0b29rIHRvbyBsb25nIik7CiAgICAgICAgICAgICB9LCA1MDAwKTsK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkTW9ja0NhbWVyYURldmljZSgiaWQxIiwgIm15IGNh
bWVyYSIpOwogICAgICAgICB9KTsKKwogICAgICAgICBkZXZpY2VzID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZGV2aWNlc1swXS5raW5kLCAidmlkZW9pbnB1dCIpOwogICAgICAgICBhc3NlcnRfZXF1YWxzKGRl
dmljZXNbMF0ubGFiZWwsICJteSBjYW1lcmEiKTsKIAorICAgICAgICB0ZXN0UnVubmVyLmFkZE1v
Y2tNaWNyb3Bob25lRGV2aWNlKCJpZDIiLCAibXkgbWljIik7CiAgICAgICAgIGF3YWl0IG5ldyBQ
cm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgICAgICAgIG5hdmlnYXRvci5tZWRp
YURldmljZXMub25kZXZpY2VjaGFuZ2UgPSByZXNvbHZlOwogICAgICAgICAgICAgc2V0VGltZW91
dCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coImV2ZW50IDIgdG9vayB0b28g
bG9uZyIpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICByZWpl
Y3QoImV2ZW50IDMgdG9vayB0b28gbG9uZyIpOwogICAgICAgICAgICAgfSwgNTAwMCk7Ci0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmFkZE1vY2tNaWNyb3Bob25lRGV2aWNlKCJpZDIiLCAibXkgbWlj
Iik7CiAgICAgICAgIH0pOwogICAgICAgICBkZXZpY2VzID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoZGV2aWNl
c1swXS5raW5kLCAiYXVkaW9pbnB1dCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376500</attachid>
            <date>2019-08-16 08:38:05 -0700</date>
            <delta_ts>2019-08-19 00:40:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200767-20190816173803.patch</filename>
            <type>text/plain</type>
            <size>74588</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNmN2M1NTg5Mjk3NGE2
NDQyNjc3OTc3ZjdkMTVjNGI4NmJmM2ExMi4uMzg4NWYxY2VkM2I4MjkzNmY3MWFhOGNmYmEwYTli
YzFmMjk4ZTAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA4LTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2Vz
IHNob3VsZCByZXR1cm4gdGhlIHNhbWUgSlMgb2JqZWN0cyBpZiBjYWxsZWQgdHdpY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgTWVkaWFEZXZp
Y2VzIHN0b3JlIHRoZSBsYXN0IGxpc3Qgb2YgZW51bWVyYXRlZCBNZWRpYURldmljZUluZm8gb2Jq
ZWN0cy4KKyAgICAgICAgUmV1c2UgdGhlbSBmb3IgdGhlIG5leHQgZW51bWVyYXRlRGV2aWNlcyBj
YWxsIGlmIG5lZWRlZC4KKyAgICAgICAgSW4gY2FzZSBvZiBhIGRldmljZSBjaGFuZ2UgZXZlbnQs
IG1ha2Ugc3VyZSB0aGUgbmV4dCBlbnVtZXJhdGVEZXZpY2VzIGNhbGwgd2lsbCBmZXRjaCB0aGUg
bmV3IGxpc3Qgb2YgZGV2aWNlcy4KKyAgICAgICAgV2hlbiBjb25zdHJ1Y3RpbmcgdGhlIG5ldyBs
aXN0IG9mIGRldmljZXMsIHJldXNlIGFueSBwcmVleGlzdGluZyBkZXZpY2UgaW4gdGhlIG9sZCBs
aXN0IGFzIHNwZWNpZmllZCBieQorICAgICAgICBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFj
YXB0dXJlLW1haW4vI2RvbS1tZWRpYWRldmljZXMtZW51bWVyYXRlZGV2aWNlcy4KKworICAgICAg
ICBVcGRhdGUgZW51bWVyYXRlRGV2aWNlcyB0byB1c2UgYSBjb21wbGV0aW9uIGhhbmRsZXIuCisg
ICAgICAgIFJlbW92ZSBNZWRpYURldmljZXNSZXF1ZXN0IGFuZCBNZWRpYURldmljZXNFbnVtZXJh
dGlvblJlcXVlc3QuCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0IGFuZCBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6TWVkaWFEZXZpY2VJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmlj
ZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OnN0b3Ap
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmVudW1lcmF0ZURldmljZXMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpsaXN0ZW5Gb3JEZXZpY2VDaGFuZ2VzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Lmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
c1JlcXVlc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNlbmRlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGll
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBbGxvd2VkVG9Vc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6VXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdldFVzZXJNZWRpYSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyTWVkaWFDb250cm9sbGVyOjplbnVtZXJhdGVNZWRpYURldmljZXMpOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOS0wOC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBiYTc3YzQzZGU1NzZmMGFlYzIzYTlmY2Y3NjMwNWNmMWE0MjU5YmM2Li4xZjFkMTI1NzAy
ZjgyOTU5ZWU0ODIwNmJlZGNkZDQ0ZWNjM2Y1NWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBA
CisyMDE5LTA4LTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBlbnVtZXJhdGVEZXZpY2VzIHNob3VsZCByZXR1cm4gdGhlIHNhbWUgSlMgb2JqZWN0cyBpZiBj
YWxsZWQgdHdpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMDc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSBjb2RlIGFzIGVudW1lcmF0ZSBkZXZpY2UgcmVxdWVzdCBpcyBub3cgZ29uZS4K
KyAgICAgICAgTWFrZSB1c2Ugb2YgYXN5bmMgSVBDIHRvIHNpbXBsaWZ5IGNvZGUgc2luY2Ugd2Ug
YXJlIG5vdyBwYXNzaW5nIGEgY29tcGxldGlvbiBoYW5kbGVyIGRpcmVjdGx5LgorCisgICAgICAg
ICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpmaW5pc2hHcmFudGluZ1JlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVy
YXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1heWJlSW5pdGlh
bGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjplbnVtZXJhdGVNZWRpYURldmljZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOS0wOC0xNiAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9u
SUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNmUzOWJlNDE4YWQ4ZTEwMDliZGEzZGIwYWYxMGE0
YmIzNGFmZmNkNi4uN2I4MjgwZWJkMDI0ZjM0Y2M2NzExMmZmMDAxNzFlNjkxYWZlN2QyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC05MCw3ICs5MCw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKIAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vRG91YmxlUmFuZ2UuaAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTG9uZ1JhbmdlLmgKLSAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJh
Y2tDb25zdHJhaW50cy5oCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VJbmZvLmNwcAppbmRleCBmYzlhYTQ2Y2M0ZDk4ZGRkZjY4MjM2Y2Q2M2Y0MTEyNzhiMGVmNzNm
Li5jM2RhY2ExY2IyNDU4ZTViOGY5ZGQ5ODNlMDQ2ZThjNzRiOTdhZTljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM0LDE4ICszNCwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChNZWRpYURldmljZUluZm8pOwogCi1pbmxpbmUgTWVkaWFEZXZpY2VJbmZvOjpN
ZWRpYURldmljZUluZm8oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCwgY29uc3QgU3RyaW5nJiBncm91cElk
LCBLaW5kIGtpbmQpCi0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihjb250ZXh0KQot
ICAgICwgbV9sYWJlbChsYWJlbCkKLSAgICAsIG1fZGV2aWNlSWQoZGV2aWNlSWQpCi0gICAgLCBt
X2dyb3VwSWQoZ3JvdXBJZCkKLSAgICAsIG1fa2luZChraW5kKQorUmVmPE1lZGlhRGV2aWNlSW5m
bz4gTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3Ry
aW5nJiBkZXZpY2VJZCwgY29uc3QgU3RyaW5nJiBncm91cElkLCBLaW5kIGtpbmQpCiB7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFEZXZpY2VJbmZvKGxhYmVsLCBkZXZpY2VJZCwgZ3Jv
dXBJZCwga2luZCkpOwogfQogCi1SZWY8TWVkaWFEZXZpY2VJbmZvPiBNZWRpYURldmljZUluZm86
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGxh
YmVsLCBjb25zdCBTdHJpbmcmIGRldmljZUlkLCBjb25zdCBTdHJpbmcmIGdyb3VwSWQsIEtpbmQg
a2luZCkKK01lZGlhRGV2aWNlSW5mbzo6TWVkaWFEZXZpY2VJbmZvKGNvbnN0IFN0cmluZyYgbGFi
ZWwsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWQsIGNvbnN0IFN0cmluZyYgZ3JvdXBJZCwgS2luZCBr
aW5kKQorICAgIDogbV9sYWJlbChsYWJlbCkKKyAgICAsIG1fZGV2aWNlSWQoZGV2aWNlSWQpCisg
ICAgLCBtX2dyb3VwSWQoZ3JvdXBJZCkKKyAgICAsIG1fa2luZChraW5kKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE1lZGlhRGV2aWNlSW5mbyhjb250ZXh0LCBsYWJlbCwgZGV2aWNlSWQs
IGdyb3VwSWQsIGtpbmQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmgKaW5k
ZXggNjdiMTQ3MDQ5ZGZkZmIxYzRhYjE0NzVkOTljMDQ1ZGJhMGVjNmRmMC4uM2M5MjZhOTFhYzQ2
YWJjNjk3MmM5OWY3NTA2Mzg4NzU2YTBkMTc2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlSW5mby5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEyICszMywxMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhRGV2aWNlSW5mbyBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlSW5mbz4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUs
IHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeworY2xhc3MgTWVkaWFEZXZpY2VJ
bmZvIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFEZXZpY2VJbmZvPiwgcHVibGljIFNj
cmlwdFdyYXBwYWJsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChNZWRpYURldmljZUlu
Zm8pOwogcHVibGljOgogICAgIGVudW0gY2xhc3MgS2luZCB7IEF1ZGlvaW5wdXQsIEF1ZGlvb3V0
cHV0LCBWaWRlb2lucHV0IH07CiAKLSAgICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlSW5mbz4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmLCBLaW5kKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlSW5mbz4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEtpbmQp
OwogCiAgICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0K
ICAgICBjb25zdCBTdHJpbmcmIGRldmljZUlkKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VJZDsg
fQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgS2luZCBraW5kKCkgY29uc3QgeyByZXR1
cm4gbV9raW5kOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFEZXZpY2VJbmZvKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBLaW5kKTsKKyAgICBNZWRpYURldmljZUluZm8oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgS2luZCk7CiAKICAgICBjb25zdCBTdHJpbmcgbV9sYWJlbDsKICAg
ICBjb25zdCBTdHJpbmcgbV9kZXZpY2VJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmlkbAppbmRleCBkMmIyYzlmZjI2MmVl
NzhlMTU5MjE4NzRkZWJmN2I5Nzk0NzA5Y2I0Li45NjAwMWRjZTljZGViMTAxOTNlNWRmYjNiMDY4
NTkzZmYyNTIwOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlSW5mby5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZUluZm8uaWRsCkBAIC0yNiw2ICsyNiw3IEBACiBbCiAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorICAgIFNr
aXBWVGFibGVWYWxpZGF0aW9uLAogXSBpbnRlcmZhY2UgTWVkaWFEZXZpY2VJbmZvIHsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRldmljZUlkOwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBNZWRpYURldmljZUtpbmQga2luZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA0YmQ3YTlkN2NjYjk5M2NhMTE0
YjkxYWViZTdhYWM4OWI1ZjMwMTkwLi4wMDU3NTg3NDhmY2Y3NzNmMWU3ZjZlMDExNDMyN2IzN2Zl
ODljNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
NSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAi
TWVkaWFEZXZpY2VzUmVxdWVzdC5oIgorI2luY2x1ZGUgIkpTTWVkaWFEZXZpY2VJbmZvLmgiCiAj
aW5jbHVkZSAiTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIgpAQCAtNjEsNiArNjEsMTEgQEAgaW5saW5lIE1lZGlhRGV2aWNlczo6TWVkaWFEZXZp
Y2VzKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpXaW5kb3cpID09
IHN0YXRpY19jYXN0PHNpemVfdD4oUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5
U3VyZmFjZVR5cGU6OldpbmRvdyksICJNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFj
ZVR5cGU6OldpbmRvdyBpcyBub3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5
U3VyZmFjZVR5cGU6OldpbmRvdyBhcyBleHBlY3RlZCIpOwogICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6
OkFwcGxpY2F0aW9uKSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpBcHBsaWNhdGlvbiksICJNZWRpYURldmljZXM6
OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6OkFwcGxpY2F0aW9uIGlzIG5vdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6QXBwbGljYXRpb24gYXMgZXhw
ZWN0ZWQiKTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFEZXZp
Y2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpCcm93c2VyKSA9PSBzdGF0aWNfY2FzdDxz
aXplX3Q+KFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpC
cm93c2VyKSwgIk1lZGlhRGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6QnJvd3Nl
ciBpcyBub3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6
OkJyb3dzZXIgYXMgZXhwZWN0ZWQiKTsKKworICAgIGlmIChhdXRvKiBjb250cm9sbGVyID0gVXNl
ck1lZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpKSB7CisgICAgICAgIG1fY2Fu
QWNjZXNzQ2FtZXJhID0gY29udHJvbGxlci0+Y2FuQ2FsbEdldFVzZXJNZWRpYShkb2N1bWVudCwg
eyBVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZTo6Q2FtZXJhIH0pID09IFVzZXJNZWRp
YUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2Vzczo6Q2FuQ2FsbDsKKyAgICAgICAgbV9jYW5B
Y2Nlc3NNaWNyb3Bob25lID0gY29udHJvbGxlci0+Y2FuQ2FsbEdldFVzZXJNZWRpYShkb2N1bWVu
dCwgeyBVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZTo6TWljcm9waG9uZSB9KSA9PSBV
c2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7CisgICAgfQog
fQogCiBNZWRpYURldmljZXM6On5NZWRpYURldmljZXMoKSA9IGRlZmF1bHQ7CkBAIC03Myw2ICs3
OCw3IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpzdG9wKCkKICAgICAgICAgaWYgKGRvY3VtZW50ICYm
IGNvbnRyb2xsZXIpCiAgICAgICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVEZXZpY2VDaGFuZ2VP
YnNlcnZlcihtX2RldmljZUNoYW5nZVRva2VuKTsKICAgICB9CisgICAgbV9kZXZpY2VzLmNsZWFy
KCk7CiB9CiAKIFJlZjxNZWRpYURldmljZXM+IE1lZGlhRGV2aWNlczo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKQEAgLTEyOSwxMiArMTM1LDU0IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRE
aXNwbGF5TWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNl
CiAgICAgcmVxdWVzdC0+c3RhcnQoKTsKIH0KIAotdm9pZCBNZWRpYURldmljZXM6OmVudW1lcmF0
ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJiBwcm9taXNlKSBjb25zdAordm9pZCBN
ZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
bmV3RGV2aWNlcykKK3sKKyAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+IGRldmljZXM7
CisgICAgZm9yIChhdXRvJiBuZXdEZXZpY2UgOiBuZXdEZXZpY2VzKSB7CisgICAgICAgIGlmICgh
bV9jYW5BY2Nlc3NNaWNyb3Bob25lICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBpZiAoIW1fY2FuQWNjZXNzQ2FtZXJhICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgYXV0byBpbmRleCA9IG1fZGV2aWNlcy5maW5kTWF0Y2hpbmcoWyZuZXdEZXZpY2VdKGF1dG8m
IG9sZERldmljZSkgeworICAgICAgICAgICAgcmV0dXJuIG9sZERldmljZS0+ZGV2aWNlSWQoKSA9
PSBuZXdEZXZpY2UucGVyc2lzdGVudElkKCk7CisgICAgICAgIH0pOworICAgICAgICBpZiAoaW5k
ZXggIT0gbm90Rm91bmQpIHsKKyAgICAgICAgICAgIGRldmljZXMuYXBwZW5kKG1fZGV2aWNlc1tp
bmRleF0uY29weVJlZigpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAg
ICAgICAgYXV0byBkZXZpY2VUeXBlID0gbmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lID8gTWVkaWFEZXZpY2VJbmZvOjpLaW5kOjpBdWRpb2lu
cHV0IDogTWVkaWFEZXZpY2VJbmZvOjpLaW5kOjpWaWRlb2lucHV0OworICAgICAgICBkZXZpY2Vz
LmFwcGVuZChNZWRpYURldmljZUluZm86OmNyZWF0ZShuZXdEZXZpY2UubGFiZWwoKSwgbmV3RGV2
aWNlLnBlcnNpc3RlbnRJZCgpLCBuZXdEZXZpY2UuZ3JvdXBJZCgpLCBkZXZpY2VUeXBlKSk7Cisg
ICAgfQorICAgIG1fZGV2aWNlcyA9IFdURk1vdmUoZGV2aWNlcyk7Cit9CisKK3ZvaWQgTWVkaWFE
ZXZpY2VzOjplbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlz
ZSkKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYgKCFk
b2N1bWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OmNyZWF0
ZSgqZG9jdW1lbnQsIFdURk1vdmUocHJvbWlzZSkpLT5zdGFydCgpOworCisgICAgYXV0byogY29u
dHJvbGxlciA9IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSk7Cisg
ICAgaWYgKCFjb250cm9sbGVyKSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZSh7IH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghbV9jYW5BY2Nlc3NDYW1lcmEgJiYgIW1fY2Fu
QWNjZXNzTWljcm9waG9uZSkgeworICAgICAgICBjb250cm9sbGVyLT5sb2dHZXRVc2VyTWVkaWFE
ZW5pYWwoKmRvY3VtZW50LCBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6
OkJsb2NrZWRCeUZlYXR1cmVQb2xpY3ksIFVzZXJNZWRpYUNvbnRyb2xsZXI6OkJsb2NrZWRDYWxs
ZXI6OkVudW1lcmF0ZURldmljZXMpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoeyB9KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2
aWNlcygqZG9jdW1lbnQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oY29uc3QgYXV0byYgbmV3RGV2aWNlcywgY29uc3QgYXV0
byYgZGV2aWNlSURIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwg
aXNDb250ZXh0U3RvcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMt
PmRvY3VtZW50KCktPnNldERldmljZUlESGFzaFNhbHQoZGV2aWNlSURIYXNoU2FsdCk7CisgICAg
ICAgIHJlZnJlc2hEZXZpY2VzKG5ld0RldmljZXMpOworICAgICAgICBwcm9taXNlLnJlc29sdmUo
bV9kZXZpY2VzKTsKKyAgICB9KTsKIH0KIAogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRz
IE1lZGlhRGV2aWNlczo6Z2V0U3VwcG9ydGVkQ29uc3RyYWludHMoKQpAQCAtMTU4LDggKzIwNiwx
MCBAQCBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMgTWVkaWFEZXZpY2VzOjpnZXRTdXBw
b3J0ZWRDb25zdHJhaW50cygpCiAKIHZvaWQgTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRp
bWVyRmlyZWQoKQogewotICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAg
IGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGV2aWNlY2hhbmdlRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAg
IGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGV2aWNlY2hhbmdlRXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogfQogCiBib29sIE1l
ZGlhRGV2aWNlczo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKQEAgLTE3NywzMyArMjI3LDMw
IEBAIGJvb2wgTWVkaWFEZXZpY2VzOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkg
Y29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBNZWRpYURldmljZXM6OmFkZEV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4m
JiBsaXN0ZW5lciwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmIG9wdGlvbnMpCit2b2lk
IE1lZGlhRGV2aWNlczo6bGlzdGVuRm9yRGV2aWNlQ2hhbmdlcygpCiB7Ci0gICAgaWYgKCFtX2xp
c3RlbmluZ0ZvckRldmljZUNoYW5nZXMgJiYgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZp
Y2VjaGFuZ2VFdmVudCkgewotICAgICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50
KCk7Ci0gICAgICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBkb2N1bWVudCA/IFVzZXJNZWRpYUNvbnRy
b2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSkgOiBudWxscHRyOwotICAgICAgICBpZiAoZG9j
dW1lbnQgJiYgY29udHJvbGxlcikgewotICAgICAgICAgICAgbV9saXN0ZW5pbmdGb3JEZXZpY2VD
aGFuZ2VzID0gdHJ1ZTsKKyAgICBpZiAobV9saXN0ZW5pbmdGb3JEZXZpY2VDaGFuZ2VzIHx8ICgh
bV9jYW5BY2Nlc3NDYW1lcmEgJiYgIW1fY2FuQWNjZXNzTWljcm9waG9uZSkpCisgICAgICAgIHJl
dHVybjsKIAotICAgICAgICAgICAgbV9kZXZpY2VDaGFuZ2VUb2tlbiA9IGNvbnRyb2xsZXItPmFk
ZERldmljZUNoYW5nZU9ic2VydmVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhp
c10oKSB7CisgICAgbV9saXN0ZW5pbmdGb3JEZXZpY2VDaGFuZ2VzID0gdHJ1ZTsKIAotICAgICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgbV9zY2hlZHVsZWRFdmVudFRpbWVyLmlzQWN0aXZl
KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRo
aXMtPmRvY3VtZW50KCk7CisgICAgYXV0byogY29udHJvbGxlciA9IGRvY3VtZW50ID8gVXNlck1l
ZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC0+cGFnZSgpKSA6IG51bGxwdHI7CisgICAgaWYg
KCFjb250cm9sbGVyKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgICAgICBhdXRvKiBk
b2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgICAgICAgICAgICAgYXV0byogY29udHJv
bGxlciA9IGRvY3VtZW50ID8gVXNlck1lZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC0+cGFn
ZSgpKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgaWYgKCFjb250cm9sbGVyKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgbV9kZXZpY2VDaGFuZ2VUb2tlbiA9IGNvbnRyb2xs
ZXItPmFkZERldmljZUNoYW5nZU9ic2VydmVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KSwgdGhpc10oKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgbV9zY2hlZHVsZWRFdmVudFRp
bWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgICAgICBi
b29sIGNhbkFjY2Vzc01pY3JvcGhvbmUgPSBjb250cm9sbGVyLT5jYW5DYWxsR2V0VXNlck1lZGlh
KCpkb2N1bWVudCwgeyBVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZTo6TWljcm9waG9u
ZSB9KSA9PSBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7
Ci0gICAgICAgICAgICAgICAgYm9vbCBjYW5BY2Nlc3NDYW1lcmEgPSBjb250cm9sbGVyLT5jYW5D
YWxsR2V0VXNlck1lZGlhKCpkb2N1bWVudCwgeyBVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJl
VHlwZTo6Q2FtZXJhIH0pID09IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2Vz
czo6Q2FuQ2FsbDsKLSAgICAgICAgICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUgJiYg
IWNhbkFjY2Vzc0NhbWVyYSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBt
X3NjaGVkdWxlZEV2ZW50VGltZXIuc3RhcnRPbmVTaG90KFNlY29uZHMocmFuZG9tTnVtYmVyKCkg
LyAyKSk7CisgICAgfSk7Cit9CiAKLSAgICAgICAgICAgICAgICBtX3NjaGVkdWxlZEV2ZW50VGlt
ZXIuc3RhcnRPbmVTaG90KFNlY29uZHMocmFuZG9tTnVtYmVyKCkgLyAyKSk7Ci0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgfQotICAgIH0KK2Jvb2wgTWVkaWFEZXZpY2VzOjphZGRFdmVudExpc3Rl
bmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlz
dGVuZXIsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQoreworICAgIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZWNoYW5nZUV2ZW50KQorICAgICAgICBs
aXN0ZW5Gb3JEZXZpY2VDaGFuZ2VzKCk7CiAKICAgICByZXR1cm4gRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBv
cHRpb25zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5oCmluZGV4IGRlM2RhMDhiZDBlYWE2YWI2Y2ZjYTI1M2FmOWJjNzA2YjdhNDlj
MzUuLjUxY2QxYjRjZTliOTcyMTg4YjFiMTA3ZGM1OGE1YjViMWY5NzlhYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtNzcs
NyArNzcsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2b2lkIGdldFVzZXJNZWRpYShjb25zdCBT
dHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CiAgICAgdm9pZCBnZXREaXNwbGF5
TWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNvbnN0OwotICAgIHZv
aWQgZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKSBjb25zdDsKKyAg
ICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJik7CiAgICAg
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7
CiAKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlcz46OnJlZjsKQEAgLTkxLDYgKzkx
LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCgpOwogICAg
IGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxF
dmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRl
OwogCisgICAgdm9pZCByZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4m
KTsKKyAgICB2b2lkIGxpc3RlbkZvckRldmljZUNoYW5nZXMoKTsKKwogICAgIGZyaWVuZCBjbGFz
cyBKU01lZGlhRGV2aWNlc093bmVyOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CkBAIC0xMTAs
NiArMTEzLDEwIEBAIHByaXZhdGU6CiAgICAgY29uc3QgRXZlbnROYW1lcyYgbV9ldmVudE5hbWVz
OyAvLyBOZWVkIHRvIGNhY2hlIHRoaXMgc28gd2UgY2FuIHVzZSBpdCBmcm9tIEdDIHRocmVhZHMu
CiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvckRldmljZUNoYW5nZXMgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9kaXNhYmxlR2V0RGlzcGxheU1lZGlhVXNlckdlc3R1cmVDb25zdHJhaW50IHsgZmFsc2Ug
fTsKKworICAgIFZlY3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gbV9kZXZpY2VzOworICAgIGJv
b2wgbV9jYW5BY2Nlc3NDYW1lcmEgeyBmYWxzZSB9OworICAgIGJvb2wgbV9jYW5BY2Nlc3NNaWNy
b3Bob25lIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVy
YXRpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzUzZGY2Mzc5ODI4N2E0YTAzZmY4NDFiNWJkZDFlMTU1ZGM4NDZhYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LQotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2lu
Y2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJV
c2VyTWVkaWFDb250cm9sbGVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVmPE1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhRGV2aWNlc0VudW1l
cmF0aW9uUmVxdWVzdChkb2N1bWVudCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKLX0K
LQotTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OjpNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgQ29tcGxldGlvbkhhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
KCZjb250ZXh0KQotICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSkKLXsKLX0KLQotTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Ojp+TWVkaWFE
ZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KCkgPSBkZWZhdWx0OwotCi1TZWN1cml0eU9yaWdpbiog
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Ojp1c2VyTWVkaWFEb2N1bWVudE9yaWdpbigp
IGNvbnN0Ci17Ci0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2Vj
dXJpdHlPcmlnaW4oKTsKLX0KLQotU2VjdXJpdHlPcmlnaW4qIE1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdDo6dG9wTGV2ZWxEb2N1bWVudE9yaWdpbigpIGNvbnN0Ci17Ci0gICAgaWYgKCFz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
cmV0dXJuICZzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRvcE9yaWdpbigpOwotfQotCi12b2lk
IE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6Y29udGV4dERlc3Ryb3llZCgpCi17Ci0g
ICAgLy8gQ2FsbGluZyBjYW5jZWwoKSBtYXkgZGVzdHJveSBvdXJzZWx2ZXMuCi0gICAgUmVmPE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAg
ICBjYW5jZWwoKTsKLSAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ry
b3llZCgpOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDo6c3RhcnQo
KQotewotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgYXV0byYg
ZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
Ci0gICAgYXV0byogY29udHJvbGxlciA9IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20oZG9jdW1l
bnQucGFnZSgpKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwotICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2aWNlcygqdGhpcyk7Ci19Ci0KLXZv
aWQgTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OjpjYW5jZWwoKQotewotICAgIG1fY29t
cGxldGlvbkhhbmRsZXIgPSBudWxscHRyOwotfQotCi12b2lkIE1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdDo6c2V0RGV2aWNlSW5mbyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRl
dmljZUxpc3QsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9y
aWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpCi17Ci0gICAgaWYgKG1fY29tcGxldGlvbkhhbmRsZXIp
Ci0gICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIoZGV2aWNlTGlzdCwgZGV2aWNlSWRlbnRpZmll
ckhhc2hTYWx0LCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKTsKLSAgICBtX2NvbXBsZXRpb25I
YW5kbGVyID0gbnVsbHB0cjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYmQwZGQ1ODNlMTYzNWE5YzhlOWRj
NjY1MTAwOTFmNTc3YTExNTQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
RW51bWVyYXRpb25SZXF1ZXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDYXB0dXJlRGV2aWNlOwot
Y2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBTZWN1cml0eU9yaWdpbjsKLQotY2xhc3MgTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0IGZpbmFsIDogcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+
IHsKLXB1YmxpYzoKLSAgICB1c2luZyBDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248
dm9pZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmIGRldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKT47Ci0KLSAg
ICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gY3JlYXRlKERvY3Vt
ZW50JiwgQ29tcGxldGlvbkhhbmRsZXImJik7Ci0KLSAgICB2aXJ0dWFsIH5NZWRpYURldmljZXNF
bnVtZXJhdGlvblJlcXVlc3QoKTsKLQotICAgIHZvaWQgc3RhcnQoKTsKLSAgICB2b2lkIGNhbmNl
bCgpOwotCi0gICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2NvbXBsZXRp
b25IYW5kbGVyOyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERldmljZUluZm8oY29u
c3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQsIGJvb2wgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2Vzcyk7Ci0KLSAgICBXRUJDT1JF
X0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4oKSBjb25zdDsK
LSAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bigpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgQ29tcGxldGlvbkhhbmRsZXImJik7Ci0KLSAgICAv
LyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgotICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgp
IGZpbmFsOwotCi0gICAgQ29tcGxldGlvbkhhbmRsZXIgbV9jb21wbGV0aW9uSGFuZGxlcjsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlc1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXNSZXF1ZXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTBm
ZGQwMjM3NDdmZGFkNzhhYWZhOTkyZjdhMWEzMjg0YzQ1NjNiMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhRGV2aWNlc1JlcXVlc3Qu
aCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNl
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUg
IkpTTWVkaWFEZXZpY2VJbmZvLmgiCi0jaW5jbHVkZSAiTWVkaWFEZXZpY2VzRW51bWVyYXRpb25S
ZXF1ZXN0LmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgotI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgot
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1NIQTEuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1pbmxpbmUgTWVkaWFEZXZpY2VzUmVxdWVzdDo6TWVkaWFEZXZp
Y2VzUmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhRGV2aWNlczo6RW51bWVyYXRlRGV2
aWNlc1Byb21pc2UmJiBwcm9taXNlKQotICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIo
JmRvY3VtZW50KQotICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkpCi17Ci19Ci0KLVJl
ZjxNZWRpYURldmljZXNSZXF1ZXN0PiBNZWRpYURldmljZXNSZXF1ZXN0OjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBNZWRpYURldmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJv
bWlzZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURldmljZXNSZXF1ZXN0KGRv
Y3VtZW50LCBXVEZNb3ZlKHByb21pc2UpKSk7Ci19Ci0KLU1lZGlhRGV2aWNlc1JlcXVlc3Q6On5N
ZWRpYURldmljZXNSZXF1ZXN0KCkKLXsKLSAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGdldCBkZXN0
cm95ZWQgYWZ0ZXIgdGhlIGVudW1lcmF0aW9uIHJlcXVlc3QgaGFzIGNvbXBsZXRlZCBvciBoYXMg
YmVlbiBjYW5jZWxlZC4KLSAgICBBU1NFUlQoIW1fZW51bWVyYXRpb25SZXF1ZXN0IHx8IG1fZW51
bWVyYXRpb25SZXF1ZXN0LT53YXNDYW5jZWxlZCgpKTsKLX0KLQotU2VjdXJpdHlPcmlnaW4qIE1l
ZGlhRGV2aWNlc1JlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKLXsKLSAgICBpZiAoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICByZXR1cm4gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5zZWN1cml0eU9yaWdpbigpOwotCi0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLXZv
aWQgTWVkaWFEZXZpY2VzUmVxdWVzdDo6Y29udGV4dERlc3Ryb3llZCgpCi17Ci0gICAgLy8gVGhl
IGNhbGwgdG8gbV9lbnVtZXJhdGlvblJlcXVlc3QtPmNhbmNlbCgpIG1pZ2h0IGRlbGV0ZSB0aGlz
LgotICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwotCi0gICAgaWYgKG1f
ZW51bWVyYXRpb25SZXF1ZXN0KSB7Ci0gICAgICAgIG1fZW51bWVyYXRpb25SZXF1ZXN0LT5jYW5j
ZWwoKTsKLSAgICAgICAgbV9lbnVtZXJhdGlvblJlcXVlc3QgPSBudWxscHRyOwotICAgIH0KLSAg
ICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgpOwotfQotCi12
b2lkIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OnN0YXJ0KCkKLXsKLSAgICBhdXRvJiBkb2N1bWVudCA9
IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBhdXRv
KiBjb250cm9sbGVyID0gVXNlck1lZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkp
OwotICAgIGlmICghY29udHJvbGxlcikgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgewotICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9wcm9taXNlLnJlc29sdmUoeyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGF1dG8gbWljcm9waG9uZUFjY2VzcyA9IGNvbnRyb2xsZXItPmNhbkNh
bGxHZXRVc2VyTWVkaWEoZG9jdW1lbnQsIHsgVXNlck1lZGlhQ29udHJvbGxlcjo6Q2FwdHVyZVR5
cGU6Ok1pY3JvcGhvbmUgfSk7Ci0gICAgYXV0byBjYW1lcmFBY2Nlc3MgPSBjb250cm9sbGVyLT5j
YW5DYWxsR2V0VXNlck1lZGlhKGRvY3VtZW50LCB7IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1
cmVUeXBlOjpDYW1lcmEgfSk7Ci0gICAgYm9vbCBjYW5BY2Nlc3NNaWNyb3Bob25lID0gbWljcm9w
aG9uZUFjY2VzcyA9PSBVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNh
bkNhbGw7Ci0gICAgYm9vbCBjYW5BY2Nlc3NDYW1lcmEgPSBjYW1lcmFBY2Nlc3MgPT0gVXNlck1l
ZGlhQ29udHJvbGxlcjo6R2V0VXNlck1lZGlhQWNjZXNzOjpDYW5DYWxsOwotICAgIGlmICghY2Fu
QWNjZXNzTWljcm9waG9uZSAmJiAhY2FuQWNjZXNzQ2FtZXJhKSB7Ci0gICAgICAgIGNvbnRyb2xs
ZXItPmxvZ0dldFVzZXJNZWRpYURlbmlhbChkb2N1bWVudCwgIWNhbkFjY2Vzc01pY3JvcGhvbmUg
PyBtaWNyb3Bob25lQWNjZXNzIDogY2FtZXJhQWNjZXNzLCBVc2VyTWVkaWFDb250cm9sbGVyOjpC
bG9ja2VkQ2FsbGVyOjpFbnVtZXJhdGVEZXZpY2VzKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIHsKLSAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fcHJvbWlzZS5yZXNvbHZlKHsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBUaGlzIGxhbWJkYSBrZWVwcyB8dGhpc3wgYWxpdmUg
dW50aWwgdGhlIHJlcXVlc3QgY29tcGxldGVzIG9yIGlzIGNhbmNlbGVkLgotICAgIGF1dG8gY29t
cGxldGlvbiA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbkFjY2Vz
c01pY3JvcGhvbmUsIGNhbkFjY2Vzc0NhbWVyYV0gKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiYgY2FwdHVyZURldmljZXMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
LCBib29sKSBtdXRhYmxlIHsKLQotICAgICAgICBtX2VudW1lcmF0aW9uUmVxdWVzdCA9IG51bGxw
dHI7Ci0KLSAgICAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4o
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIGRvY3VtZW50LnNldERldmljZUlE
SGFzaFNhbHQoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKLQotICAgICAgICBWZWN0b3I8UmVm
PE1lZGlhRGV2aWNlSW5mbz4+IGRldmljZXM7Ci0gICAgICAgIGZvciAoYXV0byYgZGV2aWNlSW5m
byA6IGNhcHR1cmVEZXZpY2VzKSB7Ci0gICAgICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhv
bmUgJiYgZGV2aWNlSW5mby50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWlj
cm9waG9uZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICghY2Fu
QWNjZXNzQ2FtZXJhICYmIGRldmljZUluZm8udHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAg
YXV0byBkZXZpY2VUeXBlID0gZGV2aWNlSW5mby50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6TWljcm9waG9uZSA/IE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6QXVkaW9pbnB1dCA6
IE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6VmlkZW9pbnB1dDsKLSAgICAgICAgICAgIGRldmljZXMu
YXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
ZGV2aWNlSW5mby5sYWJlbCgpLCBkZXZpY2VJbmZvLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2VJbmZv
Lmdyb3VwSWQoKSwgZGV2aWNlVHlwZSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkZXZpY2VzID0gV1RGTW92
ZShkZXZpY2VzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJv
bWlzZS5yZXNvbHZlKGRldmljZXMpOwotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgbV9lbnVt
ZXJhdGlvblJlcXVlc3QgPSBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6OmNyZWF0ZShk
b2N1bWVudCwgV1RGTW92ZShjb21wbGV0aW9uKSk7Ci0gICAgbV9lbnVtZXJhdGlvblJlcXVlc3Qt
PnN0YXJ0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NTNlNjRjNTQzNjY5ZjE0NjQ4NjZkZGYwYWMxMWVhOWE0MDFkMjljLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5oCisrKyAvZGV2L251bGwKQEAgLTEs
NjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNp
bmNsdWRlICJNZWRpYURldmljZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBE
b2N1bWVudDsKLWNsYXNzIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDsKLWNsYXNzIFNl
Y3VyaXR5T3JpZ2luOwotCi1jbGFzcyBNZWRpYURldmljZXNSZXF1ZXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8TWVkaWFEZXZpY2VzUmVxdWVzdD4sIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8TWVkaWFEZXZpY2VzUmVxdWVzdD4gY3Jl
YXRlKERvY3VtZW50JiwgTWVkaWFEZXZpY2VzOjpFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKTsK
LQotICAgIHZpcnR1YWwgfk1lZGlhRGV2aWNlc1JlcXVlc3QoKTsKLQotICAgIHZvaWQgc3RhcnQo
KTsKLQotICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwotCi1wcml2
YXRlOgotICAgIE1lZGlhRGV2aWNlc1JlcXVlc3QoRG9jdW1lbnQmLCBNZWRpYURldmljZXM6OkVu
dW1lcmF0ZURldmljZXNQcm9taXNlJiYpOwotCi0gICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkg
ZmluYWw7Ci0KLSAgICBNZWRpYURldmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlIG1fcHJv
bWlzZTsKLSAgICBSZWZQdHI8TWVkaWFEZXZpY2VzUmVxdWVzdD4gbV9wcm90ZWN0b3I7Ci0gICAg
UmVmUHRyPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gbV9lbnVtZXJhdGlvblJlcXVl
c3Q7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXIuY3BwCmluZGV4IDRkNmVjZjNhNTY2MTBjZmYwYTJlMTg5NzVkNDllMTI5MTY0
MTljZTcuLjAwN2QyYzNhNGI5ZWJhMWNhYzEzMDQ5NzY4NmQ0NDZkMmYwNTMyM2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSVENEVE1GU2VuZGVyLmgiCiAjaW5jbHVkZSAi
UlRDRFRNRlNlbmRlckJhY2tlbmQuaCIKICNpbmNsdWRlICJSVENSdHBDYXBhYmlsaXRpZXMuaCIK
KyNpbmNsdWRlICJSVENSdHBUcmFuc2NlaXZlci5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaApp
bmRleCBiMmFhNTYwM2Y1NzUxMjdlNWY1YTg2NDZhOWE4NzdlMjE0YTRhNjE4Li40M2IyYTBkZGNk
NTJiNWQxYWM1NjJhZTdhMTI4ZTQxZDIzM2Q5ODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmgKQEAgLTMzLDExICszMywx
MiBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Owor
Y2xhc3MgQ2FwdHVyZURldmljZTsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0
OwogCkBAIC00OCw4ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYUFjY2VzcyhVc2VyTWVkaWFSZXF1ZXN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxVc2VyTWVkaWFBY2Nlc3NSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTWVkaWFEZXZpY2VzRW51
bWVyYXRpb25SZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKERvY3VtZW50JiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcm
KT4mJikgPSAwOwogCiAgICAgZW51bSBEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuVHlwZSB7IH07
CiAgICAgdXNpbmcgRGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiA9IE9iamVjdElkZW50aWZpZXI8
RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlblR5cGU+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKaW5kZXgg
OGQ3ZTYzY2M2MDZkNmRhMTlmYmRiMTJkZTU0ZmI4NTVmZGY2MmM5OS4uNjU2MjQ2OGE5ZDc5Zjgz
ZDgyODc1NWQ3YmIyNzVlOTJmNzdhMWFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC04NSw3
ICs4NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3koY29u
c3QgRmVhdHVyZVBvbGljeSYgZmVhdHVyZVBvbGljeSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
c3RhdGljIFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2VzcyBpc0FsbG93ZWRU
b1VzZShEb2N1bWVudCYgZG9jdW1lbnQsIERvY3VtZW50JiB0b3BEb2N1bWVudCwgT3B0aW9uU2V0
PFVzZXJNZWRpYUNvbnRyb2xsZXI6OkNhcHR1cmVUeXBlPiB0eXBlcykKK3N0YXRpYyBVc2VyTWVk
aWFDb250cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3MgaXNBbGxvd2VkVG9Vc2UoY29uc3QgRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBEb2N1bWVudCYgdG9wRG9jdW1lbnQsIE9wdGlvblNldDxV
c2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJlVHlwZT4gdHlwZXMpCiB7CiAgICAgaWYgKCZkb2N1
bWVudCA9PSAmdG9wRG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBVc2VyTWVkaWFDb250cm9sbGVy
OjpHZXRVc2VyTWVkaWFBY2Nlc3M6OkNhbkNhbGw7CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGlj
IFVzZXJNZWRpYUNvbnRyb2xsZXI6OkdldFVzZXJNZWRpYUFjY2VzcyBpc0FsbG93ZWRUb1VzZShE
b2N1bWVudCYgZG9jdW1lbnQKICAgICByZXR1cm4gVXNlck1lZGlhQ29udHJvbGxlcjo6R2V0VXNl
ck1lZGlhQWNjZXNzOjpCbG9ja2VkQnlGZWF0dXJlUG9saWN5OwogfQogCi1Vc2VyTWVkaWFDb250
cm9sbGVyOjpHZXRVc2VyTWVkaWFBY2Nlc3MgVXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdl
dFVzZXJNZWRpYShEb2N1bWVudCYgZG9jdW1lbnQsIE9wdGlvblNldDxVc2VyTWVkaWFDb250cm9s
bGVyOjpDYXB0dXJlVHlwZT4gdHlwZXMpCitVc2VyTWVkaWFDb250cm9sbGVyOjpHZXRVc2VyTWVk
aWFBY2Nlc3MgVXNlck1lZGlhQ29udHJvbGxlcjo6Y2FuQ2FsbEdldFVzZXJNZWRpYShjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQsIE9wdGlvblNldDxVc2VyTWVkaWFDb250cm9sbGVyOjpDYXB0dXJl
VHlwZT4gdHlwZXMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCF0eXBlcy5pc0VtcHR5KCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q29udHJvbGxlci5oCmluZGV4IGRmZTg5NjllOWVhNWE4OGE1NzBiMDkxNWI3ZmQ0NDIzZTA4ZDQy
ZjUuLmE0NWFlMzU1NTUwOThiZGI3YTU2ZjZhMjQ3ODcwM2M4N2VkY2ZjNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJv
bGxlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
VXNlck1lZGlhQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUsOCArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXF1ZXN0VXNlck1lZGlhQWNjZXNzKFVzZXJNZWRpYVJlcXVlc3QmKTsKICAgICB2b2lkIGNh
bmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYpOwogCi0gICAgdm9p
ZCBlbnVtZXJhdGVNZWRpYURldmljZXMoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Jik7
Ci0gICAgdm9pZCBjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoTWVkaWFEZXZp
Y2VzRW51bWVyYXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXMo
RG9jdW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmKTsKIAogICAgIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNl
Q2hhbmdlT2JzZXJ2ZXJUb2tlbiBhZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVEZXZpY2VDaGFuZ2VPYnNlcnZlcihVc2VyTWVk
aWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4pOwpAQCAtNjMsNyArNjMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIENhbWVyYSA9IDEgPDwgMSwKICAgICAgICAgRGlzcGxheSA9IDEgPDwg
MwogICAgIH07Ci0gICAgR2V0VXNlck1lZGlhQWNjZXNzIGNhbkNhbGxHZXRVc2VyTWVkaWEoRG9j
dW1lbnQmLCBPcHRpb25TZXQ8Q2FwdHVyZVR5cGU+KTsKKyAgICBHZXRVc2VyTWVkaWFBY2Nlc3Mg
Y2FuQ2FsbEdldFVzZXJNZWRpYShjb25zdCBEb2N1bWVudCYsIE9wdGlvblNldDxDYXB0dXJlVHlw
ZT4pIGNvbnN0OwogCiAgICAgZW51bSBjbGFzcyBCbG9ja2VkQ2FsbGVyIHsKICAgICAgICAgR2V0
VXNlck1lZGlhLApAQCAtODksMTUgKzg5LDExIEBAIGlubGluZSB2b2lkIFVzZXJNZWRpYUNvbnRy
b2xsZXI6OmNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYKICAg
ICBtX2NsaWVudC0+Y2FuY2VsVXNlck1lZGlhQWNjZXNzUmVxdWVzdChyZXF1ZXN0KTsKIH0KIAot
aW5saW5lIHZvaWQgVXNlck1lZGlhQ29udHJvbGxlcjo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcmVxdWVzdCkKK2lubGluZSB2b2lkIFVzZXJN
ZWRpYUNvbnRyb2xsZXI6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29u
c3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgbV9jbGllbnQtPmVudW1l
cmF0ZU1lZGlhRGV2aWNlcyhyZXF1ZXN0KTsKKyAgICBtX2NsaWVudC0+ZW51bWVyYXRlTWVkaWFE
ZXZpY2VzKGRvY3VtZW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLWlubGlu
ZSB2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdChNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
bV9jbGllbnQtPmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChyZXF1ZXN0KTsK
LX0KIAogaW5saW5lIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBV
c2VyTWVkaWFDb250cm9sbGVyOjphZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJiBvYnNlcnZlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuY3BwCmluZGV4IDg0ZjBjNmI2N2YzODIwZjVjN2M4NTk3M2Y4N2ExMzZi
YWJiZTVjYWMuLjg1ZmRjYTNiMmI5NGJjZGY5MTExMDZhYzA2ZTZkZDFmMDNjNWI1OTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIkdQVUJ1ZmZlckJpbmRpbmcuaCIKICNpbmNsdWRlICJHUFVC
dWZmZXJEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgorI2luY2x1
ZGUgIkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ci5oIgogI2luY2x1ZGUgIkdQVVNhbXBsZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggODNiNjEzYzcz
NTQ3ZTUzMDhkMjg2YjMwNzJjMzRiN2Q3NTA1NDdiNi4uMjNlMGQzZjcwMTE1MWVmNTM3YzZmNzll
M2NmNTFhYzNiN2U5MmNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE2MCw4ICsxNjAsNiBAQCBNb2R1
bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcAogTW9kdWxlcy9tZWRpYXN0
cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHAKIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VJbmZvLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwCi1Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5j
cHAKLU1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhN2JjM2E5MDU4NTI2YTI4ZGJlNzU1OGFlNjRmOTI3OGU5ZTUxMDlkLi4zNGI5ODJi
ZWQwMWQzM2Y1NTU0YmI3ZTMxN2EwZDIyMDYxMTNmODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjEsNyArMTIxLDYgQEAK
IAkJMDczNzk0RUMxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRFQTE5RUUzNDFFMDBF
NUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIuaCAqLzsgfTsKIAkJMDczNzk0RkExOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY0MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENE
YXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggKi87IH07CiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1QTA0
NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9j
ay5oICovOyB9OwotCQkwNzM5NEVDQTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
OTRFQzkxQkFCMkNENzAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNBMTU1NDIxNzdBNDI2
MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVW
aWRlb1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYz
MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgfTsKIAkJMDcz
Qjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OwpAQCAtMTk2LDcgKzE5NSw2
IEBACiAJCTA3QUE2QjZDMTY2RDJDMTMwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDdBQTZCNjkxNjZEMDE5NTAwRDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpD
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdB
Qjk5NjkxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUI5OTY1MThEQTNDMDEwMDE4Nzcx
RSAvKiBSVENDb25maWd1cmF0aW9uLmggKi87IH07CiAJCTA3QUI5OTZCMThEQTNDMDEwMDE4Nzcx
RSAvKiBSVENJY2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3QUI5OTY3MThEQTNDMDEwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXIuaCAqLzsg
fTsKLQkJMDdBQkVGNkUxRDhBMUM3NjAwRjIxOTcyIC8qIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDdBQkVGNkQxRDhBMUM3NjAwRjIxOTcyIC8qIE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
QUZGNDIyMUVGQjE0NDkwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0FGRjQyMDFFRkIx
NDQ3MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oICovOyB9OwogCQkwN0FG
RjQyMzFFRkIxNDQ5MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUZGNDIxMUVGQjE0
NDcwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tICovOyB9OwogCQkwN0Iw
MTEzRjEwMzIyNDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QjAxMTNFMTAzMjI0
MjIwMEZCREMzMyAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oICovOyB9OwpAQCAtNTM1
MSw4ICs1MzQ5LDYgQEAKIAkJMDczNzk0RjQxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFu
bmVsSGFuZGxlck1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGF0
YUNoYW5uZWxIYW5kbGVyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3
OTRGNzE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENOb3RpZmllcnNNb2NrLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RjgxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlm
aWVyc01vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDTm90aWZpZXJz
TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzM5NEVDNzFCQUIyQ0NEMDBC
RTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBNZWRpYURldmljZXNSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMDczOTRFQzkxQkFCMkNENzAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVl
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VzUmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4
RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlVmlk
ZW9TYW1wbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNBMTU1MzIxNzdB
MzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
VmlkZW9TYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NTYxRTQw
RENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQ0NCw4ICs1NDQwLDYgQEAKIAkJMDdBQjk5NjYxOERBM0MwMTAw
MTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJU
Q0NvbmZpZ3VyYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0FCOTk2
NzE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJUQ0ljZVNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0FCOTk2ODE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSVENJY2VTZXJ2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwN0FCRUY2QjFEOEExQzU4MDBGMjE5NzIgLyogTWVkaWFEZXZpY2VzRW51bWVyYXRpb25S
ZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhRGV2
aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTA3QUJFRjZEMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VzRW51bWVy
YXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QUZGNDIwMUVG
QjE0NDcwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBRkY0MjExRUZCMTQ0NzAwQjU0NUIzIC8qIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0IwMTEzRTEwMzIyNDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlh
Q29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NjczLDEw
ICsxNTY2Nyw2IEBACiAJCQkJNUVBNzI1Q0QxQUNBQkNEOTAwRUFEMTdCIC8qIE1lZGlhRGV2aWNl
cy5jcHAgKi8sCiAJCQkJNUVBNzI1Q0UxQUNBQkNEOTAwRUFEMTdCIC8qIE1lZGlhRGV2aWNlcy5o
ICovLAogCQkJCTVFQTcyNUNGMUFDQUJDRDkwMEVBRDE3QiAvKiBNZWRpYURldmljZXMuaWRsICov
LAotCQkJCTA3QUJFRjZCMUQ4QTFDNTgwMEYyMTk3MiAvKiBNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QuY3BwICovLAotCQkJCTA3QUJFRjZEMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRpYURl
dmljZXNFbnVtZXJhdGlvblJlcXVlc3QuaCAqLywKLQkJCQkwNzM5NEVDNzFCQUIyQ0NEMDBCRTk5
Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgKi8sCi0JCQkJMDczOTRFQzkxQkFCMkNENzAw
QkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCAqLywKIAkJCQkwNzIyMUI0QzE3Q0VDMzI3
MDA4NDhFNTEgLyogTWVkaWFTdHJlYW0uY3BwICovLAogCQkJCTA3MjIxQjREMTdDRUMzMjcwMDg0
OEU1MSAvKiBNZWRpYVN0cmVhbS5oICovLAogCQkJCTA3MjIxQjRFMTdDRUMzMjcwMDg0OEU1MSAv
KiBNZWRpYVN0cmVhbS5pZGwgKi8sCkBAIC0zMDY3NCw4ICszMDY2NCw2IEBACiAJCQkJQ0RGMkIw
MDQxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTE1MTQ1QjkwMUIzQTFDRTAwMDY2MkJGNyAvKiBNZWRpYURldmljZUluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVFQTcyNUQzMUFDQUJENDcwMEVBRDE3QiAvKiBNZWRpYURldmljZXMuaCBp
biBIZWFkZXJzICovLAotCQkJCTA3QUJFRjZFMUQ4QTFDNzYwMEYyMTk3MiAvKiBNZWRpYURldmlj
ZXNFbnVtZXJhdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTA3Mzk0RUNBMUJBQjJD
RDcwMEJFOTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
NzIwNUFCODEyMzkyOTEwMDBCMTczODAgLyogTWVkaWFEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQ2RjI1MkQxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNl
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGRTk5REQxODgwN0E3RDAwMjU2NjQ4IC8qIE1l
ZGlhRWxlbWVudFNlc3Npb24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCmluZGV4IGRiNGNkYTExMTYxZDIyMjgyOTg0ZmVlOWFlYWQ0MGE0ZWVjMWE0
OTEuLjAyMzg3ZDQzYmNjYWNkZTViYTE0OGY1MDk1MDdhNGZjNWFmOGVmNmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgorI2lu
Y2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwpAQCAtMTIxLDI4ICsxMjIsMzMgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKICAgICBpZiAoIW1f
cGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpIHx8ICFtX3BhZ2UubWFpbkZyYW1lKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGF1dG8gaGFuZGxlciA9IFt0aGlzXShQZXJtaXNzaW9uSW5mbyBwZXJt
aXNzaW9uSW5mbykgbXV0YWJsZSB7Ci0gICAgICAgIHN3aXRjaCAocGVybWlzc2lvbkluZm8pIHsK
LSAgICAgICAgY2FzZSBQZXJtaXNzaW9uSW5mbzo6RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGNhc2UgUGVybWlzc2lvbkluZm86OlVua25vd246Ci0gICAgICAgICAgICBpZiAo
bV9ncmFudGVkUmVxdWVzdHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpHcmFudGVkOgot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFtX3BhZ2UuaGFzUnVu
bmluZ1Byb2Nlc3MoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX3BhZ2UucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpLCBt
X3BhZ2UucGFnZUlEKCkpOwotICAgIH07Ci0KICAgICBhdXRvIG9yaWdpbiA9IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUobV9wYWdlLm1haW5GcmFtZSgpLT51cmwoKSk7Ci0gICAgZ2V0
VXNlck1lZGlhUGVybWlzc2lvbkluZm8obV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIG9y
aWdpbi5nZXQoKSwgV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBnZXRV
c2VyTWVkaWFQZXJtaXNzaW9uSW5mbyhtX3BhZ2UubWFpbkZyYW1lKCktPmZyYW1lSUQoKSwgb3Jp
Z2luLmdldCgpLCBXVEZNb3ZlKG9yaWdpbiksIFt0aGlzXShQZXJtaXNzaW9uSW5mbyBwZXJtaXNz
aW9uSW5mbykgeworICAgICAgICBjYXB0dXJlRGV2aWNlc0NoYW5nZWQocGVybWlzc2lvbkluZm8p
OworICAgIH0pOwogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFu
Z2VkKFBlcm1pc3Npb25JbmZvIHBlcm1pc3Npb25JbmZvKQoreworICAgIHN3aXRjaCAocGVybWlz
c2lvbkluZm8pIHsKKyAgICBjYXNlIFBlcm1pc3Npb25JbmZvOjpFcnJvcjoKKyAgICAgICAgcmV0
dXJuOworICAgIGNhc2UgUGVybWlzc2lvbkluZm86OlVua25vd246CisgICAgICAgIGlmIChtX2dy
YW50ZWRSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUGVybWlzc2lvbkluZm86OkdyYW50ZWQ6CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhcHR1
cmVEZXZpY2VzQ2hhbmdlZCgpLCBtX3BhZ2UucGFnZUlEKCkpOworfQorI2VuZGlmCisKIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNsZWFyQ2FjaGVkU3RhdGUo
KQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CkBAIC0yMjYsOCArMjMyLDkgQEAg
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZmluaXNoR3JhbnRp
bmdSZXF1ZXN0KFVzZXJNZWRpYVBlcm0KICAgICBpZiAocmVxdWVzdC5yZXF1ZXN0VHlwZSgpID09
IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6VXNlck1lZGlhKQogICAgICAgICBtX2dyYW50ZWRS
ZXF1ZXN0cy5hcHBlbmQobWFrZVJlZihyZXF1ZXN0KSk7CiAKKyAgICAvLyBGSVhNRTogbV9oYXNG
aWx0ZXJlZERldmljZUxpc3Qgd2lsbCB0cmlnZ2VyIG9uZGV2aWNlY2hhbmdlIGV2ZW50cyBmb3Ig
dmFyaW91cyBkb2N1bWVudHMgZnJvbSBkaWZmZXJlbnQgb3JpZ2lucy4KICAgICBpZiAobV9oYXNG
aWx0ZXJlZERldmljZUxpc3QpCi0gICAgICAgIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOworICAg
ICAgICBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoUGVybWlzc2lvbkluZm86OkdyYW50ZWQpOwogICAg
IG1faGFzRmlsdGVyZWREZXZpY2VMaXN0ID0gZmFsc2U7CiAKICAgICArK21faGFzUGVuZGluZ0Nh
cHR1cmU7CkBAIC02MDQsMTIgKzYxMSwxNSBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldgogfQog
I2VuZGlmCiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVu
dW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK3Zv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlh
RGV2aWNlc0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmln
aW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxD
YXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB1
c2VyTWVkaWFJRCk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAotICAgIGF1dG8g
Y29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgdXNlck1lZGlhSUQsIGZyYW1lSUQsIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luID0gdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uY29weVJlZigpLCB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5jb3B5UmVmKCldKFBl
cm1pc3Npb25JbmZvIHBlcm1pc3Npb25JbmZvKSBtdXRhYmxlIHsKKyAgICBhdXRvIGNhbGxiYWNr
ID0gW3RoaXMsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luID0gdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4uY29weVJlZigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0gdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbi5jb3B5UmVmKCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKFBlcm1pc3Npb25JbmZvIHBlcm1pc3Npb25JbmZvKSBtdXRhYmxlIHsK
KyAgICAgICAgYXV0byBjYWxsQ29tcGxldGlvbkhhbmRsZXIgPSBtYWtlU2NvcGVFeGl0KFsmY29t
cGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgeyB9
KTsKKyAgICAgICAgfSk7CiAKICAgICAgICAgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNz
OwogICAgICAgICBzd2l0Y2ggKHBlcm1pc3Npb25JbmZvKSB7CkBAIC02MzEsNyArNjQxLDEzIEBA
IHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1l
ZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2CiAKICAgICAgICAgYXV0byYgcmVxdWVzdE9yaWdpbiA9
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpOwogICAgICAgICBhdXRvJiB0b3BPcmlnaW4g
PSB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpOwotICAgICAgICBtX3BhZ2Uud2Vic2l0ZURh
dGFTdG9yZSgpLmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2aWNlSWRIYXNoU2FsdEZvck9y
aWdpbihyZXF1ZXN0T3JpZ2luLCB0b3BPcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKSwgcmVxdWVzdElELCBmcmFtZUlELCB1c2VyTWVkaWFJRCwgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4gPSBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiA9IFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIG9yaWdpbkhh
c1BlcnNpc3RlbnRBY2Nlc3NdIChTdHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0KSB7CisKKyAgICAg
ICAgY2FsbENvbXBsZXRpb25IYW5kbGVyLnJlbGVhc2UoKTsKKyAgICAgICAgbV9wYWdlLndlYnNp
dGVEYXRhU3RvcmUoKS5kZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpLmRldmljZUlkSGFzaFNhbHRG
b3JPcmlnaW4ocmVxdWVzdE9yaWdpbiwgdG9wT3JpZ2luLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIHJlcXVlc3RJRCwgZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4gPSBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiA9IFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIG9yaWdpbkhhc1BlcnNpc3Rl
bnRBY2Nlc3MsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBj
YWxsQ29tcGxldGlvbkhhbmRsZXIgPSBtYWtlU2NvcGVFeGl0KFsmY29tcGxldGlvbkhhbmRsZXJd
IHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0sIHsgfSk7CisgICAgICAg
ICAgICB9KTsKKwogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhbV9wZW5kaW5nRGV2aWNl
UmVxdWVzdHMucmVtb3ZlKHJlcXVlc3RJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC02NDIsMTYgKzY1OCwxNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NgogCiAgICAgICAgICAg
ICBib29sIHJldmVhbElkc0FuZExhYmVscyA9IG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MgfHwg
d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbi5nZXQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSk7CiAKLSAgICAgICAgICAg
IG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ29tcGxldGVNZWRp
YURldmljZUVudW1lcmF0aW9uIHsgdXNlck1lZGlhSUQsIGNvbXB1dGVGaWx0ZXJlZERldmljZUxp
c3QocmV2ZWFsSWRzQW5kTGFiZWxzLCBkZXZpY2VJREhhc2hTYWx0KSwgZGV2aWNlSURIYXNoU2Fs
dCwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyB9LCBtX3BhZ2UucGFnZUlEKCkpOworICAgICAg
ICAgICAgY2FsbENvbXBsZXRpb25IYW5kbGVyLnJlbGVhc2UoKTsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QocmV2ZWFsSWRzQW5kTGFiZWxz
LCBkZXZpY2VJREhhc2hTYWx0KSwgZGV2aWNlSURIYXNoU2FsdCk7CiAgICAgICAgIH0pOwogICAg
IH07CiAKLSAgICBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyhmcmFtZUlELCBXVEZNb3ZlKHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGdldFVzZXJNZWRpYVBlcm1pc3Npb25J
bmZvKGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZWxzZQotICAgIFVO
VVNFRF9QQVJBTSh1c2VyTWVkaWFJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAg
IFVOVVNFRF9QQVJBTSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbik7CiAgICAgVU5VU0VEX1BBUkFN
KHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgeyB9
KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA5N2Fh
MTZiOTJjZGRkNTE0MTQ0NGYwYTViZWI1OGFlNjhjZTM2YWJlLi4yYjM0NTM1ODc0YzQ5ZWY4ODkz
ZTI3MTRkN2VhM2ExZTE2YWFlNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgK
QEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKICAgICB2b2lkIGRlbnlSZXF1ZXN0KFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0
cmFpbnQgPSB7IH0pOwogCi0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICB2b2lkIGVu
dW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mLCBj
b25zdCBTdHJpbmcmKT4mJik7CiAKICAgICB2b2lkIHN0b3BDYXB0dXJlKCk7CiAgICAgdm9pZCBz
Y2hlZHVsZU5leHRSZWplY3Rpb24oKTsKQEAgLTEwNSw2ICsxMDUsNyBAQCBwcml2YXRlOgogCiAg
ICAgdXNpbmcgUGVybWlzc2lvbkluZm8gPSBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6
UGVybWlzc2lvbkluZm87CiAgICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8p
PiYmKTsKKyAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZChQZXJtaXNzaW9uSW5mbyk7CiAK
ICAgICBSZXF1ZXN0QWN0aW9uIGdldFJlcXVlc3RBY3Rpb24oY29uc3QgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCA0ODViMzFkNGFlZmYyYTIwNGFlMGNhNjZhZWYyN2QzNzI4NTM3ZDdlLi5jZDdk
ZjFmNTlkNTgyMmIxZDdiNWUzNWQ4YTU0NTBjMzExN2RjZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0NTMsMTMgKzc0NTMsMTMgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNl
ck1lZGlhSUQsIEZyYW0KICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRl
TWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3Qg
U3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAgIHVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1l
KHVzZXJNZWRpYUlELCBmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJp
dHlPcmlnaW4oKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7
CisgICAgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuZW51bWVyYXRlTWVkaWFE
ZXZpY2VzRm9yRnJhbWUoZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3Vy
aXR5T3JpZ2luKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHVz
ZXJNZWRpYUlEKTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGU2NTUwZjJmOWRiYmRiYTcyYjM3ZjY0OWM4OWJhZDkw
M2Q1OTI1MGQuLmU1Zjk1MDNlN2Q0YjY2NTdhNmE1MGQ3OWYxN2E4N2RhMzhmMDE5NGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNzE0LDcgKzE3MTQsNyBAQCBw
cml2YXRlOgogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiB1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKICNlbmRpZgogICAgIHZvaWQgcmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgV2ViQ29yZTo6TWVk
aWFTdHJlYW1SZXF1ZXN0JiYpOwotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJh
bWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bkRhdGEpOworICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJik7CiAg
ICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpOwogCiAgICAgdm9pZCBydW5N
b2RhbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDE1ODkxOWUzMTYwMTFkNjk5NDBkZDliMWUyZjdjY2MzMWVhNGU0M2IuLjc5
ZjYyZGZkOWMyY2M1ZWIyYTYxYzE5NzM4NTQxYjlhOWEzMzU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4MiwxMSArMjgy
LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICAjIEdlb2xvY2F0aW9uIG1l
c3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90
IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcg
b3JpZ2luSWRlbnRpZmllcikKLSAgICAKKwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
IyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCiAgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1S
ZXF1ZXN0IHJlcXVlc3QpCi0gICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0
X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50
T3JpZ2luSWRlbnRpZmllcikKKyAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpIC0+
IChWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZGV2aWNlcywgU3RyaW5nIG1lZGlhRGV2
aWNlSWRlbnRpZmllckhhc2hTYWx0KSBBc3luYwogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVE
ZXZpY2VzKCkKICNlbmRpZgogCkBAIC0yOTgsNyArMjk4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBEaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKQogCiAgICAgIyBTcGVsbGluZyBhbmQgZ3JhbW1hciBtZXNzYWdlcwotI2lmIFVTRShVTklG
SUVEX1RFWFRfQ0hFQ0tJTkcpICAKKyNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQogICAg
IENoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZyB0ZXh0LCBPcHRpb25TZXQ8V2ViQ29yZTo6VGV4
dENoZWNraW5nVHlwZT4gY2hlY2tpbmdUeXBlcywgaW50MzJfdCBpbnNlcnRpb25Qb2ludCkgLT4g
KFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdHMpIFN5bmNocm9ub3Vz
CiAjZW5kaWYKICAgICBDaGVja1NwZWxsaW5nT2ZTdHJpbmcoU3RyaW5nIHRleHQpIC0+IChpbnQz
Ml90IG1pc3NwZWxsaW5nTG9jYXRpb24sIGludDMyX3QgbWlzc3BlbGxpbmdMZW5ndGgpIFN5bmNo
cm9ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
CmluZGV4IDg2ODI4ODJhMGI1OGM2OWIyNmJmNWIyNjFiYWY0ZjExM2Q1ODQyMjYuLjhiM2M2ZGU2
ZmY0ZWUzNzFlZmI0YTM4ZWVmMzU0OTA2NWQzZjNlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0xNTksNDUgKzE1OSwxNSBAQCB2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6dXNlck1lZGlhQWNjZXNzV2FzRGVu
aWVkKHVpbnQ2NF90IHJlcXVlcwogICAgIHJlcXVlc3QtPmRlbnkocmVhc29uLCBXVEZNb3ZlKGlu
dmFsaWRDb25zdHJhaW50KSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjplbnVtZXJhdGVNZWRpYURldmljZXMoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1
ZXN0JiByZXF1ZXN0KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmVu
dW1lcmF0ZU1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVu
dD4ocmVxdWVzdC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGF1dG8qIGZyYW1lID0g
ZG9jdW1lbnQgPyBkb2N1bWVudC0+ZnJhbWUoKSA6IG51bGxwdHI7Ci0KKyAgICBhdXRvKiBmcmFt
ZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICByZXF1ZXN0
LnNldERldmljZUluZm8oVmVjdG9yPENhcHR1cmVEZXZpY2U+KCksIGVtcHR5U3RyaW5nKCksIGZh
bHNlKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBlbXB0eVN0cmluZygpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRl
UmVxdWVzdElEKCk7Ci0gICAgbV9pZFRvTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0TWFw
LmFkZChyZXF1ZXN0SUQsICZyZXF1ZXN0KTsKLSAgICBtX21lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdFRvSURNYXAuYWRkKCZyZXF1ZXN0LCByZXF1ZXN0SUQpOwotCi0gICAgV2ViRnJhbWUq
IHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKLSAgICBBU1NFUlQo
d2ViRnJhbWUpOwotCi0gICAgU2VjdXJpdHlPcmlnaW4qIHRvcExldmVsRG9jdW1lbnRPcmlnaW4g
PSByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKTsKLSAgICBBU1NFUlQodG9wTGV2ZWxE
b2N1bWVudE9yaWdpbik7Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJhbWVJ
RCgpLCByZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKCktPmRhdGEoKSwgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbi0+ZGF0YSgpKSk7Ci19Ci0KLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvbihXZWJDb3JlOjpNZWRp
YURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgdWludDY0X3QgcmVx
dWVzdElEID0gbV9tZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3RUb0lETWFwLnRha2UoJnJl
cXVlc3QpOwotICAgIGlmICghcmVxdWVzdElEKQotICAgICAgICByZXR1cm47Ci0gICAgcmVxdWVz
dC5zZXREZXZpY2VJbmZvKFZlY3RvcjxDYXB0dXJlRGV2aWNlPigpLCBlbXB0eVN0cmluZygpLCBm
YWxzZSk7Ci0gICAgbV9pZFRvTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0TWFwLnJlbW92
ZShyZXF1ZXN0SUQpOwotfQotCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjo6ZGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VMaXN0LCBTdHJpbmcmJiBtZWRpYURl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBoYXNQZXJzaXN0ZW50QWNjZXNzKQotewotICAg
IFJlZlB0cjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+IHJlcXVlc3QgPSBtX2lkVG9N
ZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3RNYXAudGFrZShyZXF1ZXN0SUQpOwotICAgIGlm
ICghcmVxdWVzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fbWVkaWFEZXZpY2VzRW51bWVyYXRp
b25SZXF1ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7Ci0gICAgCi0gICAgcmVxdWVzdC0+c2V0
RGV2aWNlSW5mbyhkZXZpY2VMaXN0LCBXVEZNb3ZlKG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hT
YWx0KSwgaGFzUGVyc2lzdGVudEFjY2Vzcyk7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSB7
IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSktPmZyYW1lSUQoKSwgZG9jdW1lbnQuc2Vj
dXJpdHlPcmlnaW4oKS5kYXRhKCksIGRvY3VtZW50LnRvcE9yaWdpbigpLmRhdGEoKSB9LCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hh
bmdlT2JzZXJ2ZXJUb2tlbiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmFkZERl
dmljZUNoYW5nZU9ic2VydmVyKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCmluZGV4IGIwYmQ1MzRj
ZTE5ZDczODYxZDgxNzZhODIwNWNkY2U2MTk1ZmQwNjguLjFkODQ3M2E4YjEzODMwNzgyZTY4YzY0
OTE5MGRmZWM4NTUwZmViMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmgKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9u
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNhblN0YXJ0TGlzdGVuZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhRGV2
aWNlc0VudW1lcmF0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xp
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KQEAgLTQ2LDkgKzQ1LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXNlck1l
ZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIGF1
ZGlvRGV2aWNlLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIFN0cmluZyYm
IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCwgV2ViQ29yZTo6VXNl
ck1lZGlhUmVxdWVzdDo6TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIFN0cmluZyYmKTsKIAotICAg
IHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKFdlYkNvcmU6Ok1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb24oV2Vi
Q29yZTo6TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBkaWRDb21w
bGV0ZU1lZGlhRGV2aWNlRW51bWVyYXRpb24odWludDY0X3QsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiYgZGV2aWNlTGlzdCwgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhh
c2hTYWx0LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpOworICAgIHZvaWQgZW51bWVy
YXRlTWVkaWFEZXZpY2VzKFdlYkNvcmU6OkRvY3VtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4m
Jik7CiAKICAgICBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVy
VG9rZW4gYWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgcmVtb3ZlRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoV2ViQ29yZTo6VXNlck1lZGlhQ2xp
ZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuKTsKQEAgLTY5LDkgKzY2LDYgQEAgcHJpdmF0
ZToKICAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PiwgdWludDY0
X3Q+IG1fdXNlck1lZGlhUmVxdWVzdFRvSURNYXA7CiAgICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29y
ZTo6RG9jdW1lbnQ+LCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q+Pj4g
bV9ibG9ja2VkVXNlck1lZGlhUmVxdWVzdHM7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8V2ViQ29yZTo6TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Pj4gbV9pZFRvTWVkaWFE
ZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0TWFwOwotICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6
Ok1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4sIHVpbnQ2NF90PiBtX21lZGlhRGV2aWNl
c0VudW1lcmF0aW9uUmVxdWVzdFRvSURNYXA7Ci0KICAgICBIYXNoTWFwPFdlYkNvcmU6OlVzZXJN
ZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+PiBtX2RldmljZUNoYW5nZU9ic2VydmVyTWFwOwogICAgIGJvb2wgbV9tb25pdG9yaW5nRGV2
aWNlQ2hhbmdlIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCmluZGV4
IDhmNjY3ZmNiM2RmZDEyNzk2OThkYWNkZDViODE3YzZkMDg4NjAxMGYuLjM1YWU3ZDI5ZTU4NTRm
YjI2NzM4ZjE1ZTJhZTExMGQ5MDY0YjE5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3Bw
CkBAIC01MCwxNCArNTAsOSBAQCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsVXNlck1l
ZGlhQWNjZXNzUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0JiByZXF1ZXN0KQogICAgIG1fcGFnZS51
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxVc2VyTWVkaWFSZXF1ZXN0
KHJlcXVlc3QpOwogfQogCi12b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6ZW51bWVyYXRlTWVkaWFE
ZXZpY2VzKE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjplbnVtZXJhdGVNZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNv
bnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIG1fcGFnZS51c2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5lbnVtZXJhdGVNZWRpYURldmljZXMocmVxdWVz
dCk7Ci19Ci0KLXZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3QoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxN
ZWRpYURldmljZXNFbnVtZXJhdGlvbihyZXF1ZXN0KTsKKyAgICBtX3BhZ2UudXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuZW51bWVyYXRlTWVkaWFEZXZpY2VzKGRvY3VtZW50LCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIFdlYlVzZXJNZWRpYUNsaWVudDo6RGV2
aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBXZWJVc2VyTWVkaWFDbGllbnQ6OmFkZERldmljZUNoYW5n
ZU9ic2VydmVyKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRp
YUNsaWVudC5oCmluZGV4IDY5NTIxNzRiOTEyYzk3MWUzNTc4NmUyN2M0ODIyNWQyZmNhMTQwMmQu
Ljc2ZDQxZjY4Mjc4OTNhOTlkYmViN2I3NTExZDUyYmMxMjM3ZmYwMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50LmgKQEAgLTQwLDggKzQwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RV
c2VyTWVkaWFBY2Nlc3MoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCYpIG92ZXJyaWRlOwogICAg
IHZvaWQgY2FuY2VsVXNlck1lZGlhQWNjZXNzUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1
ZXN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlcyhXZWJDb3Jl
OjpNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QmKSBmaW5hbDsKLSAgICB2b2lkIGNhbmNl
bE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChXZWJDb3JlOjpNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3QmKSBmaW5hbDsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlcyhX
ZWJDb3JlOjpEb2N1bWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYpIGZpbmFsOwogCiAgICAg
RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBhZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVEZXZpY2VDaGFuZ2VPYnNl
cnZlcihEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNmU1ZDA1MWU0ZDgyMDA5ODYyOGFh
NWEwYmNiMzFjN2Y4NmU4MGE5ZC4uOWJlNTJmZjdkZGM3Mzc5MTdmYjgxNTlkMmMwYjUwYzEyNmE1
MDQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTQxOTgsMTEgKzQxOTgsNiBAQCB2b2lkIFdlYlBhZ2U6OnVzZXJNZWRpYUFjY2Vzc1dhc0Rl
bmllZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdAogICAgIG1fdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT51c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQo
dXNlck1lZGlhSUQsIHN0YXRpY19jYXN0PFVzZXJNZWRpYVJlcXVlc3Q6Ok1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uPihyZWFzb24pLCBXVEZNb3ZlKGludmFsaWRDb25zdHJhaW50KSk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6ZGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRldmljZXMsIFN0cmluZyYm
IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNz
KQotewotICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5kaWRDb21wbGV0
ZU1lZGlhRGV2aWNlRW51bWVyYXRpb24odXNlck1lZGlhSUQsIGRldmljZXMsIFdURk1vdmUoZGV2
aWNlSWRlbnRpZmllckhhc2hTYWx0KSwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2Vzcyk7Ci19Ci0K
IHZvaWQgV2ViUGFnZTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKIHsKICAgICBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci0+Y2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZTFlNWUzOTAwMjgy
MjRiNjNjYWJlNGQyNmYxYjFmMjVmYmJlOGIxZS4uYzE3MjIyMDMyZmJhZjhhYWU5YzRhNGI1M2Zk
YTUwZTA5ZWQ4MThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMTQ4Miw3ICsxNDgyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVzZXJNZWRpYUFj
Y2Vzc1dhc0dyYW50ZWQodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmJiBhdWRpb0RldmljZVVJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNl
VUlELCBTdHJpbmcmJiBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdHJpbmcmJiBpbnZhbGlkQ29uc3Ry
YWludCk7CiAKLSAgICB2b2lkIGRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVtZXJhdGlvbih1aW50
NjRfdCB1c2VyTWVkaWFJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBk
ZXZpY2VzLCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJvb2wgb3JpZ2luSGFz
UGVyc2lzdGVudEFjY2Vzcyk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggYmE3ZjY0YmZkY2JjY2Y4YWIyYzMzZjZjMjc4YjQ2ZDE1MTg4OGYwMS4uYjg0M2IyODEz
ZjIwMWUxN2E2MzY1MDVjNDFjZTc3OWU2YjVlNDNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zNTksNyArMzU5
LDYgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICAjIE1lZGlhU3RlYW0KICAgICBVc2Vy
TWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlIGF1ZGlvRGV2aWNlLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHZpZGVvRGV2aWNl
LCBTdHJpbmcgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpIC0+ICgpIEFzeW5jCiAgICAg
VXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBy
ZWFzb24sIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludCkKLSAgICBEaWRDb21wbGV0ZU1lZGlhRGV2
aWNlRW51bWVyYXRpb24odWludDY0X3QgdXNlck1lZGlhSUQsIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiBkZXZpY2VzLCBTdHJpbmcgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQs
IGJvb2wgaGFzUGVyc2lzdGVudEFjY2VzcykKICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAzMTI3MjBkMTNjM2FkMWRjN2M0M2RjYjhhZTQ0MzQ1MWMwMGIwODEw
Li5jZWNkZTVlNzkxOWU0MTJjYmVhNTJkMDBkMmE4NmJhZjJlZWNiYTg3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTktMDgtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIGVudW1lcmF0ZURldmljZXMgc2hvdWxkIHJldHVybiB0aGUgc2FtZSBKUyBvYmpl
Y3RzIGlmIGNhbGxlZCB0d2ljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAwNzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi5odG1s
OgorCiAyMDE5LTA4LTE1ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogVXBkYXRlIEVzcHJpbWEgdG8gc3VwcG9ydCBtb2Rlcm4g
SmF2YVNjcmlwdCBsYW5ndWFnZSBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLmh0bWwKaW5kZXggZTc4MGYxMTU2
ZjY2NzBiYmVlZDQwNTZmZmJjY2JlYTRlODRjM2NmNC4uZGVmZTQxOGUwZDgxOGZhNmM5ZDYxNzRh
MWQwZTVmYTFkODczZGIxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9kZXZpY2UtY2hhbmdlLWV2ZW50LTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi5odG1sCkBAIC0yNywzMyArMjcsMzkgQEAKICAg
ICAgICAgICAgIC50aGVuKHMgPT4gc3RyZWFtID0gcykKIAogICAgICAgICBsZXQgZGV2aWNlcyA9
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOworICAgICAg
ICBsZXQgZGV2aWNlczIgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURl
dmljZXMoKTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSghIWRldmljZXMubGVuZ3RoLCAiY2hlY2sg
dGhlcmUgYXJlIHNvbWUgZGV2aWNlcyIpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRl
dmljZXMsIGRldmljZXMyKTsKIAogICAgICAgICB0ZXN0UnVubmVyLmNsZWFyTW9ja01lZGlhRGV2
aWNlcygpOwotCisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMub25kZXZpY2VjaGFuZ2UgPSBy
ZXNvbHZlOworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAg
cmVqZWN0KCJldmVudCAxIHRvb2sgdG9vIGxvbmciKTsKKyAgICAgICAgICAgIH0sIDUwMDApOwor
ICAgICAgICB9KTsKICAgICAgICAgZGV2aWNlcyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZW51bWVyYXRlRGV2aWNlcygpOwogICAgICAgICBhc3NlcnRfZmFsc2UoISFkZXZpY2VzLmxl
bmd0aCwgImNoZWNrIHRoZXJlIGFyZSBubyBtb3JlIGRldmljZXMiKTsKIAorICAgICAgICB0ZXN0
UnVubmVyLmFkZE1vY2tDYW1lcmFEZXZpY2UoImlkMSIsICJteSBjYW1lcmEiKTsKICAgICAgICAg
YXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICAgICAgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5vbmRldmljZWNoYW5nZSA9IHJlc29sdmU7CiAgICAgICAgICAg
ICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiZXZlbnQg
MSB0b29rIHRvbyBsb25nIik7Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAg
ICAgICAgIHJlamVjdCgiZXZlbnQgMiB0b29rIHRvbyBsb25nIik7CiAgICAgICAgICAgICB9LCA1
MDAwKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkTW9ja0NhbWVyYURldmljZSgiaWQxIiwg
Im15IGNhbWVyYSIpOwogICAgICAgICB9KTsKKwogICAgICAgICBkZXZpY2VzID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CiAgICAgICAgIGFzc2VydF9l
cXVhbHMoZGV2aWNlc1swXS5raW5kLCAidmlkZW9pbnB1dCIpOwogICAgICAgICBhc3NlcnRfZXF1
YWxzKGRldmljZXNbMF0ubGFiZWwsICJteSBjYW1lcmEiKTsKIAorICAgICAgICB0ZXN0UnVubmVy
LmFkZE1vY2tNaWNyb3Bob25lRGV2aWNlKCJpZDIiLCAibXkgbWljIik7CiAgICAgICAgIGF3YWl0
IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgICAgICAgIG5hdmlnYXRv
ci5tZWRpYURldmljZXMub25kZXZpY2VjaGFuZ2UgPSByZXNvbHZlOwogICAgICAgICAgICAgc2V0
VGltZW91dCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coImV2ZW50IDIgdG9v
ayB0b28gbG9uZyIpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAg
ICByZWplY3QoImV2ZW50IDMgdG9vayB0b28gbG9uZyIpOwogICAgICAgICAgICAgfSwgNTAwMCk7
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZE1vY2tNaWNyb3Bob25lRGV2aWNlKCJpZDIiLCAi
bXkgbWljIik7CiAgICAgICAgIH0pOwogICAgICAgICBkZXZpY2VzID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZGV2aWNlc1swXS5raW5kLCAiYXVkaW9pbnB1dCIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>