<?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>149322</bug_id>
          
          <creation_ts>2015-09-17 17:59:42 -0700</creation_ts>
          <short_desc>[MediaStream] Finish implementing MediaDevices.enumerateDevices</short_desc>
          <delta_ts>2015-09-18 14:06:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1126980</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-09-17 17:59:42 -0700</bug_when>
    <thetext>Make it work, add a basic test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126982</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-09-17 18:06:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/22750866&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127198</commentid>
    <comment_count>2</comment_count>
      <attachid>261513</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-09-18 13:07:26 -0700</bug_when>
    <thetext>Created attachment 261513
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127208</commentid>
    <comment_count>3</comment_count>
      <attachid>261513</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-09-18 13:35:34 -0700</bug_when>
    <thetext>Comment on attachment 261513
Proposed patch.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127223</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-09-18 14:06:30 -0700</bug_when>
    <thetext>Committed r189982: https://trac.webkit.org/r189982</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261513</attachid>
            <date>2015-09-18 13:07:26 -0700</date>
            <delta_ts>2015-09-18 14:06:40 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>media_devices_patch_6.txt</filename>
            <type>text/plain</type>
            <size>47838</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE1LTA5LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
RmluaXNoIGltcGxlbWVudGluZyBNZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzIyCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8yMjc1MDg2Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1l
bnVtZXJhdGVEZXZpY2VzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgTWVk
aWFEZXZpY2VzUmVxdWVzdC5jcHAKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VJbmZvLmg6IEFkZCBNZWRpYURldmljZUluZm9WZWN0b3IgdHlwZWRlZi4KKworICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRGV2aWNlczo6ZW51bWVyYXRlRGV2aWNlcyk6IFVzZSBNZWRpYURldmljZXNS
ZXF1ZXN0LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmg6IEVu
dW1lcmF0ZURldmljZVByb21pc2UgLT4gRW51bWVyYXRlRGV2aWNlc1Byb21pc2UuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsOgorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYURldmljZXNSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFEZXZpY2VzUmVxdWVzdDo6TWVkaWFEZXZpY2VzUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYURldmljZXNSZXF1ZXN0Ojp+TWVkaWFEZXZpY2VzUmVxdWVzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYURldmljZXNSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYURldmljZXNSZXF1ZXN0Ojpjb250ZXh0RGVzdHJveWVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlc1JlcXVlc3Q6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRGV2aWNlc1JlcXVlc3Q6OmRpZENvbXBsZXRlUmVxdWVzdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYURldmljZXNSZXF1ZXN0OjpyZXF1ZXN0T3JpZ2luKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuaDogQWRkZWQuCisKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6
Ok1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6OmRpZENvbXBsZXRlUmVxdWVzdCk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaDoK
KworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjplbnVtZXJhdGVEZXZpY2VzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoK
KworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIE1lZGlh
RGV2aWNlc1JlcXVlc3QuY3BwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXNQcml2YXRlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXNQcml2YXRlLmg6IFJlbW92ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ6
On5NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQpOgorCisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnZlcmlmeUNvbnN0cmFpbnRz
Rm9yTWVkaWFUeXBlKTogT3B0aW9uYWxseSB0YWtlIGFuCisgICAgICAgICAgQVZDYXB0dXJlU2Vz
c2lvbiBpbnN0ZWFkIG9mIGFsd2F5cyBhbGxvY2F0aW5nIG9uZS4KKyAgICAgICAgKFdlYkNvcmU6
OkFWQ2FwdHVyZURldmljZU1hbmFnZXI6OmJlc3RTb3VyY2VzRm9yVHlwZUFuZENvbnN0cmFpbnRz
KTogUGFzcyB0aGUgQVZDYXB0dXJlU2Vzc2lvbgorICAgICAgICAgIHRvIHZlcmlmeUNvbnN0cmFp
bnRzRm9yTWVkaWFUeXBlLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMpOgorCisg
ICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0TWVk
aWFTdHJlYW1UcmFja1NvdXJjZXMpOgorCiAyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE4MjQ0OSwgTWF2ZXJpY2tzIE9O
TFkpOiBQYWdlcyByZS1vcGVuIGVtcHR5IGFmdGVyIHN3aXBpbmcgYmFjayBhbmQgc2Nyb2xsaW5n
IG9uIHRoZW0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxODk5NjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOTEyLDYgKzkx
Miw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
Q29uc3RyYWludHNJbXBsLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJ
bmZvLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU291cmNlU3RhdGVzLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNhcGFi
aWxpdGllcy5jcHAKQEAgLTIyNTYsNyArMjI1Nyw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcAogCi0gICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUHJpdmF0ZS5j
cHAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCiAgICAg
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCiAgICAgcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUlu
Zm8uaAkocmV2aXNpb24gMTg5OTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZUluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYURldmljZUluZm8gOiBwdWJsaWMgUmVmQ291
bnRlZDxNZWRpYURldmljZUluZm8+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFE
ZXZpY2VJbmZvPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwotICAgIAotICAg
IAorCiAgICAgdmlydHVhbCB+TWVkaWFEZXZpY2VJbmZvKCkgeyB9CiAgICAgCiAgICAgY29uc3Qg
U3RyaW5nJiBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0KQEAgLTYwLDYgKzU5LDgg
QEAgcHJpdmF0ZToKICAgICBjb25zdCBTdHJpbmcgbV9raW5kOwogfTsKIAordHlwZWRlZiBWZWN0
b3I8UmVmUHRyPE1lZGlhRGV2aWNlSW5mbz4+IE1lZGlhRGV2aWNlSW5mb1ZlY3RvcjsKKwogfQog
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAJKHJldmlzaW9uIDE4OTk2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNiArMzUsNyBAQAogCiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzUmVxdWVzdC5oIgogI2luY2x1ZGUgIk1lZGlh
U3RyZWFtLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlVz
ZXJNZWRpYVJlcXVlc3QuaCIKQEAgLTY1LDkgKzY2LDExIEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpn
ZXRVc2VyTWVkaWEoY29uc3QgRGkKICAgICBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydChkb2N1bWVu
dCgpLCBvcHRpb25zLCBXVEY6Om1vdmUocHJvbWlzZSksIGVjKTsKIH0KIAotdm9pZCBNZWRpYURl
dmljZXM6OmVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2aWNlUHJvbWlzZSYmIHByb21pc2Us
IEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAordm9pZCBNZWRpYURldmljZXM6OmVudW1lcmF0ZURl
dmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJiBwcm9taXNlLCBFeGNlcHRpb25Db2RlJiBl
YykgY29uc3QKIHsKLSAgICBVc2VyTWVkaWFSZXF1ZXN0OjplbnVtZXJhdGVEZXZpY2VzKGRvY3Vt
ZW50KCksIFdURjo6bW92ZShwcm9taXNlKSwgZWMpOworICAgIFJlZlB0cjxNZWRpYURldmljZXNS
ZXF1ZXN0PiByZXF1ZXN0ID0gTWVkaWFEZXZpY2VzUmVxdWVzdDo6Y3JlYXRlKGRvY3VtZW50KCks
IFdURjo6bW92ZShwcm9taXNlKSwgZWMpOworICAgIGlmIChyZXF1ZXN0KQorICAgICAgICByZXF1
ZXN0LT5zdGFydCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgJKHJldmlz
aW9uIDE4OTk2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgIkNv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCisj
aW5jbHVkZSAiTWVkaWFEZXZpY2VJbmZvLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgi
CiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAt
NDQsNyArNDUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpY3Rpb25hcnk7CiBj
bGFzcyBEb2N1bWVudDsKLWNsYXNzIE1lZGlhRGV2aWNlSW5mbzsKIGNsYXNzIE1lZGlhU3RyZWFt
OwogY2xhc3MgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I7CiAKQEAgLTU4LDkgKzU4LDEwIEBAIHB1
YmxpYzoKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIAogICAgIHR5cGVkZWYgRE9N
UHJvbWlzZVdpdGhDYWxsYmFjazxSZWZQdHI8TWVkaWFTdHJlYW0+LCBSZWZQdHI8TmF2aWdhdG9y
VXNlck1lZGlhRXJyb3I+PiBQcm9taXNlOwotICAgIHR5cGVkZWYgRE9NUHJvbWlzZVdpdGhDYWxs
YmFjazxWZWN0b3I8UmVmUHRyPE1lZGlhRGV2aWNlSW5mbz4+LCBSZWZQdHI8TmF2aWdhdG9yVXNl
ck1lZGlhRXJyb3I+PiBFbnVtZXJhdGVEZXZpY2VQcm9taXNlOworICAgIHR5cGVkZWYgRE9NUHJv
bWlzZVdpdGhDYWxsYmFjazxNZWRpYURldmljZUluZm9WZWN0b3IsIEV4Y2VwdGlvbkNvZGU+IEVu
dW1lcmF0ZURldmljZXNQcm9taXNlOworCiAgICAgdm9pZCBnZXRVc2VyTWVkaWEoY29uc3QgRGlj
dGlvbmFyeSYsIFByb21pc2UmJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwotICAgIHZvaWQgZW51
bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VQcm9taXNlJiYsIEV4Y2VwdGlvbkNvZGUmKSBj
b25zdDsKKyAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2Um
JiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlh
RGV2aWNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsCShyZXZpc2lvbiAx
ODk5NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDQgKzMzLDUgQEAKICAgICBDb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KIF0gaW50ZXJmYWNlIE1lZGlhRGV2aWNlcyB7CiAgICAgW1JhaXNlc0V4Y2Vw
dGlvbl0gUHJvbWlzZSBnZXRVc2VyTWVkaWEoRGljdGlvbmFyeSBvcHRpb25zKTsKKyAgICBbUmFp
c2VzRXhjZXB0aW9uXSBQcm9taXNlIGVudW1lcmF0ZURldmljZXMoKTsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzUmVxdWVzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzUmVxdWVzdC5o
IgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAi
SlNNZWRpYURldmljZUluZm8uaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxNZWRpYURldmljZXNSZXF1ZXN0
PiBNZWRpYURldmljZXNSZXF1ZXN0OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYURl
dmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSwgRXhjZXB0aW9uQ29kZSYp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFEZXZpY2VzUmVxdWVzdChkb2N1bWVu
dCwgV1RGOjptb3ZlKHByb21pc2UpKSk7Cit9CisKK01lZGlhRGV2aWNlc1JlcXVlc3Q6Ok1lZGlh
RGV2aWNlc1JlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTWVkaWFEZXZp
Y2VzOjpFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmIHByb21pc2UpCisgICAgOiBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcihjb250ZXh0KQorICAgICwgbV9wcm9taXNlKFdURjo6bW92ZShwcm9t
aXNlKSkKK3sKK30KKworTWVkaWFEZXZpY2VzUmVxdWVzdDo6fk1lZGlhRGV2aWNlc1JlcXVlc3Qo
KQoreworfQorCitTZWN1cml0eU9yaWdpbiogTWVkaWFEZXZpY2VzUmVxdWVzdDo6c2VjdXJpdHlP
cmlnaW4oKSBjb25zdAoreworICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAg
ICAgIHJldHVybiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCk7CisK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBNZWRpYURldmljZXNSZXF1ZXN0Ojpjb250
ZXh0RGVzdHJveWVkKCkKK3sKKyAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4
dERlc3Ryb3llZCgpOworICAgIG1fcHJvdGVjdG9yID0gbnVsbHB0cjsKK30KKwordm9pZCBNZWRp
YURldmljZXNSZXF1ZXN0OjpzdGFydCgpCit7CisgICAgbV9wcm90ZWN0b3IgPSB0aGlzOworICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzKHRoaXMpOworfQorCit2b2lkIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OmRpZENvbXBs
ZXRlUmVxdWVzdChjb25zdCBUcmFja1NvdXJjZUluZm9WZWN0b3ImIGNhcHR1cmVkRGV2aWNlcykK
K3sKKyAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgVmVjdG9yPFJlZlB0cjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VJbmZvOworICAgIGZv
ciAoYXV0byBkZXZpY2UgOiBjYXB0dXJlZERldmljZXMpIHsKKyAgICAgICAgVHJhY2tTb3VyY2VJ
bmZvKiB0cmFja0luZm8gPSBkZXZpY2UuZ2V0KCk7CisgICAgICAgIFN0cmluZyBkZXZpY2VUeXBl
ID0gdHJhY2tJbmZvLT5raW5kKCkgPT0gVHJhY2tTb3VyY2VJbmZvOjpTb3VyY2VLaW5kOjpBdWRp
byA/IE1lZGlhRGV2aWNlSW5mbzo6YXVkaW9JbnB1dFR5cGUoKSA6IE1lZGlhRGV2aWNlSW5mbzo6
dmlkZW9JbnB1dFR5cGUoKTsKKworICAgICAgICAvLyBGSVhNRTogbGFiZWwgaXMgc3VwcG9zZWQg
dG8gYmUgZW1wdHkgdW5sZXNzIGEgZGV2aWNlIGlzIGF0dGFjaGVkIHRvIGFuIGFjdGl2ZSBNZWRp
YVN0cmVhbVRyYWNrIGluIHRoZSBjdXJyZW50IGJyb3dzaW5nIGNvbnRleHQsIG9yCisgICAgICAg
IC8vIHBlcnNpc3RlbnQgcGVybWlzc2lvbiB0byBhY2Nlc3MgdGhlc2UgbG9jYWwgZGV2aWNlcyBo
YXMgYmVlbiBncmFudGVkIHRvIHRoZSBwYWdlJ3Mgb3JpZ2luLgorICAgICAgICBkZXZpY2VJbmZv
LmFwcGVuZChNZWRpYURldmljZUluZm86OmNyZWF0ZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IHRyYWNrSW5mby0+bGFiZWwoKSwgdHJhY2tJbmZvLT5pZCgpLCB0cmFja0luZm8tPmdyb3VwSWQo
KSwgZGV2aWNlVHlwZSkpOworICAgIH0KKworICAgIFJlZlB0cjxNZWRpYURldmljZXNSZXF1ZXN0
PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRo
aXMsIGRldmljZUluZm9dIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wcm9taXNlLnJlc29s
dmUoZGV2aWNlSW5mbyk7CisgICAgfSk7CisgICAgbV9wcm90ZWN0b3IgPSBudWxscHRyOworCit9
CisKK2NvbnN0IFN0cmluZyYgTWVkaWFEZXZpY2VzUmVxdWVzdDo6cmVxdWVzdE9yaWdpbigpIGNv
bnN0Cit7CisgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKKyAgICAgICAgaWYgKGRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50
LT51cmwoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzUmVxdWVzdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8K
KworI2lmbmRlZiBNZWRpYURldmljZXNSZXF1ZXN0X2gKKyNkZWZpbmUgTWVkaWFEZXZpY2VzUmVx
dWVzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQWN0aXZlRE9N
T2JqZWN0LmgiCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJl
YW1DcmVhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdENsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEZyYW1lOworY2xhc3MgU2Vj
dXJpdHlPcmlnaW47CisKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2NsYXNzIE1lZGlh
RGV2aWNlc1JlcXVlc3QgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xp
ZW50LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWZQdHI8TWVkaWFEZXZpY2VzUmVxdWVzdD4gY3JlYXRlKERvY3VtZW50KiwgTWVkaWFE
ZXZpY2VzOjpFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmLCBFeGNlcHRpb25Db2RlJik7CisKKyAg
ICB2aXJ0dWFsIH5NZWRpYURldmljZXNSZXF1ZXN0KCk7CisKKyAgICB2b2lkIHN0YXJ0KCk7CisK
KyAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKKworcHJpdmF0ZToK
KyAgICBNZWRpYURldmljZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNZWRpYURl
dmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpOworCisgICAgLy8gTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50CisgICAgY29uc3QgU3RyaW5nJiByZXF1ZXN0T3JpZ2lu
KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBkaWRDb21wbGV0ZVJlcXVlc3QoY29uc3QgVHJhY2tT
b3VyY2VJbmZvVmVjdG9yJikgZmluYWw7CisKKyAgICAvLyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlcgorICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGUgZmluYWw7
CisKKyAgICBNZWRpYURldmljZXM6OkVudW1lcmF0ZURldmljZXNQcm9taXNlIG1fcHJvbWlzZTsK
KyAgICBSZWZQdHI8TWVkaWFEZXZpY2VzUmVxdWVzdD4gbV9wcm90ZWN0b3I7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
ZW5kaWYgLy8gTWVkaWFEZXZpY2VzUmVxdWVzdF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3QuY3BwCShyZXZpc2lvbiAxODk5NjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNS
ZXF1ZXN0OjpNZWRpYVN0cgogICAgIG1fb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlPcmlnaW4o
KS0+dG9TdHJpbmcoKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6
OmRpZENvbXBsZXRlUmVxdWVzdChjb25zdCBWZWN0b3I8UmVmUHRyPFRyYWNrU291cmNlSW5mbz4+
JiByZXF1ZXN0U291cmNlSW5mb3MpCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVz
dDo6ZGlkQ29tcGxldGVSZXF1ZXN0KGNvbnN0IFRyYWNrU291cmNlSW5mb1ZlY3RvciYgcmVxdWVz
dFNvdXJjZUluZm9zKQogewogICAgIEFTU0VSVChtX2NhbGxiYWNrKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oCShyZXZpc2lvbiAxODk5NjkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAKICAgICAv
LyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQKICAgICB2aXJ0dWFsIGNvbnN0
IFN0cmluZyYgcmVxdWVzdE9yaWdpbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3JpZ2lu
OyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUmVxdWVzdChjb25zdCBWZWN0b3I8UmVm
UHRyPFRyYWNrU291cmNlSW5mbz4+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENv
bXBsZXRlUmVxdWVzdChjb25zdCBUcmFja1NvdXJjZUluZm9WZWN0b3ImKSBvdmVycmlkZTsKIAog
ICAgIFN0cmluZyBtX29yaWdpbjsKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXND
YWxsYmFjaz4gbV9jYWxsYmFjazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAkocmV2aXNpb24gMTg5OTY5
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtNDUsNyArNDUsNiBAQAogI2luY2x1ZGUgIkpTTWVkaWFTdHJlYW0u
aCIKICNpbmNsdWRlICJKU05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmgiCiAjaW5jbHVkZSAiTWVk
aWFDb25zdHJhaW50c0ltcGwuaCIKLSNpbmNsdWRlICJNZWRpYURldmljZXNQcml2YXRlLmgiCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
ICNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmgiCkBAIC03MCwxMyAr
NjksNiBAQCBzdGF0aWMgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHBhcnNlT3B0CiAgICAgcmV0
dXJuIE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFS
ZXF1ZXN0OjplbnVtZXJhdGVEZXZpY2VzKERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFEZXZpY2Vz
OjpFbnVtZXJhdGVEZXZpY2VQcm9taXNlJiYgcHJvbWlzZSwgRXhjZXB0aW9uQ29kZSYpCi17Ci0g
ICAgUmVmUHRyPE1lZGlhRGV2aWNlc1ByaXZhdGU+IGRldmljZUNsaWVudCA9IE1lZGlhRGV2aWNl
c1ByaXZhdGU6OmNyZWF0ZSgpOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKGRldmljZUNsaWVudCk7Ci0gICAgcHJv
bWlzZS5yZXNvbHZlKGRldmljZUNsaWVudC0+YXZhaWxhYmxlTWVkaWFEZXZpY2VzKCpkb2N1bWVu
dCkpOwotfQotICAgIAogdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydChEb2N1bWVudCogZG9j
dW1lbnQsIGNvbnN0IERpY3Rpb25hcnkmIG9wdGlvbnMsIE1lZGlhRGV2aWNlczo6UHJvbWlzZSYm
IHByb21pc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghb3B0aW9ucy5pc09iamVj
dCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAkocmV2aXNpb24gMTg5OTY5KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTU5LDcgKzU5LDYgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIGNsYXNzIFVzZXJN
ZWRpYVJlcXVlc3QgOiBwdWJsaWMgTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudCwgcHVibGljIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzdGFy
dChEb2N1bWVudCosIGNvbnN0IERpY3Rpb25hcnkmLCBNZWRpYURldmljZXM6OlByb21pc2UmJiwg
RXhjZXB0aW9uQ29kZSYpOwotICAgIHN0YXRpYyB2b2lkIGVudW1lcmF0ZURldmljZXMoRG9jdW1l
bnQqLCBNZWRpYURldmljZXM6OkVudW1lcmF0ZURldmljZVByb21pc2UmJiwgRXhjZXB0aW9uQ29k
ZSYpOwogCiAgICAgflVzZXJNZWRpYVJlcXVlc3QoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTg5OTY5
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjQsNiArMTY0LDggQEAKIAkJMDczNzk0RkMxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ0RUTUZTZW5kZXJIYW5kbGVyTW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjYxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ0RU
TUZTZW5kZXJIYW5kbGVyTW9jay5oICovOyB9OwogCQkwNzM3OTRGRDE5RjU4NjRFMDBFNUEwNDUg
LyogUlRDTm90aWZpZXJzTW9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzM3OTRGNzE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9j
ay5jcHAgKi87IH07CiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNN
b2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3
OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oICovOyB9OworCQkwNzM5
NEVDODFCQUIyQ0NEMDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM5NEVDNzFCQUIyQ0NEMDBC
RTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgKi87IH07CisJCTA3Mzk0RUNBMUJBQjJD
RDcwMEJFOTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM5NEVDOTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVk
aWFEZXZpY2VzUmVxdWVzdC5oICovOyB9OwogCQkwNzNBQjRCMzE3RjhCQUNBMDA2RTBENkYgLyog
QWxsVmlkZW9DYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3M0FCNEIwMTdGOEJBQ0EwMDZFMEQ2RiAvKiBBbGxWaWRlb0NhcGFiaWxp
dGllcy5oICovOyB9OwogCQkwNzNBQjRCNzE3RjkyRUNGMDA2RTBENkYgLyogSlNDYXBhYmlsaXR5
UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDczQUI0QjUxN0Y5MkVDRjAwNkUwRDZGIC8qIEpTQ2FwYWJpbGl0eVJhbmdlLmNwcCAqLzsgfTsK
IAkJMDczQUI0QjgxN0Y5MkVDRjAwNkUwRDZGIC8qIEpTQ2FwYWJpbGl0eVJhbmdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNBQjRCNjE3RjkyRUNG
MDA2RTBENkYgLyogSlNDYXBhYmlsaXR5UmFuZ2UuaCAqLzsgfTsKQEAgLTY0Myw5ICs2NDUsNyBA
QAogCQkxNTA1MjRGNTFCNzEyRkY5MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbSAqLzsgfTsKIAkJMTUwNTI0RjYxQjcxMkZGQzAwNjk2QUE5IC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE1MDUyNEYyMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLmggKi87IH07CiAJCTE1MDUyNEY3MUI3MTJGRkYwMDY5NkFBOSAvKiBNZWRp
YVN0cmVhbVByaXZhdGVBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTUwNTI0RjMxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMubW0gKi87IH07Ci0JCTE1MTQ1QjkwMUIzQTFDRTAwMDY2MkJGNyAvKiBNZWRp
YURldmljZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAvKiBNZWRpYURldmljZUluZm8uaCAqLzsgfTsK
LQkJMTUyQTI5QjQxQjRFRjVCNzAwQjUyQUUwIC8qIE1lZGlhRGV2aWNlc1ByaXZhdGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTUyQTI5QjIxQjRF
RjU5NjAwQjUyQUUwIC8qIE1lZGlhRGV2aWNlc1ByaXZhdGUuY3BwICovOyB9OwotCQkxNTJBMjlC
NTFCNEVGNUJBMDBCNTJBRTAgLyogTWVkaWFEZXZpY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTUyQTI5QjMxQjRFRjU5NjAwQjUyQUUw
IC8qIE1lZGlhRGV2aWNlc1ByaXZhdGUuaCAqLzsgfTsKKwkJMTUxNDVCOTAxQjNBMUNFMDAwNjYy
QkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5m
by5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE1
NzM5QkJBMUI0MjAxMkEwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTczOUJCODFCNDIwMTIyMDBEMjU4
QzEgLyogSlNNZWRpYURldmljZXMuY3BwICovOyB9OwogCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4
QzEgLyogSlNNZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE1NzM5QkI5MUI0MjAxMjIwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5o
ICovOyB9OwogCQkxNTk3NDFEQTFCN0QxM0Y5MDAyMDFDOTIgLyogSlNNZWRpYURldmljZUluZm8u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTU3Q0My
NjExQjdDMUNBNDAwRDhEMDc1IC8qIEpTTWVkaWFEZXZpY2VJbmZvLmNwcCAqLzsgfTsKQEAgLTcz
NjksNiArNzM2OSw4IEBACiAJCTA3Mzc5NEY2MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENEVE1GU2Vu
ZGVySGFuZGxlck1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRFRN
RlNlbmRlckhhbmRsZXJNb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5
NEY3MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ05vdGlmaWVyc01vY2suY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZp
ZXJzTW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENOb3RpZmllcnNN
b2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3Mzk0RUM3MUJBQjJDQ0QwMEJF
OTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1lZGlhRGV2aWNlc1JlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzM5NEVDOTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYURldmljZXNSZXF1ZXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0FCNEIwMTdGOEJBQ0EwMDZFMEQ2
RiAvKiBBbGxWaWRlb0NhcGFiaWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBbGxWaWRlb0NhcGFiaWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzNBQjRCNTE3RjkyRUNGMDA2RTBENkYgLyogSlNDYXBhYmlsaXR5UmFuZ2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYXBhYmlsaXR5UmFuZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNBQjRCNjE3RjkyRUNGMDA2RTBENkYgLyog
SlNDYXBhYmlsaXR5UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlND
YXBhYmlsaXR5UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc4MjYsOCAr
NzgyOCw2IEBACiAJCTE1MDUyNEYzMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVk
aWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYURldmljZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTUx
NDVCOTExQjNBMUQ0QzAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFEZXZpY2VJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMTUyQTI5QjIxQjRFRjU5NjAwQjUyQUUwIC8qIE1lZGlhRGV2aWNlc1ByaXZhdGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFEZXZpY2VzUHJpdmF0
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTE1MkEyOUIzMUI0RUY1OTYwMEI1
MkFFMCAvKiBNZWRpYURldmljZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhRGV2aWNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMTU3MzlCQjgxQjQyMDEyMjAwRDI1OEMxIC8qIEpTTWVkaWFEZXZpY2VzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFEZXZpY2VzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTU3MzlCQjkxQjQyMDEyMjAwRDI1OEMxIC8qIEpTTWVk
aWFEZXZpY2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFEZXZp
Y2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1N0NDMjYxMUI3QzFDQTQwMEQ4
RDA3NSAvKiBKU01lZGlhRGV2aWNlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU01lZGlhRGV2aWNlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNDgzNCw2ICsxNDgzNCw4IEBACiAJCQkJMDc3OUJGMEMxODQ1MzE2ODAwMEI2QUU3
IC8qIEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwgKi8sCiAJCQkJMDcyMjFCNEExN0NF
QzMyNzAwODQ4RTUxIC8qIE1lZGlhQ29uc3RyYWludHNJbXBsLmNwcCAqLywKIAkJCQkwNzIyMUI0
QjE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFDb25zdHJhaW50c0ltcGwuaCAqLywKKwkJCQkwNzM5
NEVDNzFCQUIyQ0NEMDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgKi8sCisJCQkJ
MDczOTRFQzkxQkFCMkNENzAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCAqLywKIAkJ
CQkxNTlBRTgyQTFCM0E0MDJGMDAzNzQ3OEIgLyogTWVkaWFEZXZpY2VJbmZvLmNwcCAqLywKIAkJ
CQkxNTE0NUI4RjFCM0ExQjNFMDA2NjJCRjcgLyogTWVkaWFEZXZpY2VJbmZvLmggKi8sCiAJCQkJ
MTUxNDVCOTExQjNBMUQ0QzAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5pZGwgKi8sCkBAIC0x
NDk0OSw4ICsxNDk1MSw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwNzI5QjE0RDE3Q0ZDQ0Ew
MDA0RjFENjAgLyogbWFjICovLAogCQkJCTA3MjIxQjk5MTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRp
YUNvbnN0cmFpbnRzLmggKi8sCi0JCQkJMTUyQTI5QjIxQjRFRjU5NjAwQjUyQUUwIC8qIE1lZGlh
RGV2aWNlc1ByaXZhdGUuY3BwICovLAotCQkJCTE1MkEyOUIzMUI0RUY1OTYwMEI1MkFFMCAvKiBN
ZWRpYURldmljZXNQcml2YXRlLmggKi8sCiAJCQkJMDcwRjU0OTcxN0YxMkY2QjAwMTY5RTA0IC8q
IE1lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50LmggKi8sCiAJCQkJMDcyMjFC
QTAxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaCAqLywKIAkJ
CQkwNzExNTg4RjE3REY2MzM3MDBFREZFMkIgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmNwcCAqLywK
QEAgLTI0MzYyLDYgKzI0MzYyLDcgQEAKIAkJCQkyNkYwQzg5QzFBMkVDMTEwMDAyNzk0RjggLyog
Q29udGVudEV4dGVuc2lvblJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RjBDOEEwMUEyRUMz
QkUwMDI3OTRGOCAvKiBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTI2MjM5MTM2MUE2NDhDRUUwMDcyNTFBMyAvKiBDb250ZW50RXh0ZW5zaW9uc0RlYnVnZ2lu
Zy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDczOTRFQ0ExQkFCMkNENzAwQkU5OUNEIC8qIE1lZGlh
RGV2aWNlc1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRkI2N0RDMUFFNkI4MkYwMEQw
NkM1QSAvKiBDb250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTE0OTc4NkYxQUJBRjMzODAwQ0VGN0U0IC8qIENvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExNDA5MEZEMUFBNTFFNDgwMDkxMTkxQSAvKiBDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0NjAsNyArMjQ0NjEsNiBAQAogCQkJCTQwOUVC
REIxMTZCN0VFNzEwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM2NEI0RDgwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNl
U291cmNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkxNTJBMjlCNTFCNEVGNUJBMDBCNTJBRTAgLyog
TWVkaWFEZXZpY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NEI0REEwQ0I0Mjk4
QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlU3JjVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
NTIwQzdFMUE3MUJGQ0MwMDZCRDJBQSAvKiBDU1NGb250RmFtaWx5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0QTZFOUZDNDEzQzE3RDFEMDA0NkE3RjggLyogQ1NTRm9udEZlYXR1cmVWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yODI1Nyw2ICsyODI1Nyw3IEBACiAJCQkJOTM5M0U1RkYxNTFBOTlG
MjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgw
RTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTgwRTZDRUIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltcG9ydFJ1bGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMDczOTRFQzgxQkFCMkNDRDAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1Jl
cXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRjAwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0luaGVyaXRlZFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2RDAyMEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzEy
ODhFNzIwRTMwMDVENjAwMzYxOUFFIC8qIENTU0tleWZyYW1lUnVsZS5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTI5NDUyLDcgKzI5NDUzLDYgQEAKIAkJCQlCQ0UwMTM5QTBDMEJFRjE4MDA0Mzg2MEEg
LyogSlNTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOThBMjdEMEMwQzk5NTAw
MDRCRUJGNyAvKiBKU1N0eWxlU2hlZXRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg0
RUJEODQwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMTUyQTI5QjQxQjRFRjVCNzAwQjUyQUUwIC8qIE1lZGlhRGV2aWNlc1ByaXZhdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg0RUJENzgwQ0I4Qzg5MjAwMDc5NjA5IC8qIEpTU3R5
bGVTaGVldExpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFGRjhGNjQxODA3NDVE
ODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxRkY4
RjY4MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlc1ByaXZhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1ByaXZhdGUuY3BwCShyZXZpc2lvbiAxODk5NjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNQcml2YXRlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiTWVkaWFEZXZpY2VzUHJpdmF0ZS5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZWY8TWVkaWFEZXZpY2VzUHJpdmF0ZT4gTWVkaWFEZXZp
Y2VzUHJpdmF0ZTo6Y3JlYXRlKCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURl
dmljZXNQcml2YXRlKTsKLX0KLQotTWVkaWFEZXZpY2VzUHJpdmF0ZTo6TWVkaWFEZXZpY2VzUHJp
dmF0ZSgpCi0gICAgOiBtX2NhcHR1cmVkRGV2aWNlcygpCi17Ci19Ci0gICAgCi12b2lkIE1lZGlh
RGV2aWNlc1ByaXZhdGU6OmRpZENvbXBsZXRlUmVxdWVzdChjb25zdCBWZWN0b3I8UmVmUHRyPFRy
YWNrU291cmNlSW5mbz4+JiBjYXB0dXJlZERldmljZXMpCi17Ci0gICAgbV9jYXB0dXJlZERldmlj
ZXMgPSBjYXB0dXJlZERldmljZXM7Ci19Ci0KLVZlY3RvcjxSZWZQdHI8TWVkaWFEZXZpY2VJbmZv
Pj4gTWVkaWFEZXZpY2VzUHJpdmF0ZTo6YXZhaWxhYmxlTWVkaWFEZXZpY2VzKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpCi17Ci0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYURldmljZUlu
Zm8+PiBtZWRpYURldmljZXNJbmZvOwotICAgIGZvciAoYXV0byBkZXZpY2UgOiBtX2NhcHR1cmVk
RGV2aWNlcykgewotICAgICAgICBUcmFja1NvdXJjZUluZm8qIHRyYWNrSW5mbyA9IGRldmljZS5n
ZXQoKTsKLSAgICAgICAgU3RyaW5nIGRldmljZVR5cGUgPSB0cmFja0luZm8tPmtpbmQoKSA9PSBU
cmFja1NvdXJjZUluZm86OlNvdXJjZUtpbmQ6OkF1ZGlvID8gTWVkaWFEZXZpY2VJbmZvOjphdWRp
b0lucHV0VHlwZSgpIDogTWVkaWFEZXZpY2VJbmZvOjp2aWRlb0lucHV0VHlwZSgpOwotICAgICAg
ICBtZWRpYURldmljZXNJbmZvLmFwcGVuZChNZWRpYURldmljZUluZm86OmNyZWF0ZSgmY29udGV4
dCwgdHJhY2tJbmZvLT5sYWJlbCgpLCB0cmFja0luZm8tPmRldmljZUlkKCksIHRyYWNrSW5mby0+
Z3JvdXBJZCgpLCBkZXZpY2VUeXBlKSk7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBtZWRpYURl
dmljZXNJbmZvOwotfQotCi19Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1ByaXZhdGUuaAkocmV2
aXNpb24gMTg5OTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICovCi0KLSNpZm5kZWYgTWVk
aWFEZXZpY2VzUHJpdmF0ZV9oCi0jZGVmaW5lIE1lZGlhRGV2aWNlc1ByaXZhdGVfaAotCi0jaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhRGV2aWNlSW5mby5oIgotI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIgotCi0jaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE1lZGlhRGV2aWNlc1By
aXZhdGUgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50IHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlc1ByaXZhdGU+IGNyZWF0ZSgpOwotICAg
IAotICAgIE1lZGlhRGV2aWNlc1ByaXZhdGUoKTsKLQotICAgIH5NZWRpYURldmljZXNQcml2YXRl
KCkgeyB9Ci0KLSAgICBWZWN0b3I8UmVmUHRyPE1lZGlhRGV2aWNlSW5mbz4+IGF2YWlsYWJsZU1l
ZGlhRGV2aWNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7Ci0gICAgCi0gICAgLy8gRklYTUUo
MTQ4MDQxKTogcmVxdWVzdE9yaWdpbiBpbnNpZGUgb2YgZ2V0TWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXMgbm90IHVzZWQKLSAgICBjb25zdCBTdHJpbmcmIHJlcXVlc3RPcmlnaW4oKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9Ci0gICAgCi0gICAgdm9pZCBkaWRDb21wbGV0
ZVJlcXVlc3QoY29uc3QgVmVjdG9yPFJlZlB0cjxUcmFja1NvdXJjZUluZm8+PiYpIG92ZXJyaWRl
OwotICAgIAotICAgIFZlY3RvcjxSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPj4gY2FwdHVyZWREZXZp
Y2VzKCkgY29uc3QgeyByZXR1cm4gbV9jYXB0dXJlZERldmljZXM7IH0KLSAgICAKLXByaXZhdGU6
Ci0gICAgVmVjdG9yPFJlZlB0cjxUcmFja1NvdXJjZUluZm8+PiBtX2NhcHR1cmVkRGV2aWNlczsK
LX07Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBN
ZWRpYURldmljZXNQcml2YXRlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50LmgJ
KHJldmlzaW9uIDE4OTk2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgi
CiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oCShyZXZpc2lvbiAxODk5NjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3RDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzksMTUgKzc5LDE4IEBAIHBy
aXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fZGV2aWNlSWQ7CiB9OwogCit0eXBlZGVmIFZlY3Rv
cjxSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPj4gVHJhY2tTb3VyY2VJbmZvVmVjdG9yOworCiBjbGFz
cyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQoKSB7IH0KIAogICAg
IHZpcnR1YWwgY29uc3QgU3RyaW5nJiByZXF1ZXN0T3JpZ2luKCkgY29uc3QgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJlcXVlc3QoY29uc3QgVmVjdG9yPFJlZlB0cjxUcmFja1Nv
dXJjZUluZm8+PiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVSZXF1ZXN0KGNv
bnN0IFRyYWNrU291cmNlSW5mb1ZlY3RvciYpID0gMDsKIAogfTsKIAorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oCShyZXZpc2lvbiAxODk5NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQVZDYXB0
dXJlRGV2aWNlTWFuYWdlciYgc2luZ2xldG9uKCk7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFi
bGUoKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPj4gZ2V0U291cmNlc0lu
Zm8oY29uc3QgU3RyaW5nJik7Ci0gICAgYm9vbCB2ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlhVHlw
ZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJik7
CisgICAgVHJhY2tTb3VyY2VJbmZvVmVjdG9yIGdldFNvdXJjZXNJbmZvKGNvbnN0IFN0cmluZyYp
OworICAgIGJvb2wgdmVyaWZ5Q29uc3RyYWludHNGb3JNZWRpYVR5cGUoQVZDYXB0dXJlU2Vzc2lv
biAqLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5n
Jik7CiAgICAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4gYmVzdFNvdXJjZXNG
b3JUeXBlQW5kQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgUGFzc1JlZlB0
cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNv
dXJjZVdpdGhVSUQoY29uc3QgU3RyaW5nJiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgTWVk
aWFDb25zdHJhaW50cyopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5t
bQkocmV2aXNpb24gMTg5OTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTM0Myw3
ICszNDMsNyBAQCBWZWN0b3I8UmVmUHRyPFRyYWNrU291cmNlSW5mbz4+IEFWQ2FwdHVyCiAgICAg
cmV0dXJuIHNvdXJjZXNJbmZvOwogfQogCi1ib29sIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnZl
cmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlw
ZSwgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFp
bnQpCitib29sIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVk
aWFUeXBlKEFWQ2FwdHVyZVNlc3Npb25UeXBlICpzZXNzaW9uLCBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlIHR5cGUsIE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFs
aWRDb25zdHJhaW50KQogewogICAgIGlmICghaXNBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMzU1LDExICszNTUsMTAgQEAgYm9vbCBBVkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
Ojp2ZXJpZnlDb25zdAogICAgIGNvbnN0cmFpbnRzLT5nZXRNYW5kYXRvcnlDb25zdHJhaW50cyht
YW5kYXRvcnlDb25zdHJhaW50cyk7CiAgICAgaWYgKG1hbmRhdG9yeUNvbnN0cmFpbnRzLnNpemUo
KSkgewogCi0gICAgICAgIC8vIEZJWE1FOiB0aGlzIG1ldGhvZCBzaG91bGQgdGFrZSBhbiBBVkNh
cHR1cmVEZXZpY2UgYW5kIHVzZSBpdHMgQVZDYXB0dXJlU2Vzc2lvbiBpbnN0ZWFkIG9mIGNyZWF0
aW5nIGEgbmV3IG9uZS4KLSAgICAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZVNlc3Npb25UeXBlPiBz
ZXNzaW9uID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVTZXNzaW9uSW5zdGFuY2UoKSBpbml0XSk7
CisgICAgICAgIFJldGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uVHlwZT4gY2FwdHVyZVNlc3Npb24g
PSBzZXNzaW9uID8gc2Vzc2lvbiA6IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlU2Vzc2lvbkluc3Rh
bmNlKCkgaW5pdF0pOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hbmRhdG9yeUNv
bnN0cmFpbnRzLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBjb25zdCBNZWRpYUNvbnN0cmFp
bnQmIGNvbnN0cmFpbnQgPSBtYW5kYXRvcnlDb25zdHJhaW50c1tpXTsKLSAgICAgICAgICAgIGlm
ICghc2Vzc2lvblN1cHBvcnRzQ29uc3RyYWludChzZXNzaW9uLmdldCgpLCB0eXBlLCBjb25zdHJh
aW50Lm1fbmFtZSwgY29uc3RyYWludC5tX3ZhbHVlKSkgeworICAgICAgICAgICAgaWYgKCFzZXNz
aW9uU3VwcG9ydHNDb25zdHJhaW50KGNhcHR1cmVTZXNzaW9uLmdldCgpLCB0eXBlLCBjb25zdHJh
aW50Lm1fbmFtZSwgY29uc3RyYWludC5tX3ZhbHVlKSkgewogICAgICAgICAgICAgICAgIGludmFs
aWRDb25zdHJhaW50ID0gY29uc3RyYWludC5tX25hbWU7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgfQpAQCAtNDI1LDIxICs0MjQsMjkgQEAgUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2U+IEFWQ2FwdHVyZURldgogCiAgICAgICAgIGlmIChjYXB0dXJlRGV2aWNl
Lm1fY2FwdHVyZURldmljZUlEICE9IGRldmljZVVJRCkKICAgICAgICAgICAgIGNvbnRpbnVlOwor
CiAgICAgICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICAgICAgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50czsKLSAgICAgICAgICAgIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRv
bigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKHR5cGUsIGNvbnN0cmFpbnRzLCBpbnZh
bGlkQ29uc3RyYWludHMpOworICAgICAgICAgICAgQVZDYXB0dXJlU2Vzc2lvblR5cGUgKnNlc3Np
b24gPSBuaWw7CisKKyAgICAgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlZpZGVvICYmIGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlKQorICAg
ICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlLT5z
ZXNzaW9uKCk7CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvICYmIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKQor
ICAgICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNl
LT5zZXNzaW9uKCk7CisgICAgICAgICAgICBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0
b24oKS52ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlhVHlwZShzZXNzaW9uLCB0eXBlLCBjb25zdHJh
aW50cywgaW52YWxpZENvbnN0cmFpbnRzKTsKKwogICAgICAgICAgICAgaWYgKCFpbnZhbGlkQ29u
c3RyYWludHMuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2UgPSBbQVZDYXB0
dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmlj
ZUlEXTsKICAgICAgICAgQVNTRVJUKGRldmljZSk7Ci0gICAgICAgIGlmICh0eXBlID09IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvICYmICFjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3Vy
Y2VJZC5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW8gJiYgIWNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJj
ZSkKICAgICAgICAgICAgICAgICBjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNv
dXJjZSA9IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNl
Lm1fYXVkaW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOwogICAgICAgICAgICAgcmV0dXJuIGNhcHR1
cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlOwogICAgICAgICB9Ci0gICAgICAg
IGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvICYmICFjYXB0dXJl
RGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKHR5cGUgPT0g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8gJiYgIWNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJj
ZUlkLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fdmlkZW9B
Vk1lZGlhQ2FwdHVyZVNvdXJjZSkKICAgICAgICAgICAgICAgICBjYXB0dXJlRGV2aWNlLm1fdmlk
ZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2
aWNlLCBjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOwogICAgICAg
ICAgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAkocmV2
aXNpb24gMTg5OTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3
ICs2NCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6dmFsaWQKIAogICAg
IGlmIChhdWRpb0NvbnN0cmFpbnRzKSB7CiAgICAgICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWlu
dDsKLSAgICAgICAgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29u
c3RyYWludHNGb3JNZWRpYVR5cGUoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8sIGF1ZGlvQ29u
c3RyYWludHMuZ2V0KCksIGludmFsaWRDb25zdHJhaW50KTsKKyAgICAgICAgQVZDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29uc3RyYWludHNGb3JNZWRpYVR5cGUobmls
LCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgYXVkaW9Db25zdHJhaW50cy5nZXQoKSwgaW52
YWxpZENvbnN0cmFpbnQpOwogICAgICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50LmlzRW1wdHko
KSkgewogICAgICAgICAgICAgY2xpZW50LT5jb25zdHJhaW50c0ludmFsaWQoaW52YWxpZENvbnN0
cmFpbnQpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzMsNyArNzMsNyBAQCB2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OnZhbGlkCiAKICAgICBpZiAodmlkZW9Db25zdHJhaW50
cykgewogICAgICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7Ci0gICAgICAgIEFWQ2FwdHVy
ZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBl
KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCB2aWRlb0NvbnN0cmFpbnRzLmdldCgpLCBpbnZh
bGlkQ29uc3RyYWludCk7CisgICAgICAgIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRv
bigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKG5pbCwgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VmlkZW8sIHZpZGVvQ29uc3RyYWludHMuZ2V0KCksIGludmFsaWRDb25zdHJhaW50KTsKICAg
ICAgICAgaWYgKCFpbnZhbGlkQ29uc3RyYWludC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGNs
aWVudC0+Y29uc3RyYWludHNJbnZhbGlkKGludmFsaWRDb25zdHJhaW50KTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjOjpjcmVhdAogICAgIAogICAgIGlmIChhdWRpb0NvbnN0cmFpbnRzKSB7CiAgICAgICAgIFN0
cmluZyBpbnZhbGlkQ29uc3RyYWludDsKLSAgICAgICAgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6
c2luZ2xldG9uKCkudmVyaWZ5Q29uc3RyYWludHNGb3JNZWRpYVR5cGUoUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW8sIGF1ZGlvQ29uc3RyYWludHMuZ2V0KCksIGludmFsaWRDb25zdHJhaW50KTsK
KyAgICAgICAgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29uc3Ry
YWludHNGb3JNZWRpYVR5cGUobmlsLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgYXVkaW9D
b25zdHJhaW50cy5nZXQoKSwgaW52YWxpZENvbnN0cmFpbnQpOwogICAgICAgICBpZiAoIWludmFs
aWRDb25zdHJhaW50LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY2xpZW50LT5mYWlsZWRUb0Ny
ZWF0ZVN0cmVhbVdpdGhDb25zdHJhaW50c0Vycm9yKGludmFsaWRDb25zdHJhaW50KTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWM6OmNyZWF0CiAgICAgCiAgICAgaWYgKHZpZGVvQ29uc3RyYWludHMpIHsKICAg
ICAgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50OwotICAgICAgICBBVkNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpzaW5nbGV0b24oKS52ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlhVHlwZShSZWFsdGlt
ZU1lZGlhU291cmNlOjpWaWRlbywgdmlkZW9Db25zdHJhaW50cy5nZXQoKSwgaW52YWxpZENvbnN0
cmFpbnQpOworICAgICAgICBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS52ZXJp
ZnlDb25zdHJhaW50c0Zvck1lZGlhVHlwZShuaWwsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVv
LCB2aWRlb0NvbnN0cmFpbnRzLmdldCgpLCBpbnZhbGlkQ29uc3RyYWludCk7CiAgICAgICAgIGlm
ICghaW52YWxpZENvbnN0cmFpbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBjbGllbnQtPmZh
aWxlZFRvQ3JlYXRlU3RyZWFtV2l0aENvbnN0cmFpbnRzRXJyb3IoaW52YWxpZENvbnN0cmFpbnQp
OwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTMwLDkgKzEzMCwxMiBAQCBib29sIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJNYWM6OmdldE1lCiB7CiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzUmVxdWVzdENsaWVudD4gcmVxdWVzdENsaWVudCA9IHBycENsaWVudDsKIAotICAg
IFZlY3RvcjxSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPj4gc291cmNlcyA9IEFWQ2FwdHVyZURldmlj
ZU1hbmFnZXI6OnNpbmdsZXRvbigpLmdldFNvdXJjZXNJbmZvKHJlcXVlc3RDbGllbnQtPnJlcXVl
c3RPcmlnaW4oKSk7CisgICAgVHJhY2tTb3VyY2VJbmZvVmVjdG9yIHNvdXJjZXMgPSBBVkNhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5nZXRTb3VyY2VzSW5mbyhyZXF1ZXN0Q2xpZW50
LT5yZXF1ZXN0T3JpZ2luKCkpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcmVxdWVz
dENsaWVudCwgc291cmNlc10geworICAgICAgICByZXF1ZXN0Q2xpZW50LT5kaWRDb21wbGV0ZVJl
cXVlc3Qoc291cmNlcyk7CisgICAgfSk7CiAKLSAgICByZXF1ZXN0Q2xpZW50LT5kaWRDb21wbGV0
ZVJlcXVlc3Qoc291cmNlcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCShyZXZpc2lvbiAxODk5NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTk4LDcgKzE5OCw3IEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OmNyZWEKIGJvb2wgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
Q2xpZW50PiBwcnBDbGllbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdENsaWVudD4gcmVxdWVzdENsaWVudCA9IHBycENsaWVudDsKLSAgICBWZWN0b3I8UmVm
UHRyPFRyYWNrU291cmNlSW5mbz4+IHNvdXJjZXM7CisgICAgVHJhY2tTb3VyY2VJbmZvVmVjdG9y
IHNvdXJjZXM7CiAKICAgICBNb2NrU291cmNlTWFwJiBtYXAgPSBtb2NrU291cmNlTWFwKCk7CiAg
ICAgTW9ja1NvdXJjZU1hcDo6aXRlcmF0b3IgZW5kID0gbWFwLmVuZCgpOwpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTg5OTc2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTUtMDktMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBGaW5pc2ggaW1wbGVtZW50aW5nIE1l
ZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzMjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNzUw
ODY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWVudW1l
cmF0ZURldmljZXMuaHRtbDogQWRkZWQuCisKIDIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTgyNDQ5LCBNYXZlcmlja3Mg
T05MWSk6IFBhZ2VzIHJlLW9wZW4gZW1wdHkgYWZ0ZXIgc3dpcGluZyBiYWNrIGFuZCBzY3JvbGxp
bmcgb24gdGhlbQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy1lbnVtZXJhdGVEZXZpY2VzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDI0IEBACitUZXN0cyBNZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMg
aXMgYW4gaW5zdGFuY2Ugb2YgT2JqZWN0CitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51
bWVyYXRlRGV2aWNlcyBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgorCitQQVNTIGNhcHR1cmVE
ZXZpY2VzLmxlbmd0aCBpcyBub24temVyby4KKworUEFTUyBjYXB0dXJlRGV2aWNlLmtpbmQgaXMg
bm9uLW51bGwuCitQQVNTIGNhcHR1cmVEZXZpY2UuZGV2aWNlSWQgaXMgbm9uLW51bGwuCitQQVNT
IGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgbm9uLW51bGwuCitQQVNTIGNhcHR1cmVEZXZpY2UuZ3Jv
dXBJZCBpcyBub24tbnVsbC4KKworUEFTUyBjYXB0dXJlRGV2aWNlLmtpbmQgaXMgbm9uLW51bGwu
CitQQVNTIGNhcHR1cmVEZXZpY2UuZGV2aWNlSWQgaXMgbm9uLW51bGwuCitQQVNTIGNhcHR1cmVE
ZXZpY2UubGFiZWwgaXMgbm9uLW51bGwuCitQQVNTIGNhcHR1cmVEZXZpY2UuZ3JvdXBJZCBpcyBu
b24tbnVsbC4KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWVu
dW1lcmF0ZURldmljZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy1lbnVtZXJhdGVEZXZpY2VzLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1lbnVtZXJhdGVEZXZp
Y2VzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorPCFET0NUWVBFIEhUTUw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB2YXIgY2FwdHVyZURldmljZXM7
CisgICAgICAgICAgICB2YXIgY2FwdHVyZURldmljZTsKKworICAgICAgICAgICAgZGVzY3JpcHRp
b24oIlRlc3RzIE1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCkiKTsKKyAgICAgICAgICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICAgICAgc2hvdWxkQmVUeXBl
KCJuYXZpZ2F0b3IubWVkaWFEZXZpY2VzIiwgIk9iamVjdCIpOworICAgICAgICAgICAgc2hvdWxk
QmVUeXBlKCJuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMiLCAiRnVuY3Rp
b24iKTsKKyAgICAgICAgICAgIGRlYnVnKCIiKTsKKworICAgICAgICAgICAgbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCkKKyAgICAgICAgICAgICAgICAudGhlbihmdW5j
dGlvbihkZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2VzID0gZGV2
aWNlczsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVOb25aZXJvKCJjYXB0dXJlRGV2aWNl
cy5sZW5ndGgiKTsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAg
ICAgICAgICBkZXZpY2VzLmZvckVhY2goZnVuY3Rpb24oZGV2aWNlKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBjYXB0dXJlRGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkQmVOb25OdWxsKCJjYXB0dXJlRGV2aWNlLmtpbmQiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgiY2FwdHVyZURldmljZS5kZXZpY2VJZCIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJjYXB0dXJlRGV2aWNlLmxhYmVs
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoImNhcHR1cmVEZXZp
Y2UuZ3JvdXBJZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbihlcnIp
IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChlcnIubmFtZSArICI6ICIgKyBlcnIu
bWVzc2FnZSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHdpbmRvdy5zdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>